keil报错No space in execution regions with .ANY selector matching

文章讲述了在项目中集成LoRa后遇到的内存空间问题,通过定义通信选择来节省空间。作者发现Keil编译器报‘Nospaceinexecutionregions’错误,原因是ROM和RAM大小被限制。通过修改这些区域的大小,成功解决了编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

添加了lora之后出现如下

思路:

于是把Lora的设置成选择也就是#define COMM_LORA #ifdefine COMM_LORA

这样既可以保留源代码所占空间,又可以屏蔽使用

然后查看能运行的部分所占flash和ram所占大小

查看方法双击工程文件名,进入.map,滑到最后

SRAM是RAM,FLASH是ROM

或者是编译可执行

占用的 flash =Code + RO-data + RW-data
占用的 ram = RW-data + ZIdata

然后对比数据手册

我的芯片的SRAM是4k,FLASH是32k所以并没有超过范围,就换个思路

看到了这篇帖子keil编译报错:No space in execution regions with .ANY selector matching

然后发现

这里的rom和ram都被被限制了大小

解决问题:

修改一下大小,ok解决

具体修改如图,计算方式:ram 0x5000=5*16^3=20 KB(注意总flash不要超过自己的芯片)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值