update 说明文档/CosyOS原理与应用.md.

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-08 17:12:34 +00:00
committed by Gitee
parent 50a80d5186
commit f2dd8f2173

View File

@@ -218,21 +218,24 @@ CosyOS-II 中断挂起服务缓存队列PendSV_FIFO已实现所有内
## 第三章、线程通信
### 飞信
典型特征:极简类型、极速通信<br>
飞信是轻量型的、超高速的线程通讯工具针对不同的MCU内核都要求数据类型必须是原子访问类型。<br>
* **典型特征:极简类型、极速通信。** <br>
* 数据类型是极简的针对不同的MCU内核都要求数据类型必须是原子访问类型。<br>
1、8051内核飞信固定为1字节无符号类型uint8_t<br>
2、80251内核飞信固定为2字节无符号类型uint16_t<br>
3、Arm32内核飞信固定为4字节无符号类型uint32_t。<br>
飞信仅使用一个变量,同时即是消息又是新消息标志。<br>
* 通信速率是极速的,仅使用一个变量(信箱),同时即是消息又是新消息标志。<br>
飞信为0时表示无消息飞信非0时表示有消息因此用户传输的有效消息必须为真值。<br>
### 私信
典型特征:随意定义、灵活多变<br>
私信是CosyOS独创的一种任务间通信方式其实质就是任务线程的形参并以“调用任务”的方式发送私信。<br>
它的主要优势在于易用性,私信参数数量、名称、类型可随意定义,与普通函数定义形参如出一辙。<br>
* **典型特征:随意定义、灵活多变。** <br>
* 私信是CosyOS独创的一种任务间通信方式其实质就是任务线程的形参并以“调用任务”的方式发送私信。<br>
它的主要优势在于易用性,私信参数数量、名称、类型,都可随意定义,与普通函数定义形参如出一辙。<br>
缺点是私信只能发送给任务,中断中不能发送私信。<br>
* **私信报警** <br>
当您使用私信时,编译后会有报警提示。具体表现为您定义的每个私信参数都对应一个未引用的局部变量参数名称为私信参数的名称后面加_。如下方示例某个任务创建了私信共有三个参数p、a、b则相应的会有报警p_、a_、b_三个未引用的局部变量参数但这并不会影响私信功能的正常使用用户可不必理会或在C51、C251、C/C++标签页屏蔽掉相应的报警。<br>
当您使用私信时,编译后会有报警提示。<br>
具体表现为您定义的每个私信参数都对应一个未引用的局部变量参数名称为私信参数的名称后面加_。<br>
如下方示例某个任务创建了私信共有三个参数p、a、b则相应的会有报警p_、a_、b_三个未引用的局部变量参数。<br>
但这并不会影响私信功能的正常使用用户可不必理会或在C51、C251、C/C++标签页屏蔽掉相应的报警。<br>
![输入图片说明](../images/BCSM.3.1.png)<br>
8051内核报警为warning C280<br>
80251内核报警为warning C47<br>
@@ -242,20 +245,21 @@ Cortex-M内核报警为warning #177-D。<br>
80251内核还另有报警DR0_、DR4_、R11_三个未引用的参数。<br>
### 消息邮箱
典型特征:任意类型、数据拷贝<br>
1、CosyOS的消息邮箱支持随意定义数据类型包括结构体、数组等。<br>
2、CosyOS的消息邮箱仅能保存一封邮件如果收件速度低于发件速度会导致邮件覆盖。<br>
3、消息邮箱虽支持随意定义数据类型但建议不要太大以免影响系统实时性。<br>
* **典型特征:任意类型、数据拷贝。** <br>
* 数据类型是任意的,CosyOS的消息邮箱支持随意定义数据类型包括结构体、数组等。<br>
* **注意事项** <br>
1、CosyOS的消息邮箱仅能保存一封邮件如果收件速度低于发件速度会导致邮件覆盖。<br>
2、消息邮箱虽支持随意定义数据类型但建议不要太大以免影响系统实时性。<br>
### 消息队列
典型特征:并发发送、指针引用<br>
CosyOS的消息队列包括静态队列和动态队列。<br>
静态队列,收发消息的效率高,队列占用固定的内存;<br>
动态队列,收发消息的效率低,接收消息后,队列内存可被回收。<br>
每个消息队列用户应当自己明确消息的类型和size此事与CosyOS无关。<br>
每一处发送消息,消息缓存都是独享的,可静态创建(定义静态数组)或动态创建(动态内存分配)。<br>
对于动态创建的消息缓存,在消息使用完以后,用户应当自己释放消息指针。<br>
* **典型特征:并发发送、指针引用。** <br>
* **队列类型** <br>
**静态队列**收发消息的效率高,队列占用固定的内存;<br>
**动态队列**收发消息的效率低,接收消息后,队列内存可被回收。<br>
* **注意事项** <br>
1、每个消息队列用户应当自己明确消息的类型和size此事与CosyOS无关。<br>
2、每一处发送消息,消息缓存都是独享的,可静态创建(定义静态数组)或动态创建(动态内存分配)。<br>
3、对于动态创建的消息缓存,在消息使用完以后,用户应当自己释放消息指针。<br>
## 第四章、线程同步