原创 arm 代码下载后是否有效的对策

2009-5-18 21:46 2555 10 9 分类: MCU/ 嵌入式

玩ARM也有段时间了,配置编译环境是KEIL ,硬件LPC2214,自己做的板子,在调试时遇到如下问题:代码下载后点击运行,完全正常,但断电或复位后,就会再也不运行了,这样实在是麻烦得很。


启动代码是默认的startup.s,原来,解决这个问题的办法很简单,看keil 中启动源代码:


Vectors:        LDR     PC,Reset_Addr        
                LDR     PC,Undef_Addr
                LDR     PC,SWI_Addr
                LDR     PC,PAbt_Addr
                LDR     PC,DAbt_Addr
               NOP                            /* Reserved Vector */
                LDR     PC,IRQ_Addr
                LDR     PC,FIQ_Addr


问题就出在这,反汇编后,这几句话的pc值相加不为0,所以下载的代码就无效了,解决办法是改动如下;


Vectors:        LDR     PC,Reset_Addr        
                LDR     PC,Undef_Addr
                LDR     PC,SWI_Addr
                LDR     PC,PAbt_Addr
                LDR     PC,DAbt_Addr
                dcd     0xb9205f80
               ; NOP                            /* Reserved Vector */
                LDR     PC,IRQ_Addr
                LDR     PC,FIQ_Addr


这样改过后,复位或重新上电后,正确的代码马上运行,当然,因为keil是不允许改动该文件的,每次新建工程后改一下就可以了

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条