我的开发板是mini2440,我电脑没有并口,要更新u-boot很不方便。可不可以用串口将.bin下载到指定内存比如0x33000000,然后运行这个地址的文件。就像u-boot的go命令那样。
我初步的设计了一个串口程序去下载一个LED_ON.bin开灯,通过xmodem协议将.bin文件下载到内存为0x33000000的位置,我验证过了,可以成功下载,但是我不知道该如何去执行那个位置的程序。
我也看过了U-BOOT的go命令的实现,大概是这样的,
unsigned int addr = 0x33000000;
void (*fc)(void);
fc = (void *)addr ;
fc();
我也试过用汇编来写
ldr pc, =0x33000000;
或者PC值为当前指令的下两条,
ldr pc,=0x33000008;
我都试过了,好像那个内存是非法的,根本不会调用那里的程序,只要运行那里的程序,然后就自动返回到之前的串口下载程序。
串口程序固化到nor flash 地址为0;运行连接地址为0X30000000;
我已经弄了好久,真的不知道该怎么进行下去,特向版主求救,感觉这个论坛要比那些大论坛更有人性,在此我说一声 “谢谢!”
[ 此帖被w3571604在2010-08-06 17:06重新编辑 ]