kernel
文章平均质量分 78
pottichu
人的杂念和私心,在艰难困苦中滤尽;人的痼癖和惰性,在艰难困苦中消遁
人的智慧和情感,在艰难困苦中萌发;人的理想和追求,在艰难困苦中升腾!
展开
-
linux 驱动开发 Invalid module format 错误解决方法
我想,很多刚开始学习linux 驱动程序的朋友都和我一样,遇到过类似的问题。1. 编译错误(其实这个问题和 Makefile有很大关系)2. Invalid module format 错误3. insmod: error inserting ./hello.ko: -1 File exists 开发环境 内核版本: 2.6.22 (我下载的最新版本)gcc原创 2007-11-19 11:53:00 · 31818 阅读 · 3 评论 -
从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响
转贴: 原地址:http://www.ibm.com/developerworks/cn/linux/l-module26/从 2.4 到 2.6,Linux 内核在可装载模块机制、设备模型、一些核心 API 等方面发生较大改变,设备驱动开发人员面临着将驱动从 2.4 移植到 2.6 内核,或是使驱动同时支持2.4 与 2.6 内核的任务。站在设备驱动开发人员的角度,驱动由一个或几个外转载 2007-11-19 11:36:00 · 7370 阅读 · 1 评论 -
Linux I2C核心、总线与设备驱动
原贴地址.http://www.linuxdriver.cn/html/200710/185.htm很棒,很棒的文章。I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在转载 2007-12-29 16:08:00 · 6792 阅读 · 4 评论 -
kernel 启动过程之二, arch/arm/kernel/head.S
从zImage头跳转进来,此时的状态MMU为off D-cache为off I-cache为dont care,on或off没有关系 r0为0 r1为machine ID r2为atags指针 内核代码入口在linux-2.6.24-moko-linuxbj/arch/arm/kernel/head.S文件的83行。首先进入SVC32模式,并查询转载 2009-06-11 17:44:00 · 7308 阅读 · 0 评论 -
kernel 启动过程之五, initcall 的来由, console 的初始化。
参见include/linux/init.h和vmlinux.lds1)所有标识为__init的函数在链接的时候都放在.init.text这个区段内,在这个区段中,函数的摆放顺序是和链接的顺序有关的,是不确定的。2)所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数指针,并在整个初始化转载 2009-06-11 17:58:00 · 5101 阅读 · 0 评论 -
kernel 启动过程之三, start_kernel()函数 概叙!init/main.c
核心数据结构初始化--内核引导第一部分 start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。在start_kernel()函数中, 输出Linux版本信息(printk(linux_banner))设置与体系结构相关的环境(setup_arch())页表结构初始转载 2009-06-11 17:51:00 · 9263 阅读 · 2 评论 -
kernel 启动过程之一, uimge, zimage,arch/arm/boot/compressed/head.S
这几天因为工作原因,升级 2.6.22.7 的kernel 到 Mavell 的arm 板子上去,遇到一些头疼的问题,不得不分析启动代码, 郁闷阿。 zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImag转载 2009-06-11 17:24:00 · 8188 阅读 · 3 评论 -
kernel 启动过程之四,start_kernel中的rest_init函数到init进程
tart_kernel ,是用来启动内核的主函数,我想大家都知道这个函数啦,而在该函数的最后将调用一个函数叫 rest_init() ,它执行完,内核就起来了, asmlinkage void __init start_kernel(void) { ...... /* Do the rest non-__ini转载 2009-06-11 17:55:00 · 4670 阅读 · 1 评论 -
在内核中访问 文件系统里的文件。
#include #include #include #include #include #include #include #include #include #include #include #include MODULE_LICENSE("GPL");/** ** /fn openFile ** /brief Open a原创 2010-05-06 15:47:00 · 1706 阅读 · 0 评论