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