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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑
/ R& y6 w# }  {- {. V  s. Q
5 j. p% z1 ?. BSPI+DMA方式驱动SD卡. j1 s% D& A( N5 k  g6 T3 ~6 w
) y% V! i* Y9 [2 i9 e
使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:
9 ~3 a7 }: J$ Y$ u1.void SD_spi_Init(void);函数
# g$ j7 j- t* q& @, x$ f) P3 j ! E4 h0 H* j1 u: ~9 W; F

1 g' E* m. V0 `6 A2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。
  C' N+ |4 ~: |6 p- O. h3 F
3 o2 I; Z+ C: }+ {! w3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。
; @% Z4 t- ~" F0 m# s  E, t- _
, r  K7 \4 x$ l4 H$ Y( @/ h
6 L. A3 O# Y  ^4 ?- ~4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。+ V9 t, U" v7 p' D4 |% M* q. F
3 J6 M- y( I* S- L; L; C  D
换成DMA方式后究竟速度能提高多少?复制同一个文件:! U/ y9 g* c3 D! E
无DMA模式:
9 ?4 }4 D  a/ [% R8 C8 p- e * D8 l; s7 d1 _3 s- j* n
DMA模式:
$ @8 P# R: X2 W( i - e$ S/ X( |5 W  [% O- L  o: ^$ Q2 c
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:  N# |& `2 e7 Y2 P

" ?: a: w7 c  ], Z5 A" N; M+ I1 M% [+ W% B
下载:
) \; K  G  H7 L6 G' X! k
游客,如果您要查看本帖隐藏内容请回复
7 ]; s3 B  U, C; H# g

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
. t9 [5 N# E; \8 E: t
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 01:55 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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