[基于STM32F769 DISCO]Fatfs + DMA + OS管理 + LL库重构SDMMC驱动

/ 0评 / 0

因为官方的LL库也是连着HAL用的,虽然很多冗余,但是实在太慢,写个数据还要先走一圈判断,还不如程序猿好好思考不要出错.

所以想到重构这个驱动,完全LL库实现,使用DMA,并且不用标志查询法,用操作系统管理.省下更多时间.

但是重构是重构,不代表精简,所有需要的元素资料也是全齐的.

TF卡上的CID CSD已经全部解释出来了.当然不是所有卡都是全齐字段的,我这种OV的山寨卡,贪便宜买的就有些没有.

另外DMA是通过中断管理的,也就是只要操作系统发出读写的指令,然后操作系统就应该可以做其他事情了,因为当前任务就暂停了,等数据回来才继续.

读写都完全基于信号量管理.

DMA不查询标志位,用中断方法,然后中断发生后,操作系统所在任务才唤醒.也就是说,只要发了f_write之类的指令,任务就会马上挂起,然后等写入完成了,任务再继续进入,不需要占用CPU.
程序基于STM32F769 DISCO实现,可以很方便移植到别的平台,包含了基本的测试.
STM32F769程序LL库FreeRTOS实验SDMMC_V2.zip

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注