硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2708|回复: 7
收起左侧

[FatFs] 文件系统崩溃SD_WriteMultiBlocks((uint8_t *)buff, sector << 9 ,SECTOR_SI

[复制链接]

2

主题

4

回帖

2

积分

新手上路

积分
2
发表于 2017-10-22 12:15:06 | 显示全部楼层 |阅读模式
/* 此处存在疑问: 扇区个数如果写 count ,将导致最后1个block无法写入 */
                    Status = SD_WriteMultiBlocks((uint8_t *)buff, sector &lt;&lt; 9 ,SECTOR_SIZE, count);
                    //Status = SD_WriteMultiBlocks((uint8_t *)buff, (uint64_t)(sector) &lt;&lt; 9 ,SECTOR_SIZE, count + 1);
这个地方改了吗,调试过程中大于16GTF卡调试时,sector &lt;&lt; 9向上传递uint64_t类型会溢出,必需 (uint64_t)(sector) &lt;&lt; 9这样写才正确执行。不然会导致文件系统崩溃,!!!!!!!!!
回复

使用道具 举报

2

主题

4

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-10-22 12:15:45 | 显示全部楼层
有没有最新SD卡驱动?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
发表于 2017-10-22 12:17:13 | 显示全部楼层
这个只能自己手动修改下了。[s:130]
回复

使用道具 举报

2

主题

4

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-10-22 12:20:05 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个只能自己手动修改下了。[s:130]
&#160;(2017-10-22 12:17)&#160;
扇区个数 count ,还需要加1吗?
回复

使用道具 举报

2

主题

4

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-10-22 12:21:06 | 显示全部楼层
加1之后,好像会多写进去1block数据
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
发表于 2017-10-22 12:33:34 | 显示全部楼层

回 willow 的帖子

willow:扇区个数 count ,还需要加1吗?&#160;(2017-10-22 12:20)&#160;
必须要加1,这个是个bug,没辙。
不放心,你使用每次写单个block,分批写即可。
回复

使用道具 举报

2

主题

4

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-10-22 16:42:07 | 显示全部楼层
16G的TF卡,当里面存在的文件总大小 大于4G时(拷贝几个1G视频),再读写TF卡会有问题,怎么回事
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106649
QQ
发表于 2017-10-23 00:17:50 | 显示全部楼层

回 willow 的帖子

willow:16G的TF卡,当里面存在的文件总大小 大于4G时(拷贝几个1G视频),再读写TF卡会有问题,怎么回事

&#160;(2017-10-22 16:42)&#160;
http://www.armbbs.cn/forum.php?mod=viewthread&tid=11880
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 23:43 , Processed in 0.305570 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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