栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux设备驱动概述

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux设备驱动概述

1. linux设备的分类及特点

计算机系统的硬件主要由CPU、存储器和外设组成。驱动程序针对的对象是存储器和外设,包括现在CPU内部集成的存储器和外设,并不针对CPU内核。linux将存储器和外设分为3大基础类:

  • 字符设备

必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等。

  • 块设备

可以按任意顺序进行访问,以块为单位进行操作的设备。如磁盘、eMMC等。

  • 网络设备

面向数据包的接受和发送而设计,内核与网络设备的通信依赖于套接字接口。

2.linux设备驱动与整个软硬件系统的关系

除了网络设备以外,字符设备与块设备都被映射到linux文件系统的文件和目录,通过文件系统的系统调用接口访问。如open()、write()、read()、clsoe()等。所有字符设备和块设备都统一呈现给用户。块设备的访问方式上分两种:第一种方法是类似dd命令对应原始的块设备,如"/dev/sdb1"等;第二种方法是在块设备上建立FAT/EXT4/BTRFS等文件系统,然后以文件路径的形式进行访问。在linux中,针对NOR、NAND等提供了独立的内存技术设备子系统,如YAFFS2、JFFS2、UBIFS等具备负载均衡能力的文件系统。针对磁盘或Flash设备的FAT、EXT4、YAFFS2、JFFS2、UBIFS等文件系统,其系统定义了文件和目录在存储介质上的组织。而linux的虚拟文件系统则统一对它们进行了抽象。

3.linux设备驱动学习的重点与难点

linux设备驱动学习是一项浩瀚的工程,包括:

  • 编写linux设备驱动要求良好的硬件基础,需要学习SRAM、Flash、SDRAM、磁盘的读写方式,UART、IIC、USB等设备接口以及轮询、中断、DMA的原理。还有PCI总线的工作方式和CPU的MMU(内存管理单元)。
  • 扎实的C语言基础,灵活使用C语言的结构体、指针、函数指针以及动态内存分配等等。
  • 了解一定的linux内核基本知识,至少明白驱动与内核的接口。如块设备、网络设备、Flash设备、串口设备等。
  • 掌握UNIX高级环境编程中的多任务并发控制和同步机制,譬如自旋锁、互斥、信号量、等待队列等。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/827607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号