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位的进行使用的。。。它可能是为了兼容其他情况使用的。