使用eclipse 调试zephyr

Creative Commons
本作品采用知识共享署名

本文介绍如何在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安装
MCU

下载 & 安装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来编译
    main

    Debugger

  • 选择gdb
  • 关闭target remote,这里的target remote要指定jtag device, 不使用,在后面的startup设置中通过初始化命令来target remote QEMU
    debugger

    Startup

  • 关闭reset选项:由于被debug的是qemu对象已经在等待debug,且不需要load image因此不能选择reset
  • 关闭halt,同上原因无需halt,执行target remote后会自动halt在第一句
  • 不做image load:原因同第一点
  • 添加target remote命令,连接qemu gdbserver
    startup

    代码源

  • 添加被调试代码的路径
    source
    配置完毕后点击”应用”保存配置

    调试

    通过菜单选择”运行”–>”调试”进入调试界面,下面贴出调试的画面,基本的调试控制和调试窗口都有不做详细说明了
    dasm
    dc

参考

http://docs.zephyrproject.org/application/application.html#eclipse-debugging