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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑 & ^! s8 ^# r" N+ ?7 p
& V! }7 ]6 R. L- t7 n; A- D& s
SPI+DMA方式驱动SD卡$ N# q' D9 B4 g( N2 k

: t) z7 x+ i; R6 D& _' `使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:9 j3 B8 S! Q' D$ f3 P2 Y
1.void SD_spi_Init(void);函数
0 X7 r  m' d3 N* n; U( \
. d# x4 f$ r6 X) _  k- |5 f" J+ x: g* p4 a  A9 B+ H/ Z$ y! `% i" N* [
2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。
. Q% v- D7 |; z' B2 }& L
, d; L0 U  ?: T: P6 X3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。
- N( H' }2 D+ s  \. r$ h : l9 ^& ^" N. s3 n& S; }
% k: y1 w( t5 }: R$ v. [3 @
4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。
4 ^1 K: G9 y- ]( ?- S7 x- t0 V
6 o! ~9 ~8 m1 Z  e换成DMA方式后究竟速度能提高多少?复制同一个文件:; G$ {, E: K7 _7 X& b! O: m
无DMA模式:
2 I( C) t( \" @ 9 D$ d( P: p, c; D
DMA模式:" }9 i4 v( W/ M5 Z- L4 _
2 K4 O) \$ {( v# l7 A# I
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:
2 `+ A5 K2 {) p( M7 T
- n) K% M# k- N" J, t+ Q6 E( T( W9 R. F0 h/ D* Z7 M$ p9 w
下载:
/ d; Z5 N# B* W0 _6 e: S
游客,如果您要查看本帖隐藏内容请回复

. D% C. b/ c( x5 E4 L: r  ?9 e

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
3 V" J/ x3 H" ^9 c6 n5 D; T
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-29 18:02 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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