找回密码
 注册
关于网站域名变更的通知
查看: 525|回复: 2
打印 上一主题 下一主题

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-31 14:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑 / x; j$ p2 P/ J6 G' h

# P* l2 S) ?% j/ `- tSPI+DMA方式驱动SD卡
' i6 b8 [0 B* c! o6 D0 l
$ A/ _7 A" [  g! J* L使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:0 `6 G9 t, f; b8 G" \9 A/ ^4 o
1.void SD_spi_Init(void);函数& E* `4 l3 I* u! D: X; a0 U
0 c  ]5 c; Z' r) s9 U7 a
4 R0 j3 n! e# m! R1 [
2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。
$ X4 k  I2 h" L- A6 V4 V6 o$ b, E4 V5 n , c! y* R3 Q6 I1 |
3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。
2 I, c  e  E6 v3 @3 U
2 U. L8 B  Q$ _" r1 _. K; X" ]; D: N& K% {8 t
4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。% t7 u% m, N) E0 d+ X; L5 c9 a

! E& B# J; E% b' E$ v, B5 Z换成DMA方式后究竟速度能提高多少?复制同一个文件:( S% n( }. u! L* a3 Y
无DMA模式:( P, A" }+ E! U* s- t' [9 y  X
: x+ k5 O& c3 q: V0 U2 V+ ]/ B
DMA模式:* B) Y5 u7 t1 I4 Z% h8 n+ i, D) ]
' w( a6 J# U0 j) G+ }7 G
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:
- V# L* l2 C* C# f- M
) `9 e2 k+ z4 h: N  a/ `. {$ Z; {
) \0 T) ~- s( M1 Q3 Z下载:
# V5 E. f; }* w! g9 U2 G/ E1 p: B
游客,如果您要查看本帖隐藏内容请回复
3 o( O8 U  D7 J7 A

该用户从未签到

2#
发表于 2019-1-31 16:01 | 只看该作者
不错,谢谢分享

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者

6 g: F6 ^# q+ ^. x1 c/ G# J* N9 Q不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-19 21:15 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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