WCH沁恒单片机
直播中

123

9年用户 799经验值
擅长:可编程逻辑
私信 关注
[问答]

ch32v307使用STL中的数据结构,运行程序时数据一多就去进入HardFault_Handler怎么解决?

ch32v307 ,由于使用了一些STL中的数据结构,比如 vector,queue等等,程序运行时,少量数据还可以,数据一多就去进入HardFault_Handler。以前在STM32中也会出现类似问题,通过在stm32的ld文件中加大_Min_Heap_Size,问题得到解决。
而ch单片机的ld文件中我只看到了__stack_size,并没有找到_Heap_Size,不知道那里能设置一下Heap的大小?谢谢!
  

回帖(1)

李海洪

2022-10-17 10:07:35
您好,CH32V307 ld链接脚本中,没有明确定义heap堆的大小,按照其定义,动态数据段,除了stack占用的,剩下的都可用于heap。若你数据一多就进HardFault,那可能是RAM不够用了。不过我们CH32V307的FLASH和RAM大小都是可配置的,其中最大可配置成128K,你可以将RAM配置大一些。关于RAM大小的配置,可通过WCHISPTool工具进BOOT配置,同时要注意修改ld文件中RAM和FLASH的大小,如下图。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分