Linux kernel
文章平均质量分 75
Buyi_Shizi
这个作者很懒,什么都没留下…
展开
-
pci_register_driver
在bus总线对应的数据结构bus_type中,有两份重要的结构体,struct kset drivers和struct kset devices。在写驱动程序的时候,要想驱动程序能工作,首先就要把驱动程序对应的driver程序放进struct kset driver结构体中,然后把设备的信息放入struct kset device中。 而pci_register_driver()就是把某原创 2016-04-27 17:38:56 · 9350 阅读 · 0 评论 -
V4L2视频采集驱动框架
V4l2是视频采集的驱动吗,不是。V4l2只是一个视频采集的框架,何为框架,V4l2只是定义了一系列有关视频采集数据 的数据结构,而没有真正进行内存映射以及数据读写的操作。但是在V4l2中的确声明了数据读写和内存映射的操作(file_operations v4l2_fops),但是具体的实现却是另外的内核代码实现的。 static const struct file_operations原创 2016-04-21 17:43:26 · 879 阅读 · 0 评论 -
linux重新编译内核
在写驱动程序的过程中,单纯用printk进行前期调试,很是复杂,很难定位错误在什么地方,而内核层的代码是不能像普通程序那样直接利用gdb进行调试的,但是这里说的只是在一台计算机上不能一边运行驱动,一边运行gdb;但是如果有两台计算机,就可以了。一台计算机当作目标机,运行要调试的驱动,另一台计算机当作开发机,运行gdb。 但是要想目标机支持远程gdb调试,目标机的内核就必须支持这种操作,这原创 2016-07-27 16:04:32 · 6858 阅读 · 0 评论 -
gdb远程调试过程
在另一篇文章里已经介绍过如何编译安装可以远程gdb调试的内核,在这里我们就来详细介绍一下图和利用gdb远程调试内核和驱动。 网上有很多关于gdb远程调试内核的文章,但是很多文章都说得很杂,而且很多都是利用主机来调试嵌入式的开发板,我们这里说的是利用主机去调试另一台主机的内核和驱动模块。 1,硬件条件 两台主机,一条RS232母对母交叉线(由于主机上的RS232串口线都原创 2016-07-27 20:37:56 · 2856 阅读 · 0 评论 -
利用gdb远程调试驱动模块
在前面的文章中我总结了gdb远程调试内核的大致过程,由于一开始利用kgdb就是想调试自己的驱动模块,所以,这里我对怎么利用gdb远程调试驱动模块做一个总结。 其实调试驱动模块和调试内核的过程是完全一样的,但是调试驱动模块一个很重要的地方就是驱动的初始化的调试很困难,这我在下面会详细说明原因。 通过两天的摸索,我感觉虽然gdb可以远程调试内核,但是由于调试内核相对于调试普通程序的原创 2016-07-28 17:15:33 · 3535 阅读 · 0 评论