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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-06 11:50:58 +00:00
committed by Gitee
parent 962535e6fe
commit b32ad036d5

View File

@@ -412,6 +412,40 @@ CosyOS的临界区可分为 **任务临界区**、**服务层临界区**、**全
3、全局临界区弊端是关闭总中断会破坏零中断延迟。<br>
## 第六章、定时服务
我们知道MCU都有硬件定时器和定时器中断当定时器溢出时CPU可以响应中断并调用定时器中断服务程序。<br>
然而,硬件定时器的数量十分有限,在较复杂的应用中可能会不够用。<br>
因此CosyOS提供了软件定时器以弥补硬件定时器数量的不足同时也支持“定时服务”功能来模拟定时器中断。<br>
下面简单对比一下MCU、FreeRTOS、CosyOS三者之间“定时服务”的区别<br>
* **MCU** <br>
调用 <br>
中断响应 ——> 定时器中断服务程序 <br>
* **FreeRTOS** <br>
调用 <br>
守护任务 ——> 定时器回调函数 <br>
* **CosyOS** <br>
调用 <br>
系统滴答 ——> 定时中断/查询钩子 <br>
恢复 <br>
系统滴答 ——> 定时中断/查询任务 <br>
FreeRTOS是在守护任务中统一调用所有的定时器回调函数所有“定时服务”都具有相同的优先级即守护任务的优先级。<br>
CosyOS则分为两种情况<br>
1、在系统滴答中调用定时中断/查询钩子,“定时服务”享有系统滴答的优先级(高于任务);<br>
2、在系统滴答中恢复定时中断/查询任务,“定时服务”的优先级即任务优先级(用户定义)。<br>
注意:只有极为精简的代码才可创建为钩子,否则会对系统的实时性造成不利影响。<br>
可见CosyOS的“定时服务”优先级都可由用户灵活配置。<br>
关于CosyOS的定时任务/钩子的应用示例请参考源码:<br>
任务管理器 Taskmgr为定时查询任务\System\taskmgr.c<br>
调试任务 Debugger为定时中断任务\System\debug.c<br>
调试钩子 debug_hook为定时查询钩子\System\debug.c。<br>
## 附 录、调用服务注意事项