HC32F460的Flash连续编辑功能用法

 时间:2026-02-14 13:39:11

1、在工程中写好flash编程代码,硬件仿真全速调试后,发现存储区乱码,汇编指针跑飞。

HC32F460的Flash连续编辑功能用法

HC32F460的Flash连续编辑功能用法

HC32F460的Flash连续编辑功能用法

2、查阅资料后知道使用连续编辑函数"EFM_SequenceProgram"时,需要占用flash总线,从而不能读取flash里的指令。

HC32F460的Flash连续编辑功能用法

3、仿真单步运行后,发现运行指针从"EFM_SequenceProgram"函数中的"EFM_ClearFlag"处开始跑飞。

HC32F460的Flash连续编辑功能用法

4、由于运行跑飞,而不是代码优化导致的问题。在请求了技术支持后得出,“EFM_SequenceProgram”不能在flash中运行。那么只能在RAM中运行了。

下图为map中函数地址,都在flash上。

HC32F460的Flash连续编辑功能用法

5、解决方法有两个:

1、将代码全部放在ram上运行;

2、将与“EFM_SequenceProgram”相关的函数放到RAM中运行

个人选择第2个方案

6、需要在RAM上申请一个区域作为函数运行区

在“工程\Objects”下修改.sct文件

在“RW_IRAM1”中申请区域“*.o(RAMCODE)”

HC32F460的Flash连续编辑功能用法

7、工程中使用前修改配置“魔法棒-Linker”,取消“Use Memory Layout form Target Dialog”,“Scatter File”中选择修改的.sct文件

HC32F460的Flash连续编辑功能用法

8、在需要调用的函数前使用“__attribute__((section("RAMCODE")))”,并将其内部其他调用函数前均添加“__attribute__((section("RAMCODE")))”。

HC32F460的Flash连续编辑功能用法

HC32F460的Flash连续编辑功能用法

9、查看.map,可以看到函数地址都位于ram区域了

HC32F460的Flash连续编辑功能用法

10、仿真全速运行调试后,发现系统运行正常。

HC32F460的Flash连续编辑功能用法

  • FLASH 翻转动画
  • WPS如何设计蝴蝶卡通简笔画绘本插图
  • 如何自制鼠标光标
  • 颗粒归仓的画怎么画
  • wps添加动画效果怎么设置?
  • 热门搜索
    数学手抄报内容 元宵节手抄报 端午节手抄报大全 爱国的手抄报 反邪教手抄报 防溺水手抄报大全图片 肺结核手抄报 英语手抄报图片 四年级手抄报 手抄报模板简单又漂亮