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