arm汇编编程的小经验

编了几天的汇编,发现很是麻烦,尤其是在编写中断程序时。好在功夫没有白费,总算
是成了,总结一些问题,如下:
1、编中断时,要设置好中断向量后,才能开中断;
2、在开中断的情况下,不要通过更改sp来访问堆栈中的数据,如下:
ADD sp, sp, #4
LDR r0, [sp]
上面的语句可能带来隐患:在执行上面的语句时若中断产生,中断
将context保存在堆栈中,就会冲掉原有的数据,正确的如下:
ADD r0, r0, #4
LDR r0, [r0]
3、STMFD sp!, {r3, r1, r2},该语句实际的入栈次序为R3,R2,R1,
不要认为是R2,R1,R3或r3,r1,r2;
4、在允许中断嵌套的时候,要注意堆栈的设置要足够大,此外,
嵌套的层数也不要无限大,否则,再大的堆栈都不够
5、执行mov cpsr_cxsf, #0x13后,中断并不是马上就打开了,而是要
执行完下一语句后才打开的

posted @ 2009-08-23 16:36  beinghu2  阅读(209)  评论(0编辑  收藏  举报
yahoo