创建一个简单字符设备驱动的过程:
第一步:首先构造并定义描述这个具体设备的结构体。
第二步:确定这个设备所提供的操作:定义file_operation并初始化。
第三步:在module_init函数中,
**********第一步:用register_chrdev_region函数或alloc_chrdev_region函数来静态或动态的申请设备号
**********第二步:初始化cdev结构,也就是调用cedv_init函数将cdev结构变量与file_operation绑定
**********第三步:调用cdev_add函数,使用申请到的设备号来注册字符设备。
第四步:在module_exit中,
**********第一步,使用 cdev_del来对设备进行注销
**********第二步:使用unregister_chrdev_region来释放设备号
第五步:完成设备的具体操作,也就是实现前面定义的file_operation结构体中的函数,这些函数才是最终完成的对具体设备的读写或其他操作。
第一步:首先构造并定义描述这个具体设备的结构体。
第二步:确定这个设备所提供的操作:定义file_operation并初始化。
第三步:在module_init函数中,
**********第一步:用register_chrdev_region函数或alloc_chrdev_region函数来静态或动态的申请设备号
**********第二步:初始化cdev结构,也就是调用cedv_init函数将cdev结构变量与file_operation绑定
**********第三步:调用cdev_add函数,使用申请到的设备号来注册字符设备。
第四步:在module_exit中,
**********第一步,使用 cdev_del来对设备进行注销
**********第二步:使用unregister_chrdev_region来释放设备号
第五步:完成设备的具体操作,也就是实现前面定义的file_operation结构体中的函数,这些函数才是最终完成的对具体设备的读写或其他操作。
下面这个图可以大致描述应用程序中的open、write等操作时怎样和具体的设备关联起来的。
本文详细介绍了创建简单字符设备驱动的五个主要步骤:定义设备结构体、设置file_operations、申请和注册设备号、设备操作实现及注销过程。通过这些步骤,可以清晰了解字符设备驱动的开发流程。
960

被折叠的 条评论
为什么被折叠?



