Attempt to read the “CRUS” or “SURC” HeaderID in ASCII in FLASH
memory at (FLASH Base + 0x1000), verifying the HeaderID. This is read
in for each FLASH Chip select, and then do the following:
所以在
0x1000开始处存放了0x53555243数据,即:CRUS,但是Boot ROM读取0x1000数据为CRUS之后,仍然将执行权交给0偏移处的语句.
如果CRUS放到了0x0偏移,那么Code execution will start at address (FLASH base + 0x4). Processor will be in ARM SVC mode.
和0x1000不太一样的是,Boot ROM此时会将执行权交给0x04偏移处的语句.
AtmelF1024为1M的SPI接口存储器
arm-linux-objdump -DS -b binary -m arm redboot.bin
//===================================================
默认的download下载源程序,存在不等待数据发送完成就发送下一个的错误,
所以在SendChar函数中加入WaitTillEmpty()[需要7分钟烧redboot]或者usleep(1000)[仅仅需要3.5分钟]
都能够解决问题,不能操作ttyUSB0串口,添加支持代码之后执行make,即可正常使用linux下的download软件了.
download设置为9600,n,8,1之后发送2048字节的启动loader,即flasher.rom,当发送完2048字节的flasher.rom之后,boot rom会将
执行权交给flasher.rom程序,之后flasher.rom程序会先发送'>'字符上来,然后就是和download交互,完成redboot.bin文件的下载和烧写了.
//===================================================
1.将串口连接到P1(就是最靠外边的那个串口);将JP5跳到靠近cpu的那边.
2.9600,8,n,1配置之后,按开发板上的reset键,就可以在串口上见到
>>>提示符,每按一次出现一个>提示符.
3.使用cmd,下载通过串口程序,因为我使用的是usb2serial,它生成出来的串口号为4,所以下面使用
download.exe -p4 -b115200 redboot.bin,回车之后提示:Waiting for the board to wakeup...然后按一下开发板上的复位键,数据就开始下载了.
C:\Documents and Settings\Administrator>E:\开发板光盘\EP9315-CD\我的研究\download.exe -p4 -b115200 E:\开发板光盘\EP9315-CD\我的研究\redboot.bin
Programming the FLASH...( 10%)
4.下载完成之后,将JP5跳到远离CPU的一端或者取下,串口波特率改为57600,复位开关或者重新上电,即可看到redboot的启动log了.
阅读(2396) | 评论(0) | 转发(0) |