OpenJTAG调试S3C2440裸板程序

0x00 懵逼

    当你写好的初始化代码head.S和链接脚本uart.lds共同编译出来的*.bin,烧录到NandFlash中的时候,发现串口输出一片空白,这时你的想法是什么,砸电脑还是干点其他有用的事?还是老实的搭建调试环境吧,上篇讲过如何调试源码级的代码,但若是初始化代码有问题,譬如sdram拷贝出问题或者链接脚本有问题的话,通过openjtag gui调试会比较靠谱。


0x01 烧录

    先写一个脚本,利用oflash能快速的进行NANDFLASH烧录,脚本如下:

oflash 0 1 0 0 0 E:\gongkong\eclipse_projects\uart8266\uart.bin
pause

    六个参数,分别表示: JTAG类型、CPU类型、Flash类型、读写类型、偏移地址、文件。最后双击运行。


0x02 打开opengui

    如何用openjtag连接开发板,这里跳过,打开电源,先打开connect,再打开telnet



0x03 命令行进行调试

    

   详细指令如下:

    poll 查询目标板当前状态

    halt 中断目标板的运行

    resume [address] 恢复目标板的运行,如果指定了 address,则从 address 处开始执行

    step [address] 单步执行,如果指定了 address,则从 address 处开始执行

    reset 复位目标板


    bp <addr> <length> [hw] 在地址 addr 处设置断点,指令长度为 length,hw 表示硬件断点

    rbp <addr> 删除地址 addr 处的断点内存访问指令(Memory access commands)

    mdw ['phys'] <addr> [count] 显示从(物理)地址 addr 开始的 count(缺省是 1)个字(4 字节)

    mdh ['phys'] <addr> [count] 显示从(物理)地址addr 开始的count(缺省是1)个半字(2字节)

    mdb ['phys'] <addr> [count] 显示从(物理)地址 addr 开始的 count(缺省是 1)个字节

    mww ['phys'] <addr> <value> 向(物理)地址 addr 写入一个字,值为 value

    mwh ['phys'] <addr> <value> 向(物理)地址 addr 写入一个半字,值为 value

    mwb ['phys'] <addr> <value> 向(物理)地址 addr 写入一个字节,值为 value

    load_image <file> <address> [‘bin’|‘ihex’|‘elf’]

    将文件<file>载入地址为 address 的内存,格式有‘bin’、‘ihex’、‘elf’


    dump_image <file> <address> <size>

    将内存从地址 address 开始的 size 字节数据读出,保存到文件<file>中


    verify_image <file> <address> [‘bin’|‘ihex’|‘elf’]

    将文件<file>与内存 address 开始的数据进行比较,格式有‘bin’、‘ihex’、‘elf’



    reg 打印寄存器的值

    arm7_9 fast_memory_access ['enable'|'disable']

    使能或禁止“快速的内存访问”


    arm mcr cpnum op1 CRn op2 CRm value 修改协处理器的寄存器

    比如:arm mcr 15 0 1 0 0 0 关闭 MMU


    arm mrc cpnum op1 CRn op2 CRm 读出协处理器的寄存器

     比如:arm mcr 15 0 1 0 0 读出 cp15 协处理器的寄存器

    arm920t cp15 regnum [value] 修改或读取 cp15 协处理器的寄存器

    比如 arm920t cp15 2 0 关闭 MMU

    virt2phys virtual_address 获得虚拟地址对应的物理地址

    

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值