update 补充说明.md.

Signed-off-by: CosyOS <12279611+cosyos@user.noreply.gitee.com>
This commit is contained in:
CosyOS
2023-02-20 18:28:27 +00:00
committed by Gitee
parent 81f383f262
commit 9762bd6345
2 changed files with 8 additions and 12 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

+8 -12
View File
@@ -20,13 +20,12 @@ Cortex-M内核,报警为warning #177-D。<br>
80251内核还另有报警DR0_、DR4_、R11_,三个未引用的参数。
#### 四、中断优先级
无论您的MCU是哪种内核,CosyOS都会占用个中断做为系统专用。<br>
1、SysTick_Handler:软件RTC的计时,软件定时器的计数,调用滴答钩子,恢复/调用定时中断任务/钩子和定时查询任务/钩子。<br>
2、SVC_Handler任务中调用的异步服务的执行。<br>
3、PendSV_Handler:中断中调用的异步服务的执行,任务调度与切换。<br>
针对8051和80251内核,这三个中断用的都是最低优先级,且在进入临界区时会关闭SysTick中断和PendSV中断。所以您的硬件中断最好不要用最低级,否则会影响您硬件中断的实时性。但即使您使用了最低级,也不会有任何问题,只是实时性无法保证。<br>
针对Cortex-M内核,这三个中断用的是最低两级优先级,且在进入临界区时会屏蔽最低优先级的中断。所以良好的规划应是系统使用最低两级优先级,而您自己的中断使用其它更高的优先级,您的中断优先级分组应选择分组2~4。所以您的硬件中断最好不要用最低两级,否则会影响您硬件中断的实时性。但即使您使用了最低两级,也不会有任何问题,只是实时性无法保证。<br>
您的硬件中断应遵循快进快出的原则,仅执行最为紧急的工作,而把不太紧急的工作转为在任务中执行。另外,您的硬件中断的最大执行时间应远小于系统滴答周期,这将促使整个系统更加良性的运行,软件RTC的计时和软件定时器的计数也将符合预期的精度。
无论您的MCU是哪种内核,CosyOS都会占用个中断做为系统专用。<br>
1、SysTick_Handler优先级固定为最低级,软件RTC的计时,软件定时器的计数,调用滴答钩子,恢复/调用定时中断任务/钩子和定时查询任务/钩子。<br>
2、PendSV_Handler优先级固定为最低级,中断中调用的异步服务的执行,任务调度与切换。<br>
您的硬件中断应尽可能避免使用最低级,否则实时性无法保证。<br>
您的硬件中断应遵循快进快出的原则,仅执行最为紧急的工作,而把不太紧急的工作转为在任务中执行。<br>
另外,您的硬件中断的最大执行时间应远小于系统滴答周期,这将促使整个系统更加良性的运行,软件RTC和软件定时器的精度也能得以保证。
#### 五、软件定时器
CosyOS的软件定时器分为三类,延时定时器、定时中断定时器、定时查询定时器。
@@ -36,8 +35,8 @@ CosyOS的软件定时器分为三类,延时定时器、定时中断定时器
#### 六、任务管理器
在您配置好相关硬件和软件后,任务管理器便可以使用了。您可使用某一款串口调试助手,作为任务管理器的输出窗口。
![输入图片说明](images/taskmgr_0.png)<br>
![输入图片说明](images/taskmgr_1.png)<br>
![输入图片说明](images/taskmgr_2.png)<br>
相关名词解释<br>
**Name**:任务名称<br>
**TID**:任务ID<br>
@@ -50,9 +49,7 @@ CosyOS的软件定时器分为三类,延时定时器、定时中断定时器
示例1:32B/m49B,系统采用每滴答+线程入口假定入栈法计算出的可能的最大任务栈占用为32Bytes,任务栈已malloc分配了49Bytes。<br>
示例2:32B/r32B,系统采用每滴答+线程入口假定入栈法计算出的可能的最大任务栈占用为32Bytes,任务栈已realloc分配了32Bytes。
针对ARM内核,如果您已开启服务栈监控,会显示下面两项:<br>
**USS**:任务服务栈的深度,历史最大值/设置值。<br>
**ISS**:中断服务栈的深度,历史最大值/设置值。<br>
**ISS**:中断服务栈的深度,针对ARM内核,如果您已开启服务栈监控,会显示此项,历史最大值/设置值。<br>
**Task PC**:任务PC监控,如果您已开启任务PC监控,会显示此项。<br>
当任务管理器被调度运行时,上一个被切换的任务入栈的PC值。当有任务出现代码运行卡死或死循环时,此功能可用来帮助用户锁定具体位置,以便查找BUG。<br>
@@ -71,7 +68,6 @@ mtn:任务节点内存分配失败;<br>
mts:任务栈内存分配失败;<br>
rts:任务栈内存重分配失败;<br>
ots:任务栈溢出;<br>
ous:USS(任务服务栈)溢出; // [ARM]<br>
ois:ISS(中断服务栈)溢出。 // [ARM]<br>
任务管理器现支持如下命令:<br>