1. MDK‑ARM (V5.40+) 实施方案
1.1 DFP 芯片支持包两种安装方式
方式一:直接双击 SDK package 目录 Geehy.G32R5xx_DFP.x.x.x.pack,选择 MDK Packs 目录完成安装; 方式二:打开 MDK Pack Installer → File → Import,选择 pack 文件导入安装。
注意:必须先安装 DFP 包,否则新建工程找不到 G32R501 芯片型号。
1.2 工程操作完整流程
- 打开示例工程:打开
.uvprojx工程文件; - 新建工程:Project‑New uVision Project,选定 G32R501 器件型号;
- 添加源文件:Manage Project Items → Add Files 添加.c/.h/.s;新建源文件通过 Add New Item;
- 配置:C/C++ 选项卡配置头文件 Include Paths、预定义宏;Misc Controls 配置 mcu 内核参数;
- 优化等级:全局 C/C++ 标签页 Optimization;单文件右键 Options for File 设置;函数使用 attribute 属性;
- 编译:F7 Build Target;
- 下载调试:
- Geehy‑Link:Debug 选择 Geehy‑Link,Utilities 标签加载下载脚本;F8 下载;
- J‑Link:工程目录放入
r501_dbg.ini、JLinkSettings.JLinkScript(SDK 路径SDK/device_support/g32r501/common/Jlink/),Debug 页加载脚本,删除 Utilities 下 Init File,点击 Debug 进入调试。
重要提醒:J‑Link 和 Geehy‑Link 使用的 r501_dbg.ini 文件不是同一个文件,不能混用。
资料获取:AN1126_G32R501 IDE与工具链使用说明
2. IAR EW for Arm (9.60.2+) 实施方案
2.1 芯片 AddOn 安装
运行G32R5xx_AddOn_vx.x.x.exe,管理员权限运行,选择 IAR 安装根目录,完成芯片支持包安装;安装后新建工程器件列表出现 Geehy‑G32R5 系列器件。
2.2 工程操作完整流程
- 打开示例工程:打开
.eww工作区文件; - 新建工程:Project‑Create New Project,Tool chain 选 Arm;General Options‑Target‑Device 选定 G32R501 型号;
- 添加源文件:工程右键 Add‑Add Files;
- 配置:C/C++ Compiler‑Preprocessor 配置头文件路径、预定义宏;
- 优化等级:全局 Optimizations 标签;单文件右键 Options 勾选 Override inherited settings;单函数使用
_Pragma("optimize=none"); - 编译:F7 Make;
- 下载调试:
- Debugger‑Setup 选择仿真器驱动 CMSIS‑DAP/J‑Link;
- Extra Options 启用命令行,填入 DCS 密钥 macro_param 参数、设置 boot 启动地址;
- Ctrl+D:Download and Debug 一键下载调试。
IAR 常见故障:Memory 窗口 Flash 内容不更新 故障原因:ddf 文件 Flash 区域 AccType=R 只读; 三个可选修复方案(任选其一):
- 菜单 CMSIS‑DAP → Disable Debugger Cache;
- Memory Configuration 中将 Flash Cache Type 修改为 RAM;
- 修改 ddf 文件,把 Flash 内存区域 AccType 修改为 RW。
3. Eclipse(4.35+ LLVM_For_ARM_Toolchain)实施方案
3.1 前置环境部署
- 下载 ARM LLVM‑ET‑Arm‑19.1.1‑Windows‑x86_64,解压,将 bin 目录加入系统 PATH;
- 准备 arm‑none‑eabi‑gdb.exe(文档示例版本 14.2)。
3.2 工程配置步骤
- 导入已有工程:File‑Import‑General‑Existing Projects into Workspace;
- 新建工程:New C Project,Toolchains 选择 Arm Cross GCC;
- 添加源文件:Import‑File System 导入源文件;
- 编译配置:
- C/C++ Build 选择 External builder;
- Target Processor 填写编译 flag
--target=armv81m‑none‑eabi -mcpu=cortex‑m52; - Preprocessor 配置宏;Includes 配置头文件搜索路径;Linker General 添加
.ld链接脚本;Libraries 添加库文件; - Toolchains 配置 C compiler=clang,C++ compiler=clang++;objcopy/objdump/size 使用 llvm 工具;
- Post‑build steps 添加命令,编译输出 bin、dump 文件;
- 编译:Build Project;
- J‑Link 调试配置:新建 GDB SEGGER J‑Link Debugging 配置;Main 选择 elf;Debugger 填写芯片名称、gdb 可执行程序;Startup 标签 Initialization Commands、Run/Restart Commands 两处全部写入 DCS 解密密钥,设置 SP、PC 复位启动。
Geehy‑Link 在 Eclipse 环境依赖 pyocd,见下一节。
4. pyocd 适配 G32R501 完整实施方案
适用:Geehy‑Link (WinUSB),开源无 IDE 授权场景
4.1 Windows 部署流程
- 安装 Python,添加系统 PATH;
- pip 安装 pyocd;
- 修改 pyocd 源码:增加 Star‑MC2 内核支持、注册 G32R501 芯片;SDK 目录下
target_G32R501xx.py、pyocd_user.py拷贝到 pyocd 对应目录; - 校验:
pyocd list --targets确认 g32r501xx 存在。
4.2 Ubuntu 部署流程
- 安装 python3、pip、python3‑venv,创建虚拟环境;
- 激活 venv,pip 安装 pyocd;
- 配置 udev 规则,新建
99‑pyocd.rules,VID=314b 设置 MODE=0666,重载 udev; - 修改 pyocd 源码适配 G32R501;
pyocd list确认识别 Geehy‑Link。
4.3 命令行使用
- 工作目录放置 pyocd.yaml 配置文件、pyocd_user.py;
- 执行
pyocd commander进入交互终端;支持 erase 擦除、rw 读写内存等操作。
4.4 Eclipse 集成 pyocd 仿真
- Eclipse Window‑Preferences‑MCU‑Global pyOCD Path,指定 pyocd.exe 脚本路径;
- Debug Configurations 新建 GDB PyOCD Debugging;
- Main 选择工程与 elf;Debugger:选择 Geehy CMSIS‑DAP 仿真器、target 设置 G32R501xx,Reset type=Software (SYSRESETREQ),Other options 填入
--script=pyocd_user.py绝对路径;指定 arm‑none‑eabi‑gdb; - Startup 两处命令框填入 DCS 密钥、SP/PC 启动配置;Apply 保存。
Ubuntu 平台 bug:Eclipse 直接启动 pyocd 调试退出后芯片无法运行。解决方案:终端手动启动pyocd gdbserver,Eclipse 远程连接外部 gdbserver。 双核仿真配置参考文档《AN1128_G32R501 双核仿真指导手册》,本笔记不覆盖。
5. 迁移项目通用实施步骤(从 Txx320F28004x 迁移)
- 硬件确认:确认 R5xx SoC 外设资源,核对 CFGSMS 配置 ITCM/DTCM/SRAM 大小;
- 开发环境部署:安装 IDE,安装芯片支持包 DFP/AddOn,准备仿真器;
- 代码迁移:
- 核对全部变量数据类型,对照数据字节表修正 short/int/long 等类型;
- 替换
#pragma CODE_SECTION为__attribute__((section())); - 汇编代码按照目标 IDE 语法重写;
- 链接脚本替换:使用 G32R501 对应格式 sct/icf/ld,禁止复用 Txx320F28004x 的 CMD;
- 工程配置:头文件路径、宏定义、编译 flag、优化等级;
- 调试前置:配置 DCS 解密密钥;
- 编译、下载、调试,验证业务逻辑。
55