本文介绍如何在ubuntu 16.04环境下使用eclipse+gdb配置调试zephyr qemu
准备
下载&安装eclipse
使用国内镜像下载eclipse CDT,解压后直接可用
http://mirrors.neusoft.edu.cn/eclipse/technology/epp/downloads/release/oxygen/2/eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz
安装GNU MCU
启动eclipse后,通过菜单选择”帮助”->”Eclipse Marketplace”, 在serach页面查关键字“GNU MCU” 选择GNU MCU Eclipse安装
下载 & 安装arm gdb
在https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads 下载gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2,然后解压缩到目录/opt/gcc-arm-none-eabi-7-2017-q4-major
调试程序准备
参见文章Zephyr创建应用&模拟运行,编译完成后执行下面命令后qemu启动gdbserver等待gdb连接1
ninja debugserver
Eclipse配置
通过菜单选择”运行”->”调试配置”在弹出的框内选择”GDB Hardware Debugging”然后点击新建启动配置,然后按如下页面配置
Main
- 选择要debug的elf
- 关闭自动编译:因为没有通过eclipse来编译
Debugger
- 选择gdb
- 关闭target remote,这里的target remote要指定jtag device, 不使用,在后面的startup设置中通过初始化命令来target remote QEMU
Startup
- 关闭reset选项:由于被debug的是qemu对象已经在等待debug,且不需要load image因此不能选择reset
- 关闭halt,同上原因无需halt,执行target remote后会自动halt在第一句
- 不做image load:原因同第一点
- 添加target remote命令,连接qemu gdbserver
代码源
- 添加被调试代码的路径
配置完毕后点击”应用”保存配置调试
通过菜单选择”运行”–>”调试”进入调试界面,下面贴出调试的画面,基本的调试控制和调试窗口都有不做详细说明了
参考
http://docs.zephyrproject.org/application/application.html#eclipse-debugging