# micropython-RA4M2MINI **Repository Path**: wth_iw0/micropython-RA4M2MINI ## Basic Information - **Project Name**: micropython-RA4M2MINI - **Description**: RA4M2MINI的micropython移植 - **Primary Language**: C - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MicroPython Port for Renesas RA4M2 (Minimal) 本项目是针对 **瑞萨 RA4M2 (Cortex-M33)** 系列微控制器的 MicroPython 固件移植实现。基于官方 `minimal` 移植框架,成功打通了内核与底层硬件的指令链路。 **原始 README**: 见 README_UPSTREAM.md > **项目状态**:已完成内核初步适配及核心外设(PWM)驱动开发,通过多项健壮性实验验证。 e2studio生成的固件位于 `micropython\lib\RA4M2_MINI` 路径 本项目核心源码位于 `micropython\ports\RA4M2_minimal` 路径 ## 核心亮点 - **内核版本**:基于 MicroPython v1.20+ 核心。 - **硬件外设**:实现了基于 **GPT (General Purpose Timer)** 的硬件 PWM 驱动,支持动态频率与占空比调节。 - **Bug 修复**:针对瑞萨 FSP API 在状态获取上的滞后问题,在 C 语言底层引入了 `current_period` 缓存机制,确保了 PWM 调制的绝对物理精度。 - **性能验证**:完整通过了 VM 算力、内存堆栈边界、以及 QSTR 符号表查找等多维度压力测试。 ## 移植验收实验 (Experimental Validation) ### 1. 虚拟机 (VM) 指令集验证 通过复杂位运算组合验证 Cortex-M33 指令集适配完整性。 - **测试指令**:`(0xAA << 8) | 0x55` 与 `(val ^ 0xFFFF) & 0x0F0F` 逻辑组合。 - **实验结果**:`VM Logic Check: True` (计算结果 `0x050A` 与理论一致)。 ### 2. 堆内存与对象管理 (Heap Integrity) 验证 `main.c` 中分配的 Heap 区物理读写及对象头寻址。 - **实验内容**:创建包含列表、元组、字符串的复合对象,并验证物理地址唯一性。 - **实验结果**:`Heap Integrity: True` (证明 GC 与内存分配算法工作正常)。 ### 3. 符号表 (QSTR) 与哈希检索 验证符号查找系统在 RA4M2 上的实现。 - **实验内容**:通过字典推导式动态生成键名并进行哈希检索。 - **实验结果**:`QSTR Lookup: True`。 ### 4. 堆栈边界探测 (Stack Boundary Probe) 通过经典的 **Ackermann(1, 1)** 递归函数进行压力测试。 - **实验结果**:探测到当前 Minimal 版在默认链接脚本下的栈深度限制(触发系统复位)。 - **工程结论**:该实验成功定义了系统当前的物理运行边界,为后续优化 `.ld` 文件的栈空间分配提供了数据支撑。 ## 硬件连接与测试 - **开发板**:RA4M2 核心板 - **PWM 引脚**:`P111` (GTIOCA) - **验证工具**:万用表 (DC 20V 档位) - **实测数据**:设置 50% 占空比时,引脚电压稳定输出为 **1.65V**。 ## 如何编译 ```bash cd ports/RA4M2_minimal make ``` ### 固件输出路径 (Output Path) 编译成功后,生成的固件位于以下目录: - **路径**: `micropython/ports/RA4M2_minimal/build/firmware.hex` (或 `firmware.bin`) - **文件說明**: - `firmware.elf`: 包含调试信息的二进制文件。 - `firmware.hex`: 标准 Intel Hex 格式,适用于大多数烧录器。 ### 4. 烧录建议 (Flashing) 推荐使用以下工具将固件烧录至 RA4M2: - **Renesas Flash Programmer (RFP)**: 用串口线连接单片机与电脑,选择 `firmware.hex` 进行烧录。