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

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2024-01-03 15:41:19 +00:00
committed by Gitee
parent 3b4fdef84b
commit 7efc870eda

View File

@@ -111,23 +111,23 @@ CosyOS的任务调度时机分为 **定时调度** 与 **临时调度** 。<br>
* **定时调度** <br>
在每个系统滴答周期SysTick_Handler/定时器0中断都会触发一次任务调度。<br>
* **临时调度** <br>
**1.** 当前任务被阻塞、挂起、超时、停止、删除时,会立即触发任务调度。<br>
**2.** 恢复任务时,如果恢复后该任务可以运行并且它的优先级高于当前任务的优先级,会立即触发任务调度。<br>
**3.** 设置任务优先级时,如果该任务可以运行并且它的新优先级高于当前任务的优先级,会立即触发任务调度。<br>
**4.** 设置阻塞时间为零或清除阻塞时,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,<br>
**1** 当前任务被阻塞、挂起、超时、停止、删除时,会立即触发任务调度。<br>
**2** 恢复任务时,如果恢复后该任务可以运行并且它的优先级高于当前任务的优先级,会立即触发任务调度。<br>
**3** 设置任务优先级时,如果该任务可以运行并且它的新优先级高于当前任务的优先级,会立即触发任务调度。<br>
**4** 设置阻塞时间为零或清除阻塞时,该任务会转为就绪状态,如果它的优先级高于当前任务的优先级,<br>
会立即触发任务调度。<br>
**5.** 归还互斥信号量完成时,如果发生过优先级继承(该任务的优先级被提升),会恢复该任务的原优先级,<br>
**5** 归还互斥信号量完成时,如果发生过优先级继承(该任务的优先级被提升),会恢复该任务的原优先级,<br>
并立即触发任务调度。<br>
**6.** 用户通过调用服务,直接触发的任务调度,包括任务级任务调度和中断级任务调度。<br>
**6** 用户通过调用服务,直接触发的任务调度,包括任务级任务调度和中断级任务调度。<br>
CosyOS的任务调度策略可最大程度的实现尽可能实时高效的任务切换使CosyOS的实时性更为优异。<br>
### 任务栈模式
CosyOS把任务栈的处理方式称之为任务栈模式共包括三种类型MSP模式、PSP模式、MSP+PSP模式。<br>
**1.MSP模式** 任务切换时,先拷贝主栈内容至当前任务栈(保存现场);再拷贝新任务栈内容至主栈(恢复现场)。<br>
**2.PSP模式** 每个任务的任务栈都是主栈,哪个任务运行时,哪个任务的任务栈(当前任务栈)就是当前主栈。<br>
**3.MSP+PSP模式** 中断时为Handler模式入栈入的是主栈任务时为Thread模式入栈入的是当前任务栈。<br>
* **MSP模式** 任务切换时,先拷贝主栈内容至当前任务栈(保存现场);再拷贝新任务栈内容至主栈(恢复现场)。<br>
* **PSP模式** 每个任务的任务栈都是主栈,哪个任务运行时,哪个任务的任务栈(当前任务栈)就是当前主栈。<br>
* **MSP+PSP模式** 中断时为Handler模式入栈入的是主栈任务时为Thread模式入栈入的是当前任务栈。<br>
对于51来说CosyOS采用了搬栈这一传统方案也就是MSP模式。<br>
对于Arm来说CosyOS所采用的方法当然是主流的双栈指针了也就是MSP+PSP模式。<br>
对于251来说CosyOS支持MSP模式、PSP模式这两种栈模式供用户选择。<br>