zephyr使用jlink GDB调试程序及常用GDB命令

本文详细介绍了如何在Zephyr实时操作系统中进行调试,包括环境准备(如Ubuntu虚拟机和j-link工具)、调试流程(如串口连接、编译烧录和使用GDB)、以及GDB的常用命令,适合初学者和开发者学习和实践低功耗设备的开发过程。
摘要由CSDN通过智能技术生成

1. 前言


      Zephyr是一种微型物联网实时操作系统,为所有资源受限设备,构建了针对低功耗、小型内存微处理器设备而进行优化的物联网嵌入式小型、可扩展的实时操作系统(RTOS),因此它也是我司想要关注利用的一款RTOS。Zephyr官方不仅提供了详细的开发指导,也提供了zephyr调试手段,下面具体介绍zephyr调试流程。

2. 调试环境准备


     环境:测试使用的ubuntu虚拟机,在上面根据官网Getting Started Guide章节指导搭建zephyr工程

     工具:j-link(记得安装j-link驱动)

     实验单板:stm32H743(这个不关键)

3. 调试流程


1)虚拟机串口连接j-link(如果不是虚拟机则跳过此步)

点击选择连接串口

   

连接时候在串口图标上停顿确认下是不是j-link串口

2)编译程序

命令:west build -p auto -b <your-board-name> <file-root>

例如:我当前在CMakeLists.txt的同级目录下,自定义单板名为nucleo_h743zephyr,就可以使用命令:west build -b nucleo_h743zephyr -p

编译生成的zephyr镜像文件zephyr.hex当前工程目录的build/zephyr/下

3)烧录代码

直接在当前目录敲west flash命令

4)调试工程

在当前目录执行命令:west debug

看到红框语句就说明GDB调试环境准备成功,之后回车按C即可调试

进入GDB界面后即可完成自己想要的调试动作,例如打断点、看调用栈,下面简单介绍下GDB的常用使用命令

4. GDB常用命令


(本章节只做总结使用,调试命令均使用简写,完整扩展名不做体现,命令也只体现几个常用场景,多更请咨询www.baidu.com)

1)打断点: b 断点处(可以是函数也可以文件)

      例如:b stm32h7_init (断住函数stm32h7_init)

                b soc_m7.c:123 (断在soc_m7.c的123行)

                b soc_m7.c:123 if g_a == 5 (当执行到soc_m7.c的123行且当前全局变量g_a为5时断住)

2)继续运行:c

3)执行下一行命令:n

4)执行下一条命令:s

5)断点断住后显示当前代码页面:layout src

      刷新代码页面:ctrl + L

6)结束退出:q

7)显示当前调用栈:bt

8)在界面上打印变量值或者地址上的内容: p var/addr

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值