AXD环境下,对2442的寄存器设置无效怎么回事?
[复制链接]
如题,在AXD环境下对2442的寄存器进行设置没有用,不知道怎么回事?具体情况如下:
想把2440的bootloader移植到2442上,从汇编到进入Main函数一直很顺利,但在Main函数中问题出来了,一直读不到NandFlash的ID,在这块折腾了很久。最终不得不把机子(公司一个以2442为核心的产品)拆了,用万用表量NFCE脚的状态,才发现这个问题。紧接着做了实验,原机子上GPC8,GPC9上连接有LED(硬件电路肯定没问题,使用中),就进行点灯实验,具体代码如下(在Main函数刚进入后):
rGPCCON = (rGPCCON & ~(0x1111<<16)) | (0x0101<<16);
rGPCDAT |= (0x11<<8);
rGPCDAT &= ~(0x11<<8);
//mdelay(500);
rGPCDAT |= (0x11<<8);
//mdelay(500);
rGPCDAT &= ~(0x11<<8);
//mdelay(500);
rGPCDAT |= (0x11<<8);
//mdelay(500);
rGPCDAT &= ~(0x11<<8);
//mdelay(500);
rGPCDAT |= (0x11<<8);
//mdelay(500);
rGPCDAT &= ~(0x11<<8);
AXD单步调试发现跟本没反应,然后又返回汇编(2442init.s):在“When EINT0 is pressed, Clear SDRAM ”后添加
;led test
ldr r0,=GPCCON
ldr r1,=0x55555555 ;all I/O output
str r1,[r0]
ldr r0,=GPCDN
ldr r1,=0xffff
str r1,[r0]
ldr r0,=GPCDAT
ldr r1,=0x0000;
str r1,[r0]
ldr r0,=GPCDAT
ldr r1,=0xffff;
str r1,[r0]
ldr r0,=GPCDAT
ldr r1,=0x0000;
str r1,[r0]
ldr r0,=GPCDAT
ldr r1,=0xffff;
str r1,[r0]
ldr r0,=GPCDAT
ldr r1,=0x0000;
str r1,[r0]
在AXD下单步调试依然没效果,现在真不知道该怎么办了?请帮忙!