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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-07 11:47:15 +00:00
committed by Gitee
parent 5a5cb64508
commit d72e5b7f22

View File

@@ -311,6 +311,7 @@ CosyOS的消息队列包括静态队列和动态队列。<br>
CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全局临界区**。<br>
**1、任务临界区** <br>
任务级的临界区保护仅关闭系统中断SysTick、PendSV。<br>
_任务临界区不会破坏零中断延迟,当需要任务级的临界区保护时,可以考虑。_ <br>
**2、服务层临界区** <br>
【任务临界区 + 系统滴答 + 挂起服务调用/钩子】即CosyOS实时运行模型中的服务层是系统级的临界区保护。<br>
具体过程:<br>
@@ -318,10 +319,17 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
2滴答中直接访问即可<br>
3中断中采用挂起服务调用/钩子来访问;<br>
如此,即可实现全局成功的互斥访问。<br>
服务层临界区不会破坏零中断延迟,当需要系统级的临界区保护时,应首先予以考虑。<br>
_服务层临界区不会破坏零中断延迟,当需要系统级的临界区保护时,应首先予以考虑。_ <br>
**3、全局临界区** <br>
系统级的临界区保护,会关闭总中断。<br>
_CosyOS内核中从来不会进入全局临界区提供此项服务只是为了便于用户对全局公共资源或程序过程的保护。_ <br><br>
系统级的临界区保护,一般会关闭总中断。<br>
具体方式:
8051/80251操作EA会关闭总中断。
Arm
1操作PRIMASK会关闭总中断。
2操作FAULTMASK会关闭总中断。
3操作BASEPRI可实现不同掩蔽范围的全局临界区保护不会关闭总中断。
_CosyOS内核中从来不会进入全局临界区提供此项服务只是为了便于用户对全局公共资源或程序过程的保护。_ <br>
关闭总中断方式的全局临界区,会破坏零中断延迟,为最后的选择,是不得已而用之。<br>
任务临界区、全局临界区都支持嵌套功能最大嵌套深度255。<br>
* **何时应用临界区** <br>
@@ -341,7 +349,7 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
* **全局公共资源** <br>
1、服务层临界区即可实现全局成功的互斥访问又不会破坏零中断延迟是最优方案应首先予以考虑。<br>
2、二值信号量弊端是如果获取失败将导致访问失败。<br>
3、全局临界区弊端是关闭总中断会破坏零中断延迟。<br>
3、全局临界区弊端是如果是关闭总中断方式,会破坏零中断延迟。<br>
## 第六章、定时服务
我们知道MCU都有硬件定时器和定时器中断当定时器溢出时CPU可以响应中断并调用定时器中断服务程序。<br>