一、字符设备驱动程序框架
1、字符设备:能一个字节一个字节读取数据的设备
块设备:可以从设备的任意位置读取一定长度的数据的设备
文件通常在/dev目录下
2、设备属性:
第一字段:c表示设备是字符设备,b表示设备是块设备
第5、6字段:表示设备的主设备号和次设备号
第7字段:表示文件的最后修改时间
第8字段:表示设备的名字
3、一个字符设备或者块设备都有一个主设备号和次设备号,主设备号和次设备号统称为设备号,
主设备用来表示一个特定的驱动程序,次设备用来表示使用该驱动程序的各设备
4、字符设备驱动的组成
字符设备加载和卸载函数
二、设备驱动中的并发控制
并发是指在操作系统中,一个时间段中有几个程序同时处于就绪状态,等待调度到CPU中运行。
并发容易导致竞争问题,竞争就是两个或两个以上的进程同时访问一个资源,从而引起资源的错误。
1、原子变量操作
该操作绝不会在执行完毕前被任何其他任务或事件打断。
2、自旋锁:忙等待,不能递归使用
使用步骤:定义和初始化自旋锁,锁定自旋锁,释放自旋锁