tzz1983
发表于 2024-5-8 11:57:26
fanxsp 发表于 2024-5-8 11:43
昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV, 应该是可以的,要做个程序测试一下,你也 ...
我是任务级也在PendSV里切换,所以不存在切换重入,也不存在关PendSV.
我没有你做的效率那么高, 就是不管任务级还是中断级, 都会全寄存器入栈,统一用PendSV处理
这样的好处是代码不用搞几份,缺点是牺牲了一些效率, 所幸的是不关中断这个好处,
足以抵消所有坏处,而对于任务级响应,不差这几个微秒
我想了一下,你的区分任务级和中断级切换,应该也是可以实现的,只需要在任务级切换时,
关掉PendSV,而不是关掉全部中断
杨为民
发表于 2024-5-8 12:03:00
tzz1983 发表于 2024-5-8 11:57
我是任务级也在PendSV里切换,所以不存在切换重入,也不存在关PendSV.
为什么不试试呢?
tzz1983
发表于 2024-5-8 12:05:14
本帖最后由 tzz1983 于 2024-5-8 12:07 编辑
fanxsp 发表于 2024-5-8 11:43
昨天我仔细梳理了一下,上下文切换,不关总中断,只关PendSV, 应该是可以的,要做个程序测试一下,你也 ...
但是还是得实践,我对你的代码也不是很熟悉,你是用链来处理优先级的,这个PendSV和高优中断调用OS服务就可能有交叉访问,实际上访问核心全局变是时还是得关中断,只是搬运的时候可以免
fanxsp
发表于 2024-5-8 12:11:25
杨为民 发表于 2024-5-8 12:03
为什么不试试呢?
已经做了,现在是要做一个测试程序,比较严格的测试一下
杨为民
发表于 2024-5-8 12:12:08
CosyOS 发表于 2024-5-8 11:03
Keil RTX 4/5 是完全继承并发展了 Arm 对 OS 的设计思想,
其它许多 RTOS 都仅是部分借鉴,如在 PendSV 中 ...
要不你也把你的“零中断延迟”的M3/M4上的CosyOS-II的测试程序也放上来,和我移植的uC/OS-II比较一下?
不争RTX4/5的理念和方法是不是创新,不争别人的RTOS是不是“墨守成规”。
只具体比较一下你的CosyOS-II是否实现了“高优先级中断零延迟”,我移植的uC/OS-II关闭总中断是否造成了“高优先级中断延迟”,同时再比较一下排行榜上的指标?
比一比不就知道了?用具体的数字和事实说话,行吗?
CosyOS
发表于 2024-5-8 12:12:59
本帖最后由 CosyOS 于 2024-5-8 12:20 编辑
我再重复介绍一遍,由ARM设计的、现代的、“安全关键” 的OS思想。
“安全关键” 主要包括 两方面内容,空间隔离 和 时间隔离。
任务中调用的服务,通过调用SVC来间接执行;
中断中调用的服务(中断挂起服务),通过触发PendSV来缓期执行。
实现了 用户代码 与 内核服务 的空间隔离、任务服务 与 中断服务 的空间隔离。(两对空间隔离)
空间隔离的优势:
1、内核服务可以经过充分的测试,从而能使系统更加健壮和可靠。
2、任务无需在特权级下运行,可以运行在用户级(无法直接访问关键寄存器),
用户程序无需承担因误操作而瘫痪整个系统的风险。
3、如果在任务中调用中断服务(必将触发PendSV),由于权限不够,会引发总线 fault。
4、如果在中断中调用任务服务(必将触发SVC),由于用法错误,将上访成硬 fault。
从而全面提升整个系统的安全性和可靠性。
任务应工作在“用户级”,而不是“特权级”,
以免因用户误操作,错误修改关键寄存器,
这样才更符合“安全关键”!
关于时间隔离以后再介绍。
CosyOS
发表于 2024-5-8 12:18:34
杨为民 发表于 2024-5-8 12:12
要不你也把你的“零中断延迟”的M3/M4上的CosyOS-II的测试程序也放上来,和我移植的uC/OS-II比较一下?
...
好的,杨老师,理论说的已经够多的了,不再说了,
我抽空整理一下测试程序,发上来。
杨为民
发表于 2024-5-8 12:18:36
fanxsp 发表于 2024-5-8 12:11
已经做了,现在是要做一个测试程序,比较严格的测试一下
你就按照排行榜的程序把你的新版本发上来,我准备将在STC8H在测试比较专门发一个帖子,希望得到你的支持。
大家一起来研究一下“不关闭总中断”的临界区保护方法,如果技术成熟,每个本尊都有“关闭总中断”和“不关闭总中断”的临界区保护方法两个版本,
对于STC单片机用户而言,鱼与熊掌就都有了。
fanxsp
发表于 2024-5-8 12:21:00
杨为民 发表于 2024-5-8 12:18
你就按照排行榜的程序把你的新版本发上来,我准备将在STC8H在测试比较专门发一个帖子,希望得到你的支持 ...
还是要关总中断的,只是在任务切换过程,不用全程关总中断,只关一小段时间。
杨为民
发表于 2024-5-8 12:26:17
CosyOS 发表于 2024-5-8 12:18
好的,杨老师,理论说的已经够多的了,不再说了,
我抽空整理一下测试程序,发上来。
谢谢支持。
其实对于STC单片机用户而言,有越多的RTOS和种类供他选择,越好。
从中国古人的烧烤一种口味,到现在的超过八大菜系缤纷美食,管它食品协会的大佬说什么,老百姓得到更多的选择才是王道。
从本质上说,排行榜就是各位本尊向大家展示和提供免费品尝的食品博览会