调试占据着研发全过程的很大比重,我在调试uboot时,花了好久好久。
以一个具体的例子,我想让我的uboot从nandflash启动,因为J-link不能直接将u-boot.bin文件直接烧录到nandflash中,必须在通过nandflash控制寄存器来对nandflash操作,我的uboot中就有nand erase和nand write等功能。如果我每次将uboot烧录到nandflash时都去摆弄跳线帽,开关电源,那多麻烦和危险呐。
前提条件如下:
1、tftp服务器,这个可以自己搭建网上有关搭建tftp服务器的方法很多。可以参考一下;
2、有AUTOHOTKEY。
过程如下:
1、
;------------------------------------------------------------
; Green Program mapped by "ALT" key
;------------------------------------------------------------
!j::
Run C:\Program Files\SEGGER\JLinkARM_V410i\JLink.exe
return
按一下Alt + j 就能打开打开J-Link Commander,如下图
2、
^3::
send h{enter}
send speed 12000{enter}
send loadbin D:\project\bootstrap-s3c2440.bin 0{enter}
send setpc 0{enter}
send g{enter}
sleep 100
send loadbin D:\project\u-boot-fulinux.bin 0x33f80000{enter}
send setpc 0x33f80000{enter}
send g{enter}
return
再按一下Ctrl + 3就能将上面的内容打到J-Link Commander上面如图:
上面的过程是先将bootstrap-s3c2440.bin这个初始化SDRAM的代码放到steppingstone这4K的SRAM中,然后将u-boot-fulinux.bin下载到SDRAM的0x33f80000地址处并且设置ARM的PC寄存器,让ARM跳转到0x33f80000这个地方运行。需要这样步是因为我没需要借助它自身将u-boot-fulinux.bin考到nandflash中去。
u-boot-fulinux.bin可以在这里下载:
下载在Linux公社的1号FTP服务器里,下载地址:
FTP地址:ftp://www.linuxidc.com
用户名:
密码:
在 2013年LinuxIDC.com\3月\有关U-Boot调试的一些技巧总结