Keil RealView MDK在链接时提示空间不够的解决方案总结 keil: Error: L6406E: No space in execution regions with

1、问题原因:程序编译后的FLASH和RAM容量大于芯片容量

2、解决办法:

1)在设置->Target->勾选Use microLib

2)在设置->C/C++->将优化选成Level 3

3)如果确认是RAM超了,可以将数组更改为CONST类型

4)修改链接脚本的方法有两种一种是直接修改分散加载文件,另一种是使用默认分散加载文件,这时仅需修改Project->Options->Target中的存储空间起始和大小。为了简单直观,本例中使用后者。在使用后者时,需要在Project->Options->Linker中将Use Memory Layout from Target Dialog前面的复选框勾上。然后在Project->Options->Target中修改存储空间中只读部分和可读写部分的起始和大小,一般来说加大只读部分大小(该部分存放程序中的指令),而减小可读写部分的大小(该部分存放堆栈、局部变量等)根据错误提示可知,只读部分空间最少需要加大0x86c bytes,总空间固定16KB,相应地需要减小可读写部分大小。

你可能感兴趣的:(嵌入式,C/C++)