OpenEdv-开源电子网

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

0.09aFatfs 的疑问

[复制链接]

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
发表于 2013-3-1 14:44:55 | 显示全部楼层 |阅读模式
 0.09a Fatfs 中的文件读写函数每次读写字节的多少必须是512字节的整数倍 ?


 问题解决:  原因是我创建的任务堆栈太小,在任务切换时局部变量压栈造成了堆栈的溢出。 将图片中的文件系统类型的变量和文件类型的变量由局部变量改成全局变量或者是增加任务堆栈的大小就可以了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2012-8-10
在线时间
40 小时
发表于 2013-3-1 14:54:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-1 15:14:37 | 显示全部楼层
回复【2楼】hwl1023:
---------------------------------
res = f_write(&fsrc, Revbuf,500, &bw); 我把Revbuf 开辟成512个字节大小的数组,但是我写的时候只写500个这样表示对吗?
回复 支持 反对

使用道具 举报

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
发表于 2013-3-1 16:07:14 | 显示全部楼层
回复【3楼】业未央:
----------------------------
bw 才是实际读出来的字节数
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-1 16:14:41 | 显示全部楼层
回复【4楼】Alexinx:
---------------------------------
bw是实际写入的字节,但是我怎样指定要写入的字节数?比如我写500个字节还就是说我要写入的字节数必须是512的整数倍
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-1 16:53:13 | 显示全部楼层
回复【5楼】业未央:
---------------------------------
谢谢问题解决了
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-1 16:53:25 | 显示全部楼层
回复【2楼】hwl1023:
---------------------------------
谢谢,问题解决了
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-1 16:56:01 | 显示全部楼层
想问一我上次我是页写数据,数据长度不到512是会导致这一页内存浪费,如何处理。。。
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-1 17:41:12 | 显示全部楼层
回复【8楼】565956807@qq.com:
---------------------------------
就算你的数据不够512个字节,它也会开辟512个字节的空间。底层驱动每写一次就是一个扇区,好像SD协议有规定
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-2 09:06:44 | 显示全部楼层
@7楼

一般的一个簇包含8个扇区,每个扇区512个字节也就是4kb,一个簇只能存储一个文件。我的这个文件的大小是1.95kb,那剩下的(4 -1.95)kb不能存储其他的文件,将会被浪费掉,这个好像没法避免
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-4 09:23:26 | 显示全部楼层
不知道有哪位解决了这个问题。。。。
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-4 09:42:41 | 显示全部楼层
回复【11楼】565956807@qq.com:
---------------------------------
我建立的任务的堆栈太小,我把FATFS   fs[2];  FIL  fsrc,fdes;定义成了局部变量,在任务切换到时候就发生了堆栈溢出用Debug调试显示硬件错误。把那两个变量改成全局变量或者是增大任务堆栈的大小问题就解决了。
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-4 09:45:22 | 显示全部楼层
求图片。。。
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-4 09:45:51 | 显示全部楼层
能把你改动的地方截个图片么。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-4 09:46:25 | 显示全部楼层
回复【10楼】业未央:
---------------------------------
这是必然的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-4 10:10:40 | 显示全部楼层
回复【14楼】565956807@qq.com:
---------------------------------
看楼主位,我刚编辑了一下
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-4 10:13:04 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
   f_mount(0,fs[0]);  //挂载SD卡 
  f_mount(1,fs[1]);       //挂载FLASH. 
 原子老大,物理驱动器号(0 /1)是怎么分的 ?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-4 14:39:41 | 显示全部楼层
通过底层区分.
底层disk_read,disk_write,不是也要判断磁盘号么?就根据那里就可以区分了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-3-4 15:12:52 | 显示全部楼层
上次实现了简单的文件读写,但还不是很清楚fat文件系统,有待学习啊。。。
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-4 15:26:00 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
谢谢,明白了
回复 支持 反对

使用道具 举报

58

主题

288

帖子

1

精华

高级会员

Rank: 4

积分
814
金钱
814
注册时间
2012-3-29
在线时间
81 小时
 楼主| 发表于 2013-3-4 15:26:33 | 显示全部楼层
回复【19楼】565956807@qq.com:
---------------------------------
我也是,多多讨论吧
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-23 04:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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