keil中断消耗

keil中断消耗,第1张

在Keil MDK中,中断的消耗通常来自以下方面:

1. 中断响应时间:中断响应时间是指从中断发生到对其作出响应并开始执行中断处理程序所需的时间。较长的中断响应时间会导致系统反应速度变慢,并且可能会错过某些事件。

2. 中断处理函数:中断处理函数是指处理中断事件的实际代码。代码的复杂性和执行速度可能会影响中断的消耗。因此,请确保您的中断处理代码尽可能简单和快速。

3. 中断嵌套:在中断处理程序中调用其他中断处理程序时可能会出现中断嵌套的情况。例如,在UART中断中调用定时器中断处理程序。中断嵌套可能会影响系统的稳定性,并增加CPU的负载。

4. 关闭中断:在某些情况下,为了满足实时性需求,可能需要在处理高优先级中断时关闭低优先级中断。这些中断关闭和恢复的成本也可能会对中断响应和性能产生影响。

为了最小化中断的消耗,您可以采取以下行动:

1. 仔细设计中断处理程序,使其尽可能简单和快速。

2. 避免在中断处理程序中进行大量复杂的计算或长时间的延迟。

3. 避免使用中断嵌套,除非必要。

4. 在低优先级中断处理程序中关闭中断时,尽可能迅速地恢复中断以避免影响系统性能。

5. 调整系统优先级、中断优先级等参数,以最小化中断的响应时间。

6. 对输入信号进行滤波或去抖动,以最小化误触发中断的次数。

7. 进行适当的系统资源管理,例如内存分配、任务调度等。

需要注意的是,减少中断处理的消耗可能会对系统性能产生不同程度的影响,对于不同的系统和应用场景,需要进行合理

我不太清楚你这个函数(以及它的子函数们)具有什么功能、有什么如此刻不容缓的紧迫性,以至于要所有的中断都来调用它……从系统架构设计来说,如果你对系统实时性有高要求、开了多重中断嵌套,那么就应当仔细考虑把每个中断里要做的事情最简化,不要把洗奶瓶换尿布这种工作交给驾驶赛车的赛车手来做!

回到你问的这个问题:

① 是的,被这个嵌套母函数调用的子函数也必须声明为嵌套函数。因为有可能运行至该子函数时产生中断调用母函数、继而调用该子函数的实体产生工作空间重叠。

② 如果你将这个母函数做出多个副本,那么子函数要么声明成重入、要么对应于每个母函数创建一个子函数副本、专门给对应的母函数调用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12060326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存