问题:
添加了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不要超过自己的芯片)

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

被折叠的 条评论
为什么被折叠?



