- 打卡等级:偶尔看看III
- 打卡总天数:33
- 最近打卡:2026-03-06 08:36:33
荣誉版主
- 积分
- 2865
|
发表于 2024-4-5 10:21:28
|
显示全部楼层
首先你的目标要明确, 究竟是要关EA运行OS呢, 还是:
"把 T0 改成不可屏蔽 中断, 优点, 滴答定时器计时超准, 其他功能不变."
如果是关中断运行OS, 我对此不感兴趣. (无聊的话题)
如果只是:"滴答定时器计时超准, 其他功能不变."
我把我对OS的理解, 告诉你:
1. OS的时钟本来就是准的,正常情况下OS的时钟不会不准.
2. 如果不准,那一定是使用者的编程习惯有问题.
原因: 时钟滴答中断作为最低中断优先级,确实会被更高的优先级阻障并延迟触发.
但是只要阻障的时间没有超过一个时钟滴答周期,滴答标志不溢出,就不会有丢失计数.
如果是在其它中断里有大量耗时的代码. 就会造成滴答无法触发中断,从而丢失计数.
但这是一个编程能力的问题. 会用OS的绝对不会在中断里有大量耗时的代码.
通常是把"大量耗时的代码" 用信号量同步到一个任务中去.
|
|