政府网站建设设计趋势交易链接
文章目录
- 测试代码
- makefile
- 运行 qemu
- 调试 qemu
- GDB 常用命令
裸机篇系列文章主要用于熟悉 arm 汇编及处理器结构
测试代码
_start:ldr r0, =0X020C4068 /* CCGR0 */ldr r1, =0XFFFFFFFF str r1, [r0]ldr r0, =0X020C406C /* CCGR1 */str r1, [r0]ldr r0, =0X020C4070 /* CCGR2 */str r1, [r0]ldr r0, =0X020C4074 /* CCGR3 */str r1, [r0]ldr r0, =0X020C4078 /* CCGR4 */str r1, [r0]ldr r0, =0X020C407C /* CCGR5 */str r1, [r0]ldr r0, =0X020C4080 /* CCGR6 */str r1, [r0]ldr r0, =0X020E0068ldr r1, =0X5str r1,[r0]ldr r0, =0X020E02F4ldr r1, =0X10B0str r1,[r0]ldr r0, =0X0209C000 ldr r1, =0str r1,[r0]loop:b loop
makefile
test.bin:test.sarm-none-linux-gnueabihf-gcc -g -c test.s -o test.oarm-none-linux-gnueabihf-ld -Ttext 0X87800000 test.o -o test.elfarm-none-linux-gnueabihf-objcopy -O binary -S -g test.elf test.binarm-none-linux-gnueabihf-objdump -D test.elf > test.dis
clean:rm -rf *.o test.bin test.elf test.dis
运行 qemu
qemu-system-arm -machine mcimx6ul-evk -kernel test.elf -S -s
-s :监听在 gdb 1234 端口
-S :表示启动后就挂起,等待 gdb 连接
-kernel 指定启用的内核镜像
调试 qemu
安装调试器
sudp apt-get install gdb-multiarch
启动调试器
gdb-multiarch --tui test.elf
- target remote localhost:1234
连接到刚才启动的 qemu 进程上,然后开始调试,注意qemu此时会断点在启动阶段,必须要用gdb的continue(c)命令使其继续执行
GDB 常用命令
- continue/c 程序继续运行,到下一断点处暂停
- run/r 运行
- step/c 单步运行
- info reg 查看寄存器
- break/b + 标号/行号 设置端点
- info break/b 查看端点