裸板调试

来源:互联网 发布:linux查看snmp团体名 编辑:程序博客网 时间:2024/06/04 17:56
裸板调试
一、点灯
使用汇编程序循环点灯查看程序运行到什么地方。
缺点:传递信息不多
二、串口打印
利用串口打印信息
三、JTAG调试器
1.基本信息
    Arm中的cpu有JTAG单元供调试使用,Cpu发出的地址信号、数据信号,都通过JTAG单元。
JTAG可以控制CPU
当Addr等于XX,停止运行cpu=硬件断点
当Data等于XX,停止运行cpu=软件断点
读各个寄存器,让cpu重新运行
让JTAG直接访问外设
ARM硬件有2个观察点


2.连接方式
    电脑通过软件发送命令给JTAG,JTAG通过jtag接口连接到开发板的接口。
电脑软件:ADS,keil,openocd
JTAG:并口wiggler,USB口(JLink,OpenJtag)


3.命令行调试
Openjtag命令:
Halt:停止CPU
Reg:显示寄存器
Mdw 0:读0地址
Mww 0 0x12345678:0地址写入0x12345678
Load_image xxx.bin 0:将xxx.bin放入0地址
Resume 0:从0地址重新运行
Bp 0x6c 4 hw:在0x6c位置使用硬件设置断点
Bp:当前断点
Rbp 0x6c:删除断点
Step 0,step:从0执行一步,执行一步
Poll:查询


4.源码级别的调试
前提
(1)源码已经重定位好,处于它的连接地址
(2)如果程序的链接地址是SDRAM,使用openocd初始化SDRAM,使用arm-linux-gdb/arm-elf-gdb下载程序
(3)连接脚本必须把text,rodata,data,bss等分开存放。
(4)被调试的程序里含有调试信息
0 0