2. Ozone工程创建与目标连接
Ozone 的调试能力建立在“工程 + 目标连接”这两个基础之上。工程文件(.jdebug)保存了设备型号、调试探针、目标接口、下载算法、复位策略、符号文件路径等关键信息;目标连接则决定了 Ozone 能否通过 J-Link 正确访问芯片内核、内存与外设。本节围绕“新建工程 → 选择设备 → 配置调试探针 → 连接目标板 → 下载与复位运行”这条主线,把每一步的实际操作、关键参数和判断依据讲清楚。
一、新建工程:从 New Project 向导开始
启动 Ozone 后,选择 File → New Project,会进入新建工程向导。向导的第一步是选择“Create a new project”还是“Open an existing project”,新建时选择前者。随后 Ozone 会要求指定工程文件保存路径与文件名,例如 D:\work\stm32f407_ozone\f407_demo.jdebug。建议把 .jdebug 与工程源码、ELF 文件放在同一工程目录下,便于版本管理与路径引用。
向导中有一个容易被忽略但很重要的选项:是否在创建后立即连接目标。如果目标板尚未上电或探针未插好,可以先取消“Connect to target”,先把工程配置保存下来,之后再手动连接。这样能避免因连接失败导致向导中断、配置丢失。
二、选择设备:决定内存映射与下载算法
设备选择直接决定 Ozone 使用哪套内存映射、Flash 下载算法和复位行为。在向导的 Device 页面中,需要填写:
- Vendor:芯片厂商,如 ST、NXP、Infineon、Renesas 等;
- Device:具体型号,如 STM32F407IG;
- Core:内核类型,如 Cortex-M4;
- Endianness:字节序,ARM Cortex-M 通常为 Little Endian;
- Register Set:寄存器描述文件,用于外设寄存器视图。
如果列表中没有完全匹配的型号,可以选择同系列、同 Flash/RAM 容量的近似型号,但必须手动核对 Flash 起始地址、大小和 RAM 分布。例如 STM32F407IG 的 Flash 为 0x08000000 起 1 MB,SRAM 为 0x20000000 起 128 KB + CCM 64 KB。设备选错最典型的症状是:下载时提示 “Failed to program flash”,或程序下载成功但一运行就 HardFault。
三、配置调试探针:J-Link 接口与速率
在 Debugger 或 Target Interface 页面配置探针。常见参数如下:
| 参数 | 典型取值 | 说明 |
|---|---|---|
| Host Interface | USB | J-Link 通过 USB 连接 PC |
| Target Interface | SWD | 两线调试,占用引脚少 |
| Speed | 4000 kHz | 长排线或干扰大时降到 1000 kHz |
| Reset Type | Normal / Core | 决定复位时是否复位外设 |
| Connect Under Reset | 视情况勾选 | 引脚被复用或程序禁调试口时使用 |
SWD 只需 SWCLK、SWDIO、GND 和可选 RESET 四根线。若目标板供电独立,J-Link 的 VTref 必须接到目标板电源,用于电平参考;否则会出现“Cannot connect to target”或电平不匹配。速度不是越高越好:4 MHz 在短线、干净电源下稳定;若使用 20 cm 以上排线或板上噪声较大,建议先降到 1 MHz 建立连接,再逐步提高。
四、连接目标板:从“能识别”到“能停住”
点击 Target → Connect(或工具栏 Connect 按钮),Ozone 会依次执行:识别 J-Link 序列号 → 检测目标电压 → 通过 SWD 读取 IDCODE → 停止内核 → 读取寄存器。判断连接成功的依据是:状态栏显示 “Connected”,Console 窗口出现 J-Link 固件版本、目标电压(如 3.30 V)和 CoreSight ID。若失败,按以下顺序排查:
- 目标板是否上电,VTref 是否接好;
- SWDIO/SWCLK 是否接反或虚焊;
- 芯片是否处于低功耗模式或调试口被禁用;
- 尝试勾选 “Connect Under Reset”,并降低接口速度。
五、下载与复位运行:验证工程配置闭环
连接成功后,通过 File → Open 加载编译生成的 ELF 文件(如 f407_demo.elf),Ozone 会自动解析符号与源码路径。随后点击 Target → Download,Ozone 调用设备对应的 Flash 算法擦除并写入程序。下载完成后,点击 Target → Reset & Run,程序从复位向量开始运行。此时可观察:PC 是否停在 main 附近、RTT/Console 是否有输出、LED 或串口是否按预期动作。若下载报错,优先检查设备型号与 Flash 算法是否匹配;若运行异常,检查复位类型与启动模式引脚。
完成以上五步后,Ozone 工程就具备了可复现的调试基础:工程文件记录了设备与探针配置,目标连接验证了硬件链路,下载与复位运行验证了 Flash 算法与启动流程。后续的断点、变量监视、RTT 输出和性能分析,都建立在这一步成功连接的基础之上。