STM32移植USB库和FATFS文件系统后占用ram过大问题的处理

在STM32F103C8项目中,移植USB库和FATFS文件系统导致RAM占用超过20K限制。通过分析map文件发现memory.c中的4K数据缓冲区定义为32位,实际仅用作8位。将数据类型改为uint8_t并调整函数参数后,RAM占用降至14K,程序仍能正常运行和写入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32移植USB库和FATFS文件系统后占用ram过大问题的处理

近期在做一个小项目,需要将获取的数据储存为文件后以文件系统的形式储存,然后作为一个小u盘直接拷贝到电脑上查看
作为u盘和FATFS文件系统,有现成的库可以移植,具体过程我就不过多阐述,如果有需要可以私信我我把他们汇总一下描述下。
主要是移植成功后遇到一个问题,就是整体程序占用空间太大了,芯片我计划用的是STM32F103C8系列,它的ram只有20K,但是程序编译后整个ram占到了26K,超过了这个系列的空间,但是如果要换大一点的芯片又太贵了,心疼肉钱,于是我就看了一下有没有什么地方可以精简。
查了一下map文件,发现主要是这个memory。c占用的最多,下面这个图片是改后的,改之前是16K
在这里插入图片描述
所以我就查了一下这个文件,发现主要是在里面定义了数据缓冲区,由于我用的是flash,一个扇区是4096byte,但是4k远远不到上面的16K啊,
在这里插入图片描述
后面突然发现这个数组是32位的一个数据。。。也就是说是4K*4,也就是16K。。。。。
但是里面实际使用这个的时候,是强制把它转化成了8位的进行使用的。。。它可能是为了兼容其他情况使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试狗2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值