Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f10x_md.o

移植程序的报错解决

1、错误提示

Error: L6406E: No space in execution regions with .ANY selector matching tartup_stm32f10x_md.o(STACK).

在这里插入图片描述

2、原因分析

在移植FreeRTOS操作系统时,完成后最终编译提示了如下错误:
Error: L6406E: No space in execution regions with .ANY selector matching tartup_stm32f10x_md.o(STACK).

大致看了下这些英文报错提示,大概的意思就是说堆空间不够,于是就去查了下该芯片的数据手册,发现我的芯片确实是很少存储容量。

在这里插入图片描述

最大只能用到20k的SRAM。

3、解决方法

.s 启动文件里面的堆栈大小默认可以不用修改。

在工程里面找到这个FreeRTOSConfig.h头文件,发现定义的堆大小确实是比我的芯片大了。

在这里插入图片描述
虽然使用的芯片有20K,但是实际上程序定义其它的变量也需要用到该内存,无法用到极限值,所以定义时需要根据工程实际情况来定义。

比如说,可以定义为15K,此时编译代码能通过则说明该大小空间没有问题,如果还是不行的话,继续改小该值直到能编译通过为止即可解决。


  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值