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.

linux 设备驱动总结,linux设备驱动归纳总结.doc相关推荐

  1. linux底层硬件需求,Linux系统的硬件设备驱动的底层结构讲解

    什么是驱动?最通俗的解释就是"驱使硬件设备行动" 作用?设备驱动与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询.中断处理.DMA通信,进行物理内存向 ...

  2. Linux 设备驱动开发 —— platform 设备驱动

    一.platform总线.设备与驱动         在Linux 2.6 的设备驱动模型中,关心总线.设备和驱动3个实体,总线将设备和驱动绑定.在系统每注册一个设备的时候,会寻找与之匹配的驱动:相反 ...

  3. linux 内核驱动模型,linux设备驱动模型架构分析 一

    linux设备驱动模型架构分析 一 发布时间:2018-07-04 15:14, 浏览次数:584 , 标签: linux 概述 LDD3中说:"Linux内核需要一个对系统结构的一般性描述 ...

  4. linux i2c核心,总线与设备驱动,Linux2.6.37 I2C驱动框架分析(一)

    最近工作中又使用到了I2C,所以借S3C2440开发板GT2440为硬件平台温习一遍I2C驱动体系. linux内核中IIC驱动的体系框架 linux内核中IIC部分驱动代码位于:/drivers/i ...

  5. linux字符设备驱动架构,linux驱动开发--字符设备:cdd_cdev结构中private_data使用

    private_data改进 为设备驱动支持多个设备个体做准备,针对private_data进行改进 在设备打开操作中通过inode中保存的i_cdev获取代表当前设备的cdev对象 通过代表当前设备 ...

  6. 【翻译】【linux设备驱动】linux地址类型

    [翻译][linux设备驱动]linux地址类型 Linux中使用的地址类型列表: 用户虚拟地址(User virtual addresses) 用户空间程序可见的普通地址.用户虚拟地址的长度为32位 ...

  7. 从需求的角度去理解Linux系列:总线、设备和驱动

    <从需求的角度去理解Linux系列:总线.设备和驱动>是一篇有关如何学习嵌入式Linux系统的方法论文章,也是从需求的角度去理解Linux系统软件的开篇.这是作者精心撰写的经验总结,希望嵌 ...

  8. 深入浅出:Linux设备驱动之字符设备驱动

    一.linux系统将设备分为3类:字符设备.块设备.网络设备.使用驱动程序: 字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流 ...

  9. linux 统一设备模型 pci,Linux设备驱动模型摘抄

    Linux设备驱动模型摘抄Linux设备驱动模型摘抄Linux设备驱动模型摘抄Linux设备驱动模型摘抄Linux设备驱动模型摘抄 Linux设备驱动模型摘抄(1) Linux统一设备模型 简介 Li ...

  10. linux 设备驱动程序 过滤,Linux驱动发开,usb设备的probe全过程

    本文将详细讲述2.6.22 下的一个USB 设备插上linux 系统的PC 后是如何一步一步调到我们的usb 设备驱动的probe 函数的,我们知道我们的USB 驱动的probe 函数中的一个参数是i ...

最新文章

  1. 阿里终面:为什么SSD不能当做内存用?
  2. Hadoop Pipes编程之C++实现WordCount
  3. centos7.9更改root账号密码
  4. jQuery之Ajax
  5. 战神笔记本电脑自带access吗_书评:6本二次元小说,每一本都很有想象力,你都读过吗?...
  6. 深度学习目标检测网络FPN tensorflow升3d尝试
  7. android 播放器 下载,VPlayer安卓最新版
  8. 怎么从altera官网下载那款fpga芯片数据手册
  9. cad图纸怎么看懂_教你看懂CAD图纸
  10. Java字符串排序设计(升序排列)
  11. 一种抑制稳态振荡的改进型变步长MPPT 算法研究.pdf
  12. workgroup无法访问.您可能没有权限 完美问答解
  13. 正六边形:判断点是否在正六边形内
  14. 根据首字母排序英文名c语言,英文名按首字母排序的问题
  15. Python那些让我疑惑许久的代码--2
  16. opencv与python环境搭建
  17. PAT1003甲级 java
  18. 【学习笔记】[省选联考 2023] 填数游戏
  19. 计算机课件制作试题,《多媒体课件制作》试题及答案
  20. css profile填写攻略,仅使用html和css制作炫酷的Profile界面

热门文章

  1. django URL路由基础
  2. bzoj 1999: [Noip2007]Core树网的核【树的直径+单调队列】
  3. 23期PHP基础班第四天
  4. 通过rsync搭建一个远程备份系统(二)
  5. 【bzoj1010-toy】斜率优化入门模板
  6. 【算法】QuickSort
  7. ios开发笔记之 线程间通信
  8. 数据结构7.3_图的遍历
  9. SDUT-3364_欧拉回路
  10. buffer 和cache的区别