嵌入式系统驱动开发.ppt

注册与注销 注册和注销函数: register_*dev() unregister_*dev() //include/linux/fs.h 所谓注册就是在内核的chrdevs或blkdevs中添加一项。 struct device_struct { const char * name; struct file_operations * fops; }; 相同主设备号的fops元素内容相同。 打开与释放 打开设备: open() 检查与设备有关的错误,如未准备好。 如果是首次打开,则初始化设备。 确定次设备号,根据需要可更新设备的f_op。 如果需要,分配且设置文件中的private_data。 递增设备使用的计数器。 如果只允许一个进程使用设备,则需要设忙标志。 释放设备:release() 递减设备使用的计数器 释放设备文件中的私有数据所占空间 如果是独占设备,则要清除忙标志,使其他进程可以使用 如果是最后一个释放,则关闭设备 设备的读写操作 字符设备: foo_read()和foo_write() 块设备 block_read和block_write()——策略规程,不需要在驱动程序中实现。 通过缓冲区读写,只在数据不在缓冲区时

文档评论(0)

1亿VIP精品文档

相关文档