试着移植一下UBOOT,程序运行到main_loop后就出现了这个错误:
U-Boot 2009.11 (Apr 10 2016 - 05:24:27) for SMDK6410
CPU: S3C6410@532MHz
Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board: SMDK6410
DRAM: 256 MB
NAND: No NAND device found!!!
0 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: dm9000
data abort
pc : [<5fc1ac20>] lr : [<5fc10730>]
sp : 5fffff90 ip : 00000000 fp : 587a9827
r10: 5fc2df80 r9 : 5fc2e5f4 r8 : 5fe3ffe0
r7 : 5fc297e2 r6 : 00000008 r5 : 5fc297e2 r4 : ffffffff
r3 : 0000000e r2 : 00000008 r1 : 00000070 r0 : 5fc297e2
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
resetting ...
错误部分的转汇编代码:
while (count) {
if ((__res = *cs - *ct++) != 0 || !*cs++)
5fc1ac14: e7d5100c ldrb r1, [r5, ip]
5fc1ac18: e7d4300c ldrb r3, [r4, ip]
break;
count--;
5fc1ac1c: e2422001 sub r2, r2, #1 ; 0x1
int strncmp(const char * cs,const char * ct,size_t count)
{
register signed char __res = 0;
while (count) {
if ((__res = *cs - *ct++) != 0 || !*cs++)
5fc1ac20: e0633001 rsb r3, r3, r1
5fc1ac24: e21300ff ands r0, r3, #255 ; 0xff
5fc1ac28: e28cc001 add ip, ip, #1 ; 0x1
5fc1ac2c: 1a000004 bne 5fc1ac44 <strncmp+0x44>
5fc1ac30: e3510000 cmp r1, #0 ; 0x0
5fc1ac34: 0a000002 beq 5fc1ac44 <strncmp+0x44>
*/
int strncmp(const char * cs,const char * ct,size_t count)
{
register signed char __res = 0;
while (count) {
5fc1ac38: e3520000 cmp r2, #0 ; 0x0
5fc1ac3c: 1afffff4 bne 5fc1ac14 <strncmp+0x14>
5fc1ac40: e1a00002 mov r0, r2
5fc1ac44: e1a00c00 lsl r0, r0, #24
求各位大神给个解决问题的方向????
我要赚赏金
