《基于S3C44B0X嵌入式uCLinux系统原理及应用》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:李岩,荣盘祥编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302097259
  • 页数:401 页
图书介绍:本书着重介绍了目前流行的S3C44BOX微处理器及应用较为广泛的μCLinux嵌入式操作系统。书中作者结合多年的研究和教学经验,介绍了基于S3C44BOX芯片的嵌入式系统的原理、程序设计方法以及实用性程序的开发。

目录 1

1.1 概述 1

1.1.1 什么是嵌入式系统 1

第1章 嵌入式系统导论 1

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

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

1.2.1 嵌入式微处理器 4

1.2.2 嵌入式操作系统 6

1.3 嵌入式系统设计过程 9

1.3.1 需求分析 10

1.3.2 规格说明 14

1.3.3 体系结构设计 14

1.3.5 系统集成 16

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

1.3.6 系统测试 17

小结 17

习题 17

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

2.1 ARM微处理器概述 19

2.1.1 ARM处理器系列 20

2.1.2 RISC体系结构 23

2.1.3 ARM和Thumb状态 23

2.1.6 Thumb指令集概述 24

2.1.4 寄存器 24

2.1.5 ARM指令集概述 24

2.2 ARM微处理器体系结构 25

2.2.1 数据类型 25

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

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

2.2.4 处理器模式 26

2.2.5 寄存器组织 26

2.2.6 异常 31

2.3 ARM/Thumb指令系统 37

2.3.1 ARM处理器寻址方式 37

2.3.2 ARM指令集介绍 40

2.3.3 Thumb指令集介绍 59

小结 60

习题 60

第3章 程序设计基础 61

3.1 GNU GCC简介 61

3.1.1 GCC组成 61

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

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

3.2.1 概述 64

3.2.2 命令使用 66

3.3.1 概述 68

3.3 交叉连接器arm-elf-ld 68

3.3.2 命令使用 69

3.3.3 linkcmds链接命令文件 70

3.4.1 概述 76

3.4 工程管理器make 76

3.4.2 命令使用 77

3.4.3 编写一个makefile 78

3.5.1 概述 83

3.5 交叉汇编器arm-elf-as 83

3.5.2 命令使用 84

3.6.1 汇编语言 85

3.6 汇编语言编程 85

3.6.2 宏语句与条件汇编 90

3.6.3 模块化程序设计 92

3.6.5 StrongARM ARM7 93

3.6.4 内存模式 93

3.7.1 顺序程序设计 95

3.7 简单程序设计 95

3.7.2 分支程序设计 95

3.7.3 循环程序设计 97

3.7.4 子程序设计 98

3.8 混合语言编程 99

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

3.8.2 C与汇编相互调用 103

小结 106

习题 106

第4章 S3C44B0X硬件结构及功能 109

4.1 S3C44B0X简介 109

4.2.1 S3C44B0X存储系统的特征 117

4.2 存储器管理 117

4.2.2 寄存器定义 119

4.3 时钟和功耗管理 122

4.3.1 概述 122

4.3.2 寄存器定义 123

4.4 CPU Wrapper和总线特性 125

4.4.1 概述 125

4.4.2 内部SRAM 126

4.4.3 总线优先级 126

4.4.4 写缓冲区操作 127

4.4.5 特殊寄存器 127

4.5 DMA控制器 129

4.5.1 概述 129

4.5.2 DMA寄存器 130

4.6 I/O端口 135

4.6.1 概述 135

4.6.2 端口控制寄存器 138

4.7.1 概述 140

4.7 PWM定时器和看门狗定时器 140

4.7.2 PWM定时器操作 141

4.7.3 PWM定时器控制寄存器 146

4.7.4 看门狗定时器 148

4.8 日历时钟 150

4.8.1 概述 150

4.8.2 RTC时钟单元 150

4.8.3 实时时钟寄存器定义 152

4.9.2 中断控制器 154

4.9 中断管理 154

4.9.1 概述 154

4.9.3 中断控制寄存器 157

4.10 串行口管理 159

4.10.1 概述 159

4.10.2 UART操作 160

4.10.3 中断/DMA请求产生器 162

4.10.4 UART错误状态FIFO 162

4.10.6 回送模式 163

4.10.7 红外通信模式 163

4.10.5 波特率发生器 163

4.10.8 UART寄存器 165

4.11 LCD控制器 169

4.11.1 LCD工作原理 169

4.11.2 S3C44B0X的内部LCD控制器介绍 170

4.11.3 LCD控制器的操作 171

4.11.4 LCD控制器专用寄存器 173

4.12.1 IIS总线概述 178

4.12 IIS总线接口 178

4.12.2 传输方式 179

4.12.3 声音串口格式 179

4.12.4 采样频率和主时钟 180

4.12.5 IIS操作 181

4.12.6 IIS总线接口寄存器 181

4.13 其他接口管理 184

4.13.1 S3C44B0X的IIC总线接口 184

4.13.2 A/D转换器 190

4.13.3 SIO(同步I/O) 192

小结 195

习题 196

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

5.1 MICETEK EV44B0II开发板简介 197

5.1.1 存储地址空间分配 197

5.1.2 I/O口配置 200

5.1.3 电源、时钟及复位电路 201

5.1.4 MBL(Micetek Boot Loader)介绍 202

5.2.1 BOOT FLASH电路及编程 203

5.2 存储器电路设计及编程 203

5.2.2 SDRAM电路设计及编程 206

5.3 网络、USB和IIS电路设计及编程 206

5.3.1 网络接口 206

5.3.2 USB电路 207

5.3.3 IIS电路设计及编程 207

5.4 人机接口电路设计及编程 210

5.4.1 键盘电路设计及编程 210

5.4.2 LCD接口电路设计及编程 212

5.4.3 触摸屏电路设计及编程 215

5.4.4 8段数码管电路设计及编程 219

5.5 串行接口电路设计及编程 220

5.5.1 串行电路接口 220

5.5.2 编程 220

5.6 IIC接口电路设计及编程 222

5.6.1 EEPROM芯片介绍 222

5.6.2 EEPROM读/写操作 223

5.6.3 初始化 225

5.7.1 定时器编程 228

5.7 其他接口电路设计及编程 228

5.7.2 实时日历时钟RTC 230

5.7.3 A/D转换器电路设计及编程 231

小结 232

习题 232

第6章 嵌入式Linux开发 233

6.1 嵌入式Linux概况 233

6.1.1 嵌入式Linux 234

6.1.2 嵌入式Linux的组成 236

6.1.3 嵌入式Linux的版本 237

6.2 μCLinux开发介绍 238

6.2.1 启动模块 238

6.2.2 内核初始化 239

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

6.2.4 驱动程序 239

6.2.5 文件系统 239

6.2.6 内存管理 239

6.2.7 进程管理 240

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

6.3 μCLinux启动过程 243

6.4 开发工具介绍 246

6.4.1 安装 247

6.4.2 开发环境的建立 248

6.4.3 调试方法 248

6.5 内核的配置和编译 253

6.5.1 配置内核 253

6.5.2 编译内核 255

6.6.2 几个调试窗口 256

6.6.1 下载μCLinux内核 256

6.6 内核的调试 256

小结 260

习题 260

第7章 进程/线程管理 261

7.1 进程概念及组成 261

7.1.1 进程概念 261

7.2 进程调度 262

7.2.1 信号 262

7.1.2 进程的组成 262

7.2.2 进程状态 265

7.2.3 进程调度 266

7.3 进程运行和控制 267

7.4 进程通信与同步 269

7.4.1 进程通信 269

7.4.2 进程同步 270

7.5 线程概念及分类 271

7.5.1 线程特点 271

7.5.3 线程的分类 272

7.5.2 线程的基本概念 272

7.6.1 线程的基本操作函数 273

7.6 线程基础 273

7.6.2 简单的多线程编程 274

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

7.7.1 特定线程数据 275

7.7.2 互斥锁 275

7.7.3 读写锁 277

7.7.4 记录上锁 277

小结 278

习题 278

7.7.5 条件变量 278

7.7.6 信号量 278

第8章 存储管理 279

8.1 FLAT平模式内存管理 279

8.1.1 3种内存管理模型 280

8.1.2 标准Linux的内存管理 280

8.1.3 μCLinux的内存管理 281

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

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

8.2.1 setup_arch() 283

8.2.2 paging_init() 284

8.2.3 free_area_init() 284

8.2.4 mem_init() 284

8.3 可执行程序的加载 284

8.3.1 用户程序的内存分布 285

8.3.2 reloc段机制 285

8.3.3 FLAT可执行文件格式 286

8.3.4 执行文件加载流程 288

小结 291

习题 291

第9章 文件系统 293

9.1 文件系统结构 293

9.2 文件系统类型 295

9.2.1 ROMFS文件系统 295

9.2.2 RAMFS文件系统 297

9.2.3 JFFS与JFFS2文件系统 298

9.2.4 EXT2文件系统 300

9.3.1 ROMFS文件系统目录结构 301

9.3 文件系统目录结构 301

9.3.2 μCLinux源程序结构 304

9.4 简单编程实例 307

小结 310

习题 310

10.1 设备管理结构 311

10.1.1 概述 311

第10章 设备管理 311

10.1.2 字符设备与块设备 312

10.1.3 主设备号和次设备号 312

10.1.4 Linux设备命名习惯 312

10.2 驱动程序 313

10.2.1 驱动程序基本功能 313

10.2.2 驱动程序的运作过程 313

10.2.3 常用接口函数介绍 313

10.2.4 常用函数原型 314

10.3.2 具体实现 316

10.3.1 设备功能介绍 316

10.3 驱动程序编写实例 316

小结 320

习题 320

第11章 应用程序开发 321

11.1 串口应用程序 321

11.1.1 串口主要函数介绍 322

11.1.2 串口举例 324

11.2.1 TCP/IP网络应用 327

11.2 网络应用 327

11.2.2 Web服务器应用 337

11.3 音频设备应用 341

11.3.1 常用音频文件格式 341

11.3.2 播放WAV文件举例 347

11.4 键盘及LCD显示应用 352

11.4.1 LCD介绍 352

11.4.2 键盘实现 355

11.5 汉字音乐点播应用 356

习题 366

小结 366

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

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

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

12.2.1 Linux移植准备 367

12.2.2 关于交叉编译环境 368

12.2.3 修改μCLinux内核源码 370

12.2.4 Linux内核裁减 372

12.3.1 配置minicom 381

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

12.2.5 内核的编译 381

12.3.2 烧写内核 382

12.3.3 烧写根文件系统 383

小结 383

习题 384

附录 385

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

附录B 部分Linux命令 391

附录C LinuxViewTM软件简介 394

参考文献 401