基于ARM嵌入式μClinux系统原理及应用

基于ARM嵌入式μClinux系统原理及应用

李岩, 荣盘祥, 编著

出版社:清华大学出版社

年代:2008

定价:39.0

书籍简介:

本书共分为12章。1~3章介绍了嵌入式系统的基本概念,常用的ARM/Thumb指令系统及编译工具GNUGCC的使用方法;4~5章介绍S3C44BOX芯片的体系结构,结合EV44BOII开发板介绍了S3C44BOX的接口电路设计方法及编程;6~10章介绍主流的μClinux操作系统的进程管理、文件系统管理、设备管理、以及用户接口的设计过程;最后两章介绍应用程序开发实例和移植。

书籍目录:

第1章 嵌入式系统导论1

1.1 概述1

1.1.1 什么是嵌入式系统1

1.1.2 嵌入式系统的特点及分类2

1.2 嵌入式微处理器和嵌入式操作系统4

1.2.1 嵌入式微处理器4

1.2.2 嵌入式操作系统5

1.3 嵌入式系统设计过程9

1.3.1 需求分析10

1.3.2 规格说明13

1.3.3 体系结构设计13

1.3.4 设计硬件构件和软件构件15

1.3.5 系统集成15

1.3.6 系统测试15

小结16

习题16

第2章 ARM/Thumb微处理器结构及指令系统17

2.1 ARM微处理器概述17

2.1.1 ARM系列微处理器17

2.1.2 RISC体系结构20

2.1.3 ARM和Thumb状态21

2.1.4 寄存器21

2.1.5 ARM指令集概述21

2.1.6 Thumb指令集概述21

2.2 ARM微处理器体系结构22

2.2.1 数据类型22

2.2.2 ARM微处理器的工作状态22

2.2.3 ARM体系结构的存储器格式23

2.2.4 处理器模式23

2.2.5 寄存器组织24

2.2.6 异常28

2.3 ARM/Thumb指令系统34

2.3.1 ARM处理器寻址方式34

2.3.2 ARM指令集介绍36

2.3.3 Thumb指令集介绍54

小结55

习题55

第3章 程序设计基础56

3.1 GCC简介56

3.1.1 GCC组成56

3.1.2 GCC编译程序的基本过程57

3.2 C/C++交叉编译器arm-elf-gcc58

3.2.1 概述58

3.2.2 命令使用60

3.3 交叉连接器arm-elf-ld62

3.3.1 概述62

3.3.2 命令使用63

3.3.3 linkcmds链接命令文件64

3.4 工程管理器make70

3.4.1 概述70

3.4.2 命令使用71

3.4.3 编写一个makefile72

3.5 交叉汇编器 arm-elf-as76

3.5.1 概述76

3.5.2 命令使用77

3.6 汇编语言编程78

3.6.1 汇编语言78

3.6.2 宏语句与条件汇编83

3.6.3 模块化程序设计86

3.6.4 内存模式86

3.6.5 StrongARM和ARM786

3.7 简单程序设计88

3.7.1 顺序程序设计88

3.7.2 分支程序设计89

3.7.3 循环程序设计90

3.7.4 子程序设计91

3.8 混合语言编程92

3.8.1 如何在C语言内嵌汇编语言93

3.8.2 C与汇编相互调用96

小结99

习题99

第4章 S3C44B0X CPU管理及附加电路101

4.1 S3C44B0X简介101

4.2 时钟和功耗管理109

4.2.1 概述109

4.2.2 寄存器定义111

4.2.3 时钟与电源管理编程113

4.3 CPU Wrapper和总线特性114

4.3.1 概述114

4.3.2 内部SRAM115

4.3.3 总线优先级115

4.3.4 写缓冲区操作116

4.3.5 特殊寄存器116

4.4 存储器管理118

4.5 存储时序图123

4.6 MICETEK EV44B0II开发板简介126

4.6.1 存储地址空间分配126

4.6.2 I/O口配置128

4.6.3 电源、时钟及复位电路130

4.6.4 MBL(Micetek Boot Loader)介绍130

小结131

习题131

第5章 S3C44B0X接口电路设计与编程132

5.1 存储器电路设计及编程132

5.1.1 SDRAM KM416S4020B芯片132

5.1.2 Flash 存储器132

5.1.3 存储器与CPU的连接137

5.1.4 SDRAM存储器接口电路与编程138

5.1.5 Flash 存储器接口电路与编程139

5.2 中断系统电路设计及编程141

5.2.1 S3C44B0X中断概述141

5.2.2 中断源及中断模式142

5.2.3 中断请求及允许143

5.2.4 中断判优143

5.2.5 IRQ中断响应模式145

5.2.6 中断及异常响应处理过程150

5.2.7 中断特殊寄存器154

5.2.8 中断程序应用编程159

5.3 通用I/O接口电路设计及编程161

5.3.1 概述161

5.3.2 端口控制寄存器165

5.3.3 LED接口电路设计及编程166

5.3.4 键盘接口电路设计及编程167

5.4 DMA接口电路原理及编程169

5.4.1 S3C44B0X DMA控制器结构170

5.4.2 外部DMA请求/应答协议171

5.4.3 DMA传输模式172

5.4.4 DMA请求源的选择173

5.4.5 DMA自动重装模式173

5.4.6 S3C44B0X芯片的DMA寄存器174

5.4.7 S3C44B0X DMA编程177

5.5 PWM计时器接口电路原理及编程180

5.5.1 概述180

5.5.2 PWM计时器操作181

5.5.3 PWM计时器控制寄存器186

5.5.4 PWM计时器编程188

5.6 看门狗计时器接口电路原理及编程190

5.6.1 概述190

5.6.2 WDT计时器控制寄存器190

5.6.3 WDT计时器编程191

5.7 日历时钟接口电路设计及编程192

5.7.1 概述192

5.7.2 日历时钟192

5.7.3 日历时钟寄存器定义194

5.7.4 日历时钟接口电路设计及编程197

5.8 LCD控制器198

5.8.1 LCD工作原理199

5.8.2 S3C44B0X的内部LCD控制器199

5.8.3 LCD控制器的操作201

5.8.4 LCD控制器专用寄存器203

5.8.5 LCD接口电路设计及编程209

5.9 触摸屏电路设计及编程213

5.9.1 触摸屏概述213

5.9.2 电阻触摸屏原理213

5.9.3 触摸屏电路控制213

5.9.4 编程217

5.9.5 触摸屏与显示器的配合218

5.10 异步串行通信接口219

5.10.1 简述219

5.10.2 中断/DMA请求产生器220

5.10.3 UART错误状态FIFO220

5.10.4 UART寄存器221

5.10.5 编程225

5.11 A/D转换器227

5.11.1 A/D转换器概述227

5.11.2 ADC的相关寄存器228

5.11.3 A/D转换器电路设计及编程229

5.12 D/A转换器230

5.12.1 D/A转换器工作原理230

5.12.2 DAC0832芯片231

5.13 IIS总线接口234

5.13.1 音频系统简介234

5.13.2 IIS总线概述234

5.13.3 传输方式235

5.13.4 声音串口格式236

5.13.5 采样频率和主时钟237

5.13.6 IIS操作238

5.13.7 IIS总线接口寄存器238

5.13.8 UDA1341TS概述240

5.13.9 IIS接口及编程246

小结252

习题252

第6章 嵌入式Linux开发254

6.1 嵌入式Linux概况254

6.1.1 嵌入式Linux254

6.1.2 嵌入式Linux的组成257

6.1.3 嵌入式Linux的版本257

6.2 μCLinux 开发介绍258

6.2.1 启动模块258

6.2.2 内核初始化259

6.2.3 系统调用处理/异常处理259

6.2.4 驱动程序259

6.2.5 文件系统260

6.2.6 内存管理260

6.2.7 进程管理261

6.2.8 运行时间库及应用程序261

6.3 μCLinux启动过程263

6.4 开发工具介绍266

6.4.1 安装267

6.4.2 开发环境的建立267

6.4.3 调试方法268

6.5 内核的配置和编译272

6.5.1 配置内核272

6.5.2 编译内核274

6.6 内核的调试274

6.6.1 下载μCLinux内核274

6.6.2 几个调试窗口274

小结278

习题278

第7章 进程/线程管理279

7.1 进程概念及组成279

7.1.1 进程概念279

7.1.2 进程的组成279

7.2 进程调度280

7.2.1 信号280

7.2.2 进程状态283

7.2.3 进程调度284

7.3 进程运行和控制285

7.4 进程通信与同步286

7.4.1 进程通信286

7.4.2 进程同步288

7.5 线程概念及分类288

7.5.1 线程特点288

7.5.2 线程的基本概念289

7.5.3 线程的分类289

7.6 线程基础290

7.6.1 线程的基本操作函数290

7.6.2 简单的多线程编程291

7.7 线程应用中的同步问题292

7.7.1 特定线程数据292

7.7.2 互斥锁292

7.7.3 读写锁294

7.7.4 记录上锁294

7.7.5 条件变量295

7.7.6 信号量295

小结295

习题295

第8章 存储管理296

8.1 FLAT模式内存管理296

8.1.1 3种内存管理模型296

8.1.2 标准Linux的内存管理297

8.1.3 μCLinux的内存管理298

8.1.4 μCLinux内存管理的局限性298

8.2 内存管理模块的启动初始化299

8.2.1 setup_arch()299

8.2.2 paging_init()300

8.2.3 free_area_init()301

8.2.4 mem_init()301

8.3 可执行程序的加载301

8.3.1 用户程序的内存分布301

8.3.2 reloc段机制302

8.3.3 FLAT可执行文件格式303

8.3.4 执行文件加载流程304

小结307

习题307

第9章 文件系统308

9.1 文件系统结构308

9.2 文件系统类型310

9.2.1 ROMFS文件系统310

9.2.2 RAMFS文件系统312

9.2.3 JFFS与JFFS2文件系统312

9.2.4 EXT2文件系统314

9.3 文件系统目录结构315

9.3.1 ROMFS文件系统目录结构315

9.3.2 μCLinux源程序结构318

9.4 简单编程实例321

小结324

习题324

第10章 设备管理325

10.1 设备管理结构325

10.1.1 概述325

10.1.2 字符设备与块设备325

10.1.3 主设备号和次设备号326

10.1.4 Linux设备命名习惯326

10.2 驱动程序326

10.2.1 驱动程序基本功能326

10.2.2 驱动程序的运作过程327

10.2.3 常用接口函数介绍327

10.2.4 常用函数原型328

10.3 驱动程序编写实例329

10.3.1 设备功能介绍329

10.3.2 具体实现329

小结333

习题334

第11章 应用程序开发335

11.1 串口应用程序335

11.1.1 串口主要函数介绍336

11.1.2 串口举例338

11.2 网络应用340

11.2.1 TCP/IP网络应用340

11.2.2 Web服务器应用350

11.3 音频设备应用354

11.3.1 常用音频文件格式354

11.3.2 播放WAV文件举例360

11.4键盘及LCD显示应用364

11.4.1 LCD介绍364

11.4.2 键盘实现368

11.5 汉字音乐点播应用368

小结377

习题378

第12章 μCLinux在UP-NETARM3000平台上的移植379

12.1 UP-NETARM3000嵌入式开发平台介绍379

12.2 μCLinux在UP-NETARM3000上的移植379

12.2.1 Linux移植准备379

12.2.2 关于交叉编译环境380

12.2.3 修改μCLinux内核源码382

12.2.4 Linux内核裁减384

12.2.5 内核的编译392

12.3 内核及根文件系统的烧写392

12.3.1 配置minicom392

12.3.2 烧写内核393

12.3.3 烧写根文件系统393

小结394

习题394

附录A S3C44B0X特殊功能寄存器地址对应表395

附录B 部分Linux命令403

附录C LinuxView简介406

参考文献411

内容摘要:

本书不但着重介绍了目前流行的ARM微处理器及应用较为广泛的μCLinux嵌入式操作系统,而且结合作者多年的研究和教学经验介绍了基于ARM芯片的嵌入式系统的原理、程序设计方法以及应用程序的开发。本书共分为12章。第1章~第3章介绍了嵌入式系统的基本概念,常用的ARM/Thumb指令系统及编译工具GNU GCC的使用方法;第4章和第5章介绍了ARM芯片的体系结构和各个外部设备接口(如Flash存储器、SDRAM、中断接口、DMA接口、定时及时钟接口、音频接口、串行接口、键盘显示器接口、触摸屏LCD接口和模拟接口等)的结构、原理、接口电路及时序,并且介绍了接口的驱动程序的编制方法;第6章~第10章介绍了主流的μCLinux操作系统的进程管理、文件系统管理、设备管理以及用户接口的设计过程,其中包括开发工具Hitool for μCLinux的使用方法介绍及简单驱动程序的编写。第11章和第12章介绍了应用程序开发实例和μCLinux在UP-NETARM 3000平台上的移植过程。本书主要从嵌入式理论、方法和应用实践的角度出发,以ARM处理器为基础,展现了嵌入式系统的基本理论的主要内容和实际应用开发方法。本书是精品课程配套教材,有教学支持网站(http://www1.hrbust.edu.cn/xueyuan/com/embedded/),取得了良好的教学效果,具有较好的推广价值。本书可供嵌入式爱好者、从业者和高等学校师生专业进修和教学参考之用,也可作为有关嵌入式系统教学的本科生或研究生的教材使用。

编辑推荐:

为高等学校计算机专业教材精选·计算机硬件之一。

书籍规格:

书籍详细信息
书名基于ARM嵌入式μClinux系统原理及应用站内查询相似图书
丛书名高等学校计算机专业教材精选
9787302186939
如需购买下载《基于ARM嵌入式μClinux系统原理及应用》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次2版印次1
定价(元)39.0语种简体中文
尺寸26装帧平装
页数 414 印数 4000

书籍信息归属:

基于ARM嵌入式μClinux系统原理及应用是清华大学出版社于2009.01出版的中图分类号为 TP316.89 ,TP332 的主题关于 Linux操作系统-高等学校-教材 ,微处理器,ARM-高等学校-教材 的书籍。