OpenEdv-开源电子网

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

STM32F407写入大量数据到SD卡,一段时间后卡死

[复制链接]

6

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-2-20
在线时间
65 小时
发表于 2017-8-9 15:54:22 | 显示全部楼层 |阅读模式
50金钱
程序的功能是:使用STM32F407与外部设备进行SPI DMA通信,用了双缓冲;STM32F407作为从机,并将收到的数据存入SD卡;
使用了FATFS文件系统, 每个文件夹有两百个bin文件,每个bin文件有370k左右大小;
SPI DMA数据流接收数据大小为每次17k左右,然后再把这17k文件经过24次写入bin文件组成一个完整的370k文件;
问题出现在:
在写入580-620个文件的时候,程序就会卡死,没有任何反应。
想请问这是什么原因造成的?


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

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2017-8-9 16:09:21 | 显示全部楼层
我遇到过这种情况是TF卡容量为2G的时候,换成8G就好了,看看对你有没有帮助。
态度决定一切
回复

使用道具 举报

6

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-2-20
在线时间
65 小时
 楼主| 发表于 2017-8-9 16:18:37 | 显示全部楼层
冰封嗜魔 发表于 2017-8-9 16:09
我遇到过这种情况是TF卡容量为2G的时候,换成8G就好了,看看对你有没有帮助。

我的卡是16G的。。。这样算,才写了几百兆的数据
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-8-14 01:17:15 | 显示全部楼层
仿真找问题
回复

使用道具 举报

16

主题

339

帖子

0

精华

高级会员

Rank: 4

积分
849
金钱
849
注册时间
2017-6-18
在线时间
166 小时
发表于 2017-8-14 13:51:45 来自手机 | 显示全部楼层
SD卡电源一定要稳稳定,SD卡大数据工作消耗电流超大。但天灾人祸,无法避免。就算能保证十天半个月,也不是办法。最好能在SD卡读写接口加入人为稳定因素
回复

使用道具 举报

10

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
319
金钱
319
注册时间
2017-1-20
在线时间
51 小时
发表于 2017-8-14 14:35:40 | 显示全部楼层
帮顶;
回复

使用道具 举报

6

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2017-2-20
在线时间
65 小时
 楼主| 发表于 2017-8-15 09:40:27 | 显示全部楼层
1、换了32G的卡后,数据写到8G左右卡死;
2、如果只是单纯建个缓冲数组往SD卡写数据,也是写到20G左右;
3、卡死的时候SD卡就无法打开了,只能用电脑进行格式化才能使用;
4、之前用的板子不是原子的板子,现在打算拿原子的试试会不会出现一样的问题;
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-4-25
在线时间
13 小时
发表于 2019-9-2 16:03:40 | 显示全部楼层
我使用原子STM32F4 fats文件系统例程修改的程序作测试,同时打开两个文件,约每1s通过DMA写入一次16k数据;发现fwrite函数一次性写入16k时一段时间后偶尔会卡顿(原子底层在sdio底层有写入卡死延时等待),然后把数据分成512byte一包通过for循环连续fwrite测试时,卡死现象加剧;故思路在于:SD卡格式化分区时,根据不同的格式化单元大小,一次性读写的效率不同,比如格式化成fat---32k;那么一次性fwrite写入32k数据刚好为一个单元,效率最高;而多次小批量(512byte)写入,效率降低;最后,将一次性写入数据调整至16k,SD卡格式化成FAT32---分配单元大小16k;长时间测试暂未发现卡死。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-16 10:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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