硬汉嵌入式论坛

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

[ucFS] 请教版主,关于ucFS+SDIO+DMA的问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2019-4-18 17:50:00 | 显示全部楼层 |阅读模式
调试STM32F405+FreeRTOS+SDIO+DMA+ucFS,SD卡硬件部分我已经用裸版程序测试过了,SD卡读写正常。
现在上操作系统和文件系统,调试卡在了检测DMA传输完成中断标志位这里,各种方法都试过了,无解。。。。。。
SDIO和DMA硬件初始化我参考了安福莱的示波器例程,只是去掉了SDIO和DMA的所有中断,改用轮询查询寄存器状态来判断是否传输完成。
看了很多遍DATASHEET,有些问题手册上描述也不是很清楚。想请教版主几个问题:
1、SDIO+DMA 4线方式,两者都不启用任何中断,通过查询寄存器状态是否可行?
2、F4系列的DMA寄存器也就那么几个,如果不开中断,DMA传输完成后中断状态寄存器会自动置位么?比如我是否可以用轮询“传输完成中断标志位“来判断DMA是否传输完成?
3、调试程序一直卡在检测DMA传输完成中断标志位这里while((DMA2->HISR & (1<<21))==RESET);;;;;;;;这和没开中断有关么?

不是我不想用中断,而是ucfs的驱动例程平台是LPC24xx,SDIO和DMA全都是轮询寄存器状态来实现的,我只想做最少的改动把平台移植到STM32上。
2019-04-18_165057.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-4-18 18:05:50 | 显示全部楼层
原始的那个虽然用了SDIO和DMA中断,也是死等。

等待标志位
SD_WaitReadOperation和SD_WaitReadOperation
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2019-5-8 18:14:51 | 显示全部楼层
ucFS移植应该算成功了,,,,STM32F4 SDIO 4线+DMA+FREEROTS环境。
可是用安福莱的测试代码测试读写速度,和我的预期相差甚远。。。。。。
2019-05-05_224142.png

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-5-9 01:04:24 | 显示全部楼层
天马行空 发表于 2019-5-8 18:14
ucFS移植应该算成功了,,,,STM32F4 SDIO 4线+DMA+FREEROTS环境。
可是用安福莱的测试代码测试读写速度 ...

你的multiblock函数有被操作到没,对于SD卡而已,单Block刷,速度比较慢,Multiblock可以提速。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2019-5-9 20:56:44 | 显示全部楼层
eric2013 发表于 2019-5-9 01:04
你的multiblock函数有被操作到没,对于SD卡而已,单Block刷,速度比较慢,Multiblock可以提速。

确实没用multiblock,,,我再用multiblock读写试试看。谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-5-10 12:04:52 | 显示全部楼层
天马行空 发表于 2019-5-9 20:56
确实没用multiblock,,,我再用multiblock读写试试看。谢谢!

mutiblock得加上,性能发挥全靠这个了。

缺点就是ST提供的这个multiblock函数做的不稳定。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2019-5-11 13:10:03 | 显示全部楼层
eric2013 发表于 2019-5-10 12:04
mutiblock得加上,性能发挥全靠这个了。

缺点就是ST提供的这个multiblock函数做的不稳定。

还想请教版主,freertos下如何测试文件系统的多线程功能?是不是开启多个任务对同一个文件读写测试就可以了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-5-12 02:27:33 | 显示全部楼层
天马行空 发表于 2019-5-11 13:10
还想请教版主,freertos下如何测试文件系统的多线程功能?是不是开启多个任务对同一个文件读写测试就可以 ...

对,推荐这种方式。

也可以对底层做互斥,像fatfs有个专门的重入文件做接口支持。
回复

使用道具 举报

0

主题

16

回帖

16

积分

新手上路

积分
16
发表于 2020-7-27 14:36:45 | 显示全部楼层
你好,我想请教一下,我UCOSIII+UCFS挂SDIO,他一直给我返回FS_ERR_DEV_IO这个错误,请问下楼主有碰到过吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2020-7-27 15:24:00 | 显示全部楼层
杯中茶 发表于 2020-7-27 14:36
你好,我想请教一下,我UCOSIII+UCFS挂SDIO,他一直给我返回FS_ERR_DEV_IO这个错误,请问下楼主有碰到过吗

继续提升STM32F4的4线SDIO DMA方式的读写稳定性,发布新版案例(2020-06-30)
http://www.armbbs.cn/forum.php?m ... 8560&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

5

主题

85

回帖

100

积分

初级会员

积分
100
发表于 2020-10-12 14:26:06 | 显示全部楼层
请问楼主测试过 UCFS  日志功能(掉电保护)吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 03:49 , Processed in 0.283264 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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