shenhaiyu 发表于 2012-10-26 00:03:28

求助大神帮忙简化SD卡的库,程序写不下了,能否缩小程序体积呢

RT,最近弄了好几个传感器在Arduino UNO上,编译的时候已经提示程序超大了,现在想精简扩展库来节省些空间好写有用的程序,不知道想法现不现实。

附件中是一个SD卡读写库,为什么要用这个库呢,因为ArduinoIDE自带的库有个致命缺陷,就是SD卡初始化成功后,中途将卡拔下来,他居然还能继续成功的写入数据,太神奇了。这个SDFat库就可以返回错误。但是一个简单的写卡例子就要占去15000字节之巨,实在是太浪费时间了。

我只需要写卡的部分,不读文件,写的文件不需要日期支持,不使用目录,不需要删除文件,不用重命名文件。简单说就是我只要按名字写文件(不存在就创建)的功能,写失败能返回错误就行,其他功能一律都不要,不知道这样能否将库简化一些呢?至少减少1/3的字节也行啊,我好能有空间写其他的程序。

希望高手帮忙解决一下吧,跪求了………………

shenhaiyu 发表于 2012-10-26 17:32:34

本帖最后由 shenhaiyu 于 2012-10-26 17:38 编辑

呃,没人能搞定吗?还是说我没使用的变量及函数已经被优化掉了,我编译出来的大小已经是最优的了?


试验了一下,貌似是我对C语言不熟悉,看来没使用的函数和变量都不会被编译的,那我如何才能减小程序体积呢……

test01 发表于 2012-10-26 18:44:22

gcc优化的挺好
可以试试加空间优化参数编译

shenhaiyu 发表于 2012-10-26 19:05:06

test01 发表于 2012-10-26 18:44 static/image/common/back.gif
gcc优化的挺好
可以试试加空间优化参数编译



差了600多字节,唉,郁闷啊

yyy_zc 发表于 2013-10-11 12:35:57

可查看SDFAT 里面的 cpp ,去掉不用的 函数 。

shenhaiyu 发表于 2013-10-11 13:39:14

yyy_zc 发表于 2013-10-11 12:35 static/image/common/back.gif
可查看SDFAT 里面的 cpp ,去掉不用的 函数 。

尝试过,没用到的函数不参加编译,删掉也不能减小体积……

yyy_zc 发表于 2013-10-12 23:07:21

哇 一年了还在坚持呀。看样子bootload 也没使用
可能基本的你都尝试过了
1.浮点数改为整数.
2.减少内存分配,少一点调试用的输出内容如 println("bala bala...")
3.其它模块能减少不
4.看看 cook book 中的减少size 的方法

shenhaiyu 发表于 2013-10-14 23:38:00

yyy_zc 发表于 2013-10-12 23:07 static/image/common/back.gif
哇 一年了还在坚持呀。看样子bootload 也没使用
可能基本的你都尝试过了
1.浮点数改为整数.


嗯,基本上你说过的都尝试过。暂时的解决办法是把某些库中的内容用汇编自己重新……就是太让人崩溃了

yyy_zc 发表于 2013-10-15 13:10:18

EEPROM (Bytes): 有1k ,有些 数据 能否先装在哪里 .

shenhaiyu 发表于 2013-10-15 19:44:50

yyy_zc 发表于 2013-10-15 13:10 static/image/common/back.gif
EEPROM (Bytes): 有1k ,有些 数据 能否先装在哪里 .

那读写EEPROM的程序岂不是还要占去很多空间

histamine 发表于 2013-10-15 20:48:19

本帖最后由 histamine 于 2013-10-15 20:50 编辑

LZ可以试试这个库,编译时可以去掉目录、读取、seek之类的功能,从而缩小体积

Petit FAT File System Module
http://elm-chan.org/fsw/ff/00index_p.html

当然用起来没arduino库那么方便

davidce 发表于 2013-10-15 21:08:57

SDfat 只读取不会太大

yyy_zc 发表于 2013-10-15 21:38:23

1.http://playground.arduino.cc//Code/SDCARD
这个是无库的
2.换atmega6464K
3.把你的代码拿出来大家具体分析

shenhaiyu 发表于 2013-10-16 00:33:39

histamine 发表于 2013-10-15 20:48 static/image/common/back.gif
LZ可以试试这个库,编译时可以去掉目录、读取、seek之类的功能,从而缩小体积

Petit FAT File System Mo ...

好的,我试试,非常感谢,不知道是否支持8GB的卡

shenhaiyu 发表于 2013-10-16 00:35:56

yyy_zc 发表于 2013-10-15 21:38 static/image/common/back.gif
1.http://playground.arduino.cc//Code/SDCARD
这个是无库的
2.换atmega6464K


呃,好吧,其实就相当于把库直接写到代码里而已……
页: [1]
查看完整版本: 求助大神帮忙简化SD卡的库,程序写不下了,能否缩小程序体积呢