完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 中断锁定义 中断锁即为全局中断开关,是禁止多线程访问临界区最简单的一种方式,即通过关闭中断的方式,来保证当前线程不会被其他事件打断(此时系统不再响应可以触发线程调度的外部事件),除非这个线程主动放弃了处理器控制权。 CM3中线程调度是利用PendSV悬起异常完成的,PendSV中断的优先级一般设为最低(不能让线程抢占中断获取CPU的使用权),因此关闭中断后,系统不再响应可触发线程调度的外部事件。因此,如果在中断锁保护的临界区内主动发起线程调度,需要等中断锁打开后才能执行。 注意:这里的关中断,只是屏蔽了全局中断请求,配置使能的中断在触发后,不会立即执行中断服务例程ISR,等中断打开后才会执行。 应用场合与注意事项 中断锁是最强大的和最高效的同步方法,使用中断锁来操作临界区的方法可以应用于任何场合,其他几类同步方式(如信号量、互斥量等)均依赖于中断锁实现。但中断锁对系统实时性影响巨大,关闭中断会导致整个系统不能响应外部中断,使用时需保证关闭中断的时间非常短,遵循“快进快出”原则,否则会导致系统完全无实时性可言。 例如:某时刻有一个线程运行时进入临界段,并且采用中断锁保护,此时若有一个紧急的中断事件被触发,该中断就会被挂起,不能及时响应,必须等待中断开启后才可以得到响应,如果关中断时间超过了紧急中断能容忍的限度,危害可想而知。 RT-Thread 源码中有许多处临界段的地方,临界段虽然用中断锁保护了关键代码的执行不被打断,但也会影响系统的实时,任何使用了操作系统的中断响应都不会比裸机快。 在中断服务函数中也可以使用中断锁,防止被更高优先级的中断打断(CM3支持中断嵌套)
RT-Thread学习笔记 中断锁、调度锁与死锁.pdf
(300.62 KB, 下载次数: 1
)
原作者:柯西的彷徨 |
|
1039 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3425 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1465 浏览 0 评论
2146 浏览 0 评论
1640 浏览 0 评论
75318 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 09:43 , Processed in 0.666988 second(s), Total 67, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号