diff --git a/说明文档/CosyOS原理与应用.md b/说明文档/CosyOS原理与应用.md index 3e285c3..7ef9702 100644 --- a/说明文档/CosyOS原理与应用.md +++ b/说明文档/CosyOS原理与应用.md @@ -237,15 +237,6 @@ CosyOS-II 中断挂起服务缓存队列(PendSV_FIFO),已实现所有内 ### 事件标志组 -### 飞信 -* **典型特征:极简类型、极速通信。**
-* 数据类型是极简的,针对不同的MCU内核,都要求数据类型必须是原子访问类型。
-1、8051内核,飞信固定为1字节无符号类型(uint8_t);
-2、80251内核,飞信固定为2字节无符号类型(uint16_t);
-3、Arm32内核,飞信固定为4字节无符号类型(uint32_t)。
-* 通信速率是极速的,仅使用一个变量(信箱),同时即是消息又是新消息标志。
-飞信为0时,表示无消息;飞信非0时,表示有消息;因此,用户传输的有效消息必须为真值。
- ### 私信 * **典型特征:随意定义、灵活多变。**
* 私信是CosyOS独创的一种任务间通信方式,其实质就是任务线程的形参,并以“调用任务”的方式发送私信。
@@ -264,12 +255,24 @@ Cortex-M内核,报警为warning: #177-D。
8051内核还另有报警R3_、R5_、R7_,三个未引用的局部变量;
80251内核还另有报警DR0_、DR4_、R11_,三个未引用的参数。
+### 飞信 +* **典型特征:极简类型、极速通信。**
+* 数据类型是极简的,针对不同的MCU内核,都要求数据类型必须是原子访问类型。
+1、8051内核,飞信固定为1字节无符号类型(uint8_t);
+2、80251内核,飞信固定为2字节无符号类型(uint16_t);
+3、Arm32内核,飞信固定为4字节无符号类型(uint32_t)。
+* 通信速率是极速的,仅使用一个变量(信箱),同时即是消息又是新消息标志。
+* **注意事项**
+1、飞信为0时,表示无消息;飞信非0时,表示有消息;因此,用户传输的有效消息必须为真值。
+2、每个信箱应该仅允许一个线程从中接收飞信。
+ ### 消息邮箱 * **典型特征:任意类型、数据拷贝。**
* 数据类型是任意的,CosyOS的消息邮箱支持随意定义数据类型,包括结构体、数组等。
* **注意事项**
1、CosyOS的消息邮箱仅能保存一封邮件,如果收件速度低于发件速度,会导致邮件覆盖。
2、消息邮箱虽支持随意定义数据类型,但建议不要太大,以免影响系统实时性。
+3、每个邮箱应该仅允许一个线程从中接收邮件。
### 消息队列 * **典型特征:并发发送、指针引用。**
@@ -280,6 +283,7 @@ Cortex-M内核,报警为warning: #177-D。
1、每个消息队列,用户应当自己明确消息的类型和size,此事与CosyOS无关。
2、每一处发送消息,消息缓存都是独享的,可静态创建(定义静态数组)或动态创建(动态内存分配)。
3、对于动态创建的消息缓存,在消息使用完以后,用户应当自己释放消息指针。
+4、每个消息队列应该仅允许一个线程从中接收消息。
## 第四章、线程同步