mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-06 03:41:41 +08:00
@@ -256,6 +256,30 @@ MCU的核心价值在于中断的使用,实现对紧急事件的及时响应
|
||||
零中断延迟是CosyOS的宗旨,是原则和底线,必须坚决贯彻落实。<br>
|
||||
|
||||
### 零中断延迟基本原理
|
||||
|
||||
* **CosyOS-实时运行模型** <br>
|
||||
* **中断层** 【用户中断按中断优先级实时抢占、零中断延迟】
|
||||
* **用户中断** <br>
|
||||
**->** 中断本地服务的执行<br>
|
||||
**->** 中断挂起服务的装载<br>
|
||||
* **服务层** 【内核服务】
|
||||
* **SysTick** [minpri]<br>
|
||||
**->** 软件RTC/定时器计数<br>
|
||||
**->** 恢复定时任务<br>
|
||||
**->** 调用定时钩子/滴答钩子(滴答服务的执行)<br>
|
||||
* **PendSV** [minpri]<br>
|
||||
**->** 中断挂起服务的执行<br>
|
||||
**->** 任务调度/切换<br>
|
||||
* **任务临界区** [关闭SysTick/PendSV]<br>
|
||||
**->** 任务服务的执行<br>
|
||||
* **任务层** 【不同优先级的任务抢占式调度,相同优先级的任务时间片轮转调度】
|
||||
* Taskmgr[maxpri]
|
||||
* Debugger[maxpri]
|
||||
* Starter[maxpri-1]
|
||||
* 一般用户任务[maxpri-1 ~ minpri+1:1]
|
||||
* 用户空闲任务[minpri:0]
|
||||
* 系统空闲任务[minpri:0]
|
||||
|
||||
* 服务层中,SysTick、PendSV、任务临界区,三者间是互斥访问的。换言之,整个服务层是一个大临界区。<br>
|
||||
* 所有内核服务(中断本地服务除外),均在服务层(临界区)执行,从而保证服务的“操作流”不会被打断。<br>
|
||||
* 中断本地服务采用互斥访问机制。<br>
|
||||
|
||||
Reference in New Issue
Block a user