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协议)相关推荐
- Linux下按扇区读写块设备,Linux下按扇区读写块设备
本文介绍Linux下按扇区读写块设备(示例TF卡),实际应用是在Android系统上,主要方法如下: 1.找到sdcard的挂载点,在android2.1系统下应该为/dev/block/mmcblk ...
- Linux驱动开发 15 块设备驱动框架
CAN I.MX6ULL 带有两个 CAN 控制器: FlexCAN1 和 FlexCAN2 , NXP 官方的 EVK 开发板这两个 CAN 接口都用到了,因此 NXP 官方的设备树 ...
- Linux驱动编写(块设备驱动代码)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 按照ldd的说法,linux的设备驱动包括了char,block,net三种设备.char设备 ...
- linux 块设备驱动 (三)块设备驱动开发
linux 块设备驱动 (三)块设备驱动开发 一: 块设备驱动注册与注销 块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数是 register_blkdev(),其原型为: int ...
- Linux块设备驱动总结
<Linux设备驱动程序>第十六章 块设备驱动程序读书笔记 简介 一个块设备驱动程序主要通过传输固定大小的随机数据来访问设备 Linux内核视块设备为与字符设备相异的基本设备类型 Linu ...
- 转载:谢谢原作者:块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动)
1 内核块设备驱动基础学习与实战 1.1 设备驱动IO架构初探 操作系统是如何将数据读到缓冲区的,发生了什么?我们带着这样的问题,粗略走一下read调用系统过程,希望这个初探,可以唤起大家研究操作 ...
- 块设备驱动、bio理解
别人写过的内容,我就不写了.贴一下大佬的博客,写的非常好: 块设备驱动实战基础篇一 (170行代码构建一个逻辑块设备驱动) 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行) 块设备驱 ...
- Linux驱动开发|块设备驱动
块设备驱动 块设备驱动是 Linux 三大驱动类型之一,块设备驱动比字符设备驱动复杂得多,不同类型的存储设备又对应不同的驱动子系统,下面介绍块设备驱动框架及使用 一.块设备介绍 块设备是针对存储设备的 ...
- Linux驱动开发--写一个块设备驱动
原文地址:[原创] 写一个块设备驱动 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2017377&fromuid=288 ...
最新文章
- SAP MM 采购单据的屏幕布局配置中字段选择值“$$$$”有什么用处?
- Database之SQLSever:SQLSever数据库管理学习并深入理解SQL命令语句进阶综合篇《初级→中级→高级》(持续更新,建议收藏)
- IOS UIAlertController 使用方法
- vim括号操作(转)
- 从python存入的文件是乱码_如何解决python写入html文件中乱码的现象(图文详解)...
- C语言递归算法十进制数转换为八进制(附完整源码)
- python处理xml文件_Python解析并修改XML文件
- c# 文件压缩、解压及下载
- xshell 连接不了 centos7
- 写“博客”页面踩过的坑
- 计算机算法设计与分析第四版在线,计算机算法设计与分析(第4版) 王晓东习题解答计算机算法设计与分析(第4版) 王晓东习题解答.pdf...
- 即时通讯源码,IM源码-哇谷即时通讯源码,哇谷团队源码开发
- java生成竖排文字图片_怎么给图片加上竖排文字?
- 踏歌智行筹备A股上市:正招募首席财务官,投资方包括宝通科技等
- jenkins如何清缓存_Maven本地缓存清理小工具
- 待到凤凰花开季,惟愿前程皆似锦
- 用python开发的运维管理系统_python运维开发常用模块(一)psutil
- ANC主动降噪耳机有哪些?ANC主动降噪耳机推荐!
- Python判断一个正整数是否为素数的算法
- Cmder | 一款命令行增强工具