图书介绍

从ARM9到Linux系统设计与开发直通车PDF|Epub|txt|kindle电子书版本网盘下载

从ARM9到Linux系统设计与开发直通车
  • 赵健雄编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121238390
  • 出版时间:2014
  • 标注页数:572页
  • 文件大小:115MB
  • 文件页数:589页
  • 主题词:Linux操作系统-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

从ARM9到Linux系统设计与开发直通车PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1篇 ARM微处理器讲解1

第1章 走进嵌入式系统世界1

1.1 认识嵌入式系统1

1.1.1 嵌入式硬件系统的发展进程2

1.1.2 嵌入式系统的发展趋势3

1.1.3 嵌入式系统的主要特征4

1.2 嵌入式处理器的简单概述6

1.2.1 嵌入式微处理器简介6

1.2.2 嵌入式微控制器简介7

1.2.3 数字信号处理器(DSP)简介7

1.2.4 嵌入式片上系统(SoC)简介8

1.3 嵌入式软件系统的简单概述9

1.3.1 嵌入式软件系统简介9

1.3.2 嵌入式软件开发简介10

1.4 嵌入式目标平台的介绍11

1.4.1 嵌入式硬件平台简介11

1.4.2 如何构建嵌入式系统开发平台12

1.4.3 如何向嵌入式硬件平台上烧写映像14

1.5 本章小结17

第2章 ARM体系微处理器的基本概念18

2.1 ARM体系微处理器简介18

2.2 ARM体系微处理器的类型18

2.3 实际项目中对ARM微处理器的选择21

2.3.1 ARM微处理器应用方案的成熟度考虑21

2.3.2 ARM内核的选择21

2.3.3 ARM微处理器的性能考虑22

2.3.4 ARM微处理器的片内资源考虑22

2.4 ARM微处理器的工作体系22

2.4.1 工作模式介绍23

2.4.2 寄存器体系23

2.4.3 指令体系24

2.5 ARM微处理器的基础架构介绍24

2.5.1 计算机体系结构的介绍25

2.5.2 ARM微处理器的技术特征26

2.6 本章小结29

第3章 S3C2410的内部结构及外围电路30

3.1 S3C2410整体资源简介30

3.1.1 性能介绍30

3.1.2 资源模块介绍31

3.1.3 内部结构31

3.1.4 五大体系结构34

3.1.5 存储系统34

3.2 S3C2410内部资源功能介绍38

3.2.1 时钟与电源管理38

3.2.2 中断控制器41

3.2.3 LCD控制器42

3.2.4 Nand Flash控制器43

3.2.5 UART控制器44

3.2.6 DMA控制器44

3.2.7 TIMER控制器44

3.2.8 I/O接口45

3.2.9 RTC控制器46

3.2.10 触摸控制器46

3.2.11 IIC控制器47

3.2.12 IIS控制器47

3.2.13 看门狗定时器47

3.2.14 USB控制器47

3.2.15 SPI接口48

3.2.16 SD接口48

3.2.17 ADC控制器49

3.3 S3C2410微处理器的外围电路设计49

3.3.1 时钟电路50

3.3.2 复位电路50

3.3.3 启动电路51

3.3.4 电源电路51

3.3.5 Flash电路52

3.3.6 SDRAM电路54

3.3.7 UART电路57

3.3.8 IrDA电路58

3.3.9 USB电路58

3.3.10 以太网电路59

3.3.11 音频电路61

3.3.12 SD/MMC电路62

3.3.13 LCD电路62

3.4 本章小结63

第4章 ARM微处理器的寻址方式及指令集64

4.1 ARM指令集概述及寻址方式64

4.1.1 指令结构简介64

4.1.2 指令分类65

4.1.3 指令格式与条件域66

4.1.4 寻址方式67

4.2 ARM微处理器的指令集73

4.2.1 跳转指令73

4.2.2 数据处理指令74

4.2.3 乘法指令与乘加指令79

4.2.4 程序状态寄存器访问指令81

4.2.5 加载/存储指令82

4.2.6 批量数据加载/存储指令84

4.2.7 数据交换指令85

4.2.8 移位指令86

4.2.9 协处理器指令87

4.2.1 0异常产生指令89

4.3 本章小结90

第5章 ADS集成开发环境的应用基础91

5.1 ADS1.2 集成开发环境简介91

5.1.1 ADS软件中的ARM运行时库92

5.1.2 CodeWarrior集成开发环境介绍93

5.1.3 ADS集成开发软件的调试器介绍94

5.1.4 ADS集成开发环境中的实用工具94

5.2 ADS软件的命令行下的开发方式95

5.2.1 ADS软件中的命令行工具介绍95

5.2.2 编译器与链接器的使用97

5.3 ADS软件的图形界面下的开发方式100

5.3.1 如何创建ADS工程100

5.3.2 工程源代码的编写实现104

5.3.3 对工程进行编译和链接操作106

5.4 使用AXD调试工具进行代码调试110

5.4.1 AXD软件加载可执行文件110

5.4.2 AXD软件中运行映像文件110

5.4.3 代码调试时添加断点110

5.4.4 代码调试时的存储器操作111

5.4.5 代码调试时的寄存器操作111

5.4.6 代码调试时的变量操作112

5.5 本章小结112

第6章 基于ADS平台的实验开发113

6.1 汇编之LED灯实验113

6.2 Hello World之串口实验115

6.2.1 S3C2410的UART介绍115

6.2.2 UART的数据发送操作115

6.2.3 UART的数据接收操作115

6.2.4 UART的波特率发生器116

6.2.5 UART与PC通信编程实现116

6.3 外部中断编程操作118

6.3.1 中断响应过程和返回过程118

6.3.2 外部中断编程实现118

6.4 看门狗测试代码的编写120

6.4.1 看门狗的工作原理120

6.4.2 S3C2410微处理器的看门狗121

6.4.3 S3C2410微处理器的看门狗编程实现121

6.5 利用定时器产生PWM编程实验123

6.6 S3C2410微处理器的启动代码实验124

6.7 S3C2410微处理器的RTC编程实验134

6.7.1 RTC的简单介绍134

6.7.2 RTC的相关功能134

6.7.3 RTC编程实现135

6.8 S3C2410微处理器的IIC总线实验136

6.8.1 IIC总线实现原理137

6.8.2 IIC总线编程实现137

6.9 Nor Flash驱动编程实现140

6.9.1 SST39VF160的操作原理141

6.9.2 SST39VF160编程实现143

6.10 Nand Flash驱动编程实现145

6.10.1 K9F1208UU0M的指令145

6.10.2 K9F1208UU0M的工作原理145

6.10.3 Nand Flash编程实现146

6.11 本章小结149

第2篇 嵌入式Linux系统讲解150

第7章 嵌入式操作系统的整体介绍150

7.1 嵌入式操作系统简介150

7.1.1 嵌入式操作系统的发展阶段150

7.1.2 嵌入式操作系统的优势151

7.1.3 嵌入式操作系统的分类151

7.2 常见的嵌入式操作系统152

7.2.1 VxWorks嵌入式操作系统152

7.2.2 pSOS嵌入式操作系统153

7.2.3 Palm OS嵌入式操作系统153

7.2.4 QNX嵌入式操作系统154

7.2.5 Windows CE嵌入式操作系统154

7.2.6 uC/OS-Ⅱ嵌入式操作系统155

7.2.7 Linux嵌入式操作系统155

7.3 嵌入式操作系统的结构157

7.4 嵌入式操作系统的功能158

7.4.1 进程管理功能158

7.4.2 内存管理功能160

7.4.3 文件管理功能162

7.4.4 设备管理功能163

7.5 本章小结164

第8章 走进Linux操作系统165

8.1 Ubuntu操作系统的安装165

8.1.1 Ubuntu系统的简介165

8.1.2 虚拟机向导的配置165

8.1.3 Ubuntu系统的安装169

8.2 Ubuntu操作系统的相关操作命令172

8.2.1 Ubuntu系统的root用户172

8.2.2 Ubuntu系统的常用命令173

8.3 本章小结203

第9章 在Linux系统中构建交叉开发环境204

9.1 交叉开发环境简介204

9.1.1 交叉开发环境模型204

9.1.2 上位机与下位机的连接方式205

9.2 交叉开发环境的搭建207

9.2.1 Linux系统的网络配置207

9.2.2 关于apt-get工具软件的介绍209

9.2.3 Minicom的安装与配置209

9.2.4 FTP服务的安装、配置与启动213

9.2.5 SSH服务的安装、配置与启动213

9.2.6 NFS服务的安装、配置与启动214

9.2.7 交叉工具链的安装与配置215

9.3 Windows系统的实用软件介绍220

9.3.1 远程登录Linux系统工具SecureCRT220

9.3.2 Windows与Linux之间的文件传输软件CuteFTP222

9.3.3 Windows系统的代码阅读/编辑工具SI223

9.3.4 Windows系统的TFTP服务器软件TFTP32226

9.3.5 Windows系统的DNW软件226

9.4 Linux系统的实用软件介绍228

9.4.1 VI编辑器228

9.4.2 gedit编辑器230

9.4.3 Eclipse软件的安装230

9.4.4 Eclipse CDT开发C程序232

9.5 本章小结234

第10章 Linux系统的裸机程序开发235

10.1 Linux系统的裸机程序开发简介235

10.1.1 代码的编译方式235

10.1.2 make工程管理器简介235

10.2 Linux系统的编译器236

10.2.1 gcc与arm-linux-gcc简介236

10.2.2 gcc工具的实例操作237

10.2.3 gcc工具的编译细节分析240

10.2.4 arm-linux-gcc及相关工具的应用241

10.3 Makefile工程文件的应用246

10.3.1 Makefile文件的简单介绍246

10.3.2 如何编写Makefile文件247

10.3.3 如何执行Makefile文件250

10.4 Linux系统的裸机程序开发示例251

10.5 本章小结257

第11章 Bootloader的移植258

11.1 Bootloader的简单介绍258

11.1.1 Bootloader的认识258

11.1.2 Bootloader的通信方式259

11.1.3 Bootloader的结构介绍259

11.1.4 常见的Bootloader267

11.2 利用Vivi进行Linux引导267

11.2.1 Vivi的结构介绍268

11.2.2 Vivi的工作流程269

11.2.3 Vivi的移植操作280

11.2.4 Vivi的常用操作命令284

11.3 U-Boot源代码分析与移植操作286

11.3.1 U-Boot的特性介绍286

11.3.2 U-Boot的源代码结构分析287

11.3.3 U-Boot的启动过程288

11.3.4 U-Boot的移植295

11.3.5 U-Boot的编译操作308

11.3.6 U-Boot的命令操作312

11.4 本章小结315

第12章 Linux内核的裁剪与移植316

12.1 Linux内核的版本号与内核结构316

12.1.1 Linux内核的版本号316

12.1.2 Linux内核结构317

12.2 Linux2.6 内核的特点318

12.3 Linux2.6 内核的源代码结构318

12.3.1 Linux源代码的准备工作319

12.3.2 Linux源代码结构的分析319

12.3.3 Linux源代码中的Makefile文件320

12.4 Linux2.6 内核的移植328

12.4.1 Linux内核的启动过程329

12.4.2 Linux内核启动代码的分析330

12.4.3 Linux内核源代码的修改342

12.4.4 Linux内核的配置346

12.4.5 Linux内核的编译、烧写与启动357

12.5 YAFFS文件系统的移植358

12.6 本章小结361

第13章 Linux内核调试技术的实现362

13.1 内核态下的打印函数printk()362

13.1.1 printk()函数的简介及使用方法362

13.1.2 printk()函数的源代码分析364

13.1.3 控制台的相关源代码分析367

13.1.4 命令行参数368

13.2 利用printk()打印信息调试内核369

13.3 利用Linux的/proc文件系统调试内核371

13.4 利用Oops消息调试内核375

13.4.1 Oops消息的内容375

13.4.2 栈回溯信息的直观显示376

13.4.3 对Linux内核进行调试377

13.4.4 Oops消息中的栈信息分析380

13.5 利用KGDB远程调试内核382

13.5.1 KGDB的介绍382

13.5.2 向内核中增加KGDB调试器384

13.5.3 在开发机上利用DDD与GDB调试内核388

13.6 本章小结391

第14章 Linux系统的文件系统392

14.1 Nand/NorFlash存储设备392

14.1.1 Nand Flash存储设备392

14.1.2 Nor Flash存储设备394

14.1.3 Nand Flash和NorFlash的区别394

14.1.4 MTD技术简介395

14.2 Linux系统的文件系统概述及分类395

14.2.1 文件系统概述396

14.2.2 文件系统分类396

14.3 Linux系统的根文件系统406

14.3.1 根文件系统的目录结构概述406

14.3.2 文件属性分析411

14.4 Busybox的移植操作413

14.4.1 Busybox的简单概述413

14.4.2 内核和Busybox的init进程413

14.4.3 Busybox的配置417

14.4.4 Busybox的编译与安装422

14.5 构建Linux系统的根文件系统422

14.5.1 glibc库文件的安装423

14.5.2 完善根文件系统的构建423

14.5.3 根文件系统其他目录的构建426

14.5.4 YAFFS文件系统的制作426

14.5.5 JFFS2文件系统的制作430

14.6 本章小结431

第15章 Linux系统的系统管理432

15.1 存储系统管理432

15.1.1 进程的虚拟内存空间432

15.1.2 虚拟内存空间的映射与地址转换实现434

15.1.3 虚拟内存空间的管理方式与Zone区域435

15.1.4 分配/回收内存页面与slab分配器438

15.1.5 申请/释放虚拟内存438

15.2 中断与系统调用439

15.2.1 中断与系统调用概述440

15.2.2 tasklet机制的介绍441

15.2.3 系统调用机制的实现447

15.2.4 fork()系统调用介绍449

15.3 文件系统管理451

15.3.1 文件与目录简单概述452

15.3.2 虚拟文件系统453

15.3.3 VFS的4个主要数据结构454

15.4 设备管理463

15.4.1 设备与设备的管理功能463

15.4.2 I/O设备管理464

15.5 本章小结470

第16章 Linux系统的Shell编程实现471

16.1 Linux系统的Shell编程规则简介471

16.2 Linux系统的Shell编程472

16.2.1 Shell程序中的变量赋值和引用472

16.2.2 Shell程序中的键盘输入实现474

16.2.3 使用VI编辑器编写Shell脚本476

16.2.4 如何修改脚本文件的访问权限477

16.2.5 Shell脚本程序的执行方式477

16.3 Shell脚本程序中的参数及函数478

16.3.1 位置参数478

16.3.2 内部参数479

16.3.3 特殊符号480

16.3.4 帮助命令481

16.4 Shell脚本程序中的表达式482

16.4.1 字符串操作符483

16.4.2 数字的比较484

16.4.3 逻辑操作符484

16.4.4 文件操作符485

16.5 Shell脚本程序中的循环结构486

16.5.1 for循环语句的使用486

16.5.2 while循环语句的使用487

16.5.3 until循环语句的使用488

16.6 Shell脚本程序中的条件结构488

16.6.1 if条件语句的使用488

16.6.2 case条件语句的使用489

16.7 Shell程序中函数与脚本的调用490

16.7.1 函数的编写与调用490

16.7.2 脚本的调用491

16.8 本章小结491

第3篇 Linux系统实验492

第17章 Linux系统的设备驱动开发基础492

17.1 Linux系统的驱动程序概述492

17.1.1 驱动程序的调用关系492

17.1.2 驱动程序的分类及作用493

17.1.3 硬件设备的识别与驱动代码的开发流程494

17.1.4 硬件设备的控制方式495

17.2 Linux系统的硬件设备驱动开发流程及示例495

17.2.1 构建一个简单的驱动代码模块495

17.2.2 虚拟字符设备驱动的测试498

17.2.3 LED驱动开发504

17.3 Linux系统的硬件设备驱动开发相关技术510

17.3.1 并发控制原理510

17.3.2 并发控制的相关函数510

17.3.3 并发控制示例513

17.3.4 设备驱动程序中的阻塞与非阻塞516

17.3.5 设备驱动程序中的poll函数应用520

17.3.6 设备驱动程序中的中断处理应用522

17.3.7 设备驱动程序中关于内存与I/O操作的应用524

17.4 Linux系统的块设备的驱动程序编写529

17.4.1 块设备的I/O操作529

17.4.2 与块设备相关的结构体及函数530

17.4.3 块设备驱动代码编写的相关技术535

17.5 本章小结541

第18章 Linux系统的硬件设备驱动编写实验542

18.1 按键设备的驱动开发542

18.2 虚拟块设备的驱动开发550

18.3 网口设备的驱动开发560

18.4 LCD设备的驱动开发565

18.5 SD卡设备的驱动开发568

18.6 USB设备的驱动开发570

18.7 本章小结572

热门推荐