深入理解嵌入式Linux设备驱动程式


深入理解嵌入式Linux设备驱动程式

文章插图
深入理解嵌入式Linux设备驱动程式【深入理解嵌入式Linux设备驱动程式】《深入理解嵌入式Linux设备驱动程式》是2012年电子工业出版社出版的图书,作者是曹国辉 。本书讲述了嵌入式Linux驱动程式开发的方法 。
基本介绍书名:深入理解嵌入式Linux设备驱动程式
作者:曹国辉
ISBN:9787121177194
类别:作业系统/系统开发 > LINUX
页数:258
定价:49.00元
出版社:电子工业出版社
出版时间:2012-08-01
装帧:平装
开本:1/16
内容简介《深入理解嵌入式Linux设备驱动程式》详细阐述了嵌入式Linux设备驱动程式基本理论及开发方法 。详细讲解了嵌入式系统的硬体体系架构,Linux系统的引导原理、启动过程,Linux设备驱动模型及基本理论,具体的硬体设备驱动程式的源码分析 。在分析具体设备驱动程式源码的基础上,详细讲解了具体设备驱动程式的设计和移植方法 。不但讲解了怎幺做,更重要的是分析了为什幺要这幺做,在分析Linux核心驱动源码的基础上,提炼出Linux驱动架构模型的核心思想及实现思路,在理解整个Linux设备驱动流程和实现思路的基础上,阐述了编写设备驱动和移植设备驱动的基本思路和方法 。目录第1章 嵌入式arm系统开发基础1.1 嵌入式arm系统开发概述1.1.1 arm系统可执行映像档案格式1.1.2 arm开发调试工具1.1.3 载入地址和运行地址1.2 嵌入式arm系统的启动代码分析1.2.1 arm上电启动概述1.2.2 arm上电初始化启动代码分析1.3 嵌入式arm系统的中断系统1.3.1 arm中断机制代码分析1.3.2 arm中断服务处理程式的回响过程1.4 按键中断实验第2章 嵌入式linux设备驱动程式开发环境的构建2.1 安装虚拟机软体vmware 6.0.22.2 新建虚拟机2.3 安装linux作业系统ubuntu2.4 安装vmware tools工具软体2.5 网路配置2.6 设定软体源伺服器.2.7 安装libncurses5-dev软体包2.8 安装交叉编译器arm-linux-gcc第3章 嵌入式linux核心的裁剪与编译3.1 嵌入式linux核心的本质3.2 嵌入式linux核心源码的组织3.3 嵌入式linux核心的移植与裁剪3.4 嵌入式linux核心配置、编译的基本原理3.5 构建嵌入式linux根档案系统第4章 嵌入式系统bootloader代码分析与移植4.1 嵌入式系统bootloader功能概述4.1.1 嵌入式linux系统的软体组成及分布4.1.2 嵌入式linux中为什幺要有bootloader4.1.3 bootloader的功能和选择4.2 u-boot源码分析4.2.1 u-boot源码档案的组成及配置编译4.2.2 u-boot的执行过程及linux核心载入流程4.2.3 start.s源码档案分析4.2.4 board.c源码档案分析4.3 u-boot中的环境变数4.4 linux系统的载入过程4.4.1 u-boot命令执行过程4.4.2 bootm的执行流程4.5 u-boot向linux传递参数的过程4.6 u-boot的移植第5章 嵌入式linux核心模组与字元设备驱动5.1 嵌入式linux核心模组5.1.1 嵌入式linux核心模组的概念5.1.2 嵌入式linux核心模组编程5.1.3 嵌入式linux核心模组的编译5.1.4 嵌入式linux核心模组的安装与卸载5.1.5 直接编译嵌入式linux核心模组到核心5.2 嵌入式linux字元设备驱动5.2.1 嵌入式linux设备驱动程式的概念5.2.2 嵌入式linux设备管理机制5.2.3 嵌入式linux字元设备驱动程式的主要数据结构分析5.2.4 嵌入式linux字元设备驱动的工作原理5.2.5 嵌入式linux字元设备驱动程式设计实例第6章 嵌入式linux系统的记忆体管理6.1 虚拟地址和物理地址概述6.2 虚拟地址到物理地址转换的基本原理6.3 基于arm s3c2440的gpio连线埠地址映射实验6.3.1 问题描述6.3.2 分析与思路6.4 linux核心中记忆体分配和释放函式的用法第7章 嵌入式linux设备驱动开发的核心技术7.1 嵌入式linux中断处理和定时器7.1.1 嵌入式linux系统中断服务程式的编写7.1.2 嵌入式linux系统硬体定时器的使用7.1.3 中断的下半部分7.1.4 嵌入式linux软体定时器的使用7.2 嵌入式linux设备驱动程式中的并发及并发控制7.2.1 并发的概念7.2.2 嵌入式linux设备驱动程式中的并发控制方式7.2.3 信号量与自旋锁的使用场景7.3 嵌入式linux设备驱动中的阻塞与非阻塞7.3.1 概述7.3.2 linux设备驱动程式中阻塞的工作原理7.3.3 进程阻塞访问设备的基本原理7.3.4 linux设备驱动程式中的阻塞编程7.4 嵌入式linux设备驱动中的异步通知编程7.4.1 概述7.4.2 linux异步通知工作原理7.4.3 linux异步通知套用的编程方法7.4.4 linux异步通知驱动的编程方法7.5 嵌入式linux设备驱动中的轮询操作 7.5.1 概述7.5.2 linux设备驱动轮询操作的工作原理及源码分析7.5.3 linux轮询操作的套用层编程7.5.4 linux轮询操作的驱动层编程第8章 嵌入式linux平台设备驱动程式开发8.1 linux设备和设备驱动模型8.1.1 linux核心中的bus(汇流排)8.1.2 linux核心中的设备8.1.3 linux核心中的设备驱动8.2 linux平台设备驱动程式开发过程8.3 嵌入式linux系统中利用mdev自动创建设备档案节点第9章 嵌入式linux lcd屏驱动程式设计9.1 lcd屏的工作原理概述9.2 lcd屏硬体原理及驱动程式设计9.2.1 tft lcd屏的显示原理9.2.2 s3c2440 lcd控制器tft lcd的控制时序分析9.2.3 s3c2440 lcd控制器显示的数据格式9.2.4 s3c2440 lcd控制器的显示数据流程9.2.5 vbpd、vfpd、vspw和hbpd、hfpd、hspw的设定9.3 嵌入式linux lcd屏驱动程式框架9.4 嵌入式linux lcd屏驱动源码分析9.4.1 s3c2410fb.c源码分析9.4.2 lcd屏linux驱动主要数据结构9.4.3 probe函式处理流程及源码分析9.4.4 fbmem.c源码分析9.5 嵌入式linux lcd屏驱动的移植第10章 嵌入式linux触控萤幕驱动程式设计10.1 触控萤幕工作原理概述10.2 s3c2440触控萤幕接口及硬体驱动程式设计10.2.1 s3c2440触控萤幕控制器接口10.2.2 s3c2440裸机下触控萤幕控制器的接口编程10.3 嵌入式linux触控萤幕驱动程式框架10.4 嵌入式linux触控萤幕驱动的源码分析10.4.1 linux触摸设备驱动的处理流程10.4.2 触控萤幕驱动模组的初始化函式s3c2410ts_init10.4.3 笔针按下中断服务处理程式stylus_updown10.5 嵌入式linux输入子系统的工作原理及实现机制10.5.1 linux输入子系统的主要数据结构与全局变数10.5.2 输入设备的注册流程10.5.3 事件处理器的注册流程10.5.4 输入事件的报告流程10.5.5 应用程式访问输入设备的流程第11章 嵌入式linux mtd子系统与 flash驱动程式设计11.1 mtd子系统概述11.2 linux中nor flash驱动的源码分析 11.3 mtd子系统的源码分析11.3.1 mtd子系统源码组织11.3.2 mtd子系统主要数据的结构分析11.4 nor flash晶片手册解读第12章 嵌入式linux nand flash 驱动程式设计12.1 nand flash晶片硬体及接口介绍12.1.1 nand flash存储空间的组织12.1.2 nand flash的硬体接口及读写操作时序12.1.3 s3c2440对nand flash晶片的访问12.2 嵌入式linux下nand flash驱动分析12.2.1 nand flash驱动源码组织12.2.2 nand flash驱动架构12.2.3 nand flash相关操作流程12.2.4 s3c24xx_nand_probe函式分析12.3 应用程式对nand flash设备的读/写操作12.3.1 mtd字元设备写nand flash的操作分析12.3.2 s3c2440_nand_hwcontrol函式12.3.3 nand_command函式第13章 嵌入式linux i2c汇流排驱动程式设计13.1 i2c汇流排概述13.2 s3c2440 i2c汇流排控制器的硬体工作原理13.3 s3c2440 i2c控制器的硬体编程13.3.1 初始化s3c2440 i2c主控制器13.3.2 i2c汇流排写at24c02操作13.3.3 i2c汇流排读at24c02操作13.4 嵌入式linux i2c汇流排驱动架构13.4.1 i2c体系架构的硬体实体13.4.2 i2c驱动的软体实体13.5 嵌入式linux i2c汇流排驱动源码的组织13.6 嵌入式linux i2c汇流排控制器驱动的程式设计及源码分析13.6.1 i2c汇流排控制器驱动的主要数据结构13.6.2 写at24c02一个位元组操作13.6.3 i2c汇流排驱动框架13.6.4 i2c汇流排控制器设备驱动探测函式probe的工作流程13.6.5 i2c_add_adapter处理流程分析13.6.6 定义和实现i2c适配器的底层操作接口algorithm13.7 嵌入式linux i2c 设备驱动程式的设计及源码分析13.7.1 i2c设备驱动程式框架13.7.2 i2c_add_driver函式13.7.3 at24c02b_probe函式13.8 应用程式通过i2c设备驱动写at24c02一个位元组的流程第14章 嵌入式linux网卡驱动程式设计14.1 概述14.2 dm9000网路晶片与s3c2440的硬体原理图 14.3 dm9000a网卡晶片内部暂存器的访问14.4 dm9000数据传送/接收的流程14.5 嵌入式linux dm9000网卡驱动的框架及源码分析14.5.1 dm9000设备14.5.2 dm9000设备驱动14.5.3 dm9000平台设备驱动的工作流程14.5.4 套用层网路应用程式的操作第15章 嵌入式linux usb设备驱动程式设计15.1 usb通信系统概述15.2 usb通信系统的拓扑结构图15.3 usb通信的分时复用技术15.4 usb通信系统的基本概念15.5 usb通信的数据格式15.5.1 域15.5.2 包15.5.3 事务15.5.4 传输15.5.5 usb标识域(pid)15.6 usb设备的枚举过程15.7 usb设备端usb通信固件的程式设计15.7.1 usb晶片cy7c68013概述15.7.2 ez-usb固件程式的启动模式15.7.3 ez-usb晶片的中断系统15.7.4 usb固件程式的功能15.7.5 usb固件程式的框架及源码分析15.8 嵌入式linux usb驱动程式框架15.9 嵌入式linux usb主控制器驱动的源码分析15.9.1 s3c2440 usb主控制器平台设备驱动的源码分析15.9.2 usb主机驱动枚举usb设备的过程15.10 嵌入式linux usb设备驱动的程式设计方法