嵌入式Linux系统软硬件综合设计实训教程

嵌入式Linux系统软硬件综合设计实训教程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2016-08
版次: 1
ISBN: 9787894364500
定价: 50.00
装帧: 其他
开本: 16开
纸张: 胶版纸
字数: 1千字
1人买过
  • 1.适用对象
      本书适用于电子信息、通信、自动化、计算机等相关专业《嵌入式系统软硬件综合设计》实践类课程的教学,也可用于有志于从事嵌入式系统开发的专业人员作为入门教程。
      2.具备知识和能力基础
      学习本教材需要具备基本的计算机基础知识和C语言编程能力,且先修过《单片机原理与应用》、《Linux操作系统》课程,具备一定的电路设计能力及Linux系统操作能力。
      3.学*体目标
      本课程带领读者完成基于嵌入式Linux系统的产品开发的全流程,着重从以下几方面培养学生的知识和能力,分别是:
      (1)理论知识:Cortex-A8体系结构及硬件设计原理;使用C、C
      语言进行程序设计相关理论;Linux操作系统的相关系统管理及内核构架理论;嵌入式驱动开发理论;嵌入式系统数据库;GUI原理。
      (2)专业技能:掌握嵌入式系统硬件电路设计方法;掌握嵌入式Linux操作系统的基本操作命令;掌握嵌入式交叉编译开发环境的搭建和使用;掌握基于ARM处理器的嵌入式Linux系统移植方法;能够运用Linux操作系统API函数进行驱动程序编写;能够运用Qt函数库编写应用程序。
      4.教材编写团队情况
      本书编者均为电子信息工程专业嵌入式专业方向教学一线的教师,由张新强、闫慧琦、肖军、刘龙主编,参加编写工作的还有孙丽飞、王伟、周国顺、申华、鞠尔男等。本书编写过程中参考并引用了大量嵌入式系统方面的书籍和资料,在此对作者表示感谢。由于水平有限,书中的缺漏与错误在所难免,恳请广大读者批评指正。我们的联系方式为E-mail:tplegend@163.com 前言.... 1

    教材简介.... 2

    项目导学.... 15

    第一篇 硬件设计篇

    第1章 硬件系统概述.... 18

    1.1 硬件系统资源... 18

    1.2 ARM Cortex-A8内核处理器... 19

    习题... 20

    第2章 核心板电路设计.... 21

    2.1 S5PV210地址空间分配... 21

    2.2 DDR2 SDRAM.. 23

    2.2.1 DDR2 SDRAM工作原理... 24

    2.2.2 DDR2 SDRAM硬件设计... 26

    2.3 SLC NAND Flash. 26

    2.3.1 NOR Flash与NAND

    Flash对比... 26

    2.3.2 SLC与MLC NAND

    Flash技术对比... 27

    2.3.3 K9F4G08UOB引脚功能... 28

    2.3.4 NAND Flash硬件设计... 30

    2.4 DM9000A以太网控制器... 32

    2.4.1 DM9000A引脚及功能... 32

    2.4.2 DM9000A硬件设计... 33

    2.5 音频编解码... 34

    2.5.1 IIS总线接口概述... 34

    2.5.2 WM8960概述... 35

    2.5.3 WM8960硬件设计... 36

    习题... 38

    第3章 扩展板电路设计.... 39

    3.1 LED电路... 39

    3.1.1 发光二极管简介... 39

    3.1.2 发光二极管的检测... 40

    3.1.3 发光二极管电路设计... 40

    3.2 蜂鸣器电路... 41

    3.2.1 蜂鸣器简介... 41

    3.2.2 蜂鸣器电路设计... 42

    3.3 按键电路... 43

    3.3.1 按键分类... 43

    3.3.2 按键设计技巧... 43

    3.3.3 按键电路设计... 45

    3.4 串行通信接口电路... 45

    3.4.1 RS-232C标准... 45

    3.4.2 MAX3232芯片... 47

    3.4.3 串行通信接口电路设计... 47

    3.5 EEPROM电路... 48

    3.5.1  I2C总线协议概述... 48

    3.5.2 AT24C02介绍... 49

    3.5.3 AT24C02的读写操作... 50

    3.5.4 AT24C02电路设计... 51

    3.6 SD卡电路... 52

    3.6.1 SD卡概述... 52

    3.6.2 SD卡的物理接口... 52

    3.6.3 SD卡的应用模式... 54

    3.6.4 S5PV210与SD卡的电路设计... 54

    3.7 重力传感器电路... 55

    3.8 USB电路... 56

    3.8.1 USB基础知识... 56

    3.8.2 USB设备检测... 57

    3.8.3 USB2.0 OTG接口... 57

    3.8.4 S5PV210的USB接口电路设计... 58

    3.9 LCD电路... 58

    3.9.1 液晶显示屏... 58

    3.9.2 S5PV210内部LCD控制器... 59

    3.9.3 LCD接口电路设计... 60

    3.10 HDMI高清多媒体接口... 60

    3.10.1 HDMI概述... 60

    3.10.2 HDMI物理接口... 61

    3.10.3 S5PV210的HDMI接口电路设计... 62

    3.11 RJ45网络接口... 63

    3.12 电源及复位电路... 63

    3.12.1 AMS1086电源芯片... 63

    3.12.2 RT9011电源芯片... 64

    3.12.3 IMP811电源监控及复位芯片... 64

    习题... 65

    第二篇 开发基础篇

    第4章 嵌入式Linux开发环境构建.... 68

    4.1 基本概念... 68

    4.1.1 交叉编译... 68

    4.1.2 宿主机与目标机... 69

    4.1.3 调试模型... 69

    4.2 常用Linux命令... 69

    4.3 软件包安装及配置... 70

    4.3.1 PuTTY安装及配置... 70

    4.3.2 VMware8安装... 73

    4.3.3 Ubuntu12.04安装... 74

    4.3.4 用户账号设置... 80

    4.3.5 登录界面设置... 80

    4.3.6 Ubuntu更新源设置... 81

    4.4 交叉编译器安装... 81

    4.5 Windows与Linux共享文件设置... 82

    4.6 TFTP与NFS服务器配置... 85

    4.6.1 配置TFTP服务器... 85

    4.6.2 配置NFS服务器... 86

    习题... 88

    第5章 Make工程管理及Shell编程.... 90

    5.1 Make工程管理... 90

    5.1.1 Make工程管理器... 90

    5.1.2 Make工作步骤... 91

    5.1.3 Make程序示例... 91

    5.1.4 Makefile语法... 94

    5.2 Shell编程... 96

    5.2.1 Bash Shell简介... 97

    5.2.2 Bash Shell常用命令... 97

    5.2.3 重定向与管道... 101

    5.2.4 简单Shell应用... 104

    5.2.5 Shell编程语法... 105

    习题... 126

    第三篇 系统移植篇

    第6章 移植U-Boot. 128

    6.1 BootLoader简介... 128

    6.1.1 BootLoader概念... 128

    6.1.2 BootLoader工作模式... 129

    6.1.3 BootLoader的安装媒介... 129

    6.1.4 BootLoader的烧写... 129

    6.2 常见的BootLoader. 129

    6.3 U-Boot分析... 130

    6.3.1 U-Boot源码构成... 130

    6.3.2 U-Boot启动流程... 131

    6.4 U-Boot移植... 132

    6.4.1 配置U-Boot 132

    6.4.2 修改电源管理功能... 133

    6.4.3 加入USB下载功能... 134

    6.4.4 修改内存配置... 134

    6.4.5 修改DM9000网卡配置... 138

    6.4.6 添加启动zImage内核支持... 140

    6.5 U-Boot常用命令... 142

    6.6 U-Boot启动参数分析... 144

    6.7 烧写U-Boot至NAND

    Flash. 146

    6.7.1 将U-Boot烧写至SD卡... 146

    6.7.2 将U-Boot烧写至Flash. 151

    习题... 152

    第7章 移植Linux内核.... 153

    7.1 Linux内核版本简介... 153

    7.2 内核源码结构... 154

    7.3 内核移植准备... 155

    7.3.1 内核编译过程... 155

    7.3.2 Linux Makefile分析... 156

    7.3.3 内核Kconfig分析... 158

    7.3.4 内核配置及编译命令... 162

    7.4 内核移植... 163

    7.4.1 内核基本配置... 163

    7.4.2 修改NANDFlash分区... 167

    7.4.3 修改LCD信息... 168

    7.4.4 DM9000驱动移植... 172

    7.4.5 蜂鸣器驱动修改... 176

    7.4.6 RTC驱动修改... 176

    7.4.7 USB驱动移植... 177

    7.4.8 FT5406触摸屏驱动移植... 179

    7.4.9 WM8960声卡驱动移植... 179

    7.5 调试、烧写内核... 182

    习题... 183

    第8章 制作根文件系统.... 185

    8.1 根文件系统组成... 185

    8.2 制作根文件系统... 187

    8.2.1 生成根文件系统目录... 187

    8.2.2 配置编译BusyBox. 188

    8.2.3 使用glibc库文件... 190

    8.2.4 建立配置文件... 190

    8.3 网络挂载及固化根文件系统... 195

    8.3.1 NFS挂载根文件系统... 196

    8.3.2 烧写根文件系统至NAND Flash. 197

    习题... 199

    第9章 移植触摸库及Qt4库.... 200

    9.1 移植Tslib触摸库... 200

    9.2 移植QTE库... 201

    9.3 Linux下Qt

    Creator开发环境安装及配置... 204

    9.4 QWT安装配置... 209

    9.4.1 QWT在x86平台上的安装... 209

    9.4.2  QWT在ARM平台上的安装... 211

    9.5 QWT简单示例... 211

    习题... 215

    第四篇 驱动开发篇

    第10章 驱动开发基础.... 217

    10.1 驱动程序中的基本概念... 217

    10.1.1 设备驱动程序概述... 217

    10.1.2  设备驱动的分类... 218

    10.1.3 驱动程序、操作系统、应用程序的关系... 218

    10.1.4 常见的系统调用函数... 219

    10.2 驱动开发要点... 222

    10.2.1 用户态和内核态... 222

    10.2.2 模块机制... 222

    10.3 Hello World驱动程序... 223

    10.3.1 驱动模块组成... 223

    10.3.2 Hello World驱动模块程序... 224

    10.3.3 编译Hello World模块... 224

    10.3.4 调试Hello World模块... 226

    10.4 字符设备驱动基本概念... 226

    10.4.1 主设备号和次设备号... 227

    10.4.2 cdev结构体... 228

    10.4.3 file_operations结构体... 231

    10.4.4 file结构体... 233

    10.4.5 inode 结构体... 234

    10.4.6 各结构体关系... 235

    10.5 字符设备驱动的组成... 235

    10.5.1 文件操作结构体... 235

    10.5.2 加载和卸载函数... 236

    10.5.3 常用设备操作函数... 237

    10.5.4 驱动中常用API函数... 240

    10.6 Virtualmem字符设备驱动... 242

    10.6.1  Virtualmem驱动程序... 242

    10.6.2 Virtualmem测试程序... 246

    10.6.3 驱动程序的测试方法... 247

    10.7 自动创建设备节点的方法... 248

    10.7.1 udev简介... 248

    10.7.2 编译配置udev. 249

    10.7.3 驱动实例... 250

    习题... 252

    第11章 驱动开发核心技术.... 253

    11.1 并发处理机制... 253

    11.1.1 信号量的定义... 254

    11.1.2 信号量的内核函数... 254

    11.1.3 信号量驱动程序及测试代码... 255

    11.2 阻塞机制... 258

    11.2.1 阻塞和非阻塞定义... 258

    11.2.2 等待队列定义及其内核函数... 259

    11.2.3 等待队列驱动程序及测试代码... 260

    11.3 中断机制... 265

    11.3.1 中断定义及分类... 265

    11.3.2 中断的实现过程... 266

    11.3.3  中断的申请及释放... 267

    11.4 利用tasklet处理中断... 269

    11.4.1 顶半部与底半部... 269

    11.4.2 tasklet定义及内核函数... 269

    11.4.3 按键设备原理图... 271

    11.4.4 利用tasklet处理中断驱动实例... 272

    11.5 利用工作队列处理中断... 276

    11.5.1 工作队列定义及内核函数... 276

    11.5.2 利用工作队列处理中断驱动实例... 277

    11.6内核定时器... 281

    11.6.1  时间度量... 282

    11.6.2 时间延时... 282

    11.6.3 内核定时器定义及内核函数... 283

    11.6.4 内核定时器驱动代码... 284

    11.7 设备端口的访问... 287

    11.7.1 I/O端口方式控制设备... 288

    11.7.2 I/O内存方式控制设备... 295

    11.7.3 控制单一引脚的方法... 300

    习题... 308

    第12章 驱动开发进阶.... 309

    12.1 Linux设备驱动模型... 309

    12.1.1 Sysfs文件系统... 310

    12.1.2 设备驱动模型关键数据结构... 312

    12.1.3 内核对象函数... 314

    12.1.4 设备模型构成... 315

    12.1.5 设备驱动模型主要组件... 316

    12.2 Platform虚拟总线... 318

    12.2.1 Platform虚拟总线概述... 318

    12.2.2 Platform虚拟总线重要组件... 319

    12.2.3 Platform虚拟总线驱动实例... 323

    12.3 ADC设备驱动... 329

    12.3.1  ADC模数转换器特点... 329

    12.3.2 ADC驱动程序分析... 332

    12.3.3 ADC测试程序... 335

    12.4 I2C设备驱动... 336

    12.4.1 I2C设备驱动程序结构... 336

    12.4.2 AT24C02设备驱动程序... 340

    12.4.3 用户空间直接访问I2C设备的方法... 345

    12.5 输入子系统... 347

    12.5.1输入子系统简介... 347

    12.5.2 输入子系统设备驱动层设计... 348

    12.5.3 输入子系统中按键设备驱动程序... 350

    12.6 触摸屏驱动... 355

    12.6.1 FT5X06简介... 355

    12.6.2 FT5406设备驱动程序... 357

    习题... 361

    第五篇 项目实战篇

    第13章 基础实例.... 364

    13.1 LED流水灯... 364

    13.2 按键监测... 374

    13.3 模拟量采集... 380

    习题... 383

    第14章 综合实例.... 384

    14.1 智能家居系统... 384

    14.2 硬件系统设计... 385

    14.3 设备驱动程序... 395

    14.4 Qt4应用程序... 400

    习题... 408

    附录学习知识要点及能力要点.... 409

    参考文献.... 411
  • 内容简介:
    1.适用对象
      本书适用于电子信息、通信、自动化、计算机等相关专业《嵌入式系统软硬件综合设计》实践类课程的教学,也可用于有志于从事嵌入式系统开发的专业人员作为入门教程。
      2.具备知识和能力基础
      学习本教材需要具备基本的计算机基础知识和C语言编程能力,且先修过《单片机原理与应用》、《Linux操作系统》课程,具备一定的电路设计能力及Linux系统操作能力。
      3.学*体目标
      本课程带领读者完成基于嵌入式Linux系统的产品开发的全流程,着重从以下几方面培养学生的知识和能力,分别是:
      (1)理论知识:Cortex-A8体系结构及硬件设计原理;使用C、C
      语言进行程序设计相关理论;Linux操作系统的相关系统管理及内核构架理论;嵌入式驱动开发理论;嵌入式系统数据库;GUI原理。
      (2)专业技能:掌握嵌入式系统硬件电路设计方法;掌握嵌入式Linux操作系统的基本操作命令;掌握嵌入式交叉编译开发环境的搭建和使用;掌握基于ARM处理器的嵌入式Linux系统移植方法;能够运用Linux操作系统API函数进行驱动程序编写;能够运用Qt函数库编写应用程序。
      4.教材编写团队情况
      本书编者均为电子信息工程专业嵌入式专业方向教学一线的教师,由张新强、闫慧琦、肖军、刘龙主编,参加编写工作的还有孙丽飞、王伟、周国顺、申华、鞠尔男等。本书编写过程中参考并引用了大量嵌入式系统方面的书籍和资料,在此对作者表示感谢。由于水平有限,书中的缺漏与错误在所难免,恳请广大读者批评指正。我们的联系方式为E-mail:tplegend@163.com
  • 目录:
    前言.... 1

    教材简介.... 2

    项目导学.... 15

    第一篇 硬件设计篇

    第1章 硬件系统概述.... 18

    1.1 硬件系统资源... 18

    1.2 ARM Cortex-A8内核处理器... 19

    习题... 20

    第2章 核心板电路设计.... 21

    2.1 S5PV210地址空间分配... 21

    2.2 DDR2 SDRAM.. 23

    2.2.1 DDR2 SDRAM工作原理... 24

    2.2.2 DDR2 SDRAM硬件设计... 26

    2.3 SLC NAND Flash. 26

    2.3.1 NOR Flash与NAND

    Flash对比... 26

    2.3.2 SLC与MLC NAND

    Flash技术对比... 27

    2.3.3 K9F4G08UOB引脚功能... 28

    2.3.4 NAND Flash硬件设计... 30

    2.4 DM9000A以太网控制器... 32

    2.4.1 DM9000A引脚及功能... 32

    2.4.2 DM9000A硬件设计... 33

    2.5 音频编解码... 34

    2.5.1 IIS总线接口概述... 34

    2.5.2 WM8960概述... 35

    2.5.3 WM8960硬件设计... 36

    习题... 38

    第3章 扩展板电路设计.... 39

    3.1 LED电路... 39

    3.1.1 发光二极管简介... 39

    3.1.2 发光二极管的检测... 40

    3.1.3 发光二极管电路设计... 40

    3.2 蜂鸣器电路... 41

    3.2.1 蜂鸣器简介... 41

    3.2.2 蜂鸣器电路设计... 42

    3.3 按键电路... 43

    3.3.1 按键分类... 43

    3.3.2 按键设计技巧... 43

    3.3.3 按键电路设计... 45

    3.4 串行通信接口电路... 45

    3.4.1 RS-232C标准... 45

    3.4.2 MAX3232芯片... 47

    3.4.3 串行通信接口电路设计... 47

    3.5 EEPROM电路... 48

    3.5.1  I2C总线协议概述... 48

    3.5.2 AT24C02介绍... 49

    3.5.3 AT24C02的读写操作... 50

    3.5.4 AT24C02电路设计... 51

    3.6 SD卡电路... 52

    3.6.1 SD卡概述... 52

    3.6.2 SD卡的物理接口... 52

    3.6.3 SD卡的应用模式... 54

    3.6.4 S5PV210与SD卡的电路设计... 54

    3.7 重力传感器电路... 55

    3.8 USB电路... 56

    3.8.1 USB基础知识... 56

    3.8.2 USB设备检测... 57

    3.8.3 USB2.0 OTG接口... 57

    3.8.4 S5PV210的USB接口电路设计... 58

    3.9 LCD电路... 58

    3.9.1 液晶显示屏... 58

    3.9.2 S5PV210内部LCD控制器... 59

    3.9.3 LCD接口电路设计... 60

    3.10 HDMI高清多媒体接口... 60

    3.10.1 HDMI概述... 60

    3.10.2 HDMI物理接口... 61

    3.10.3 S5PV210的HDMI接口电路设计... 62

    3.11 RJ45网络接口... 63

    3.12 电源及复位电路... 63

    3.12.1 AMS1086电源芯片... 63

    3.12.2 RT9011电源芯片... 64

    3.12.3 IMP811电源监控及复位芯片... 64

    习题... 65

    第二篇 开发基础篇

    第4章 嵌入式Linux开发环境构建.... 68

    4.1 基本概念... 68

    4.1.1 交叉编译... 68

    4.1.2 宿主机与目标机... 69

    4.1.3 调试模型... 69

    4.2 常用Linux命令... 69

    4.3 软件包安装及配置... 70

    4.3.1 PuTTY安装及配置... 70

    4.3.2 VMware8安装... 73

    4.3.3 Ubuntu12.04安装... 74

    4.3.4 用户账号设置... 80

    4.3.5 登录界面设置... 80

    4.3.6 Ubuntu更新源设置... 81

    4.4 交叉编译器安装... 81

    4.5 Windows与Linux共享文件设置... 82

    4.6 TFTP与NFS服务器配置... 85

    4.6.1 配置TFTP服务器... 85

    4.6.2 配置NFS服务器... 86

    习题... 88

    第5章 Make工程管理及Shell编程.... 90

    5.1 Make工程管理... 90

    5.1.1 Make工程管理器... 90

    5.1.2 Make工作步骤... 91

    5.1.3 Make程序示例... 91

    5.1.4 Makefile语法... 94

    5.2 Shell编程... 96

    5.2.1 Bash Shell简介... 97

    5.2.2 Bash Shell常用命令... 97

    5.2.3 重定向与管道... 101

    5.2.4 简单Shell应用... 104

    5.2.5 Shell编程语法... 105

    习题... 126

    第三篇 系统移植篇

    第6章 移植U-Boot. 128

    6.1 BootLoader简介... 128

    6.1.1 BootLoader概念... 128

    6.1.2 BootLoader工作模式... 129

    6.1.3 BootLoader的安装媒介... 129

    6.1.4 BootLoader的烧写... 129

    6.2 常见的BootLoader. 129

    6.3 U-Boot分析... 130

    6.3.1 U-Boot源码构成... 130

    6.3.2 U-Boot启动流程... 131

    6.4 U-Boot移植... 132

    6.4.1 配置U-Boot 132

    6.4.2 修改电源管理功能... 133

    6.4.3 加入USB下载功能... 134

    6.4.4 修改内存配置... 134

    6.4.5 修改DM9000网卡配置... 138

    6.4.6 添加启动zImage内核支持... 140

    6.5 U-Boot常用命令... 142

    6.6 U-Boot启动参数分析... 144

    6.7 烧写U-Boot至NAND

    Flash. 146

    6.7.1 将U-Boot烧写至SD卡... 146

    6.7.2 将U-Boot烧写至Flash. 151

    习题... 152

    第7章 移植Linux内核.... 153

    7.1 Linux内核版本简介... 153

    7.2 内核源码结构... 154

    7.3 内核移植准备... 155

    7.3.1 内核编译过程... 155

    7.3.2 Linux Makefile分析... 156

    7.3.3 内核Kconfig分析... 158

    7.3.4 内核配置及编译命令... 162

    7.4 内核移植... 163

    7.4.1 内核基本配置... 163

    7.4.2 修改NANDFlash分区... 167

    7.4.3 修改LCD信息... 168

    7.4.4 DM9000驱动移植... 172

    7.4.5 蜂鸣器驱动修改... 176

    7.4.6 RTC驱动修改... 176

    7.4.7 USB驱动移植... 177

    7.4.8 FT5406触摸屏驱动移植... 179

    7.4.9 WM8960声卡驱动移植... 179

    7.5 调试、烧写内核... 182

    习题... 183

    第8章 制作根文件系统.... 185

    8.1 根文件系统组成... 185

    8.2 制作根文件系统... 187

    8.2.1 生成根文件系统目录... 187

    8.2.2 配置编译BusyBox. 188

    8.2.3 使用glibc库文件... 190

    8.2.4 建立配置文件... 190

    8.3 网络挂载及固化根文件系统... 195

    8.3.1 NFS挂载根文件系统... 196

    8.3.2 烧写根文件系统至NAND Flash. 197

    习题... 199

    第9章 移植触摸库及Qt4库.... 200

    9.1 移植Tslib触摸库... 200

    9.2 移植QTE库... 201

    9.3 Linux下Qt

    Creator开发环境安装及配置... 204

    9.4 QWT安装配置... 209

    9.4.1 QWT在x86平台上的安装... 209

    9.4.2  QWT在ARM平台上的安装... 211

    9.5 QWT简单示例... 211

    习题... 215

    第四篇 驱动开发篇

    第10章 驱动开发基础.... 217

    10.1 驱动程序中的基本概念... 217

    10.1.1 设备驱动程序概述... 217

    10.1.2  设备驱动的分类... 218

    10.1.3 驱动程序、操作系统、应用程序的关系... 218

    10.1.4 常见的系统调用函数... 219

    10.2 驱动开发要点... 222

    10.2.1 用户态和内核态... 222

    10.2.2 模块机制... 222

    10.3 Hello World驱动程序... 223

    10.3.1 驱动模块组成... 223

    10.3.2 Hello World驱动模块程序... 224

    10.3.3 编译Hello World模块... 224

    10.3.4 调试Hello World模块... 226

    10.4 字符设备驱动基本概念... 226

    10.4.1 主设备号和次设备号... 227

    10.4.2 cdev结构体... 228

    10.4.3 file_operations结构体... 231

    10.4.4 file结构体... 233

    10.4.5 inode 结构体... 234

    10.4.6 各结构体关系... 235

    10.5 字符设备驱动的组成... 235

    10.5.1 文件操作结构体... 235

    10.5.2 加载和卸载函数... 236

    10.5.3 常用设备操作函数... 237

    10.5.4 驱动中常用API函数... 240

    10.6 Virtualmem字符设备驱动... 242

    10.6.1  Virtualmem驱动程序... 242

    10.6.2 Virtualmem测试程序... 246

    10.6.3 驱动程序的测试方法... 247

    10.7 自动创建设备节点的方法... 248

    10.7.1 udev简介... 248

    10.7.2 编译配置udev. 249

    10.7.3 驱动实例... 250

    习题... 252

    第11章 驱动开发核心技术.... 253

    11.1 并发处理机制... 253

    11.1.1 信号量的定义... 254

    11.1.2 信号量的内核函数... 254

    11.1.3 信号量驱动程序及测试代码... 255

    11.2 阻塞机制... 258

    11.2.1 阻塞和非阻塞定义... 258

    11.2.2 等待队列定义及其内核函数... 259

    11.2.3 等待队列驱动程序及测试代码... 260

    11.3 中断机制... 265

    11.3.1 中断定义及分类... 265

    11.3.2 中断的实现过程... 266

    11.3.3  中断的申请及释放... 267

    11.4 利用tasklet处理中断... 269

    11.4.1 顶半部与底半部... 269

    11.4.2 tasklet定义及内核函数... 269

    11.4.3 按键设备原理图... 271

    11.4.4 利用tasklet处理中断驱动实例... 272

    11.5 利用工作队列处理中断... 276

    11.5.1 工作队列定义及内核函数... 276

    11.5.2 利用工作队列处理中断驱动实例... 277

    11.6内核定时器... 281

    11.6.1  时间度量... 282

    11.6.2 时间延时... 282

    11.6.3 内核定时器定义及内核函数... 283

    11.6.4 内核定时器驱动代码... 284

    11.7 设备端口的访问... 287

    11.7.1 I/O端口方式控制设备... 288

    11.7.2 I/O内存方式控制设备... 295

    11.7.3 控制单一引脚的方法... 300

    习题... 308

    第12章 驱动开发进阶.... 309

    12.1 Linux设备驱动模型... 309

    12.1.1 Sysfs文件系统... 310

    12.1.2 设备驱动模型关键数据结构... 312

    12.1.3 内核对象函数... 314

    12.1.4 设备模型构成... 315

    12.1.5 设备驱动模型主要组件... 316

    12.2 Platform虚拟总线... 318

    12.2.1 Platform虚拟总线概述... 318

    12.2.2 Platform虚拟总线重要组件... 319

    12.2.3 Platform虚拟总线驱动实例... 323

    12.3 ADC设备驱动... 329

    12.3.1  ADC模数转换器特点... 329

    12.3.2 ADC驱动程序分析... 332

    12.3.3 ADC测试程序... 335

    12.4 I2C设备驱动... 336

    12.4.1 I2C设备驱动程序结构... 336

    12.4.2 AT24C02设备驱动程序... 340

    12.4.3 用户空间直接访问I2C设备的方法... 345

    12.5 输入子系统... 347

    12.5.1输入子系统简介... 347

    12.5.2 输入子系统设备驱动层设计... 348

    12.5.3 输入子系统中按键设备驱动程序... 350

    12.6 触摸屏驱动... 355

    12.6.1 FT5X06简介... 355

    12.6.2 FT5406设备驱动程序... 357

    习题... 361

    第五篇 项目实战篇

    第13章 基础实例.... 364

    13.1 LED流水灯... 364

    13.2 按键监测... 374

    13.3 模拟量采集... 380

    习题... 383

    第14章 综合实例.... 384

    14.1 智能家居系统... 384

    14.2 硬件系统设计... 385

    14.3 设备驱动程序... 395

    14.4 Qt4应用程序... 400

    习题... 408

    附录学习知识要点及能力要点.... 409

    参考文献.... 411
查看详情
相关图书 / 更多
嵌入式Linux系统软硬件综合设计实训教程
嵌入与网络:西南民族地区禁毒社会组织制度结构优化的路径选择
谢勇 著
嵌入式Linux系统软硬件综合设计实训教程
嵌入式金融:金融技术应用新革命
[美]斯嘉丽·西贝尔(Scarlett Sieber);[英]苏菲·吉博(Sophie Guibaud)
嵌入式Linux系统软硬件综合设计实训教程
嵌入式系统及应用
付少华主编
嵌入式Linux系统软硬件综合设计实训教程
嵌入式系统应用开发——基于NI LabVIEW&myRIO的设计与实现
杨帆;张彩丽;刘晋东;李宁
嵌入式Linux系统软硬件综合设计实训教程
嵌入式技术入门与实战(基于STM32)
尹静
嵌入式Linux系统软硬件综合设计实训教程
嵌入式单片机技术实战教程
郭海如;熊曾刚;李志敏;赵恒;谈怀江;刘江华;万青;万兴
嵌入式Linux系统软硬件综合设计实训教程
嵌入城市:农民工永久迁移意愿及其影响因素研究
陆文荣
嵌入式Linux系统软硬件综合设计实训教程
嵌入式Linux系统开发 ——基于ARM处理器通用平台(第2版)
冯新宇;蒋洪波;程坤
嵌入式Linux系统软硬件综合设计实训教程
嵌入式技术及应用(STM32CubeMX版)
李文华
嵌入式Linux系统软硬件综合设计实训教程
嵌入式系统设计与应用——基于ARM Cortex-A8和Linux(第3版)(微课视频版)
王剑、刘鹏
嵌入式Linux系统软硬件综合设计实训教程
嵌入地方的市场--对一个西南村镇集市的人类学考察
张琪 著
嵌入式Linux系统软硬件综合设计实训教程
嵌入式Linux驱动开发实践
朱文伟 李建英
您可能感兴趣 / 更多
嵌入式Linux系统软硬件综合设计实训教程
门里家风
张新强 编
嵌入式Linux系统软硬件综合设计实训教程
点阵LCD驱动显控原理与实践
张新强 著
嵌入式Linux系统软硬件综合设计实训教程
语文教学科研的成果表达/语文教学新思维丛书
张新强 著
嵌入式Linux系统软硬件综合设计实训教程
洪镇涛语感培养教程:美文品读(高中卷)
张新强 主编;马鹏举;朱显驹