求助大神帮忙简化SD卡的库,程序写不下了,能否缩小程序体积呢
RT,最近弄了好几个传感器在Arduino UNO上,编译的时候已经提示程序超大了,现在想精简扩展库来节省些空间好写有用的程序,不知道想法现不现实。附件中是一个SD卡读写库,为什么要用这个库呢,因为ArduinoIDE自带的库有个致命缺陷,就是SD卡初始化成功后,中途将卡拔下来,他居然还能继续成功的写入数据,太神奇了。这个SDFat库就可以返回错误。但是一个简单的写卡例子就要占去15000字节之巨,实在是太浪费时间了。
我只需要写卡的部分,不读文件,写的文件不需要日期支持,不使用目录,不需要删除文件,不用重命名文件。简单说就是我只要按名字写文件(不存在就创建)的功能,写失败能返回错误就行,其他功能一律都不要,不知道这样能否将库简化一些呢?至少减少1/3的字节也行啊,我好能有空间写其他的程序。
希望高手帮忙解决一下吧,跪求了………………
本帖最后由 shenhaiyu 于 2012-10-26 17:38 编辑
呃,没人能搞定吗?还是说我没使用的变量及函数已经被优化掉了,我编译出来的大小已经是最优的了?
试验了一下,貌似是我对C语言不熟悉,看来没使用的函数和变量都不会被编译的,那我如何才能减小程序体积呢…… gcc优化的挺好
可以试试加空间优化参数编译 test01 发表于 2012-10-26 18:44 static/image/common/back.gif
gcc优化的挺好
可以试试加空间优化参数编译
差了600多字节,唉,郁闷啊 可查看SDFAT 里面的 cpp ,去掉不用的 函数 。 yyy_zc 发表于 2013-10-11 12:35 static/image/common/back.gif
可查看SDFAT 里面的 cpp ,去掉不用的 函数 。
尝试过,没用到的函数不参加编译,删掉也不能减小体积…… 哇 一年了还在坚持呀。看样子bootload 也没使用
可能基本的你都尝试过了
1.浮点数改为整数.
2.减少内存分配,少一点调试用的输出内容如 println("bala bala...")
3.其它模块能减少不
4.看看 cook book 中的减少size 的方法
yyy_zc 发表于 2013-10-12 23:07 static/image/common/back.gif
哇 一年了还在坚持呀。看样子bootload 也没使用
可能基本的你都尝试过了
1.浮点数改为整数.
嗯,基本上你说过的都尝试过。暂时的解决办法是把某些库中的内容用汇编自己重新……就是太让人崩溃了 EEPROM (Bytes): 有1k ,有些 数据 能否先装在哪里 . yyy_zc 发表于 2013-10-15 13:10 static/image/common/back.gif
EEPROM (Bytes): 有1k ,有些 数据 能否先装在哪里 .
那读写EEPROM的程序岂不是还要占去很多空间 本帖最后由 histamine 于 2013-10-15 20:50 编辑
LZ可以试试这个库,编译时可以去掉目录、读取、seek之类的功能,从而缩小体积
Petit FAT File System Module
http://elm-chan.org/fsw/ff/00index_p.html
当然用起来没arduino库那么方便 SDfat 只读取不会太大 1.http://playground.arduino.cc//Code/SDCARD
这个是无库的
2.换atmega6464K
3.把你的代码拿出来大家具体分析 histamine 发表于 2013-10-15 20:48 static/image/common/back.gif
LZ可以试试这个库,编译时可以去掉目录、读取、seek之类的功能,从而缩小体积
Petit FAT File System Mo ...
好的,我试试,非常感谢,不知道是否支持8GB的卡 yyy_zc 发表于 2013-10-15 21:38 static/image/common/back.gif
1.http://playground.arduino.cc//Code/SDCARD
这个是无库的
2.换atmega6464K
呃,好吧,其实就相当于把库直接写到代码里而已……
页:
[1]