1.Linux设备驱动开发概述及开发环境构建
1.驱动分为无操作系统,和有操作系统驱动,
操作系统作用在于多任务及内存管理(操作系统给驱动制造麻烦,而给用户层提供便利)
2.设备特点和分类
设备特点:
计算机系统的硬件主要由CPU、存储器和外设组成。随着IC 制作工艺的发展,目前,芯片的集成度越来越高,往往在CPU 内部就集成了存储器和外设适配器。譬如,相当多的ARM、PowerPC、MIPS 等处理器都集成了UART、I2C 控制器、SPI 控制器、USB 控制器、SDRAM 控制器等,有的处理器还集成了GPU(图形处理器)、视频编解码器等。
驱动针对对象是存储器和外设。
设备分类:
分为字符设备、块设备、网络设备
字符设备:字符设备指那些必须以串行顺序依次进行访问的设备,如触摸屏、磁带驱动器、鼠标等
块设备:块设备可以按任意顺序进行访问,以块为单位进行操作,如硬盘、eMMC 等,。字符设备和块设备的驱动设计有出很大的差异
网络设备:网络设备面向数据包的接收和发送而设计,它并不倾向于对应于文件系统的节点。内核与网络设备的通信与内核和字符设备、网络设备的通信方式完全不同,前者主要还是使用套接字接口