OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4350|回复: 3

fatfs 文件操作无法完成

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-8-12
在线时间
0 小时
发表于 2014-8-12 21:56:18 | 显示全部楼层 |阅读模式
5金钱
开发使用的是flashair SD卡,文件系统是 fatfa 0.0.8.
简单的说,就是SD卡连接上PC后,会运行一些程序,现在需要定制其中某一个程序。
为了简单清晰,我将操作写在单独的文件A里,供main函数调用。
现在的问题是,main调用A中的函数,编译生成的程序,运行会卡死,无法输出log。
比如,A中有个简单的判断路径是否为目录的函数,主要用到了f_stat.如果把用到f_stat的行注释掉,main能很快的运行,并输出log。
不知道这是为什么?
因为第一次做嵌入式,不知道从何入手。今天搜索了一天,突然找到lfn,就把值设为2,这时main中调用A中的函数能显示出log。
但是呢,结果不对。比方说,我检测一个不存在的文件夹0:/test,f_stat的结果居然是FR_OK。这时查看SD卡,发现确实多了个test文件夹。
但是打不开,需要重新连接后才能打开test目录。
百思不得其解

另外,字符串/内存的使用是申明char数组,然后使用memset和sprintf来构造文件目录。
因为我需要做的是遍历目录,并将内容复制,所以需要重用路径。
不知道嵌入式开发中,这一块一般是怎么处理的呢?
请大家帮忙看看!

谢谢!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-12 22:38:47 | 显示全部楼层
光看你的描述,看不出问题.
看看是不是代码里面,局部变量太多了导致的.
很多初学单片机的人,会犯这个错.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2014-8-12
在线时间
0 小时
 楼主| 发表于 2014-8-13 08:57:47 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
嗯,正是初学者,谢谢原子哥!

看原来的项目,内存都是预先申明在一个文件里, 比如:
extern char isdio_buf[512];
extern char file_name[13];

然后在使用的地方通过声明char *指向某个buffer,如isdio_buf来操作的

不知道这样会有什么弊端呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-8-13 23:25:38 | 显示全部楼层
回复【3楼】scorpiozj:
---------------------------------
 也可以.最好学习下内存管理吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-3 21:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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