搞2220,一开始碰到不能启动的问题,后来碰到看门狗的问题。<br />看门狗不能够正确的复位,真是无招了.....<br /><br />看门狗的问题后来我解决了,是程序的问题,还想提一个问题<br />就是启动的问题: ISP BOOT是不是校验和为零就可以启动?<br />我的程序很怪,非要这样才能启动:<br />.text<br />.align 4<br />.global _start<br />.global Reboot<br /><br />_start:<br /> B SystemReset<br /> B SystemReset<br /> B SystemReset<br /> B SystemReset<br /> LDR PC, DataAbort<br /> .long 0xA3400FF2<br /> LDR PC, [PC, #-0xFF0]<br /> B SystemReset<br /><br />DataAbort:<br />.long 0x80000024<br /><br />SystemReset:<br /> LDR R0, =0xFFFFF014 @关闭所有中断<br /> LDR R1, =0xFFFFFFFF<br /> STR R1, [R0]<br /><br /> MRS R0, CPSR<br /> ORR R0, R0, #0x80<br /> MSR CPSR, R0<br /><br /> LDR R0, =0xE0000000<br /> MOV R1, #0<br /> STR R1, [R0]<br /><br /> LDR R0, =0xE002C014<br /> LDR R1, =0x0F814920<br /> STR R1, [R0]<br /><br /> LDR R0, =0xFFE00000<br /> LDR R1, =0x1000FFEF<br /> STR R1, [R0]<br /><br /> LDR R0, =0xFFE00004<br /> LDR R1, =0x2000FFEF<br /> STR R1, [R0]<br /><br /> LDR R0, =0xFFE00008<br /> LDR R1, =0x0000FFEF<br /> STR R1, [R0]<br /><br /> LDR R0, =0xFFE0000C<br /> LDR R1, =0x00002400<br /> STR R1, [R0]<br /><br /> MSR CPSR_c, #0xD2<br /> LDR SP, =0x40010000<br /><br /> MSR CPSR_c, #0xD3<br /> LDR SP, =0x4000E000<br /><br /> LDR R0, =0x80000000<br /> MOV R1, #0x40000000<br /> MOV R2, #0xC000<br />CopyProgram:<br /> LDR R3, [R0], #4<br /> STR R3, [R1], #4<br /> SUBS R2, R2, #4<br /> BNE CopyProgram<br /><br /> LDR R0, =0xE01FC040<br /> MOV R1, #2<br /> STRB R1, [R0]<br /> <br /> MRS R1, CPSR<br /> BIC R1, R1, #0x80<br /> MSR CPSR, R1<br /><br /> LDR R0, DataAbort<br /> LDR R1, =SystemReset<br /> STR R1, [R0]<br /><br /> LDR PC, =Startup<br /><br />Reboot:<br /> LDR PC, =0x80000000<br /> |
|