错误描述:
…\OBJ\UCOSII-1.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.data).
主要原因为内存不足
解决方式为:
修改malloc.h文件下关于mem1内存参数的设定,将MEM1_MAX_SIZE参数从原本的40*1024改为合适的大小即可,我将这个参数改成了10 *1024,完美运行。
//mem1内存参数设定.mem1完全处于内部SRAM里面.
#define MEM1_BLOCK_SIZE 32 //内存块大小为32字节
#define MEM1_MAX_SIZE 40*1024 //最大管理内存 40K
#define MEM1_ALLOC_TABLE_SIZE MEM1_MAX_SIZE/MEM1_BLOCK_SIZE //内存表大小
//mem2内存参数设定.mem2的内存池处于外部SRAM里面
#define MEM2_BLOCK_SIZE 32 //内存块大小为32字节
#define MEM2_MAX_SIZE 1 *32 //因为精英版没有外扩内存,故这里设置一个最小值
#define MEM2_ALLOC_TABLE_SIZE MEM2_MAX_SIZE/MEM2_BLOCK_SIZE //内存表大小