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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑 ( `2 H5 Z' ^3 [! O. a- _

) U& b, h2 N; p6 R, rSPI+DMA方式驱动SD卡
, u1 z$ G6 X6 M
5 s8 q2 I6 m! d# ?使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:$ A$ G; E$ B% n7 `: P* K8 u0 ?% N1 g7 z! q
1.void SD_spi_Init(void);函数+ I: l' ?- y8 b5 f! r! H1 S& v( r
# o3 J$ T) P- o: Q2 [0 R

( c8 O  w, q8 P) m2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。
& p$ b9 u1 t9 F9 \3 d+ m7 A1 L& Q/ D8 Z 0 p' x$ F' k  |
3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。. a* z2 _* ^& R6 ~; _

0 X% u4 N6 y& p" r3 g
* m4 L" Q8 z, l) j4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。2 m8 X6 w6 I! q  Y" D6 h0 T
# B" Q3 i8 v' e6 L0 }
换成DMA方式后究竟速度能提高多少?复制同一个文件:
, y, y4 O' U3 ]" Q# {7 Z无DMA模式:( k' J! r7 U9 D. \1 i

* @5 l  t* A/ R& y7 U  i$ CDMA模式:1 ^4 l' {& n1 Y) W+ e5 x( q1 U' u
; L7 U6 B/ V0 m
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:4 C  Z+ n; }9 J3 \
. O5 ?; u3 Q! }* U1 [% ?

) p* W" p' b( a) L7 Y$ T' k下载:! d9 F5 V! c) J: @7 g
游客,如果您要查看本帖隐藏内容请回复

  s, s. f, C1 c' M+ x

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
6 ]2 s8 ?5 O7 Z) ?
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-30 04:30 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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