|
在**中所有菲利普的芯片都是头8字(4字节为一字)累加和为零作为判断用户程序是否有效的标准,于是就这样写了程序:(我用的是GCC,没有用ADS)<br />_start:<br /> B Reset<br /> B Reset<br /> B Reset<br /> B Reset<br /> B Reset<br /> .long 0x9DDFFFFD<br /> LDR PC, [PC, #-0xFF0]<br /> B Reset<br /><br />Reset:<br />......<br /><br />在LPC2103,2214,2138等有内部FLASH的片子上跑都很正常,用了LPC2220后,这样就不行了,无法启动程序!!!!, 就这个问题折腾了近一个礼拜,打了不少电话,最后没有办法只好买了一块开发板,把附带的程序反汇编出来看,一句一句的对,最后却得出这样的结果,真是一个大坑呀!<br />以下是能够启动的代码:<br />_start:<br /> LDR PC, Reset<br /> LDR PC, Undefine<br /> LDR PC, SWI<br /> LDR PC, Prefetch<br /> LDR PC, DataAbort<br /> .long 0xB9205F80<br /> LDR PC, [PC, #-0xFF0]<br /> LDR PC, FIQ<br /><br />Reset:<br />.long SystemReset<br />Undefine:<br />.long SystemReset<br />SWI:<br />.long SystemReset<br />Prefetch:<br />.long SystemReset<br />DataAbort:<br />.long SystemReset<br />FIQ:<br />.long SystemReset<br /><br /> |
|