ucosIII+Fatfs MDK编译内存不足

使用正点原子的stm32mini板,按照原子的教程先移植好ucosIII,使用正常,移植好Fatfs,只跑fatfs,也正常,但两者一起使用编译,就出问题了。


MDK编辑器件报错,内存不足。为了查看是什么文件占用了这么大内存,我更换了大内存device,编译成功后查看 .map文件



    Total RO  Size (Code + RO Data)                42160 (  41.17kB)
    Total RW  Size (RW Data + ZI Data)             52256 (  51.03kB)
    Total ROM Size (Code + RO Data + RW Data)      42492 (  41.50kB)

原子的mini板用的是stm32f103rct6,sram为48k,而此处的RW Size为51.03K,超了。继续查看.map文件,发现

       300         30          0         20      38080       4873   malloc.o
       144         16          0          0          0       1869   misc.o

主要是malloc.c中的 
//ÄÚ´æ²ÎÊýÉ趨.
#define MEM_BLOCK_SIZE			32  	  						
#define MEM_MAX_SIZE			35*1024  						
#define MEM_ALLOC_TABLE_SIZE	MEM_MAX_SIZE/MEM_BLOCK_SIZE 	
太占用内存了。

因而我将malloc的内存池改小点,便可以编译成功了。

通过对比原子的综合例程,发现,原子的综合例程也占用了sram 44.80k,我的工程与其的主要SRAM占用区别在于系统,原子用的为UCOSII,我的工程为UCOSIII,UCOSII系统文件所用SRAM较小,而UCOSIII的几个文件的SRAM占用较大,因而导致了超出48K。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值