关注+星标公众号,不错过精彩内容
素材来源 | 瑞萨 Github
前几年用过瑞萨MCU开发工具e2 studio的朋友,应该都知道那个时候这款开发工具还不是那么的成熟,这几年e2 studio升级的速度是肉眼可见的增长,特别是工具链这一块,变化很大!
FSP 6.6.0 及后续版本对 GCC 支持的更改
从 FSP 6.6.0 版本开始,GCC 工具链不再随 e2 studio / FSP 平台安装程序集成,且 GCC 不再默认安装。目前仍支持使用 FSP 配合 GCC 工具链,如果需要使用 GCC,则可以在平台安装程序的“自定义安装”选项中,从互联网下载 GCC 并将其作为整体安装过程的一部分进行安装。或者,也可以将 e2 studio 链接到用户电脑上已安装的 GCC 工具链。
注意:LLVM 工具链 / 嵌入式 Arm 工具链 (ATfE) 仍将继续集成到 e2 studio / FSP 平台安装程序中。
FSP 6.3.0及后续版本对LLVM优化级别的更改
在 FSP 6.3.0 及更高版本中,当使用 LLVM 工具链时,编译器优化级别默认设置为 -Os,适用于 RA4/RA6/RA8 MCU,而以前的 FSP 会使用 -O2。这是因为与 LLVM 一样,-Os 会产生类似于 GCC 的 -O2 选项的优化平衡。
注意,对于 RA0/RA2 MCU,由于通常将内存大小保持在最小是首要任务,因此默认选择 -Oz 优化级别。

MCUboot与安全功能更新
安全启动引导方案在本版本中得到了显著增强:
MCUboot升级至2.4版本,新增了多项解决方案模板:为RA2非Ocrypto授权设备添加了基于mbedTLS的单镜像引导加载程序模板;为e50d和e51a设备新增了带TrustZone支持的MCUboot模板;同时移除了引导加载程序模板中的次级应用项目,改用显式的trailer区域。
加密与安全方面,AES-GCM多部分操作现在在所有支持的MCU上实现了硬件加速;RSIP-E11A和RSIP-E31A CM驱动器的代码体积得到缩减;ECDH secp521r1与KDF-SHA 512的共享密钥生成在RSIP-E51A和RSIP-E50D PM驱动上获得支持。此外,MCUboot签名脚本已修改为将Python pqc库设为可选依赖,未使用ML-DSA密钥的用户无需安装该库。
最新V6.6.0修复多个BUG
TrustZone项目中的SDRAM总线错误问题得到解决,这对使用TrustZone安全隔离且外扩SDRAM的项目至关重要。
IIC主机停止条件被意外清除的问题修复,解决了IIC中断服务程序延迟时的通信可靠性隐患。
r_uarta传输中断在嵌套中断条件下丢失的问题得到修复。
网络驱动方面,修复了lwIP中 gratuitous ARP缺失的问题,以及网络在获得有效IP地址之前就被报告为up的问题。
修复了RA4E1/RA6E1设备中SCE Protected Mode在可配置栈中错误显示的问题,以及RA8E1/RA8E2中RSIP Protected Mode的类似显示错误。
建议
优先评估LLVM/ATfE的迁移可行性。 GCC工具链从默认集成中移除是一个明确的信号。如果项目尚未绑定特定的GCC扩展特性,建议在新项目中直接采用LLVM/ATfE工具链,以保持与瑞萨工具链演进方向的一致性。已有项目可以在v6.6.0环境下用两种工具链分别构建,对比代码体积和运行效率后再做决策。
升级前务必完成引脚配置的版本快照。 鉴于历史上多次出现升级后引脚分配丢失的情况,在升级FSP版本之前,应导出当前项目的引脚配置摘要(或截图保存Pins标签页),升级完成后逐项核对。对于RA6T2和RA0E1/E2/L1项目,这一步尤为重要。
TrustZone项目应优先验证SDRAM初始化流程。 v6.6.0修复了TrustZone项目中SDRAM使用的总线错误问题。如果你的项目正好受此问题影响,升级后建议编写一个简单的SDRAM读写测试用例,在安全和非安全上下文中分别验证访问行为是否符合预期。
使用MCUboot的用户需要关注模板结构调整。 引导加载程序模板中移除次级应用项目、改用显式trailer区域,意味着已有的MCUboot项目结构可能需要适配。建议在非生产分支上先完成一次完整的MCUboot + 应用镜像的构建和签名流程验证,确认镜像布局和验证逻辑正常后再合并到主分支。
安装时根据实际需求选择GCC处理方式。 如果团队工作流中GCC仍不可或缺,在安装e² studio时务必勾选Custom Install中的GCC选项,或者提前在开发机上安装好GCC并配置好路径。不要在默认安装后才发现缺少编译器而返工。
------------ END ------------