首先声明这是别的网页里面看到的帖子,最近在工作中用到了atmel sam7x256 arm7芯片,不断的进入伪中断,问题和下面这位仁兄描述的一样,希望知道的大侠回答一下,版主知道的话就拉兄弟一把啊!伪中断代码究竟是在启动文件里面去实现还是在应用程序里面写, 如果是,该怎么写啊,还有这个STMFD sp!,{...,lr}中的。。。该用哪个寄存器来写呢?
请教ZLG:关于伪中断的描述
在LPC2114的手册里面,提到伪中断的处理,解决方案1在中断服务程序之前增加类似于下面的代码:
SUB lr,lr,#4
STMFD sp!,{...,lr}
MRS lr,SPSR
TST lr,#I_Bit ;当中断禁止时判断是否有中断产生.
LDMNEFD sp!,{...,pc}^
可是我现在用的是ZLG的模板程序里面的IRQ.S来处理的中断服务程序,还有必要增加这段代码吗?如果增加是不是应该放到IRQ.S的中断服务程序的最前面?
不加这段代码又会出现什么问题呢? |