Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。以ARM为核心的处理器应用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。本书Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 嵌入式系统接口设计与Linux驱动程序开发 |
分类 | |
作者 | 刘淼 |
出版社 | 北京航空航天大学出版社 |
下载 | ![]() |
简介 | 编辑推荐 Linux是源码开放的操作系统,它发展迅速,爱好者众多,同时也是主流的嵌入式操作系统之一。以ARM为核心的处理器应用广泛,成本低廉,软件支持好,也是当今市场占有率最高的32位嵌入式处理器。本书Linux和ARM处理器平台为例,结合两大主流软件和硬件,讲述嵌入系统开发的相关知识,是对深入学习嵌入式系统很有借鉴意义的书。 内容推荐 本书针对ARM处理器为核心的主流嵌入式系统平台,主要讲述嵌入式Linux驱动程序的设计和开发过程。内容同时涵盖嵌入式系统的软硬件两个方面:一方面是嵌入式系统常用的硬件接口时序、电气特性等内容的分析;另一方面讲述对应硬件的Linux驱动程序实现方法。本书共分为16章。第1、2章介绍嵌入式系统和Linux驱动程序的基础性知识。从第3章开始,详细讲述硬件平台及其对应的Linux驱动程序。硬件包括I/O口、CAN总线、触摸屏、I2C、PS/2、异步串口、音频、显示、IDE、PCMCIA、USB、以太网以及Flash的使用等内容。软件涉及针对上述硬件的各种驱动程序在Linux下的体系结构,Linux的字符设备、块设备和网络设备驱动程序,ARM Linux的中断处理,BootLoader和内核的启动过程等。 本书可作为机器人技术、机电控制系统、信息家电、工业控制、手持设备、智能玩具、医疗仪器等方面嵌入式系统开发与应用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生的教材。 目录 第1章 典型的嵌入式系统体系结构 1.1 嵌入式系统概述 1.2 嵌入式系统的组成 1.2.1 嵌入式平台的硬件架构 1.2.2 板级支持包和嵌入式系统 1.2.3 嵌入式系统上的应用程序 1.3 嵌入式系统的开发流程和优势 1.4 嵌入式系统的方案选择 1.4.1 处理器的选择 1.4.2 嵌入式操作系统的选择 1.5 本书涉及的平台及Linux内核版本 第2章 Linux内核与驱动程序 2.1 Linux内核与ARM 2.2 阅读ARM Linux内核源码 2.3 翻译环境的建立 2.4 Linux驱动程序 2.4.1 用户态与内核态 2.4.2 Linux驱动程序结构 2.4.3 设备文件与设备文件系统 第3章 简单的Linux字符设备驱动程序 3.1 Linux字符设备驱动程序结构 3.2 一个双色LED的Linux驱动程序 3.2.1 系统硬件平台组成原理 3.2.2 Linux下的双色LED驱动程序实现 3.2.3 双色LED驱动程序的测试 3.3 按键的Linux驱动程序 3.3.1 系统硬件平台组成原理 3.3.2 Linux系统中断分析 3.3.3 Linux下按键驱动程序的实现 3.3.4 按键驱动程序的测试 第4章 CAN总线接口设计与Linux驱动程序 4.1 CAN总线接口设计 4.1.1 CAN总线概述 4.1.2 嵌入式处理器上扩展CAN总线接口 4.2 CAN总线驱动程序的体系结构 4.3 CAN总线的Linux驱动程序 4.4 CAN总线驱动测试程序 第5章 触摸屏接口设计与Linux驱动程序 5.1 触摸屏接口设计 5.1.1 触摸屏概述 5.1.2 嵌入式处理器上扩展触摸屏接口 5.2 触摸屏驱动程序的体系结构 5.3 触摸屏的Linux驱动程序分析 5.3.1 自定义的字符设备 5.3.2 Linux的输入设备 5.4 触摸屏驱动测试程序 5.4.1 自定义触摸屏设备 5.4.2 输入事件接口的触摸屏设备 5.5 触摸屏的校准方法 第6章 I2C总线与Linux驱动程序 6.1 I2C总线接口设计 6.1.1 I2C总线概述 6.1.2 嵌入式处理器上的12C总线接口 6.2 Linux下12C总线驱动程序体系结构 6.3 S3C2410上的I2C总线驱动程序分析 6.4 I2C总线驱动测试程序 第7章 PS/2接口设计与Linux键盘/鼠标驱动程序 7.1 PS/2接口设计 7.1.1 键盘接口与PS/2 7.1.2 PS/2接口的物理标准 7.1.3 PS/2接口的电气特性 7.1.4 PS/2键盘的数据帧格式 7.1.5 PS/2鼠标的数据帧格式 7.1.6 嵌入式处理器上扩展PS/2接口 7.2 Linux键盘驱动程序体系结构 7.3 UP—NETARM2410平台的PS/2接口驱动程序分析 7.3.1 现有的I2C总线驱动的不足 7.3.2 对Limax下I2C总线驱动程序的改造 7.3.3 PS/2接口驱动的实现 7.3.4 PS/2键盘驱动程序 7.3.5 PS/2鼠标驱动程序 7.4 PS/2接口驱动的测试 7.4.1 PS/2键盘 7.4.2 PS/2鼠标 第8章 音频接口设计与Linux驱动程序 8.1 音频总线 8.1.1 I2S总线接口 8.1.2 AC97总线接口 8.1.3 音频接口的硬件设计 8.2 Linux音频驱动程序体系结构 8.3 S3C2410平台的音频驱动分析 8.3.1 DMA的重要性 8.3.2 标准的音频设备 8.4 音频驱动的测试 第9章 异步串口与Linux驱动程序 9.1 异步串口概述 9.1.1 异步传输的标准与分类 9.1.2 16C550兼容的异步串口控制器 9.1.3 异步串口的硬件设计 9.2 Linux终端与控制台体系 9.2.1 Linux终端概述 9.2.2 Linux控制台的初始化过程 9.2.3 Linux启动命令行与控制台定义 9.2.4 控制台与printk输出 9.3 Linux串口驱动程序与分析 9.3.1 UART驱动注册函数 9.3.2 16c550驱动程序端口的初始化 9.3.3 设备文件名和控制台名的问题 9.4 Linux串口的应用 9.4.1 Linux串口测试 9.4.2 Linux串口编程 9.4.3 通过Linux串口实现GPRS拨号上网 第10章 显示接口与Linux帧缓冲 10.1 液晶显示概述 10.1.1 液晶显示简介 10.1.2 液晶屏接口 10.1.3 VGA接口 10.1.4 TFT接口到VGA接口的转换 10.2 嵌入式处理器上的LCD控制器 10.2.1 LCD控制器 10.2.2 显示缓存与显示点的对应关系 10.3 Linux帧缓冲驱动程序体系结构 10.4 PXA270上简单的帧缓冲驱动程序 10.5 Linux帧缓冲的应用程序接口 10.5.1 一个简单的Linux帧缓冲的应用程序 10.5.2 Linux下常用的基于帧缓冲的GUI 第11章 IDE接口与Linux驱动程序设计 11.1 IDE接口概述 11.1.1 IDE接口物理及电气特性 11.1.2 IDE接口寄存器 11.1.3 应用于嵌入式系统的存储设备 11.1.4 IDE模式的CF卡 11.2 嵌入式处理器的IDE接口扩展 11.3 Linux的IDE驱动程序接口 11.4 UP-TECHPXA270上的IDE接口驱动程序分析 11.4.1 Linux 2.4内核中IDE接口驱动程序 11.4.2 Linux 2.6内核中IDE接口驱动程序 11.5 IDE驱动程序测试 11.5.1 硬盘分区工具 11.5.2 常见的磁盘文件系统 11.5.3 Linux下FAT和Ext3文件系统的使用 第12章 PCMCIA接口与LinlllX驱动程序结构 12.1 PCMCIA接口 12.1.1 PCMCIA接口概述 12.1.2 PCMCIA接口引脚定义 l2.1.3 PCMCIA卡的类型检测 12.1.4 PCMC:IA与CF卡 12.2 为嵌入式处理器扩展PCMCIA接口 12.3 Linux下PCMCIA驱动程序接口 12.4 UP-NETARM2410—S平台的PCMCIA接口驱动程序分析 12.5 PCMCIA接口测试 l2.5.1 PCMCIA接口CF卡的应用 l2.5.2 PCMCIA接口无线网卡的应用 第13章 USB HOST接口与Linux驱动程序设计 13 1 USB接口概述 13.2 LISBOHCI标准 13.3 LISB Host接口的硬件设计 13.4 Linux的LISBOHCI驱动程序接口分析 13.5 USB Host驱动程序测试 13.5.1 热插拔脚本 13.5.2 利用热插拔脚本实现U盘的自动加载 第14章 建立Flash上的文件系统 14.1 Flash的特性 14.1.1 Flash的分类与比较 14.1.2 NAND Flash与处理器的接口 14.2 Linux下MTD驱动程序体系结构 14.2.1 UP-TECHPXA270平台上NORFlash驱动程序 14.2.2 UP-TECHPXA270平台上NANDFlash驱动程序 14.2.3 MTD驱动程序的配置 14.3 MTD驱动程序的接口与测试 14.4 建立在Flash上的文件系统 14.4.1 JFFsx文件系统 14.4.2 YAFFS/YAFFS2文件系统 14.4.3 cramfs文件系统 第15章 以太网接口与Linux网络驱动程序设计 15.1 以太网概述 15.1.1 以太网MAC层帧格式 15.1.2 网络协议栈与常用的网络通信协议 15.2 嵌入式处理器上扩展以太网接口 15.2.1 带有MAC层控制器的嵌入式处理器 15.2.2 通过MAC+PHY的以太网芯片扩展 15.3 Linux网络驱动程序体系结构 15.3.1 Linux网络驱动程序的层次 15.3.2 网络设备的初始化 15.3.3 网络数据包的发送和接收 15.3.4 网络设备的内核加载 15.3.5 网络设备的模块加载 15.4 NE2000兼容的网卡驱动程序的移植 15.5 网络的应用与测试 15.5.1 Linux的网络配置 15.5.2 网络数据嗅探器软件 15.5.3 NFS文件系统的使用 第16章 嵌入式Linux的启动过程 16.1 BootLoader 16.1.1 BootLoader概述 16.1.2 常见的Linux BootLoader 16.1.3 UP TECHPXA270平台上的Blob分析 16.2 ARM Linux内核的启动过程 16.2.1 编译生成Linux内核 16.2.2 UP—TECHPXA270平台上的Linux启动过程 16.3 Linux的根文件系统 16.3.1 基本的Linux根文件系统结构 16.3.2 用BusyBox建立简单的根文件系统 16.3.3 在Flash上建立JFFS2根文件系统 附录A 键盘扫描码表 A.1 第1套键盘扫描码 A.2 第2套键盘扫描码 A.3 第3套键盘扫描码 附录B ARM MMU简介 B.1 ARM MMU的基本结构 B.2 ARM的存储器访问方法 B.3 允许和禁止MMU B.4 虚拟地址到物理地址的转换过程 B.4.1 转换表基址 B.4.2 取第一级表 B.4.3 第一级描述符 B.4.4 节的描述符和转换 B.5 访问权限 B.6 CPl5寄存器 B.6.1 寄存器1:MMU控制位 B.6.2 寄存器2:转换表基地址 B.6.3 寄存器3:域访问控制 B.6.4 寄存器4:保留 B.6.5 寄存器5:错误状态寄存器FSR B.6.6 寄存器6:错误地址寄存器FAR B.6.7 寄存器8:TLB功能 B.6.8 寄存器10:TLB锁定 附录C 本书用到的缩写 参考文献 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。