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

使用IAR Arm工具链在GD32开发调试Zephyr RTOS 本文主要介绍如何使用IAR Arm工具链在GD32开发调试Zephyr RTOS。准备工作Zephyr 入门: 建议参考Getting Started Guide — Zephyr Project DocumentationIAR Embedded Workbench for Arm (9.70.1版本开始支持Zephyr)GD32 Zephyr 开发入门建议参考gd32_zephyr/gd32mcu_zephyr_get_start_cn.md at main · GD32-MCU-IOT/gd32_zephyr · GitHub使用IAR Arm工具链GD32 MCU Zephyr 开发入门指南1.开发环境操作系统Windows 11命令行工具Windows PowerShellIAR Arm 工具链EWARM 9.70.4硬件开发板GD32H759I_EVAL2.安装系统依赖首先安装 Zephyr 开发所需的系统依赖包可以通过Getting Started Guide — Zephyr Project Documentation 的步骤进行安装。关键组件CMakePythonDevicetree compiler的版本最小要求如下安装完成后可以通过如下命令进行验证# 验证 CMake 版本cmake --version# 验证 Python 版本py --version# 验证设备树编译器版本dtc –version3. 配置 Python 环境3.1 创建 Python 虚拟环境# 创建虚拟环境目录mkdir-p./zephyrproject# 创建虚拟环境 (指定使用3.12版本)py-3.12 -m venv./zephyrproject/.venv# 激活虚拟环境./zephyrproject/.venv/Scripts/Activate.ps13.2 升级 pip 并安装 west# 升级 pip 到最新版本pip install --upgrade pip# 安装 west 工具pip install west3.3 验证 west 安装# 验证 west 版本 west版本应为v1.5.0以上west –version4. 获取 Zephyr 源码4.1 初始化工作空间使用个人定制的 Zephyr 仓库初始化工作空间# 创建项目目录cd./zephyrproject# 使用个人仓库初始化 west 工作空间west init -m https://github.com/GD32-MCU-IOT/gd32_zephyr.git.4.2 导出Zephyr CMake包#导出 Zephyr CMake 包。这允许 CMake 自动加载构建 Zephyr 应用程序所需的样板代码。west zephyr-export4.3 更新所有模块# 更新所有 west 模块west update这个过程可能需要几分钟时间west 会下载 Zephyr 内核和所有必需的模块。5. 安装 Python 依赖# 进入 zephyr 目录cdzephyr# 安装 Python 依赖python-m pip install((west packages pip)-split )6. 安装 Zephyr SDK6.1 下载并安装 SDK# 下载 Zephyr SDK版本可能会更新请检查最新版本west sdk install如只需要下载安装Arm GCC工具链可以使用以下命令west sdk install -t arm-zephyr-eabi7. 环境设置每次重新打开powershell进入开发目录时需要设置 Zephyr 环境# 激活虚拟环境./zephyrproject/.venv/Scripts/Activate.ps18. 验证安装8.1 构建示例项目# 进入 zephyr 目录cd./zephyrproject/zephyr# 构建 Hello World 示例以 gd32h759i_eval为例west build -p always -b gd32h759i_eval samples/hello_world9. 使用IAR工具链进行编译9.1 配置IAR Arm工具链# 配置工具链为IAR$Env:ZEPHYR_TOOLCHAIN_VARIANTiar# 配置IAR工具链安装路径$Env:IAR_TOOLCHAIN_PATHC:\iar\ewarm-9.70.4\arm9.2 使用IAR Arm工具链构建示例项目# 构建 Hello World 示例以 gd32h759i_eval为例west build -p always -b gd32h759i_eval samples/hello_world10. 使用IAR工具链进行调试在IAR Embedded Workbench for Arm新建对应的调试工程选择Externally built executable工程类型按照readme_external_binary.txt里面的步骤配置对应的调试工程:添加对应的elf文件配置对应的芯片(Options General Options Target Device)配置对应的调试器选项(Options Debugger Setup Driver), 建议勾选Options Debugger Plugins里面Zephyr感知调试选项(需要在构建的时候使能CONFIG_DEBUG_THREAD_INFO选项)然后就可以进行下载调试了点击菜单栏中Zephyr的下拉列表可以查看对应Zephyr相关信息11. 使用IAR工具链进行静态代码分析另外IAR Arm工具链集成的静态代码分析工具C-STAT也支持Zephyr静态代码分析如以下命令west build -p always -b gd32h759i_eval samples/hello_world -DZEPHYR_SCA_VARIANTiar_c_stat更多信息可以参考IAR C-STAT support — Zephyr Project Documentation总结本文介绍了在windows上如何使用IAR Arm工具链在GD32开发调试Zephyr RTOS。在Linux上同样可以使用相似的步骤使用IAR Arm工具链开发调试Zephyr RTOS。参考文献About the Zephyr Project – Zephyr ProjectGetting Started Guide — Zephyr Project DocumentationZephyrZepIAR Arm Toolchain — Zephyr Project DocumentationMy PagesGitHub - GD32-MCU-IOT/gd32_zephyr: gd32_zephyr is a downstream repo of zephyrproject-rtos/zephyr with gd32mcu support · GitHubIAR C-STAT support — Zephyr Project Documentation在Zephyr中进行静态代码分析借助IAR C-STAT构建更安全、更高质量的代码