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

SPI+DMA方式驱动SD卡

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 fanichicl 于 2019-1-31 14:10 编辑
. t4 B: s$ l) o+ U% }
; q9 I7 Y( K$ e: I  OSPI+DMA方式驱动SD卡
' y5 x! w' A- {: F* I9 e4 V+ P3 g  v' Y/ |4 V+ w
使用DMA方式传送数据可以提高传送速度,提高CPU的使用效率。程序的核心部分就是将之前需要CPU搬运大量数据的地方换成DMA的方式实现。战舰开发板上配套的程序修上改修如下:& `! X  S1 W" Q$ x- {
1.void SD_spi_Init(void);函数
2 I: A& a5 p0 @" a& @4 ~7 x3 ^ 9 m+ k# I1 H0 u( e( Z. D

: y5 q3 `7 [/ o1 r2.u8 SD_RecvData(u8*buf,u16 len);////从sd卡读取一个数据包的内容。3 w6 ?2 p& s% D0 U1 r. B" u

% \" {' L& {6 L6 P3.u8 SD_SendBlock(u8*buf,u8 cmd);//向sd卡写入一个数据包的内容 512字节。* T/ }" `8 U: H: A& Y; L

0 W' ~  y0 l3 M! V
0 }  ]  ~5 s& s1 l1 _1 K& k4.上面涉及到的3个与DMA有关的函数都放在了dma.c文件中,直接添加到工程中即可。
: J, d4 J6 T# u8 I0 \& X. T, u# m  M2 M0 S& C. n7 |5 P. G/ {
换成DMA方式后究竟速度能提高多少?复制同一个文件:! b2 t0 O, |4 C, `  K
无DMA模式:3 |/ n' d0 G) `- r* n: r, @+ E
, g' r8 L# b$ _/ M3 r! K
DMA模式:
/ a' a3 P) B4 W  B0 i3 `& n 4 k$ l6 c' U0 j( ^
复制不同的文件速度会有不同,反正就是使用DMA方式速度能够提高好多好多。大家可以尝试显示一张JPG、BMP图片,效果会很明显(本人已验证过)。附上代码:  R' g0 g- p4 Z" }" z

. G4 L2 `6 }; b) N! y; e- Q0 }( {: n+ B8 U8 C- k8 Q
下载:4 A( R$ ~: V& d
游客,如果您要查看本帖隐藏内容请回复
4 p/ s9 p8 ^. a& @# N

该用户从未签到

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

该用户从未签到

3#
发表于 2022-10-18 16:26 | 只看该作者
. ?* m4 d, m# w5 `5 X$ L8 C0 q
不错,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-6 05:26 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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