mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 19:39:42 +08:00
@@ -239,22 +239,21 @@ opd:中断挂起服务缓存溢出。<br>
|
||||
|
||||
## 第二章、中断篇
|
||||
|
||||
### 什么是零中断延迟?<br>
|
||||
零中断延迟并非是中断的响应时间为零,而是指当引入了RTOS以后,中断的响应时间仍然能够达到MCU内核特性的响应时间,即只要中断发生,就能按中断优先级立即抢占,绝不延误。也就是说,中断响应时间不受RTOS影响,与裸机编程是一样的。<br>
|
||||
### 什么是零中断延迟?
|
||||
零中断延迟并非是中断的响应时间为零,而是指当引入了RTOS以后,中断响应时间仍然能够达到MCU内核特性的响应时间,即只要中断发生,就能按中断优先级立即抢占,不存在指令级延误。也就是说,中断响应时间不受RTOS影响,与裸机编程是一样的。<br>
|
||||
|
||||
### 零中断延迟的意义 <br>
|
||||
MCU的核心价值在于中断的使用,实现对紧急事件的及时响应并处理。如果RTOS内核以关闭总中断的方式来处理内核服务、保护临界段,则意味着会丢失对高速并发事件的响应,并导致处理延误。而“丢失响应”往往是致命的,“处理延误”有时也会产生不良后果。<br>
|
||||
### 零中断延迟的意义
|
||||
MCU的核心价值在于中断的使用,实现对紧急事件的及时响应并处理。如果RTOS内核以关闭总中断的方式来处理内核服务、保护临界段,则意味着会丢失对高速并发事件的响应,并导致处理延误。而“丢失响应”往往是致命的,“处理延误”可能会导致不良后果。<br>
|
||||
* 误区 <br>
|
||||
即使关闭了总中断,用户中断被触发后标志位仍可置位,当开启总中断后仍可响应中断。<br>
|
||||
首先,这已经导致了“处理延误”,如果超出允许范围会产生不良后果。<br>
|
||||
其次,如果关闭总中断期间,某个用户中断并发(发生了两次或多次),当开启总中断后仅能响应并处理一次,即“丢失响应”。<br>
|
||||
首先,这已经导致了“处理延误”,如果超出允许范围,后果是可想而知的。<br>
|
||||
其次,如果关闭总中断期间,某个用户中断发生了两次或多次(并发),当开启总中断后仅能响应并处理一次,即“丢失响应”。<br>
|
||||
* 示例 <br>
|
||||
高速通讯(丢帧)<br>
|
||||
高速PWM(失调、影响调制精度)<br>
|
||||
高速信号采样(丢失采样、采样点偏离)<br>
|
||||
|
||||
事实上,RTOS以关闭总中断的方式来保护临界段,是最为直接有效的,可实现最少的指令。CosyOS通过特殊的方法来保护临界段,必然是走了一条弯路,需要执行更多的指令,牺牲了整体的运行效率,但同时确换取了零中断延迟,这一点与RTOS通过牺牲整体的运行效率来换取实时性是相同的道理。<br>
|
||||
|
||||
零中断延迟是CosyOS的宗旨,是原则和底线,必须坚决贯彻落实。<br>
|
||||
|
||||
### 零中断延迟基本原理
|
||||
|
||||
Reference in New Issue
Block a user