- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux设备驱动归纳总结(一):内核的相关基础概念
一.linux设备驱动的作用
内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。
linux设备驱动:是连接硬件和内核之间的桥梁。
linux系统按个人理解可按下划分:
应用层:包括POSIX接口,LIBC,图形库等,用于给用户提供访问?内核的接口。属于用户态,ARM运行在用户模式(usr)或?者系统模式(sys)下。
内核层:应用程序调用相关接口后,会通过系统调用,执行SWI指?令切换ARM的工作模式到超级用户(svc)模式下,根据用?户函数的要求执行相应的操作。
硬件层:硬件设备,当用户需要操作硬件时,内核会根据驱动接口?操作硬件设备
图结构如下:
举一个相对比较邪恶的类比:
在深圳的酒店经常会在门缝看到一些卡片,上面说可以通过打电话送货上门提供某中服务。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
二.内核代码树介绍
linux-2.6.29
|-arch :?包含和硬件体系结构相关的代码
|-block :?硬盘调度算法,不是驱动
|-firmware :?固件,如BOIS
|-Documentation:?标准官方文档
|-dirver : linux设备驱动
|-fs :?内核所支持的文件体系
|-include?:头文件。linux/module.h linux/init.h?常用库。
|-init?:库文件代码,C库函数在内核中的实现。
init/main.c -start_kernel-内核执行第一条代码
|-ipc :?进程件通信
|-mm?:内存管理
|-kernel :?内核核心部分,包括进程调度等
|-net?:网络协议
|-sound :?所有音频相关
|
其中,跟设备驱动有关并且经常查阅的文件夹有:
init
include : linux, asm-arm
drivers:
arch:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
三.内核补丁:
补丁一般都是基于某个版本内核生成的,用于升级旧内核。
打补丁需要注意:
1.对应版本的补丁只能用于对应版本的内核。
2.如果在已打补丁的内核再打补丁,需要先卸载原来补丁。
打补丁的方法:
1.制作补丁:
diff -Nur linux-2.6.30/ linux-2.6.30.1/ linux-2.6.30.1.patch
//N为新加的文件全部修改
//linux-2.6.30?旧版本
//linux-2.6.30.1?新版本
//目标补丁
2.打补丁:
cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁
patch -p1 ../linux-2.6.30.1.patch //-p1是忽略一级目录
3.恢复:
cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁
patch -R ../linux-2.6.30.1.patch //撤销补丁
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
四.内核中的Makefile:
对于内核,Makefile分为5类:
Documentation/kbuild/makefiles.txt描述如下:
50 The Makefiles have five parts:
51
52 Makefile?总Makefile,控制内核的编译
53 .config?内核配置文件,配置内核时生成,?如make menuconfig后
54 arch/$(ARCH)/Makefile?对应体系结构的Makefile
55 scripts/Makefile.* Makefile共用的规则
56 kbuild Makefiles?各子目录下的Makefile,被上层的Makefile调用。
简单来说,编译内核会执行以下两步骤,它们分别干了以下的事情。
1一般的,我们会拷贝一个对应体系结构的配置文件到主目录下并改名为?.config,这样就在make menuconfig生成的图形配置中?已经有了一些默认的配置,减少用户的劳动量。不过这一步不做也没关系的。
2.make menuconfig
2.1、由总Makefile决定编译的体系结构(ARCH).?编译工具(CROSS_COMPILE),并知道需要进去哪些内核根下的哪些目录进行编译。
2.2、由arch/$(ARCH)/Makefile,决定arch/
您可能关注的文档
最近下载
- 样板间施工方案(全).pdf VIP
- 湖南省小型农田水利工程标准化设计图集山塘工程分册 (无水印).pdf VIP
- DBJ50_T-492-2024 城镇排水管渠污泥处理处置技术标准.docx VIP
- 新教材青岛版三年级下册科学6.把它们分离教学课件.pptx VIP
- 潍柴_国六_后处理_DPF系统介绍_结构布局.pdf VIP
- 2025年中国专业显卡市场调查研究报告.docx
- IBM_SiView_Introduction.ppt
- 标准图集-湖南省农村小型水利工程典型设计图集-雨水集蓄利用工程分册.pdf VIP
- 2024《美的集团跨国并购库卡集团的动因分析综述》3100字.docx VIP
- 江苏省盐城市东台市部分学校2024-2025学年高一下学期期中考试地理试题(原卷版+解析版).docx VIP
文档评论(0)