基本字符设备驱动模型
1.字符设备驱动程序设计步骤
(1)定义一个字符设备结构体struct cdev------用来描述某个字符设备
(2)初始化字符设备结构体,struct file_operations文件操作集合---cdev_init
(3)申请设备号(ID)
(4)注册字符设备cdev_add
(5)创建设备文件(设备节点)
(a)手动创建----mknod
(b)自动创建----创建class(创建目录),在class下创建device
自动创建class_create device_create 会在/dev下建立一个设备文件 且在 /sys/class/ 下创建一个文件夹与文件
(6)申请IO内存----为了资源的互斥访问
(7)映射为虚拟地址 (因为在模块中伸请的是实际地址,要给上层用,所以得虚拟地址
(8)通过虚拟地址操作硬件