miniZed jtag调试u-boot

miniZed jtag调试u-boot_第1张图片

环境准备

1.串口准备

添加USB转串口驱动

miniZed jtag调试u-boot_第2张图片

2.启动SDK软件

3.在SDK软件开启XCT窗口,然后在XCT窗口敲命令连接开发板

miniZed jtag调试u-boot_第3张图片

4.初始化芯片:记得在初始化时要先激活targets

miniZed jtag调试u-boot_第4张图片

5.下载zynq_fsbl.elf

miniZed jtag调试u-boot_第5张图片

6.下载u-boot.elf(将调试打印开关打开,即定义DEBUG宏)在代码根目录include/common.h

miniZed jtag调试u-boot_第6张图片

会有很多打印信息帮助分析和梳理流程

miniZed jtag调试u-boot_第7张图片

7.设置断点

miniZed jtag调试u-boot_第8张图片

8.SDK启动调试,先配置下调试选项

菜单栏Run----->Debug Configurations

miniZed jtag调试u-boot_第9张图片

miniZed jtag调试u-boot_第10张图片

source 设置代码路径和编译路径,都填到代码的根目录即可。

然后选择右下角的Debug即可

9 开始调试在XCT窗口敲con命令

miniZed jtag调试u-boot_第11张图片

10.在u-boot在board_init_f 运行函数列表时会出现数据异常

查看是sp指针越界了,导致printf函数运行时出现数据异常的问题,为了解决在断到此函数时,先不要着急调试

先用XCT终端修改下sp指针到0地址,然后在继续运行即可。

miniZed jtag调试u-boot_第12张图片

如果需要重新调试

直接再执行初始化和下载u-boot.elf即可

miniZed jtag调试u-boot_第13张图片

你可能感兴趣的:(miniZed jtag调试u-boot)