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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-07 08:38:29 +00:00
committed by Gitee
parent 11cca29e09
commit f2e3e37a55

View File

@@ -312,12 +312,11 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
**1、任务临界区** <br>
任务级的临界区保护仅关闭系统中断SysTick、PendSV。<br>
**2、服务层临界区** <br>
任务临界区 + 系统滴答 + 挂起服务调用/钩子即CosyOS实时运行模型中的服务层可实现系统级的临界区保护。<br>
对同一个全局公共资源的访问:<br>
1任务中需进入任务临界区访问;<br>
2滴答中直接访问即可<br>
3中断中采用挂起服务调用/钩子来访问;<br>
如此即可实现全局的互斥访问。<br>
任务临界区 + 系统滴答 + 挂起服务调用/钩子即CosyOS实时运行模型中的服务层可实现系统级的临界区保护。<br>
对同一个全局公共资源的互斥访问:<br>
1任务中:在任务临界区访问;<br>
2滴答中直接访问即可;<br>
3中断中采用挂起服务调用/钩子来访问;<br>
**3、全局临界区** <br>
系统级的临界区保护,会关闭总中断。<br>
_CosyOS内核中从来不会进入全局临界区提供此项服务只是为了便于用户对全局公共资源或程序过程的保护。_ <br><br>
@@ -325,8 +324,8 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
* **何时应用临界区** <br>
1、对于CosyOS已经提供服务支持的功能用户直接调用API实现即可无需考虑临界区问题。<br>
2、只有在任务中访问“事件标志组”和“非原子全局变量”时才需要用户自己进入“任务临界区”实现具体请查阅《API用户参考手册》。<br>
3、用户对其它公共资源或程序过程(不可重入)的保护,再考虑“临界区”或“其它互斥访问方式”来实现。<br>
2、只有在任务中访问“事件标志组”和“全局变量”时才需要用户自己进入“任务临界区”具体请查阅《API用户参考手册》。<br>
3、用户对其它公共资源或程序过程的保护再考虑“临界区”或“其它互斥访问方式”来实现。<br>
* **临界区应用原则** <br>
临界区应遵循快进快出的原则,临界段代码的执行时间应远小于系统滴答周期,这将促使整个系统更加良性的运行。<br>