You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

瑞萨Synergy R7FS5D97E启动时MRS指令触发HardFault问题求助

HardFault异常(未定义指令)在瑞萨Synergy R7FS5D97E Cortex-M4上的排查与解决

问题现象

在瑞萨Synergy R7FS5D97E(Cortex-M4)评估板运行简单C测试代码,已基于官方资料完成示例项目、SDK及工具链搭建,通过Ozone调试器成功构建并烧录程序,但启动时触发HardFault异常,提示未定义指令,异常发生在R_BSP_RegisterProtectEnable函数执行MRS R1, PRIMASK指令时。

排查过程

  • 该MRS指令此前已成功执行约15次,排除硬件不支持的可能性
  • 追踪调用链:SystemInit(system_S5D9.c:171)→bsp_clock_init(bsp_clocks.c:150)→R_CGC_SystemClockSet(r_cgc.c:707)→r_cgc_system_dividers_set(r_cgc.c:2637),异常触发于该调用链中对R_BSP_RegisterProtectEnable/HW_CGC_HardwareLock的调用
  • 初步怀疑时钟配置问题(Ozone使用板卡默认设置),也考虑过手动搭建Conan+CMake项目时遗漏配置,但MRS指令仅为特殊寄存器值复制到通用寄存器,故障逻辑上不符合常理;此前在其他瑞萨Synergy板卡完成类似开发未遇此问题
  • 补充信息:异常出现在设置ICLK分频器和时钟源的分支中,此前调用R_BSP_RegisterProtectEnable时该指令执行正常,因此更倾向时钟配置问题,但初期不敢随意修改官方提供的代码

解决方法

修改bsp_clock_cfg.h中的内部时钟分频设置,将分频比从/1改为/2后,问题彻底解决。

原因分析

bsp_clock_cfg.h通常由瑞萨软件从XML配置自动生成,本次手动创建该文件时出现错误,分频比设置错误导致Flash指令预取与解码不同步,最终触发HardFault异常。

内容的提问来源于stack exchange,提问作者Xellos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:51:07