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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-07 20:38:11 +00:00
committed by Gitee
parent 9da25b4c05
commit 69dcc99f9e

View File

@@ -318,7 +318,6 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
1、任务中在任务临界区中访问<br>
2、滴答中直接访问即可<br>
3、中断中采用挂起服务调用/钩子来访问;<br>
如此,即可实现全局成功的互斥访问。<br>
_服务层临界区不会破坏零中断延迟,当需要系统级的临界区保护时,应首先予以考虑。_ <br>
* **全局临界区** <br>
@@ -329,8 +328,8 @@ Arm<br>
1、操作PRIMASK会关闭总中断。<br>
2、操作FAULTMASK会关闭总中断。<br>
3、操作BASEPRI可实现不同掩蔽范围的全局临界区保护不会关闭总中断。<br>
_全局临界区会破坏零中断延迟,应做为最后的选项,慎重使用。_ <br>
_CosyOS内核中从来不会进入全局临界区提供此项服务只是为了便于用户对全局公共资源或程序过程的保护。_ <br>
_全局临界区会破坏零中断延迟,为最后的选项,不可轻易使用。_ <br>
任务临界区、全局临界区都支持嵌套功能最大嵌套深度255。<br>
@@ -351,7 +350,7 @@ Arm<br>
* **全局公共资源** <br>
1、服务层临界区即可实现全局成功的互斥访问又不会破坏零中断延迟是最优方案应首先予以考虑。<br>
2、二值信号量弊端是如果获取失败将导致访问失败而从概率来说获取失败是必然会发生的。<br>
3、全局临界区弊端是全局临界区会破坏零中断延迟为最后的选项不可轻易使用。<br>
3、全局临界区弊端是全局临界区会破坏零中断延迟应做为最后的选项,慎重使用。<br>
## 第六章、定时服务
我们知道MCU都有硬件定时器和定时器中断当定时器溢出时CPU可以响应中断并调用定时器中断服务程序。<br>
@@ -373,14 +372,14 @@ Arm<br>
-----------恢复 <br>
系统滴答 ——> 定时中断/查询任务 <br>
FreeRTOS是在守护任务中统一调用所有的定时器回调函数所有“定时服务”都具有相同的优先级,即守护任务的优先级。<br>
FreeRTOS是在守护任务中统一调用所有的定时器回调函数所有“定时服务”有相同的优先级,即守护任务的优先级。<br>
CosyOS则分为两种情况<br>
1、在系统滴答中调用定时中断/查询钩子,“定时服务”享有系统滴答的优先级(高于任务);<br>
2、在系统滴答中恢复定时中断/查询任务,“定时服务”的优先级即任务优先级(用户定义)。<br>
注意:只有极为精简的代码才可创建为钩子,否则会对系统实时性造成不利影响。<br>
注意:只有极为精简的代码才可创建为钩子,否则会对系统实时性造成不利影响。<br>
可见CosyOS的“定时服务”包括定时中断任务/钩子、定时查询任务/钩子,其实质都是软件定时器中断,优先级都可由用户灵活配置。<br>
可见CosyOS的“定时服务”优先级都可由用户灵活配置,其优势不言而喻。<br>
关于CosyOS的定时任务/钩子的应用示例可参考源码:<br>
任务管理器 Taskmgr为定时查询任务\System\taskmgr.c<br>