Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87898
  • 博文数量: 22
  • 博客积分: 938
  • 博客等级: 准尉
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-16 21:27
文章存档

2010年(22)

我的朋友

分类: 嵌入式

2010-06-15 10:00:38

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) |
给主人留下些什么吧!~~