[ZLG-ARM] 关于中断嵌套的问题咨询ZLG

[复制链接]
2914|2
 楼主| chphei 发表于 2008-11-20 10:56 | 显示全部楼层 |阅读模式
请问ZLG:<br />&nbsp;&nbsp;&nbsp;1.&nbsp;《深入浅出ARM7-LPC213x_214x(上)》的第335页关于中断优先级有下面说明:&quot;ARM中断体系结构对中断优先级的处理,在一般情况下,高优先级并不能中断低优先级中断,程序所设定的优先级的意义在于当多个中断同时发生的时候,只处理高优先级中断而忽略低优先级中断.&quot;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;该说明中最不能理解的就是&quot;忽略&quot;一词.如果是&quot;忽略&quot;,那不是执行完高优先级中断后就不执行低优先级了么,正确的说法应该是&quot;挂起&quot;吧.只要高优先级中断执行开始直到完成的过程中,低优先级的中断标志没有被硬件或者软件清零,在高优先级中断返回瞬间就会立刻进入低优先级中断.&nbsp;<br />&nbsp;&nbsp;&nbsp;请问&quot;忽略&quot;一词是否有错?<br /><br />&nbsp;&nbsp;&nbsp;2.关于中断嵌套的方法,在该书338页有介绍.我想咨询的是,IRQ和FIQ同时设定后,FIQ能否自动中断IRQ么,是否也需要按照这种中断嵌套的方法进行类似设定.同理,向量IRQ能否自动中断非向量IRQ.即这样的情况能否自动中断嵌套?<br /><br />&nbsp;&nbsp;&nbsp;3.顺便请问,执行一条机器指令的时间是多少?(晶振选用11.0592M,模板用的2131).<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| chphei 发表于 2008-11-20 14:05 | 显示全部楼层

回复

刚才在网上搜了下,看到一个比较贴近的说明可以解决第二个问题<br /><br />对IRQ、FIQ和SWI的理解[gliethttp]&nbsp;<br />1.同时在AXD中arm7tdmi内核模拟中断也出现同样的现象,当模拟发生IRQ的当即,&nbsp;pc指针指向0x18的同时&quot;I&quot;被自动置1,禁止IRQ&nbsp;<br />&nbsp;&nbsp;当在IRQ执行的过程中,如果&quot;I&quot;被清0,那么IRQ会立即嵌套发生<br />2.同时在AXD中arm7tdmi内核模拟中断也出现同样的现象,当模拟发生FIQ的当即,&nbsp;&nbsp;pc指针指向0x1C的同时&quot;F&quot;和&quot;I&quot;都被自动置1,禁止FIQ和IRQ]&nbsp;<br />3.当发生IRQ的时候,&quot;I&quot;被自动置1,禁止IRQ中断嵌套,IRQ处理程序执行了一会之后,突然FIQ到达,&nbsp;那么arm内核会立即跳转到FIQ执行,&quot;F&quot;和&quot;I&quot;都被自动置1,禁止FIQ和IRQ,FIQ的spsr其值为IRQ中执行处理程序时的CPSR,当FIQ代码执行完毕之后,恢复到IRQ中继续执行IRQ处理程序.&nbsp;<br />4.swi可以嵌套,不论什么时候,什么地点,只要执行swi,arm内核就会跳转到0x08地址处开始执行swi程序&nbsp;<br />5.swi等同于IRQ,也就是说,当触发swi软中断的同时&quot;I&quot;也会被自动置1,禁止IRQ<br /><br />对比其说明,IRQ可以自动嵌套FIQ.IRQ之间,无论向量还是非向量,都不能自动嵌套.&nbsp;又多了个软件中断的说明,看来似乎是IRQ也可以自动嵌套SWI.不知这样的理解是否正确.
zlgarm 发表于 2008-11-21 14:00 | 显示全部楼层

RE:chphei

赞....<br /><br />您好!<br />&quot;忽略&quot;一词确实有些不妥,按您所说的“挂起”就对了,谢谢您指出了我们的错误。执行一条指令的时间与ARM内核运行的频率有关,而关于一条指令需要几个时钟没有确切的说明,ARM7内核的Dhrystone测试结果是0.95&nbsp;DMIPS/MHz。<br />您2楼的理解都是正确的。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

25

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部