hihi66 发表于 2013-3-18 17:16:00

s3c2440裸机移植fatfs问题

我的编译环境不是ads,是在linux里用的arm-linux-gcc 4.4.3 。在编译过程中遇到过一个错误在f_mount()中,我把rfs=FatFs改成rfs=&FatFs,编译就通过了在使用读取read()是很好用的,但在创建文件和目录是会出现,文件创建但是无法打开的问题,我想肯定是在目录项写上文件,但在fat1,fat2中没有分配空间。写要想好使就必须,是有数据的文件,然后就可以写进去。
真不知道什么问题啊,要是是编译器的问题,我想问问哪个版本的交叉编译工具好用?

tangkuan660 发表于 2013-3-18 17:27:30

arm-linux-gcc 4.4.3 还是蛮好用的,以你这么说应该不是编译器的问题。
个人觉得你直接把结构体改成指针传递应该是有问题的,你应该先分析rfs需要一个什么东西,可能要求的是一个结构体中的某个指针,你这样改肯定就错了。

hihi66 发表于 2013-3-19 08:31:50

我也不想改啊,但不该,程序在执行rfs赋值时直截访问0xffffffff地址,然后我的mmu就启动了,abort异常

hihi66 发表于 2013-3-19 10:08:44

发现问题所在了static FATFS *FatFs数组未初始化,rfs=FatFs然后if(rfs) rfs->fs_type=0; 就这句死了,数组未初始化,所以rfs=FatFs不一定得0所以执行了rfs->fs_type=0;也就死了。没看到里面有初始化FatFs[]的啊,就自己写了一个,就好用了。不过函数里应该有初始化这个数组的啊,谁知道是哪个啊?

xiefy21 发表于 2013-8-14 12:01:39

mark……
顶一个…
页: [1]
查看完整版本: s3c2440裸机移植fatfs问题