学习记录10-L6406E报错处理

前言

问题:在编译时报如下错误

..\OBJ\LCD.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.constdata).
..\OBJ\LCD.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd_init.o(i.LCD_Init).
..\OBJ\LCD.axf: Error: L6406E: No space in execution regions with .ANY selector matching stm32f10x_gpio.o(i.GPIO_Init).


一、治标

1.将Optimization 等级改为 3级(Level 3)

主要是优化编译程度,但是能优化的大小有限(64K 大小能优化减少1K左右)

学习记录10-L6406E报错处理_第1张图片

2.更改堆容量和栈容量

KEIL 提示L6406E L6407E的解决方法_sramin l6407e-CSDN博客

二、治本

1.查看自己代码的大小

如果为移植的代码,在可以跑的通的文件内,找到.map的文件,用记事本打开

最下面有总代码的大小,也有每个文件的大小。找到内容比较大的文件看看能不能优化

学习记录10-L6406E报错处理_第2张图片

2.优化自己的代码

减少了不必要的代码,空间容量自然就够了(废话,谁不想2K的代码实现2M的功能)

3.换更大容量的芯片

需求高,必要的投资也不能少,不然就只能砍需求了(也是提预算的方法?)

你可能感兴趣的:(学习,stm32,嵌入式硬件,单片机)