HotC51 发表于 2009-2-23 00:53 裸奔式实时操作系统HotTask51 ←返回版面 |
楼主: HotC51共产儿童团第一课:中断隐身之法规 |
开场白: 记得菜农在04年曾告诫过高级别隐身之问题,但未说明 为什么,这次为配合HotTask51大扫荡,菜农不得不说出 其危害所在,让大家穿好防弹衣~~~戴好口罩以免被 菜农之毒害~~~
HotC51共产儿童团第一课:中断隐身之法规 1.低级别中断可在中断中隐身(调用一次RETI指令) 切换退出也可从来路退出(退出用原来的RETI指令) 故结论:低级别中断可以随便使用RETI指令。
2.高级别建议不要用中断隐身,若系统只有一个高优先级中断低优先 级中断时,则应该在当初隐身时,调用一次RETI指令时自己降级为 低优先级此时控制权并未交还给那个被中断的低优先级中断程序, 因为现在他们实际同级别,故其他中断还不能中断该中断。 只有返回后才能把控制权交还,但是问题是它若用RETI退出时,MCU 必然任务是那个原来低的中断彻底退出了中断。
故导致了高优先级两次RETI时,误将原被打断的程序退出了中断。 当交权时,低级中断也被强行“隐身”,故其他低的中断就可打断 此中断,但他们原来是同级有该不能打断的。
3.说高级中断非要隐身,则必须遵守第1次必须用中断返回指令RETI
第2次中函数返回指令,这样将会对高级别中断隐身,并封锁低级 中断之用途。
课毕。
团长告诫结束
HotC51@126.com 2009.2.23 于菜地。 团部:http://group.ednchina.com/1623/
|
|
用户374875 2011-8-23 14:42
sunke9_998892717 2009-2-23 10:03