还是临界代码的问题?
1)为什么在讲中断延迟时,说“所有实时系统在进入临界区代码段之前,都要关中断;执行完临界代码之后,再开中断”难道在执行中断前后要经过临界代码吗?
2)中断延迟=关中断的最长时间+开始执行中断服务子程序第一条指令的时间
也应该是:中断延迟=开中断的最长时间+开始执行中断服务子程序第一条指令的时间。
[解决办法]
1、不是,会造成死锁
[解决办法]
1)为什么在讲中断延迟时,说“所有实时系统在进入临界区代码段之前,都要关中断;执行完临界代码之后,再开中断”难道在执行中断前后要经过临界代码吗?
===================================================
临界代码指的是非常重要的代码,不允许被中断,所以执行期间要屏蔽中断。执行完后马上要开中断,否则容易引起系统错误...而且,关中断的时间不宜长,也就是说临界代码必须非常短。。。
2)中断延迟=关中断的最长时间+开始执行中断服务子程序第一条指令的时间
也应该是:中断延迟=开中断的最长时间+开始执行中断服务子程序第一条指令的时间。
===============================================
正如上面所说,中断延迟可以用来衡量实时系统的好坏,所以中断延迟应力争最小...
[解决办法]
1)为什么在讲中断延迟时,说“所有实时系统在进入临界区代码段之前,都要关中断;执行完临界代码之后,再开中断”难道在执行中断前后要经过临界代码吗?
这个不一定。
如果你的中断是去执行临界代码段
那就去执行
如果不是
那就不执行了
2)中断延迟=关中断的最长时间+开始执行中断服务子程序第一条指令的时间
也应该是:中断延迟=开中断的最长时间+开始执行中断服务子程序第一条指令的时间。
开中断和关中断是互斥的
开中断的时候
是在响应中断
关中断的时候
是在处理中断
[解决办法]
学习......