From 676042287264166a8960298e345d9793c18aceee 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: Tue, 9 Apr 2024 08:10:14 +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 | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/说明文档/CosyOS原理与应用.md b/说明文档/CosyOS原理与应用.md index 0cb40a0..8813615 100644 --- a/说明文档/CosyOS原理与应用.md +++ b/说明文档/CosyOS原理与应用.md @@ -259,19 +259,21 @@ FreeRTOS的零中断延迟有着很大的局限性。
## 第三章、线程通信 ### 互斥信号量 -仅适用于在任务中对任务级公共资源的资源同步(互斥访问)。
+仅适用于在任务中对任务级公共资源的资源同步。
有优先级继承机制,以抑制优先级反转的发生。
互斥信号量均支持递归,最大嵌套深度:255。
### 二值信号量 -二值信号量常用于行为同步、资源同步。
-资源同步时,可实现对全局公共资源的资源同步。
-由于在中断中获取时不能阻塞,可能会导致访问失败。
+二值信号量适用于行为同步、对全局公共资源的资源同步。
+* **注意事项**
+1、CosyOS的二值信号量在创建时需定义初值,方便应用。
+2、由于在中断中获取时不能阻塞,必须立即返回结果,可能会获取失败并导致访问失败。
### 计数信号量 -计数信号量常用于行为同步、资源管理。
-行为同步时,尤其适用于并发同步(生产速度大于消费速度)。
- +计数信号量适用于行为同步、资源管理。
+行为同步,尤其适用于并发同步(生产速度大于消费速度),不会漏掉同步次数。
+注:
+计数信号量也可做为二值信号量用于资源同步。但由于CosyOS已经直接提供了二值信号量,所以没必要这么做。
### 事件标志组 事件标志组适用于对于一类事件的行为同步。
@@ -285,7 +287,7 @@ FreeRTOS的零中断延迟有着很大的局限性。
它的主要优势在于易用性,私信参数的数量、名称、类型,都可随意定义,与普通函数定义形参如出一辙。
* **注意事项**
1、私信只能发送给任务,中断中不能发送私信。
-2、如果接收处理速度低于发送速度,会导致信息覆盖。
+2、如果接收处理速度低于发送速度,会导致私信覆盖。
* **私信报警**
当您使用私信时,编译后会有报警提示。
具体表现为,您定义的每个私信参数都对应一个未引用的局部变量(参数),名称为私信参数的名称后面加_。
@@ -308,7 +310,7 @@ Cortex-M内核,报警为warning: #177-D。
* 通信速率是极速的,仅使用一个变量(信箱),同时即是消息又是新消息标志。
* **注意事项**
1、飞信为0时,表示无消息;飞信非0时,表示有消息;因此,用户传输的有效消息必须为真值。
-2、信箱仅能保存一条飞信,如果接收处理速度低于发送速度,会导致信息覆盖。
+2、信箱仅能保存一条飞信,如果接收处理速度低于发送速度,会导致飞信覆盖。
3、每个信箱应该仅允许一个线程从中接收飞信。
### 消息邮箱