为什么在FatFs文件系统下写文件会出现这个问题?

2019-03-25 20:28发布

我把FatFs 移植到LPC1114上以后,给一个文件写内容:比如给SD卡里面的“ration.txt”文件写512个字母d,结果是在“ration.txt”里面出现了如下现象! (注意:文件头从下面字母g前面的一个空格开始)     g  T dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd   可以看出,字母d的数目不足512个,而且开头还有g,空格,T和一些符号! 请问这是怎么回事?   声明:1.经测试,读写一个扇区函数和多个扇区函数都能使用!            2.用diskio.c文件里面的函数查看SECTOR_SIZE = 512                                                              BLOCK_SIZE = 64                                                              SECTOR_COUNT = 3862528             用的是正品2G SanDisk卡!     谢谢!     下面这个图是我在写512个字母c出现的现象:   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
leang521
1楼-- · 2019-03-26 20:47
从你这段代码看不出问题所在,但从输出结果看应该出在BUF上, f_lseek这个函数也很可疑
richgood
2楼-- · 2019-03-26 21:55

我用flseek函数定位在ration.txt文件的第三个512字节开始写512个数字9,结果你看前面1024出现了什么现象,如下图:

我是用ISP串口方式自动下载的程序!根本没有用JLINK!

[ 本帖最后由 richgood 于 2011-5-6 18:05 编辑 ]
leang521
3楼-- · 2019-03-27 00:46
有点像指针出了问题,但是没法确定啊
zhaojun_xf
4楼-- · 2019-03-27 04:44
有可能是你的RAM空间不够造成数据缓存与其他数据区重合,你可以改一下堆栈看看。
richgood
5楼-- · 2019-03-27 10:08
 精彩回答 2  元偷偷看……
leang521
6楼-- · 2019-03-27 10:38
DEBUG

一周热门 更多>