痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)

痞子衡主导的"学术"项目 《RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计》 v1.0 版发布近 4 个月了,部分客户已经在实际项目开发调试中用上了这个超级下载算法,目前反馈还可以,但这个超级下载算法远未到成熟状态,痞子衡正在策划 v2.0 版本。

  • RT-UFL v1.0下载地址: https://github.com/JayHeng/RT-UFL/archive/refs/tags/v1.0.zip
超级下载算法 RT-UFL v1.0 版本主要针对 Segger J-Link 调试器,开发测试也都是在 J-Link Commander 和 J-Flash 软件下进行的,但其实它也适用各大常用 IDE,前面痞子衡分别介绍了超级下载算法在 MCUXpresso IDE / IAR / MDK 下的使用,但如果我们只有一个程序可执行文件或镜像文件,没有对应完整源代码工程,还能不能愉快地在线调试?当然可以!今天我们来聊聊它在一个类 IDE 神器软件 Segger Ozone 下的使用:
一、Segger Ozone简介
【痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)】Ozone 是 Segger 公司出品的一款配套 J-Link 仿真器使用的应用程序调试与性能分析软件,其界面风格跟一般的 IDE 很像,能够提供 IDE 下所支持的全部调试功能(单步,断点,看反汇编,查寄存器,查变量,查内存等),并且还提供更高级的性能分析功能(函数调用追踪,变量值实时采样,功耗测量等)。
Ozone 仅以常见 IDE 生成的可执行文件(.elf、.axf、.out) 或镜像文件(.hex、.srec、.bin)为输入源,支持的工具链 /IDE 包含 GCC、Clang、Keil MDK、IAR 等,简单说 Ozone 相比 IDE 除了不能编译链接源代码外,其他方面跟 IDE 一样。
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

二、准备测试环境
现在需要准备好测试环境,包含必要的软件和硬件,痞子衡的环境如下:
  • 开发调试环境: Segger Ozone v3.24g,点此下载
  • 软件开发包: SDK_2.10.0_EVKB-IMXRT1050,点此下载
  • 软件驱动: J-Link driver v6.86f,点此下载
  • 硬件工具: J-Link Plus调试器
  • 硬件开发板: MIMXRT1050-EVKB (Rev.A1)
上述软件环境里,J-Link 软件驱动、Ozone 版本、SDK 软件包版本之间没有明确依赖关系。J-Link 软件驱动也不是一定限制在 v6.86f,只是超级下载算法 v1.0 是在这个版本下详细测试的,其他 J-Link 版本也可能适合,具体需要进一步测试。
三、在Segger Ozone下使用步骤
3.1 将超级下载算法包打进J-Link驱动 第一步其实跟 Ozone 无关,因为是基于 J-Link 的超级下载算法,所以要给 J-Link 软件驱动先打个更新包,具体参照 《超级下载算法RT-UFL v1.0发布,附J-Link下安装教程》 一文。
  • Note:痞子衡将 J-Link 软件驱动安装在了 C:\tools_mcu\SEGGER\JLink_V686f。
3.2 为Ozone指定包含超级下载算法的J-Link驱动 然后我们需要指定 Ozone 去使用包含超级下载算法的 J-Link 驱动,在 \SEGGER\JLink_V686f 目录下,有一个名为 JLinkDLLUpdater.exe 的小工具,双击这个工具,便可看到其搜索到了当前 PC 环境下安装的 IDE 列表,有我们正在使用的 Ozone,勾选上 Ozone 便能完成 J-Link 驱动的指定。
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

3.3 准备一个SDK工程可执行文件/镜像文件 现在我们需要一个 IDE 工程,这里我们直接打开 \SDK_2.10.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky 工程,注意将工程切换到 flexspi_nor build,即代码 XIP 执行版本,编译链接 led_blinky 工程得到可执行文件或者镜像文件。
  • Note: 检查一下 IDE 工程里的 Flash 启动头(evkbimxrt1050_flexspi_nor_config.c)是否与板卡上的实际 Flash 型号相匹配。
如果给 Ozone 提供的是镜像文件(.hex、.srec、.bin),仅能从汇编代码以及内存、寄存器窗口去调试;如果给 Ozone 提供的是可执行文件(.elf、.axf、.out),则调试体验更丰富,可以查看源 C 代码以及变量,推荐使用可执行文件在 Ozone 下去调试。注意在 IDE 里生成可执行文件时,需要勾选生成调试信息,不同 IDE 下设置不同:
IAR 工程选项里 Linker / Output 设置里勾选 Include debug information in output:
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

Keil 工程选项里 Output 设置里勾选 Debug Information:
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

3.4 打开Ozone选择合适的超级下载算法 首次打开 Ozone 会弹出工程向导,需要设置 Device,这里就是设置超级下载算法代号(工程向导里不设置的话,后面在菜单栏 Tools / J-Link Settings 里随时可更改),本次测试我们需要的是 MIMXRT1050_UFL_L1 算法。选定下载算法后,再选择可执行文件便进入 Ozone 主界面。
  • Note: 超级下载算法具体代号详见 C:\tools_mcu\SEGGER\JLink_V686f\JLinkDevices.xml 文件,代号后缀 _L0 适用 QSPI 和 Octal Flash,代号后缀 _L1/L2 适用 Hyper Flash。
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

3.5 确保板卡处于Flash启动模式,开始下载调试 将板卡供上电,确保板卡处于 NOR Flash 启动模式(Boot Mode 以及 Boot Cfg 要设置正确)。再将 J-Link 仿真器连接上板卡,点击 Ozone 菜单栏 Start Debug Session / Download & Reset Program 进行下载调试就可以了。
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
痞子衡嵌入式(超级下载算法RT-UFL|痞子衡嵌入式:超级下载算法RT-UFL v1.0在Segger Ozone下的使用)
文章图片

    推荐阅读