J-Link+Ozone调试教程

一、调试前的准备

使用J-Link将PC和单片机连接

以STM32入门教程中的"读写内部FLASH"实验为例,使用Keil打开该工程

按照下图所示的步骤进行操作,如果使用J-Link仿真器,则在第三步选择ST-Link Debugger

按照下图所示的步骤进行操作,输出选项卡需要勾选调试信息

按照下图所示的步骤进行操作,代码生成的优化选项中,优化等级需要选为0,否则Keil在编译程序的过程中可能会过度优化,导致编译得到的二进制机器码和C语言代码不是等价的,在调试过程中会引起代码执行顺序错乱

完成以上步骤后,编译程序,然后将其下载到单片机中

二、Ozone调试工程快速创建

1、新建工程

(1)打开Ozone,在菜单栏选择"File"→"New"→"Project",新建一个工程。(如果是初次使用,那么打开Ozone后会自动弹出向导,引导用户新建工程)

(2)在Device选择MCU型号(本教程使用STM32F103C8T6),并在Peripherals导入对应的.svd文件(芯片厂商提供,可生成外设寄存器树,直接在上位机查看和修改外设寄存器)。

(3)主机接口选择USB;目标接口视情况选择,对于ARM芯片,通过查看数据手册关于调试的章节,可以确认是否支持SWD,支持即可选择,而非ARM芯片仅支持JTAG;目标接口速率可以选择2MHz,若硬件稳定,则可以提速。

(4)选择编译输出的.elf文件,如果是使用Keil编译,则选择编译输出的.axf文件(.axf文件是ARM扩展版.elf文件),路径尽量不包含中文和全角字符。

(5)创建完成后,在菜单栏选择"File"→"Save Project as...",即可保存调试工程。

2、三种调试启动模式

(1)Download & Reset Program:擦除Flash,将固件烧录到Flash中,然后复位MCU,释放复位后程序从头全速运行。

(2)Attach to Running Program:连接后程序保持运行,可观察设备实时的动态变量,不会破坏RAM堆栈、寄存器。

(3)Attach & Halt Program:连接后停止正在运行的程序,直接冻结现场,立刻捕获当前寄存器、堆栈、内存快照,不会破坏RAM堆栈、寄存器。

三、Ozone基础调试功能

1、断点系统

(1)使用Ozone调试,Flash区不限制硬件断点数量(Cortex-M只有4~8个硬件断点,Keil调试受限于硬件数量),因为Ozone自动在Flash写入BKPT断点指令,缓存原始指令,断点取消后自动恢复代码。

(2)源码断点(程序断点):

①在代码浏览区的左侧有一些灰色的区域,鼠标左键点击,即可在区域对应的代码打上源码断点,当单片机运行到这些代码的时候,会触发停止运行的条件;如果需要取消源码断点,鼠标左键点击它对应的红色圆圈,即可取消断点。

②鼠标右键点击源码断点对应的红色圆圈,选择"Edit Breakpoint",在弹出的窗口中可以设置断点触发的前置条件。

1Condition填入条件表达式,如cnt>100。如果选择"Trigger when true",那么断点命中时,需要满足条件表达式才会真正停机;如果选择"Trigger on change",那么断点命中时,表达式数值发生过变化,才会真正停机。

2Skpi填入断点命中次数,假如设置为499,那么断点命中500次才会真正停机。

相关推荐
Freak嵌入式1 天前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
wuyk5551 天前
77.嵌入式 C 语言中 enum 枚举的工程化实践:告别魔法数字,提升代码可维护性
c语言·开发语言·stm32·单片机·嵌入式硬件
义嘉泰1 天前
XT25F128F-W Flash芯片全面解析
人工智能·嵌入式硬件·芯片
QH139292318801 天前
Keysight N9917B N9918B手持式综合微波分析仪
网络·科技·嵌入式硬件·集成测试·信息与通信
longxingiot1 天前
轻量化单片机数传终端降低物联网开发门槛
单片机·嵌入式硬件·物联网
BUG研究员_1 天前
51单片机UART串口通信波特率产生过程
单片机·嵌入式硬件·51单片机
总结所学1 天前
labview官网离线下载
嵌入式硬件
zcmodeltech1 天前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件
szxinmai主板定制专家1 天前
驱控一体新范式:RK3576+FPGA+CODESYS工业实时AI控制架构全解
人工智能·嵌入式硬件·计算机视觉·fpga开发·架构·工业ai·驱控一体