Linux驱动相关
文章平均质量分 78
若虚_似水年华
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动程序——驱动调试printk()
前一段时间学了一下,printk()打印语句,现在用起来又忘了,看了一下前一段时间做的笔记,不是很详细,所以决定再写一下和printk相关的调试的东西。算是复习一下吧。 首先,先熟悉一下printk函数,这个函数和printf函数很类似。只不过一个运行在用户态,一个运行在内核态。 首先需要说的是可以通过以下几种途径查看printk()函数的打印信息原创 2013-08-22 20:36:05 · 881 阅读 · 0 评论 -
GNU中的make和makefile
说来惭愧呀,调试驱动代码的时候每天都在使用make命令,却不知道make命令究竟是用来做什么的,上周有个师弟问我make和makefile究竟是用来做什么的,我只是根据自己的理解给他说了一下,回头想想自己说的也不对呀,所以才回过头来好好再学习一下make命令和makefile.这部分的内容主要参考了《Linux程序设计第四版》和http://hi.baidu.com/tvbljlqlfkaejwr原创 2014-04-09 21:48:46 · 765 阅读 · 0 评论 -
Linux网络设备驱动程序——alloc_netdev()与alloc_etherdev()
前一段时间一直在看FCoE交换机方面的的代码,忽然老师让把前一段时间看过的师兄写的关于一个CNA卡的代码改一下,原来的CNA卡的驱动是一个字符设备驱动,现在要把它改成网络设备驱动,本来没有怎么在意,还是准备以交换机那边的为主,后来发现看了这么长时间的代码,真的需要好好地写一下代码了,再说以前看了很多关于网络设备的知识,很多东西都已经遗忘了,现在开始好好写一下这个驱动的代码,先把这个网卡做成一个以太原创 2013-11-07 20:27:06 · 6502 阅读 · 0 评论 -
Linux设备驱动程序——PCI相关知识的学习
PCI相关的知识的学习一、首先了解一下PCI相关的一些基础知识:PCI总线的结构:PCI总线结构是一种层次型的体系结构,在这个结构体中PCI桥设备占据重要的地位。将父总线和子总线连接在一起,使得整个系统像一棵倒置的树。PCI桥主要包括以下几种:Host/PCI桥:用于连接CPU和PCI根总线,第一根的总线为0,内存控制器通常也集成到这个桥设备中。通常也被称为北桥芯片原创 2013-08-08 10:49:10 · 1045 阅读 · 1 评论 -
Linux设备驱动程序——I/O端口和I/O内存
每个外设都是通过读写寄存器来控制的,一般一个设备有几个寄存器,它们在内存地址空间或者I/O地址空间。这里需要学习一下i/O内存和I/O端口:一类CPU(如M68K,Power PC,ARM,Unicore等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令(可以以此判定体系为哪种)。这就是所谓的“原创 2013-10-10 19:03:12 · 1007 阅读 · 0 评论 -
Linux设备驱动程序——Linux设备驱动程序——内存和I/O基础知识学习:(2)内核中相关基础知识学习
接上篇内存和I/O基础知识学习:(1)内核中相关基础知识学习 Linux主要由5个模块组成、分别是进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。 进程调度模块用来负责控制进程对CPU资源的使用,通过调度使得各个进程能偶公平的访问CPU。内存管理模块用于确保各进程能够安全的共享内存。虚拟文件系统通过向所有的外部设备提供一个通用的文件接口,隐藏了各个硬件设原创 2013-08-13 15:32:48 · 889 阅读 · 0 评论 -
Linux设备驱动程序——内存和I/O基础知识学习:(1)内核中相关基础知识学习
这部分的内容来源于《Linux内核完全剖析》这里面主要牵涉的是内核中的东西,之所以花了很长时间来学习这方面的东西,是因为前一段在看和网络设备驱动相关的代码和资料的过程中,牵涉到了很多的内存相关的知识点,而对着方面的东西又不懂,搞的很头疼。而内存的分配和管理又是非常庞大和复杂的一块,所以痛下决心把这一块的知识好好学习一下,这样后面的学习过程也会变得比较容易。由于是自己打出来的,有些是按照自己理解写出原创 2013-08-12 11:16:21 · 967 阅读 · 0 评论 -
一个简单的makefile文件分析
前一段时间在一个altera开发板上面写了一个以太网卡驱动程序,随后原创 2014-04-11 15:27:37 · 658 阅读 · 0 评论