❤️作者主页:凉开水白菜
❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步!
❤️专栏资料:https://gitee.com/stylle/linux_code
❤️点赞 👍 收藏 ⭐再看,养成习惯
订阅的粉丝可通过PC端文末加我微信,可对文章的内容进行一对一答疑!
简介
一、初始化部分 register_chrdev_func
1、platform总线注册
2、Of_MATCH_COMPATILBLE 设备树compatilble属性
3、ID_TABLE_COMPATILBLE id_table compatilble属性
4、通过两个匹配属性进入probe函数获取设备树信息
5、probe函数注册字符,当insmod方式注册驱动如带有设备号参数则采用静态注册,当未传入设备号采用动态分配
creat_class_and_device_func
6、创建class类、device设备,通过该结构体创建设备节点DEVICE_NODE_NAME 在/dev/下查看
二、中断部分 creat_interrup_func
1、中断部分涉及了三个服务函数分别是中断上文、tasklet、workqueue
static irqreturn_t irq_top_handle(int irq, void *args)
2、中断上文中处理紧急任务