STM32 Keil5编译报错: Error: L6406E: No space in execution regions with .ANY......问题

STM32 Keil5编译报错: Error: L6406E: No space in execution regions with .ANY…的问题

出现这个问题的原因是程序过大,单片机Flash存不下了,主要有以下几种解决方案:
1、调整ROM空间大小来存放更多程序
2、调整Keil代码优化等级,等级越高编译出来的程序越小
3、优化代码,删掉一些不用的全局变量、全局数组释放空间
4、可能是Flash真的不够了,查下手册,看看Ram是不是真的用完了

ROM占用空间:Code + RO-data + RW-data
RAM占用空间:RW-data + ZI-data
01:Code 代表执行的代码,程序中所有的函数;
02:RO-data 代表只读数据,程序中所定义的全局常量数据;
03:RW-data代表已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量;
04:ZI-data代表定义了但未初始化的可读写数据,ZI英语是zero initial,就是程序中用到的变量并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量都赋值一个0,这些变量在程序运行时是保存在RAM中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值