完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
在单步调试时,找到错误位置首先,进入f_open,在f_open中有find_volume函数,在这个函数中,从0扇区读取fat所占扇区大小、每个扇区字节数、fat个数、根目录位置等有关信息,并且如果该函数返回值不是FR_OK,将直接退出f_open函数; 进入find_volume函数,在find_volume函数中有这样一行代码: fmt = check_f( fs, bsect );并且根据返回值,也就是fmt的值,来确定是否为fat文件系统; 然后进入check_fs函数,发现先进行move_window操作,然后判断结尾是否为0XAA55,开头的跳转指令是否是0XEB 0X** 0X90,然后判断是否找到FAT或是FAT3字样; 在move_window函数中,主要实现了fs->win[]中的数据回写,然后重新读取指定扇区的内容,结果,问题就出来这里,在读取0扇区的内容时,读取的内容错误,因此就导致了在check_fs函数中判断扇区结尾是否是0XAA55时,发生了错误,反回了3,然后在find_volume函数中,判断fmt时,返回了FR_NO_FILESYSTEM; |
|
相关推荐
2个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
563 浏览 0 评论
1515 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1357 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
793 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
1239 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 17:03 , Processed in 0.768261 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号