IAR编译错误:unable to allocate space for sections/blocks with a total estimated minimum size of 0x504c
用IAR编译工程时报了奇怪的错误:
在网上查找过后发现时内存不够导致的,查阅手册后,发现使用的单片机的芯片SRAM为12kb,对应的最大空间正是报错里的0x3000 bytes。查阅网上的方法是更改Option–C/C++ compile–Optimizations中的Level,改为high。但尝试后无果。
然后想到既然是内存不够导致的,应该就是有定义的很大的数组占用了空间。于是打开.map文件,发现有一个自己定义的并没有很大用处的数组,但是却占用了很大的空间。这个数组的大小正好导致内存不够。
将这个数组删掉,再次编译后就没有报错了。主要原因还是单片机的内存不够,定义时要精打细算。