野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9029|回复: 5

fatfs文件系统 官方例程 卡死

[复制链接]
发表于 2016-10-10 11:47:17 | 显示全部楼层 |阅读模式
是这样的,之前的例程都正常,在学习“文件系统常用函数测试” 这个例程时,进入到了 HardFault_Handler 里,call stack里定位到ff.c文件的1748行。例程没动过。请教各位高手问题出在哪里?



QQ拼音截图未命名.jpg
回复

使用道具 举报

发表于 2016-10-10 13:48:31 | 显示全部楼层
你使用的可能是旧的程序,用这个测试下: 2-FatFs文件系统常用函数测试.zip (1.22 MB, 下载次数: 50)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 14:33:16 | 显示全部楼层
flyleaf 发表于 2016-10-10 13:48
你使用的可能是旧的程序,用这个测试下:

谢版主,对比了一下,是将 这句代码 :FILINFO fno;  放到了函数体外边,设置成全局变量。
那么,设置临时变量的fno结构体在被f_stat函数调用时会引起错:res_flash=f_stat("1:TestDir/testdir.txt",&fno);
引起错误的原因是临时变量不能被另一个函数调用。
回复 支持 反对

使用道具 举报

发表于 2016-10-10 15:17:46 | 显示全部楼层
noyaice 发表于 2016-10-10 14:33
谢版主,对比了一下,是将 这句代码 :FILINFO fno;  放到了函数体外边,设置成全局变量。
那么,设置临 ...

因为fno比较大,定义在栈里空间不足,你可以在启动文件里把栈空间调大一点,也能解决这个问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-10 15:55:01 | 显示全部楼层
flyleaf 发表于 2016-10-10 15:17
因为fno比较大,定义在栈里空间不足,你可以在启动文件里把栈空间调大一点,也能解决这个问题

我用sizeof函数看了一下 fno结构体,一共32字节,而且将栈空间改成0x2000,还是一样的问题啊。
回复 支持 反对

使用道具 举报

发表于 2016-10-10 18:03:25 | 显示全部楼层
noyaice 发表于 2016-10-10 15:55
我用sizeof函数看了一下 fno结构体,一共32字节,而且将栈空间改成0x2000,还是一样的问题啊。

确实啊,我刚刚测试也是,这里我之前调试也觉得奇怪,因为在F4的程序里是直接放栈里的没有问题,

程序里后面的scan_files也有把fno放栈里的使用的,都可以。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-30 16:38 , Processed in 0.032221 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表