我自己的学习日志
文章平均质量分 79
若虚_似水年华
这个作者很懒,什么都没留下…
展开
-
LInux设备驱动程序——module_init()和module_exit()
从五月份开始正式接触Linux设备驱动程序,到现在有2个多月了,其实真正算下来花费在这上面的时间有40天就不错吧,5月7日从家回来是真正的开始,回来之后花了大概有两周开始学习一些最基本的东西,这段时间也到了期末的时间,同时还要开各种会,很少能够真正的静下心来真正做些事情。到6月份开始准备图论和学位英语的考试,用了半个多月的时间,直到6月20号图论考试完才真正把全部精力投入到这上面。有时候真心感觉自原创 2013-07-24 22:02:55 · 1244 阅读 · 1 评论 -
一个简单的makefile文件分析
前一段时间在一个altera开发板上面写了一个以太网卡驱动程序,随后原创 2014-04-11 15:27:37 · 651 阅读 · 0 评论 -
GNU中的make和makefile
说来惭愧呀,调试驱动代码的时候每天都在使用make命令,却不知道make命令究竟是用来做什么的,上周有个师弟问我make和makefile究竟是用来做什么的,我只是根据自己的理解给他说了一下,回头想想自己说的也不对呀,所以才回过头来好好再学习一下make命令和makefile.这部分的内容主要参考了《Linux程序设计第四版》和http://hi.baidu.com/tvbljlqlfkaejwr原创 2014-04-09 21:48:46 · 760 阅读 · 0 评论 -
C语言中main( int argc, char *argv[] )和getopt()函数学习
回头想想自己原创 2014-04-04 21:06:58 · 1022 阅读 · 1 评论 -
Linux网络设备驱动程序——alloc_netdev()与alloc_etherdev()
前一段时间一直在看FCoE交换机方面的的代码,忽然老师让把前一段时间看过的师兄写的关于一个CNA卡的代码改一下,原来的CNA卡的驱动是一个字符设备驱动,现在要把它改成网络设备驱动,本来没有怎么在意,还是准备以交换机那边的为主,后来发现看了这么长时间的代码,真的需要好好地写一下代码了,再说以前看了很多关于网络设备的知识,很多东西都已经遗忘了,现在开始好好写一下这个驱动的代码,先把这个网卡做成一个以太原创 2013-11-07 20:27:06 · 6450 阅读 · 0 评论 -
Linux设备驱动程序——PCI相关知识的学习
PCI相关的知识的学习一、首先了解一下PCI相关的一些基础知识:PCI总线的结构:PCI总线结构是一种层次型的体系结构,在这个结构体中PCI桥设备占据重要的地位。将父总线和子总线连接在一起,使得整个系统像一棵倒置的树。PCI桥主要包括以下几种:Host/PCI桥:用于连接CPU和PCI根总线,第一根的总线为0,内存控制器通常也集成到这个桥设备中。通常也被称为北桥芯片原创 2013-08-08 10:49:10 · 1031 阅读 · 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 · 993 阅读 · 0 评论 -
Linux设备驱动程序——Linux设备驱动程序——内存和I/O基础知识学习:(2)内核中相关基础知识学习
接上篇内存和I/O基础知识学习:(1)内核中相关基础知识学习 Linux主要由5个模块组成、分别是进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。 进程调度模块用来负责控制进程对CPU资源的使用,通过调度使得各个进程能偶公平的访问CPU。内存管理模块用于确保各进程能够安全的共享内存。虚拟文件系统通过向所有的外部设备提供一个通用的文件接口,隐藏了各个硬件设原创 2013-08-13 15:32:48 · 880 阅读 · 0 评论 -
Linux设备驱动程序——内存和I/O基础知识学习:(1)内核中相关基础知识学习
这部分的内容来源于《Linux内核完全剖析》这里面主要牵涉的是内核中的东西,之所以花了很长时间来学习这方面的东西,是因为前一段在看和网络设备驱动相关的代码和资料的过程中,牵涉到了很多的内存相关的知识点,而对着方面的东西又不懂,搞的很头疼。而内存的分配和管理又是非常庞大和复杂的一块,所以痛下决心把这一块的知识好好学习一下,这样后面的学习过程也会变得比较容易。由于是自己打出来的,有些是按照自己理解写出原创 2013-08-12 11:16:21 · 963 阅读 · 0 评论 -
动态数组
在做上一个acm编程习题的时候其实就考虑过动态数组的问题,只是后来没有用,所以就把它给忘了,不料做到下一个练习的时候,真的还得用到动态数组,虽然在原创 2013-08-21 19:32:00 · 839 阅读 · 0 评论 -
Linux TCP/IP 协议栈的关键数据结构Socket Buffer(sk_buff )
从网上转载了一篇讲sk_buff的文章,讲的很清楚,最棒的是还有图。sk_buff结构可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息。它在中定义,并包含很多成员变量供网络代码中的各子系统使用。 这个结构在linux内核的发展过程中改动过很多次,或者是增加新的选项,或者是重新组织已存在的成员变量以使得成员变量的布局更加清晰。它的成员变量可以大致分为以下几类:转载 2014-04-11 15:42:23 · 1029 阅读 · 0 评论