From 05a51bbab92f22718959934f2a22ae56f8c212bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B6=E4=B8=AD=E6=96=AD=E5=BB=B6=E8=BF=9F=E7=9A=84RTOS?= Date: Fri, 16 Feb 2024 01:18:53 +0000 Subject: [PATCH] =?UTF-8?q?update=20=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3/C?= =?UTF-8?q?osyOS=E5=8E=9F=E7=90=86=E4=B8=8E=E5=BA=94=E7=94=A8.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 零中断延迟的RTOS --- 说明文档/CosyOS原理与应用.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/说明文档/CosyOS原理与应用.md b/说明文档/CosyOS原理与应用.md index 913c0cf..7a33b3b 100644 --- a/说明文档/CosyOS原理与应用.md +++ b/说明文档/CosyOS原理与应用.md @@ -229,6 +229,21 @@ CosyOS-II 中断挂起服务缓存队列(PendSV_FIFO),已实现所有内 注1:其实,即使用户中断是最低优先级,也可能是零中断延迟的(当任务临界区未使用BASEPRI寄存器时),只不过
系统中断可能会与其抢占。而系统中断相对来说还是会占用更多的时间,可能会导致用户中断丢失响应或处理延误。
+### 零中断延迟对比 +CosyOS与其它RTOS零中断延迟技术的对比。
+ **FreeRTOS**
+FreeRTOS的零中断延迟有着很大的局限性。
+仅Cortex-M3以上内核支持在脱管的高优先级中断中实现零中断延迟,但同时却不能调用系统服务。
+不能调用服务又如何实现同步?
+让用户自己实现同步又如何保证被同步任务的及时调度?实时性又何从谈起?
+被管理的低优先级中断无法实现零中断延迟。
+ **Keil RTX4/5**
+由SysTick、PendSV、SVC,构成服务层临界区,再配合互斥访问指令[STREX、LDREX]实现零中断延迟。
+仅Cortex-M3/M4等少数内核支持零中断延迟,其它内核却没有这个待遇。
+ + **CosyOS**
+所有内核均可实现零中断延迟,只要用户中断不是最低优先级就可实现零中断延迟。
+ ## 第三章、线程通信 ### 互斥信号量