《嵌入式Linux软硬件开发详解 基于S5PV210处理器》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:刘龙,张云翠,申华著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115387899
  • 页数:470 页
图书介绍:本书以用户非常熟悉,市面非常流行的S5PV210处理器为核心进行讲解,讲解内容从底层硬件到顶层软件,能够带领读者完成一个完整的嵌入式开发流程。市面上系统以S5PV210为核心的书籍几乎没有,而本书内容可以适用于市面的流行的大多数开发板,如友善之臂SMART210,网峰WEBEE210,粤嵌GEC210等等。

第一篇 硬件设计篇 2

第1章 硬件系统概述 2

1.1硬件系统资源 2

1.2 S5PV210处理器 3

1.2.1 S5PV210微处理器概述 3

1.2.2内部各模块介绍 4

第2章 核心板电路设计 10

2.1 S5PV210芯片地址分配 10

2.2 DDR2 SDRAM芯片 12

2.2.1 DDR2 SDRAM工作原理 13

2.2.2 DDR2 SDRAM硬件设计 15

2.3 SLC Nand Flash芯片 16

2.3.1 NOR Flash与NAND Flash对比 16

2.3.2 SLC与MLC NAND Flash技术对比 17

2.3.3 K9F4G08UOB引脚功能 18

2.3.4 NAND Flash硬件设计 20

2.4 DM9000A以太网控制器 22

2.4.1 DM9000A引脚及功能 23

2.4.2 DM9000A硬件设计 24

2.5 WM8960音频编解码芯片 26

2.5.1 IIS总线接口概述 26

2.5.2 WM8960概述 26

2.5.3 WM8960硬件设计 28

第3章 扩展板电路设计 31

3.1 LED电路 31

3.1.1发光二极管简介 31

3.1.2发光二极管的检测 32

3.1.3发光二极管电路设计 32

3.2蜂鸣器电路 33

3.2.1蜂鸣器简介 33

3.2.2蜂鸣器电路设计 34

3.3按键电路 35

3.3.1按键分类 35

3.3.2按键设计技巧 35

3.3.3按键电路设计 37

3.4串行通信接口电路 38

3.4.1 RS-232C标准 38

3.4.2 MAX3232芯片 39

3.4.3串行通信接口电路设计 40

3.5 EEPROM电路 41

3.5.1 I2C总线协议概述 41

3.5.2 AT24C02介绍 42

3.5.3 AT24C02的读写操作 43

3.5.4 AT24C02电路设计 45

3.6 SD卡电路 45

3.6.1 SD卡概述 45

3.6.2 SD卡的物理接口 46

3.6.3 SD卡的应用模式 49

3.6.4 S5PV210与SD卡的电路设计 49

3.7重力传感器电路 49

3.8 USB电路 50

3.8.1 USB基础知识 50

3.8.2 USB设备检测 52

3.8.3 USB2.0 OTG接口 52

3.8.4 S5PV210的USB接口电路设计 53

3.9 LCD电路 54

3.9.1液晶显示屏 54

3.9.2 S5PV210内部LCD控制器 55

3.9.3 LCD接口电路设计 55

3.10 HDMI高清多媒体接口 56

3.10.1 HDMI概述 56

3.10.2 HDMI物理接口 57

3.10.3 S5PV210的HDMI接口电路设计 58

3.11 RJ45网络接口 59

3.12电源及复位电路 60

3.12.1 AMS 1086电源芯片 60

3.12.2 RT9011电源芯片 61

3.12.3 IMP811电源监控及复位芯片 61

第二篇 开发基础篇 66

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

4.1基本概念 66

4.2常用Linux命令 67

4.3软件包安装及配置 69

4.3.1 PuTTY安装及配置 69

4.3.2 VMware8安装 72

4.3.3 Redhat Enterprise5.5安装 73

4.4交叉编译器安装 83

4.5 Windows与Linux共享文件设置 83

4.6 TFTP与NFS服务器配置 87

4.6.1配置TFTP服务器 88

4.6.2配置NFS服务器 89

第5章 Make工程管理及Shell编程 92

5.1 Make工程管理 92

5.1.1 Make工程管理器 92

5.1.2 Make工作步骤 93

5.1.3 Make程序示例 93

5.1.4 Makefile语法 96

5.2 Shell编程 99

5.2.1 Bash Shell简介 99

5.2.2 Bash Shell常用命令 100

5.2.3重定向与管道 104

5.2.4简单Shell应用 108

5.2.5 Shell编程语法 109

第三篇 系统移植篇 136

第6章 移植U-Boot 136

6.1 BootLoader简介 136

6.2常见的BootLoader 137

6.3 U-Boot分析 138

6.4 U-Boot移植 140

6.4.1配置U-Boot 140

6.4.2修改内存配置 141

6.4.3修改DM9000网卡配置 146

6.4.4修改电源管理功能 149

6.4.5加入USB下载功能 151

6.4.6添加启动zImage内核支持 151

6.5 U-Boot常用命令 153

6.6 U-Boot启动参数分析 156

6.7烧写U-Boot至NAND Flash 158

6.7.1将U-Boot烧写至SD卡 158

6.7.2将U-Boot烧写至Flash 165

第7章 移植Linux内核 166

7.1 Linux内核版本简介 166

7.2内核源码结构 167

7.3内核移植准备 168

7.3.1内核编译过程 168

7.3.2 Linux Makefile分析 169

7.3.3内核Kconfing分析 172

7.3.4内核配置及编译命令 176

7.4内核移植 177

7.4.1内核基本配置 177

7.4.2修改NAND Flash分区 182

7.4.3修改LCD信息 183

7.4.4 DM9000驱动移植 188

7.4.5蜂鸣器驱动修改 193

7.4.6 RTC驱动修改 193

7.4.7 USB驱动移植 194

7.4.8 TSC2007触摸屏驱动移植 197

7.4.9 FT5406触摸屏驱动移植 199

7.4.10 WM8960声卡驱动移植 200

7.5调试、烧写内核 203

第8章 制作根文件系统 205

8.1根文件系统组成 205

8.2制作根文件系统 207

8.2.1生成根文件系统目录 207

8.2.2配置编译BusyBox 209

8.2.3使用glibc库文件 211

8.2.4建立配置文件 212

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

8.3.1 NFS挂载根文件系统 217

8.3.2烧写根文件系统至NAND Flash 219

第9章 移植触摸库及Qt4库 222

9.1移植Tslib触摸库 222

9.2移植QTE库 223

9.3 Linux下Qt Creator开发环境安装及配置 226

9.4 QWT安装配置 232

9.4.1 QWT在X86平台上的安装 233

9.4.2 QWT在ARM平台上的安装 234

9.5 QWT简单示例 235

第四篇 驱动开发篇 242

第10章 驱动开发基础 242

10.1驱动程序中的基本概念 242

10.1.1设备驱动程序概述 242

10.1.2设备驱动的分类 242

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

10.1.4常见的系统调用函数 244

10.2驱动开发要点 247

10.2.1用户态和内核态 247

10.2.2模块机制 248

10.3 Hello World驱动程序 248

10.3.1驱动模块组成 249

10.3.2 Hello World驱动模块程序 250

10.3.3编译Hello World模块 250

10.3.4调试Hello World模块 252

10.4字符设备驱动基本概念 253

10.4.1主设备号和次设备号 253

10.4.2 cdev结构体 255

10.4.3 file_operations结构体 257

10.4.4 file结构体 260

10.4.5 inode结构体 262

10.4.6各结构体关系 262

10.5字符设备驱动的组成 263

10.5.1文件操作结构体 263

10.5.2加载和卸载函数 263

10.5.3常用设备操作函数 265

10.5.4驱动中常用API函数 269

10.6 Virtualmem字符设备驱动 270

10.6.1 Virtualmem驱动程序 270

10.6.2 Virtualmem测试程序 276

10.6.3驱动程序的测试方法 278

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

10.7.1 udev简介 279

10.7.2编译配置udev 279

10.7.3驱动实例 281

第11章 驱动开发核心技术 284

11.1并发处理机制 284

11.1.1信号量的定义 284

11.1.2信号量的内核函数 285

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

11.2阻塞机制 290

11.2.1阻塞和非阻塞定义 290

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

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

11.3中断机制 298

11.3.1中断定义及分类 298

11.3.2中断的实现过程 299

11.3.3中断的申请及释放 301

11.4利用tasklet处理中断 302

11.4.1顶半部与底半部 302

11.4.2 tasklet定义及内核函数 303

11.4.3按键设备原理图 305

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

11.5利用工作队列处理中断 312

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

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

11.6内核定时器 318

11.6.1时间度量 319

11.6.2时间延时 319

11.6.3内核定时器定义及内核函数 320

11.6.4内核定时器驱动代码 321

11.7设备端口的访问 325

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

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

11.7.3控制单一引脚的方法 341

第12章 驱动开发进阶 351

12.1 Linux设备驱动模型 351

12.1.1 Sysfs文件系统 352

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

12.1.3内核对象函数 356

12.1.4设备模型构成 357

12.1.5设备驱动模型主要组件 359

12.2 Platform虚拟总线 362

12.2.1 Platform虚拟总线概述 362

12.2.2 Platform虚拟总线重要组件 362

12.2.3 Platform虚拟总线驱动实例 367

12.3 ADC设备驱动 375

12.3.1 ADC模数转换器特点 376

12.3.2 ADC驱动程序分析 379

12.3.3 ADC测试程序 383

12.4 I2C设备驱动 384

12.4.1 I2C设备驱动程序结构 384

12.4.2 AT24C08设备驱动程序 389

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

12.5输入子系统 397

12.5.1输入子系统简介 398

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

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

12.6触摸屏驱动 408

12.6.1 FT5X06简介 408

12.6.2 FT5406设备驱动程序 410

第五篇 项目实战篇 418

第13章 基础实例 418

13.1 LED流水灯 418

13.2按键监测 430

13.3模拟量采集 437

第14章 综合实例 442

14.1智能家居系统 442

14.2硬件系统设计 444

14.3设备驱动程序 454

14.4 Qt4应用程序 461