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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-29 15:11:55 +00:00
committed by Gitee
parent 688e0fdf2a
commit 9453dfc7c9

View File

@@ -161,8 +161,9 @@ MCU的核心价值在于中断的使用实现对紧急事件的及时响应
_零中断延迟是CosyOS的宗旨是原则和底线必须坚决贯彻落实。_ <br>
### CosyOS-实时运行模型
CosyOS-实时运行模型充分的展示了CosyOS的运行机制揭示了CosyOS零中断延迟的奥妙。<br>
### 零中断延迟原理
#### CosyOS-实时运行模型
该模型充分的展示了CosyOS的运行机制揭示了CosyOS零中断延迟的奥妙。<br>
* **中断层** 【用户中断按中断优先级实时抢占、零中断延迟】
* **用户中断** <br>
**->** 中断本地服务的执行<br>
@@ -185,12 +186,12 @@ CosyOS-实时运行模型充分的展示了CosyOS的运行机制揭示了C
* 用户空闲任务[minpri:0]
* 系统空闲任务[minpri:0]
### CosyOS-零中断延迟基本原理
#### 零中断延迟基本原理
* 服务层中SysTick、PendSV、任务临界区三者间是互斥访问的。换言之整个服务层是一个大临界区服务层临界区。<br>
* 所有内核服务(中断本地服务除外),均在 **“服务层临界区”** 执行,从而保证服务的 **“操作流”** 不会被打断。<br>
* 中断本地服务采用互斥访问机制。<br>
### 服务详解
#### 服务详解
* **任务服务**
是指在任务中调用的服务,并在任务临界区中执行。
* **滴答服务**
@@ -204,7 +205,7 @@ CosyOS-实时运行模型充分的展示了CosyOS的运行机制揭示了C
是指在用户中断中调用的服务不在本地直接执行,而是把服务的相关内容存入局部的结构体中,
再把结构体指针存入中断挂起服务缓存队列PendSV_FIFO再触发PendSV而后在PendSV中执行。
### 互斥访问机制
#### 互斥访问机制
* **中断中读全局变量** <br>
重入访问:如果变量正在被写入,仍可成功读取变量。<br>
首先,用户需定义全局变量的副本,并按照指定方式来更新副本。中断中读全局变量时,<br>
@@ -217,7 +218,7 @@ CosyOS-实时运行模型充分的展示了CosyOS的运行机制揭示了C
* **中断中接收消息** <br>
互斥访问如果队列正在被访问将返回失败NULL。<br>
### 中断挂起服务缓存
#### 中断挂起服务缓存
CosyOS-II 中断挂起服务缓存队列PendSV_FIFO已实现所有内核的MCU均为先入先出队列FIFO。<br>
中断挂起服务缓存队列,有必要先入先出吗?答案是确定的,如同一中断中提请的各项服务,可能会存在时序逻辑关系。<br>
再有,“入队列”与“出队列”的过程必须是原子操作,“操作流”不能被打断。<br>