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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑 ' C, a1 |8 C' ]& A" s7 ~
" b( V4 T& W& P! C
SPI+DMA方式驱动SD卡
) h% r1 G8 n4 i) a
; L2 F+ t8 M; Z, G使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:' H# x9 z" w2 _. X' H+ u
1.void SD_spi_Init(void);函数
. C/ b% R6 L0 o  _& c3 Z
, ^/ `2 [* @- B$ C5 g- X/ k9 }" a9 w/ w! @! C- N
2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。2 \/ ?" q& N7 N4 d. l- l

" f9 B0 `& f  U* t8 ?& C8 ]3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。
4 [4 q7 u3 E+ D ( C/ S$ Y0 x8 P! H* U

5 L5 d; t$ Y( w7 \2 ?1 ]4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。
! O$ Q/ B! d" B- H$ N: E$ P6 k% q) |8 T. n, C. I- ?
换成DMA方式后究竟速度能提高多少?复制同一个文件:" m: H' l' e* g
无DMA模式:+ K* U! k# P8 H$ V! c- |
3 A/ l# ?2 n  W/ W; G8 U) f% s6 G" l
DMA模式:* j  Y2 f7 I9 w% t5 z0 n8 t7 }

6 r9 J1 E4 x! N" k5 A" T复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:% f' K1 s% k+ S$ s. Q0 e
- K" N( y& A3 h

) n1 z5 y% n& N$ x$ u* n5 P* @下载:
% c3 \9 G. t$ E1 b) u
游客,如果您要查看本帖隐藏内容请回复
4 S7 A7 w+ ~7 G$ V

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
" R& g7 u0 i" Y& {  e
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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