linux 设备驱动总结,linux设备驱动归纳总结.doc

linux设备驱动归纳总结

linux设备驱动归纳总结

内核:用于管理软硬件资源,并提供运行环境。如分配4G虚拟空间等。 linux设备驱动:是连接硬件和内核之间的桥梁。

linux系统按个人理解可按下划分:

应用层:包括POSIX接口,LIBC,图形库等,用于给用户提供访问 内核的接口。属于用户态,ARM运行在用户模式或 者系统模式下。

内核层:应用程序调用相关接口后,会通过系统调用,执行SWI指 令切换ARM的工作模式到超级用户模式下,根据用 户函数的要求执行相应的操作。

硬件层:硬件设备,当用户需要操作硬件时,内核会根据驱动接口 操作硬件设备

图结构如下:

举一个相对比较邪恶的类比:

在深圳的酒店经常会在门缝看到一些卡片,上面说可以通过打电话送货上门提供某中服务。

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-/ > linux-.patch

//N为新加的文件全部修改

//linux-2.6.30 旧版本

//linux- 新版本

//目标补丁

2.打补丁:

cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁

patch -p1 3.恢复:

cd linux-2.6.30 //!!注意在原文件夹的目录中打补丁

patch -R xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

四.内核中的Makefile: 对于内核,Makefile分为5类:

Documentation/kbuild/makefiles.txt描述如下:

50 The Makefiles have five parts:

51

5Makefile 总Makefile,控制内核的编译

5.config 内核配置文件,配置内核时生成, 如make menuconfig后

5arch/$/Makefile 对应体系结构的Makefile

5scripts/Makefile.* Makefile共用的规则

5kbuild Makefiles 各子目录下的Makefile,被上层的Makefile调用。

简单来说,编译内核会执行以下两步骤,它们分别干了以下的事情。

1一般的,我们会拷贝一个对应体系结构的配置文件到主目录下并改名为 .config,这样就在make menuconfig生成的图形配置中 已经有了一些默认的配置,减少用户的劳动量。不过这一步不做也没关系的。

2.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发板——在X210开发板上进行裸机开发的细节

以下内容是学习裸机开发过程中的一些细节内容的记录。 1、汇编语言函数细节 用汇编写的函数,末尾应该添加mov pc,lr语句。 2、裸机代码相关文件 3、关于链接地址 4、关于重定位的理解 (1)在sram内部重定位 这是在sram内部重定位,因…

linux报网络设备繁忙,【分享】linux常用命令

压缩与备份:bzip2/bunzip2 .bz2文件的压缩/解压缩程序cpio 备份文件dump 备份文件系统gzip/gunzip .gz文件的压缩/解压缩程序gzexe 压缩可执行文件restore 还原由倾倒(Dump)操作所备份下来的文件或整个文件系统(一个分区)tar 将若干文件存档或读取存档文件unarj 解压缩.…

HDU-4454 Stealing a Cake 三分枚举

题意:给定一个点,一个圆,以及一个矩形,现在问从一个点到一个圆再到一个矩形的最短距离为多少?到达一个目标可以只挨着或者穿过它。 解法:目前只知道从一个点到圆上按照[0,PI],[PI,2*PI]的两个半…

VIP - virtual IP address

virtual IP address (虚拟 IP 地址)1、是集群的ip地址,一个vip对应多个机器2、与群集关联的唯一 IP 地址see wiki: A virtual IP address (VIP or VIPA) is an IP address assigned to multiple applications residing on a single server, multiple dom…

linux上perl怎么传输参数,如何在perl子函数中传递参数?

慕村225694Perl 可以通过函数元型在编译期进行有限的参数类型检验。如果你声明sub mypush ()那么 mypush() 对参数的处理就同内置的 push() 完全一样了。函数声明必须要在编译相应函数调用之前告知编译器(编译器在编译函数调用时会对相应函数用 prototype来查询它的元型来进行参…

Android中级之网络数据解析一之Json解析

本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在网络传输的时候,经常用到的解析方式有xml和json两种,今天我们主要来说下json、解析,以及其要点。 首先json格式: “[”标识json解析开始…

Struts2中ValueStack结构和总结

【ValueStack和ActionContext的关系】首先,从结构上来看ValueStack是ActionContext的一个组成部分,是对ActionContext功能的扩展。ActionContext是一个容器结构,是Struts2中用于数据存储的的场所,而ValueStack则是一个具备表达式引…

将USB-WiFi网卡移植到X210开发板

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、移植前的准备工作 1、搭建开发环境 (1)虚拟机运行着ubuntu14.04系统。 (2)X210开发板运行着linux内核镜像、QT4.8文件系统镜像。相关的镜像文件在…

文件读取ini文件另一种读取办法

时间紧张,先记一笔,后续优化与完善。 Windows下的ini文件的读取可以应用系统提供的api来实现 GetPrivateProfileString GetPrivateProfileInt ... 现实应用中, 如果不应用一种同一的方法来包装一下会让源代码看起来很乱。 所以,须要计划一个便利&#xf…

浅谈mysql数据库引擎

2019独角兽企业重金招聘Python工程师标准>>> 数据库是数据的集合,计算机中的数据库是存储器上一些文件的集合或者是内存数据的集合。Mysql,SQL server数据库都是可以存储数据,并提供数据查询,更新功能的数据库管理系统。Mysql数据…

网络摄像机简介

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 一、网络摄像机定义 (1)网络摄像机,也叫IP摄像机,即IPCamera,简称IPC,近几年得益于网络带宽,芯片技术,算法技术…

如今的移动操作系统,写在2013年——android篇 by 伊一线天

前奏: 曾在2011年,我写过一篇同样题材的文章。时隔2年后,如今的移动操作系统领域跌宕起伏,2年前的一些系统变得更加强大,一些已经昙花一现。现在让我再来总结一些2013年移动操作系统。 第一讲:android 自从…

linux qt ping,Qt5.2中使用ping命令实现Ip扫描功能

在实现类似于Free IP Scanner 2.1的Ip扫描器软件中,会用到ping命令。如果使用Qt编程实现,主要会用QThread、QProcess这两个类。关于这两个类的具体用法可以查阅Qt助手或者QT官网。在QT中为了扫描大量的Ip,通常需要将扫描Ip的任务放在一个单独…

Python安装模块出错(ImportError: No module named setuptools)解决方法

原地址:http://www.cnblogs.com/BeginMan/archive/2013/05/28/3104928.html 在window平台下安装第三方模块时,出现这样的错误: Google了以下,才知道原来Python里少了这个模块。 我们可以在Python官网去查找 其中 Package Index中查…

kali linux 2.0 ssh,Kali 2.0使用SSH进行远程登录(示例代码)

一、配置SSH参数修改sshd_config文件,命令为:vim /etc/ssh/sshd_config将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes将PermitRootLogin without-password修改为PermitRootLogin yes二、启动SSH服务命令为&am…

数据库课程设计报告

课程设计报告内容 封面(注明组员及分工) 目录 1.系统概述 – 系统的特点 – 系统设计环境 2.系统需求分析 – 系统设计的目标 – 系统需求分析(给出:数据流图、数据字典) – 系统功能…

基于Hi3516A的H265 IPC LIVE555 开发

转载于http://m.blog.csdn.net/faihung/article/details/73008742,如有侵权请告知删除。 1 系统工作原理 系统以Hi3516A开发平台(由高分辨率1080 p的AR0330摄像头模块、带千兆以太网功能的Hi3516A控制器模块组成硬件平台,并在硬件平台上烧写了…

教材配套PPT初稿

1-10章初稿,基本完整。有些粗糙,后面可能会稍作调整。 附更新情况如下: 1.增加了第10章内容; 2.第5章增加了一些内容; 3.第3章内容部分更新; 4.增加了第8-9章内容。 订正&#xff1a…

linux ssh抓包,如何在SSH连接Linux系统的环境下使用wireshark抓包?

TSINGSEE青犀视频云边端架构EasyNVR、EasyDSS、EasyGBS等都是有两种操作系统的版本,一种是linux,一种是windows。而大多数开发者用户都会使用linux版本进行安装。对于安装部署出现的问题,TSINGSEE青犀视频团队研发的经常为客户远程调试&#…