Q:
我的配置是JLINK+ADS,电脑上没并口,用JLINK调试的。现在我调试UBOOT,在NAND
FLASH调试非常麻烦,我想知道各位都是用什么方法调试的,怎么才能直接在SDRAM中调试??
A:
我没有用过ADS调试u-boot,都是用gdb调试uboot,调试方法有很多种,如果你熟悉gdb的命令,直接用命令调试就可以,如果不熟悉,可以借
助一些gdb的图形前端来调试例如(DDD,insight,eclipse等),大致流程如下:
1。写一个gdb的初始化文件,用来初始化板
子,主要完成关watchdog,系统时钟设置,SDRAM初始化。
2。启动jlink的gdb server
3。用arm-
linux-gdb --command=gdb初始化文件(前面写的那个文件,初始化板子)
4。file u-boot (可能需要填全路径)
5
。load (把u-boot载入内存)
6。b _start(设置断点)
7。stepi (单步调试)
网上有很多例
子,google一下就知道了。
直接在内存运行uboot就更简单了,只需要借助uboot自身把新编译的uboot先下载到内存,然后
用go命令就行了,不过需要注意,调试uboot的时候,这个uboot链接位置千万不要和原来在运行的uboot链接地址一样,不能对SDRAM初始
化,最好也不要对系统时钟再初始化。查查代码中这2个宏相关的代码CONFIG_SKIP_LOWLEVEL_INIT
CONFIG_SKIP_RELOCATE_UBOOT,读读就知道怎么做了
S:
非常感谢上面先生的回答,我现在是用j-link commander直接下载到SDRAM调试的,也是比较方便的
安装J-LINK驱动后就有
J-LINK COMMANDER了,输入:
>loadbin e:\u-boot.bin,0x33f80000
>setPC
0x33f80000
>g
这样就可以在串口有输出信息了
前提是先把u-boot.bin文件放到e:\
下,0x33f80000是根据TEXT_BASE设置的,可以随着TEXT_BASE发生变化
如果在输入命令的时候提示"cpu
can not halt",可以在开发板上重新插拔一下J-LINK就可以了(不能掉电,否则SDRAM中的代码就丢失了)。
阅读(1952) | 评论(0) | 转发(0) |