单片机调试,Ozone的使用

一、前言

单片机调试,目前常态可能是直接在MDK(keil)或者IAR中,直接用IDE的调试功能。

我喜欢用Ozone,因为他进调试快,基本上秒进,而MDK每次进入都要等很久,编译还要先退出调试模式,再编译,再进入调试模式,很耽误时间。

搜了一下,全网没多少相关使用经验,我这应该算开山祖师了,哈哈哈哈。

二、Ozone简介(抄的)

Ozone是Segger公司推出的一款高性能调试器软件,专为嵌入式系统开发设计。它支持多种微控制器架构,包括ARM Cortex-M、RISC-V等,并可与J-Link调试探针无缝配合使用。

支持实时变量监控和图形化显示,开发者可以直观地观察程序运行时的数据变化。提供完整的断点管理功能,包括硬件断点、软件断点和条件断点。

具备强大的内存查看和编辑功能,支持多种数据格式显示。集成RTOS感知调试功能,能够识别和调试FreeRTOS、embOS等常见实时操作系统。

看不懂,简单说就是只专注于调试(因为专一,所以专业),MDK有的Ozone都有,Ozone有的MDK不一定有。调试速度真的很快!!!

三、适用场景

需要一个Jlink和编译后生成的文件,我常用axf,其他不知道是否支持,可以去官网确认一下。

四、调试环境

MDU:stm32F407ze

jlink:SW接口

Ozone:版本V3.40

MDK:生成axf文件

五、创建工程

网上太多,不赘述。只说一个,一定要记得选外设信息的svd文件,看寄存器很方便。SVD文件一般在DFP里面,具体的参考我图中的路径。

六、功能

6.1 查看外设寄存器

View->Registers中打开,具体内容如下图。很明显,描述信息比MDK详细很多。

如果没选好svd文件,将会丢失Peripherals的所有内容,也看不了外设的寄存器。

6.2 查看变量

View->Wathed Data

右键要查看的变量 Watch或者拖到Wathed Data窗口,或者在Wathed Data窗口直接输入变量名

右键Wathed Data窗口的变量名,可以刷新该变量,默认是不刷新的,开启刷新对查看全局变量很方便。

6.3 查看函数堆栈

View->Call Stack

双击Call Stack窗口的函数会自动跳转到该函数

6.4 查看汇编(局部变量)

View->Disassembly或者右键变量Show Disassembly(ctrl+D)。

一般来说32位(比如浮点数,int型等)的局部变量会被存储到R0~R11寄存器中,打断点后在Wathed Data窗口也无法查看,MDK一定无法查看。

但Ozone可以从汇编中查看,如下图。在Disassembly窗口中,将鼠标放在该变量对应的寄存器时,会在鼠标附近显示该寄存器的值。我这里的adaptive_kp就存在S24寄存器里,可以在寄存器窗口通过对应的寄存器也能看到。

6.5 查看断点

View->Break & Tracepoints

还可以在断点窗口设置断点属性,比如该断点需要跳过几次等

6.6 数据图形化界面

右键要图形化查看的变量,点击Graph。(嗯,应该是,还没试过,后面验证了写清楚)

6.7 通过命令直接调用函数

View->console打开命令窗口。

命令窗口输入:Debug.SetNextPC 。(嗯,应该是,等我后面抽空试一下,明确一下命令和用法)

七、遇到不支持的芯片怎么办

移步我的另一篇博文Ozone添加不支持的芯片,这里以AT32举例

八、小技巧

MDK去掉Brose Infomation可以加快编译速度,但是调试过程中不能再F12跳转,而Ozone不影响,照样能实现跳转。

九、总结

对比MDK:

项目 MDK Ozone
功能 集成开发 专注调试
图形化 不支持 支持
查看32位局部变量 不支持 支持
命令调用 不支持 支持
相关推荐
蹊黎19 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
无敌贵点大王1 天前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何1 天前
二进制和十六进制
stm32·单片机
国科安芯1 天前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
不昀1 天前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵1 天前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
国科安芯1 天前
核电站蒸汽发生器传热管在役无损检测模拟前端的低噪声供电研究
嵌入式硬件·ldo·低压差线性稳压器·无损检测·核电站·蒸汽发生器·传热管
集芯微电科技有限公司1 天前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络
十八岁牛爷爷1 天前
STM32H7 长时间运行后 HTTP 断连:从“串口还活着”到 TX 描述符错账
stm32·单片机·嵌入式硬件
Lxx_Zw1 天前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件