尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

167、Zephyr RTOS调试与测试基础:GDB调试实战

167、Zephyr RTOS调试与测试基础:GDB调试实战 Zephyr RTOS调试与测试基础:GDB调试实战一个让我熬夜到凌晨三点的bug去年做工业网关项目,Zephyr跑在STM32H743上,MQTT连接每隔37分钟准时断连。查了三天代码,日志打满串口,RTOS调度器状态看了无数遍,愣是没找到原因。最后是GDB单步跟踪到第47次循环时,发现一个全局结构体指针在某个中断服务函数里被意外改写了——那个中断优先级配置错了,比任务优先级还高,直接踩了任务栈里的数据。从那以后,我养成了习惯:任何Zephyr项目,调试器必须先连上,再开始写业务代码。今天这篇笔记,就把我这些年用GDB调试Zephyr的实战经验掰开揉碎讲清楚。调试环境搭建:别在第一步就翻车Zephyr的调试工具链和普通嵌入式开发不太一样。如果你直接用OpenOCD + GDB连上去,大概率会碰到“Remote ‘g’ packet reply is too long”这种让人血压飙升的错误。正确的姿势是这样的:# 先确认你的Zephyr工程编译时带了调试符号west build-bstm32h743i_eval app ---DCONFIG_DEBUG
返回列表