如题,调了好久才把这个 MMCSD 的 EDMA 驱动调通,测试了一下比较稳定,发上来与大家分享一下。
编译器:CCSv5.5
文件系统:Fatfs R0.11
使用 quickStartOMAPL1x_rCSL 库,主要的 SD 卡操作函数参考 OMAP-L138_FlashAndBootUtils_2_40 实现。
CCS工程:djqb_dsp(基于DSP核)
SD 卡驱动文件夹:djqb_dsp\mmcsd
EDMA 驱动:djqb_edma3.c
默认通过 CPU 操作 SD 卡,修改 djqb_dsp\fatfs\ diskio.c 中的:
SDMMC_MEM_readSects
SDMMC_MEM_writeSects
为
SDMMC_DMA_readSects
SDMMC_DMA_writeSects
可测试通过 EDMA 操作 SD 卡,因为没有使用 OS,同时为了减小系统中断开销,所以没有使用 DMA 中断,使用CPU轮询的 IPR 方式来判断 EDMA 传输完毕。
1、测试使用 CPU 方式操作 SD 卡,3 次写入 1MB 文件,平均速度 3MB/s 左右。
2、测试使用 EDMA 方式操作 SD 卡,3 次写入 1MB 文件,平均速度 6MB/s 左右。
附件:http://files.cnblogs.com/files/imapla/djqb_dsp.7z
Shine:
赞,谢谢分享!
long huang1:
补充:
测试时 MMCSD 的 dataModeClockRate 时钟配置是:150/((3+1)*2) = 18.75MHz,4bit模式。使用了闪迪的32GB TF卡。