1.前言
在开发PHY6212的蓝牙时,遇到内存不足的问题,keil报错如下
****.axf: Error: L6220E: Execution region ER_IROM1 size (50640 bytes) exceeds limit
(49152 bytes). Region contains 88 bytes of padding and 1656 bytes of veneers (total
1744 bytes of linker generated content).
2.芯片的内存分布
数据书册的内存大小
3.解决办法
3.1 开放更多的RAM区
在main.c的hal_init()
的hal_pwrmgr_RAM_retention
增加RET_SRAM3和RET_SRAM4;
实际代码如下:hal_pwrmgr_RAM_retention(RET_SRAM0|RET_SRAM1|RET_SRAM2|RET_SRAM3|RET_SRAM4);//(RET_SRAM0|RET_SRAM1);
3.2 在keil配置中修改内存配置
在Linker界面去修改scatter_load.sct文件
修改红框内的数据即可,这样ram的大小就被提高到96K了,足足翻了一倍。