Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)
Posted DS小龙哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)相关的知识,希望对你有一定的参考价值。
一、前言
块设备主要为存储设备设计的框架。 在前面章节Linux下驱动开发_块设备驱动开发(内存模拟存储) 里介绍了块设备驱动编写思路,并且利用内存模拟了硬件存储,完成了块设备驱动开发测试。这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。
SD卡本身支持SPI协议、SDIO协议,一般能跑Linux系统的CPU都在硬件上支持SPI协议、SDIO协议,如果要提高读写速度,肯定是采用SDIO协议最合适。这篇文章主要是介绍SD卡+块设备框架的驱动开发思路,代码里选择了SPI协议来进行通信,读写SD卡的速度比较慢(与SDIO比数据线都少了几条)。 SPI协议比较简单,学习过单片机的都比较熟悉,并且SPI协议还可以自己模拟时序,不一定要硬件上支持的,在难度上就降低了不少。
块设备驱动的思路是: 处理应用层的请求。
我们知道操块设备,都是通过文件系统读写访问比如:(U盘、SD卡、磁盘)这些设备。
读写操作块设备的常用命令:
dd、fdisk、mount
比如以下的文件操作代码:
mount /dev/sdb /mnt
fopen("/mnt/123.c","wb");
fwrite("1233445656");
fclose();
代码执行之后的请求反应到驱动层的接口
以上是关于Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)的主要内容,如果未能解决你的问题,请参考以下文章