diff --git a/说明文档/CosyOS原理与应用.md b/说明文档/CosyOS原理与应用.md index 982d62e..1da9620 100644 --- a/说明文档/CosyOS原理与应用.md +++ b/说明文档/CosyOS原理与应用.md @@ -235,13 +235,23 @@ CosyOS与其它RTOS零中断延迟技术的对比。
FreeRTOS的零中断延迟有着很大的局限性。
仅Cortex-M3及以上内核(含BASEPRI寄存器)支持在脱管的高优先级中断中实现零中断延迟,但同时却不能调用系统服务。
1、不能调用服务又如何实现同步?让用户自己实现同步又如何保证被同步任务的及时调度?实时性又何从谈起?
-2、被管理的低优先级中断无法实现零中断延迟。
+2、托管的低优先级中断无法实现零中断延迟。
3、其它内核无法实现零中断延迟。
* **Keil RTX4/5**
-由SysTick、PendSV、SVC,构成服务层临界区,再配合互斥访问指令[STREX、LDREX]实现零中断延迟。
-仅Cortex-M3及以上内核(支持STREX/LDREX互斥访问指令)支持零中断延迟,其它内核无法实现零中断延迟。
+由SysTick[minpri]、PendSV[minpri]、SVC[minpri+1],构成服务层临界区,再配合互斥访问指令[LDREX、STREX]实现零中断延迟。
+1、仅Cortex-M3及以上内核(支持互斥访问指令[LDREX、STREX])支持零中断延迟,其它内核无法实现零中断延迟。
+2、建议用户中断不要使用最低两级优先级,以免被系统中断抢占,导致丢失响应或处理延误。
* **CosyOS-I/II**
-所有内核均可实现零中断延迟,只要用户中断不是最低优先级就可实现零中断延迟。
+由SysTick[minpri]、PendSV[minpri]、任务临界区,构成服务层临界区,再配合互斥访问机制实现零中断延迟。
+1、所有内核均可实现零中断延迟,只要用户中断不是最低优先级就可实现零中断延迟。
+2、建议用户中断不要使用最低优先级,以免被系统中断抢占,导致丢失响应或处理延误。
+ +零中断延迟技术对比: +| | 内核条件 | 中断优先级条件 | 可随意调用服务? | +|--------------|-------------------|-----------|--------| +| FreeRTOS | 含BASEPRI寄存器 | 脱管的高优先级(用户指定) | :tw-274c: | +| Keil RTX4/5 | 支持互斥访问指令[LDREX/STREX] | 高于最低两级优先级 | :tw-2705: | +| CosyOS-I/II | 无需任何条件,所有内核均可 | 高于最低优先级 | :tw-2705: | ## 第三章、线程通信