Linux 下 ARM 的 bootloader 开发环境
whitebear
首先我要承认错误……按照《[link2post id=”644″]Linux 下 ARM 的 bootloader 开发环境[/link2post]》中写道的方法,是没有办法使调试正常工作的……
这里再补充说明一些内容。
1. 14-20针JTAG转接板的制作,参考这里,有图的。
2. 关于调试电缆,必须使用J-Link或者OpenJTAG,wiggler无法使用。如果用wiggler的话,只要执行一次reset命令,除非手动复位目标板,否则目标板就再也无法halt下来了…… 使用J-Link或者OpenJTAG不存在这个问题,可以直接在openocd.cfg中写:
init
reset init
3. 为什么要修改parport.cfg中的
parport_port 0×378
到
parport_port 0
答:前者使用的是parport驱动,通过地址定位并口,后者使用的是ppdev驱动,使用端口号定位。前者在我这里没办法工作,即使使用了正确的地址(0xdd00)也不行。
4. U-Boot调试符号的编译不需要这么麻烦,默认就是编译了调试符号的&……我们需要做的就是去掉代码优化而已,在config.mk中找到136,137两行,改为:
DBGFLAGS= -g -DDEBUG
OPTFLAGS= #-Os -fomit-frame-pointer
就行了。136行开启了调试信息,137行去掉了代码优化。
5. 对于这个板子,还需要一个初始化配置文件。否则会导致无法下载写入数据到SDRAM。
完整的配置文件在附件:openocd
另:uptech_2410.cfg已经整合到OpenOCD master分支。在下一个版本(0.5)推出的时候会一起发布。这个配置文件应该也适用于smdk2410,但是我没试过……