裸板,eslipse,gdb调试学习记录

1.cpu发出的地址信号,数据信号都通过jtag
2.jtag可以控制cpu
 当addr = xxxx,停止cpu --->硬件端点
 当data = xxxx,停止cpu --->软件断点

3.让jtag直接访问外设

裸板,eslipse,gdb调试学习记录_第1张图片
连接示意图

arm9上有两个硬件断点
软件断点必须要求地址可写,不能调试nand,nor flash.

源码级别的调试是有使用前提的:

  1. 源代码已经重定位好了.处于它的链接地址.
    实际上是根据源代码的链接地址修改内存,
     1.1使用openocd初始化sdram
     1.2 gdb下载程序
  2. lds脚本各个段必须分开,text,data,bss段分开

3.被调试的程序里含有debug信息

谁来初始化sdram呢?
谁把程序下载到0x30000000
1.openjtag下载初始化sdram的程序

> load_image init/init.bin 0
> resume 0x0

2.cmder下load nand_elf

arm-elf-gdb nand_elf
(gdb) target remote 127.0.0.1:3333
(gdb) load
Loading section .text, size 0x12a0 lma 0x30000000
Loading section .rodata, size 0x34 lma 0x300012a0
Start address 0x30000000, load size 4820
Transfer rate: 26 KB/sec, 2410 bytes/write.

//设置断点
(gdb) break main.c:21

eclipse新建c工程
 1. 选择菜单项“File -> New -> C Project”

新建一个工程(步骤 1)

 2. Makefile project->Empty
Projects”、“Other Toolchain”,然后点击“Finish”按钮。

裸板,eslipse,gdb调试学习记录_第2张图片
新建一个工程(步骤 2)

3.Eclipse 工程建立好后, 在“Project” 菜单里,点击去掉“Build Automatically”前面的标
记,表示不自动编译工程


裸板,eslipse,gdb调试学习记录_第3张图片

开始调试配置
1.如下操作

裸板,eslipse,gdb调试学习记录_第4张图片

  1. 弹出的窗口如图 2.52 所示, 在里面可以看到 Zylin 字样的调试器。新建一个
      注:如果曾经创建过调试配置项,可以选中它后点右键,选择“Duplicate”进行复制,然后再修改,这样可以避免重复劳动。


    裸板,eslipse,gdb调试学习记录_第5张图片

3.选择要调试的应用程序


接下来设置调试器,如图 2.56 所示: 选择“Debugger” 为“Embedded GDB” ,设置“GDB
debugger”为“C:\Program Files\yagarto\bin\arm-elf-gdb.exe”,设置“GDB command file”为
“e:\eclipse_projects\s3c2440_gdb.init” (注:如果是 S3C2410 开发板,则是 s3c2410_gdb.init;
如果是 S3C6410 开发板,则是 E:\eclipse_projects\6410\s3c6410_gdb.init;如果是 s5pc100,则是
E:\eclipse_projects\s5pc100\s5pc100_gdb.init)

你可能感兴趣的:(裸板,eslipse,gdb调试学习记录)