全部博文(1493)
发布时间:2013-10-28 15:39:58
理解printk函数 Printk函数是在开发驱动过程中经常用到的一个函数,作用就是在串口上输出内核的信息。这个常用的函数的执行过程未必大家都和清楚,下面的文章分析一下printk的执行过程,并说明printk函数的一些特点。 下面是printk的执行过程,重要的步骤有如下几个 1. print.........【阅读全文】
发布时间:2013-10-10 18:34:35
static int __init my_init(void)__init 宏展开是 .init.text __attribute__ ((__section__(#S))),这是编译器的一个属性,就是将有这个前缀的函数代码放到一个代码段中,.init.text段,在内核启动的时候会把这个代码段中的所有函数都执行一遍。__attribute__只适用于GNU C,因为内核都是用GNU C的标准写的备注:.........【阅读全文】
发布时间:2013-08-31 01:28:36
1. 无法卸载动态加载的模块 如图所示情况: 在lib/modules目录下创建3.2.8-JasonARM目录即可卸载。 2. 帧缓冲驱动已移植成功后,为了启动QT,配置了Networking support与Gernel Setup下的内核选项,因界面中用了socket及信号量,具体配置参考友善之臂,不详细列出。 3. 修改启动后终端中.........【阅读全文】
发布时间:2013-07-13 02:17:10
1.内存地址1.逻辑地址:每一个逻辑地址都有一个段和偏移量组成。2.线性地址:也叫虚拟地址,是一个32位无符号整数,可以用来表示高达4GB的地址,值得范围从0x00000000到0xffffffff。3.物理地址:用于内存芯片级内存单元寻址内存控制单元(MMU)将逻辑地址转化成线性地址,再转化成物理地址。2.硬.........【阅读全文】
发布时间:2013-06-03 00:41:31
好久没继续,心中有愧呀。一、介绍块设备驱动中包含了三部分代码:硬盘驱动,ramdisk驱动,软盘驱动。这三个部分的代码是一致的,采用了相同的处理方式。就是说对底层来说,不同硬件采用不同的方式读取数据,但上层用同样的接口来处理读写操作。大致流程:1:程序要读取数据,首先向缓存区管理程序发出申请,并进.........【阅读全文】