基于stm32f103zet6的FAT16文件系统学习3(初步分析ff9a)
文件系统分析了两天,自己都不知道入没入门,现在就把这两天分析的结果总结一下吧!
一、res = f_mount(0,&fs);
首先是挂接根文件系统,为什么要挂接根文件系统内容?因为根文件系统里面会对我们的SD卡进行初始化,除此之外
f_mount函数可以实现在FatFs模块上注册/ 注销一个工作区。 在使用任何其他文件函数之前,必须使用该函数为每个
卷注册一个工作区。要注销一个工作区,只要指定FileSystemObject 为NULL即可,然后该工作区可以被丢
弃。 该函数只初始化给定的工作区,以及将该工作区的地址注册到内部表中,不访问磁盘I/O 层。卷装入过程是在
f_mount函数后或存储介质改变后的第一次文件访问时完成的。
接着分析这个函数是怎么定义的:
if (disk_read(fp->fs->drv, fp->buf, sect, 1) != RES_OK)/* Fill sector cache */
就是将文件对应的扇区里面的内容读到临时缓存里面去。
文件读写流程就初步分析到这里,总之还有很多不完善的地方,等以后再说吧!
之后就是一些自己要添加的类似于uboot命令的功能,按个人需要添加,改天移植一个功能强大的文件系统,那就爽到了。