mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 11:29:44 +08:00
@@ -230,18 +230,28 @@ CosyOS-II 中断挂起服务缓存队列(PendSV_FIFO),已实现所有内
|
||||
## 第三章、线程通信
|
||||
|
||||
### 互斥信号量
|
||||
仅适用于在任务中对任务级公共资源的互斥访问。<br>
|
||||
有优先级继承机制,以抑制优先级反转的发生。<br>
|
||||
互斥信号量均支持递归,最大嵌套深度:255。<br>
|
||||
|
||||
### 二值信号量
|
||||
二值信号量常用于线程同步、互斥访问。<br>
|
||||
|
||||
### 计数信号量
|
||||
计数信号量常用于线程同步、资源管理。<br>
|
||||
|
||||
### 事件标志组
|
||||
* **注意事项** <br>
|
||||
1、事件标志组必须声明,因为需通过声明做类型定义。<br>
|
||||
2、任务中的部分应用,需用户自行进入任务临界区执行。<br>
|
||||
|
||||
### 私信
|
||||
* **典型特征:随意定义、灵活多变。** <br>
|
||||
* 私信是CosyOS独创的一种任务间通信方式,其实质就是任务线程的形参,并以“调用任务”的方式发送私信。<br>
|
||||
它的主要优势在于易用性,私信参数的数量、名称、类型,都可随意定义,与普通函数定义形参如出一辙。<br>
|
||||
缺点是私信只能发送给任务,中断中不能发送私信。<br>
|
||||
* **注意事项** <br>
|
||||
1、私信只能发送给任务,中断中不能发送私信。<br>
|
||||
2、如果接收处理速度低于发送速度,会导致信息覆盖。<br>
|
||||
* **私信报警** <br>
|
||||
当您使用私信时,编译后会有报警提示。<br>
|
||||
具体表现为,您定义的每个私信参数都对应一个未引用的局部变量(参数),名称为私信参数的名称后面加_。<br>
|
||||
@@ -264,15 +274,17 @@ Cortex-M内核,报警为warning: #177-D。<br>
|
||||
* 通信速率是极速的,仅使用一个变量(信箱),同时即是消息又是新消息标志。<br>
|
||||
* **注意事项** <br>
|
||||
1、飞信为0时,表示无消息;飞信非0时,表示有消息;因此,用户传输的有效消息必须为真值。<br>
|
||||
2、每个信箱应该仅允许一个线程从中接收飞信。<br>
|
||||
2、信箱仅能保存一条飞信,如果接收处理速度低于发送速度,会导致信息覆盖。<br>
|
||||
3、每个信箱应该仅允许一个线程从中接收飞信。<br>
|
||||
|
||||
### 消息邮箱
|
||||
* **典型特征:任意类型、数据拷贝。** <br>
|
||||
* 数据类型是任意的,CosyOS的消息邮箱支持随意定义数据类型,包括结构体、数组等。<br>
|
||||
* **注意事项** <br>
|
||||
1、CosyOS的消息邮箱仅能保存一封邮件,如果收件速度低于发件速度,会导致邮件覆盖。<br>
|
||||
1、消息邮箱仅能保存一封邮件,如果收件速度低于发件速度,会导致邮件覆盖。<br>
|
||||
2、消息邮箱虽支持随意定义数据类型,但建议不要太大,以免影响系统实时性。<br>
|
||||
3、每个邮箱应该仅允许一个线程从中接收邮件。<br>
|
||||
3、消息邮箱必须声明,因为需通过声明做类型定义。<br>
|
||||
4、每个邮箱应该仅允许一个线程从中接收邮件。<br>
|
||||
|
||||
### 消息队列
|
||||
* **典型特征:并发发送、指针引用。** <br>
|
||||
|
||||
Reference in New Issue
Block a user