小言_互联网的博客

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

298人阅读  评论(0)

一、前言

块设备主要为存储设备设计的框架。 在前面章节Linux下驱动开发_块设备驱动开发(内存模拟存储) 里介绍了块设备驱动编写思路,并且利用内存模拟了硬件存储,完成了块设备驱动开发测试。这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。

SD卡本身支持SPI协议、SDIO协议,一般能跑Linux系统的CPU都在硬件上支持SPI协议、SDIO协议,如果要提高读写速度,肯定是采用SDIO协议最合适。这篇文章主要是介绍SD卡+块设备框架的驱动开发思路,代码里选择了SPI协议来进行通信,读写SD卡的速度比较慢(与SDIO比数据线都少了几条)。  SPI协议比较简单,学习过单片机的都比较熟悉,并且SPI协议还可以自己模拟时序,不一定要硬件上支持的,在难度上就降低了不少。 

块设备驱动的思路是: 处理应用层的请求。

我们知道操块设备,都是通过文件系统读写访问比如:(U盘、SD卡、磁盘)这些设备。

读写操作块设备的常用命令: 

dd、fdisk、mount

比如以下的文件操作代码:


  
  1. mount /dev/sdb /mnt
  2. fopen( "/mnt/123.c", "wb") ;
  3. fwrite( "1233445656") ;
  4. fclose() ;

代码执行之后的请求反应到驱动层的接口


转载:https://blog.csdn.net/xiaolong1126626497/article/details/127917065
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场