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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑
% v6 X" Q4 ^: w0 M7 I4 ^
" ?/ U' b, }& N3 N  N' m1 t5 PSPI+DMA方式驱动SD卡
+ [$ P( e- ?2 w& J) Q
3 z( r1 [. [1 {! x; M; V) X) r使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:
# Q6 I0 I- M! A# x- a1 e9 j1.void SD_spi_Init(void);函数' X1 T. \+ I9 a7 f- J
. ~8 b: H! @, \) l7 |

; J9 E0 i4 y( l% `- S2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。
- D2 ~4 s0 X  {% X5 Z
9 P( _: C3 Z, N3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。0 `) M9 s5 t6 h# N, H. U# Z
9 a4 P9 x# P+ d  t9 [' ~( g/ M

8 D: @( u* R1 V  X4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。& g- M; D3 v, r1 F

6 Y8 C6 ~( W7 q3 ?: x* |9 [换成DMA方式后究竟速度能提高多少?复制同一个文件:' D: C) s& h& E! t! |. C/ r
无DMA模式:
+ s  A2 q6 p' B& R
5 F: S  ^( K. _6 R# v) o: q9 R7 QDMA模式:8 }9 {5 R9 l3 F8 W
+ T  J3 o1 H* l/ ^7 g" q
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:
9 c- c5 k5 a" d: X. b1 T& I! ]9 u
. R. @6 U( C& s. x6 X# F5 B2 t
下载:$ W8 Z9 I% h6 Q  R$ V: W1 A( ~
游客,如果您要查看本帖隐藏内容请回复

; Y9 {: h4 q! ^: @" t# e" A1 ^+ p

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
# c! n; _, K2 \! i7 o3 F
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-7 05:47 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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