IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 调试正在运行的程序(STM32CubeIDE) -> 正文阅读

[嵌入式]调试正在运行的程序(STM32CubeIDE)

大家好,我是惊觉,今天给大家分享一个调试小窍门:调试正在运行的程序

阅读本文之前,你需要掌握相应IDE的在线调试器的使用方法,包括:

  • 设置断点
  • 单步运行(步入,步过,步出)

比如,STM32CubeIDE的调试界面如下:

  • 黑色框:调试系列按钮
  • 红色框:函数调用栈
  • 黄色框:代码区
  • 蓝色框:变量查看区
  • 绿色框:内存查看区
    在这里插入图片描述

当遇到复杂的问题时,在线调试会非常有用。可以在出问题的代码附近设置断点,一步步运行,并查看相关变量的变化。但这有一个提前,那就是你是用调试器启动运行的。

如果不是用调试器启动,比如是正常的上电启动,当程序出问题时,比如死机了,此时直接启动调试器是不行的,调试器会重置单片机的状态,错误的上下文就没了。对于偶发的问题,此时用调试器重新执行,未必会重现问题。必现的问题往往不可怕,可怕的是那种跑几天甚至几周才会出现的问题。

那么怎么办呢?在线调试器还是得用的,不过得修改一下调试选项,不能破坏案发现场:

  • 不能烧录程序。当然啦,此时的工程代码需要与单片机里固件对应的代码一致
  • 不能进行复位操作。

下面以STM32CubeIDE为例进行讲解,使用JLink仿真器调试stm32单片机。

STM32CubeIDE+Jlink

笔者以之前讲过的task代码为例进行演示,在task1中添加一个死循环语句,以使程序启动10秒后死机。
在这里插入图片描述
烧录程序,10秒后死了:
在这里插入图片描述
在项目名上右击–>Debug As–>Debug Configuration,以打开调试配置窗口。
在这里插入图片描述
如果你之前调试过该工程,则会看到调试配置项:
在这里插入图片描述
我们需要在这个基础上,做出可以调试正在执行的程序的配置。直接修改当前配置项不是一个好方法,毕竟以后还会用到标准的在线调试。

在选项上右击–>Duplicate,以复制一个出来。
在这里插入图片描述
复制后默认叫demo Debug(1),像笔者这种严谨的程序员忍不住要给它改一个名。
在这里插入图片描述
切换到调试器选项卡,将复位策略改为不复位。
在这里插入图片描述
取消检验flash下载。
在这里插入图片描述
切换到Startup选项卡,取消红框中的所有选项。
在这里插入图片描述
在加载固件和符号的配置区,点击Edit
在这里插入图片描述
取消下载选项。
在这里插入图片描述

现在可以调试了,点击右下角的Debug
在这里插入图片描述
轻松找到了元凶:
在这里插入图片描述
初次调试需要进行如上操作,之后再调试的话,直接在调试按钮里面选择就行:
在这里插入图片描述

后记

大家觉得这种附着调试的方法是不是很方便呢,想不想了解其他IDE的类似方法,比如Keil,RTTStudio, TRUEStudio。想看的话,鼓励支持一下呗,点赞在看转发,惊觉一定安排。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:46:05  更:2021-08-12 16:48:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 18:48:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码