不是 挂起服务队列的持续溢出 造成的(如果是 Arm 的话,那就是这个原因),
是 因为 在 PendSV 中,始终是在永不停息的执行挂起服务 iResumeTask(task_3) 造成的。
重要的事情,还是说,我们要了解 中断挂起服务 的特性,
CosyOS 的中断挂起服务,仅支持有限的并发调用,
如果是无限的并发调用,一定会出问题。
客观的说,关总中断处理临界段的方法就不会存在这样的问题。
杨为民 发表于 2024-5-23 12:54
“对于这种极端测试情况,CosyOS 确实是无法胜任的,建议用户更换其它RTOS来实现。”
我可以把这句话理 ...
对于本次的测试情况来说,
我相信 “关闭总中断处理临界段的方法” 是不会出现这个问题的,
所以,无需。。。
杨为民 发表于 2024-5-23 12:54
“对于这种极端测试情况,CosyOS 确实是无法胜任的,建议用户更换其它RTOS来实现。”
我可以把这句话理 ...
对于 关闭总中断处理临界段的方法,
我认为虽然不会导致任务没有机会运行,
但对于本次的测试来说,各个任务运行起来也会非常缓慢,
但确实都能运行起来。
tzz1983 发表于 2024-5-23 07:50
杨老师,你排查一下是否是因为CPU使用率超过100%了,这么高频的周期中断,完全可能的。
如果是这样,则造成 ...
“对于本次的测试情况来说,我相信 “关闭总中断处理临界段的方法” 是不会出现这个问题的,所以,无需。。。”
tzz1983:喂,别看热闹乱插嘴了,正经回答一下CosyOS的这个问题,你的作品都是关闭总中断的,他说你的作品在这种测试下“是不会出现这个问题的”,你本尊认为呢?
光凭理论分析,是分析不准确的,但可以确定的是:
在这种测试情况下,关闭总中断处理临界段的方法,一定会比 CosyOS 好的多。
所以,凡事都有两面性,没有绝对的好或不好,先进或不先进。
CosyOS 发表于 2024-5-23 13:42
光凭理论分析,是分析不准确的,但可以确定的是:
在这种测试情况下,关闭总中断处理临界段的方法,一定会 ...
“所以,凡事都有两面性,没有绝对的好或不好,先进或不先进。”
这句话可以用在对FreeRTOS和uC/OS等采用“关闭总中断”的单片机主流RTOS
与“不关闭总中断”的RTX4/5和CosyOS的比较上吗?
CosyOS 发表于 2024-5-23 13:13
对于本次的测试情况来说,
我相信 “关闭总中断处理临界段的方法” 是不会出现这个问题的,
所以,无需。 ...
所以: 本次测试产生崩溃的根本原因还是
CosyOS-II采用“不关闭总中断处理临界段的方法” 造成的
页:
1
[2]