编程, 调试

使用IAR Arm工具链开发和调试Zephyr RTOS

  • IAR
  • 7分钟阅读
<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >使用IAR Arm工具链开发和调试Zephyr RTOS</span>

Zephyr是近些年来兴起的一款开源、可扩展RTOS (Zephyr不仅仅是一个内核,还包含了强大的中间件),专为资源受限的嵌入式设备设计,支持多种CPU架构,提供完整的开发工具链和丰富的生态系统,越来越多MCU厂商积极拥抱Zephyr

本文主要介绍如何使用IAR Arm工具链开发和调试Zephyr RTOS

准备工作

使用IAR Arm工具链开发和调试Zephyr RTOS

按照Getting Started Guide — Zephyr Project Documentation安装好对应Zephyr SDK之后,Zephyr构建默认会使用GCC工具链:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-1

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-2

使用IAR Arm工具链构建需要配置对应的环境变量ZEPHYR_TOOLCHAIN_VARIANTiar,环境变量IAR_TOOLCHAIN_PATH为对应IAR Arm工具链安装路径:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-3

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-4

这样Zephyr构建会使用对应的IAR Arm工具链:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-5

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-6

IAR Embedded Workbench for Arm新建对应的调试工程,选择Externally built executable工程类型:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-7

按照readme_external_binary.txt里面的步骤配置对应的调试工程:

  • 添加对应的elf文件
  • 配置对应的芯片(Options > General Options > Target > Device)
  • 配置对应的调试器选项(Options > Debugger > Setup > Driver), 建议勾选Options > Debugger > Plugins里面Zephyr感知调试选项(需要在构建的时候使能CONFIG_DEBUG_THREAD_INFO选项)

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-8

然后就可以进行下载调试了,点击菜单栏中Zephyr的下拉列表可以查看对应Zephyr相关信息:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-9

当然也可以将对应Zephyr工程导入到IAR Embedded Workbench for Arm中进行构建和下载调试:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-10

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-11

更多信息,可以参考zephyr-board-samples/docs/compiling-debugging.md at main · iarsystems/zephyr-board-samples · GitHub

另外IAR Arm工具链集成的静态代码分析工具C-STAT也支持Zephyr静态代码分析:

China-learn-Development-and-debugging-Zephyr-RTOS-by-IAR-ARM-toolchain-12

更多信息,可以参考IAR C-STAT support — Zephyr Project Documentation

总结

本文主要以NXP FRDM-MCXA153开发板为例介绍了如何使用IAR Arm工具链开发和调试Zephyr,更多信息,可以参考对应链接或联系IAR中国。

 

参考文献:

  1. https://docs.zephyrproject.org/latest/develop/getting_started/index.html
  2. https://github.com/iarsystems/zephyr-board-samples/blob/main/docs/compiling-debugging.md
  3. https://docs.zephyrproject.org/latest/develop/sca/iar_c_stat.html
  4. https://www.zephyrproject.org/learn-about/
  5. https://docs.zephyrproject.org/latest/develop/toolchains/iar_arm_toolchain.html
  6. https://mypages.iar.com/s/article/Debugging-an-externally-built-executable-file?language=en_US
  7. https://www.iar.com/zh/blog/static-code-analysis-in-zephyr-build-safer-cleaner-code-with-iar-c-stat