单片机
返回首页

keil5出现 Error: L6406E: No space in execution regions with .ANY selector matching queue.o(.bss). 的原因总结

2025-09-06 来源:cnblogs

我在使用KEIL5做程序移植时,编译后出现了上面的报警,经过一顿搜索,终于解决了问题。特意来此记录。


首先,此次移植原程序是在stm32f103VET6这种大容量芯片移植到stm32f103RBT6这块中等容量的芯片。


stm32f103VET6:FLASH size  512kb.         RAM : 64Kb

stm32f103RBT6   FLASH size  128Kb          RAM:20Kb

 

因为我本次移植了FreeRtos,所以出现上图中的错误主要是两个原因:

1.FreeRtosConfig.h文件中

  //系统所有总的堆大小
  #define configTOTAL_HEAP_SIZE                    ((size_t)(18*1024))   

上面的这个参数设置过大,之前是36*1024,导致报错。

 

2.使用了malloc

出现上面的报错后,我看到一篇文章提到了malloc的原因,但是他解决的办法一笔带过,只能靠猜。我先是把所有用到malloc的函数都屏蔽了。编译通过。

https://blog.csdn.net/I_LOVE_MCU/article/details/108920413

但是想想不用malloc总不行,偶然间看下提到malloc导致报错的博客,终于知道原因。

#define MEM1_MAX_SIZE            (7*1024)                                        //最大管理内存 7K

之前是20*1024,一点点的尝试改下,最后通过编译。


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 锂离子/锂聚合物USB电池充电器

  • 6晶体管H桥

  • AVR LCD温度计—LM35

  • AVR PC步进电机驱动器

  • AVR温度计TCN75

  • JDM2 PIC 18F 编程器

    相关电子头条文章