mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 11:29:44 +08:00
@@ -150,7 +150,7 @@ MCU的核心价值在于中断的使用,实现对紧急事件的及时响应
|
||||
* **误区** <br>
|
||||
即使关闭了总中断,用户中断被触发后标志位仍可置位,当开启总中断后仍可响应中断。<br>
|
||||
首先,这已经导致了“处理延误”,如果延误时间超出了允许范围,危害是可想而知的。<br>
|
||||
其次,如果关闭总中断期间,某个用户中断发生了两次或多次(并发),当开启总中断后,也仅能响应并处理一次,即“丢失响应”。而有的事件,发生一次就得处理一次,如果有遗漏将导致致命的错误。<br>
|
||||
其次,如果关闭总中断期间,某个高速中断发生了两次或多次,当开启总中断后,也仅能响应并处理一次,即“丢失响应”。而有的事件,发生一次就得处理一次,如果有遗漏将导致致命的错误。<br>
|
||||
* **示例** <br>
|
||||
高速通讯(接收丢帧)<br>
|
||||
高速捕获(丢失脉冲)<br>
|
||||
@@ -224,12 +224,12 @@ CosyOS-II 中断挂起服务缓存队列(PendSV_FIFO),已实现所有内
|
||||
|
||||
### 中断使用注意事项
|
||||
* 在CosyOS中,中断是系统脱管的,用户对中断的使用与裸机编程是一样的。<br>
|
||||
* **只要中断不是最低优先级,就可实现零中断延迟** [注1]。因此,用户中断应尽量避免使用最低优先级。<br>
|
||||
* **只要中断不是最低优先级,就可实现零中断延迟**。因此,用户中断应尽量避免使用最低优先级。[注1] <br>
|
||||
* 用户中断应遵循快进快出的原则,对事件仅做必要的紧急处理,再以同步方式通知 **中断服务任务** 做后续处理。<br>
|
||||
* 用户中断的最大执行时间应远小于系统滴答周期,这将促使整个系统更加良性的运行。<br>
|
||||
|
||||
注1:其实,即使用户中断是最低优先级,也可能是零中断延迟的(当任务临界区未使用BASEPRI寄存器时),<br>
|
||||
只不过系统中断可能会与其抢占。而系统中断相对来说还是会占用更多的时间,可能会导致用户中断丢失响应或处理延误。<br>
|
||||
注1:其实,即使用户中断是最低优先级,也可能是零中断延迟的(当任务临界区未使用BASEPRI寄存器时),只不过 <br>
|
||||
系统中断可能会与其抢占。而系统中断相对来说还是会占用更多的时间,可能会导致用户中断丢失响应或处理延误。<br>
|
||||
|
||||
## 第三章、线程通信
|
||||
|
||||
|
||||
Reference in New Issue
Block a user