linux驱动开发
文章平均质量分 89
钟浩森
平平无奇一研究生,从土木行业到电子行业的学习进阶之路!
展开
-
【linux驱动开发】-gpiolib概念与实践
在平常的硬件驱动过程中,很多的硬件都要用到GPIO,GPIO会复用,如果同一时刻GPIO被两个驱动同时控制了,那么就会出现bug,所以内核提供了gpiolib来统一管理系统中所有的GPIO,gpiolib本身就是属于驱动框架的一部分!原创 2022-08-22 10:27:24 · 696 阅读 · 1 评论 -
【linux驱动开发】-驱动入门之LED
可以清晰的看出与之前的区别,之前我们写"散养的"驱动时,我们首先需要注册,这中间就需要调用很多的内核函数,除此之外我们要在sys/class/下面创建类和设备,也需要调用其他的函数,而在驱动框架里,所有的一切都在框架里帮我们完成了,也就是在led-class.c中的led_classdev_register函数!都能够实现,并且程序里使用的led_classdev结构体,也是驱动框架里提供,我们直接用就可以,他的一些变量,比如name、brightness、brightness_set函数指针都是可以直接原创 2022-08-21 18:20:20 · 1245 阅读 · 0 评论 -
【linux驱动开发】-字符设备驱动高级
在字符设备驱动基础章节,我们使用的注册字符设备驱动的接口为register_chrdev,在本章节我们要学习一种注册字符设备驱动的新接口register_chrdev_region/alloc_chrdev_region+cdev原创 2022-08-14 22:55:38 · 618 阅读 · 0 评论 -
【linux驱动开发】-字符设备驱动基础(二)
(1)裸机中操作硬件,直接操作的是寄存器的物理地址;习惯用函数指针操作寄存器的方法!(2)操作系统中操作硬件,操作的是寄存器物理地址在内核中映射的虚拟地址。内核中习惯用封装好的io读写函数来操作寄存器,已实现最大程度的可以执行。...原创 2022-08-14 17:58:19 · 242 阅读 · 0 评论 -
【linux驱动开发】-字符设备驱动基础(一)
API里面的函数,比如open、close等实际调用驱动程序中的open、close这些函数,这些函数直接对接硬件!驱动里面的open、close等操作函数,是定义在file_operations结构体中的,每个设备驱动都需要一个该结构体类型的变量!当设备驱动向内核注册时提供该结构体的变量。向内核中注册时使用的是register_chrdev函数注册!...原创 2022-08-14 12:38:40 · 357 阅读 · 0 评论 -
【linux驱动开发】-关于驱动学习你得知道的
准确的说,驱动是和操作系统挂钩的,在操作系统中,去操作硬件的那一段代码,才能叫做硬件的驱动程序。平时在裸机程序中,去操作硬件的代码,我们不叫驱动,只是大家都习惯了,所以我们有时候也叫裸机驱动!...原创 2022-08-12 23:03:36 · 640 阅读 · 0 评论