当前位置:首页 > 工业技术
ARM处理器裸机开发实战  机制而非策略
ARM处理器裸机开发实战  机制而非策略

ARM处理器裸机开发实战 机制而非策略PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:王小强主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2012
  • ISBN:9787121153037
  • 页数:370 页
图书介绍:本书面向立志于进行ARM嵌入式开发的初学者以及从单片机向ARM处理器转型的工程师,按照理论实践相结合的思想,介绍了ARM嵌入式开发过程中的基础理论,并给出了具体的实例。全书共分为4篇,包括ARM汇编语言、ARM C语言、ARM处理器各功能模块开发等内容。本书针对ARM处理器裸机开发过程中的重点、难点问题,既有基础知识的讲述,又有相关配套实验,使读者能容易、快速、全面地掌握ARM处理器裸机开发。
《ARM处理器裸机开发实战 机制而非策略》目录

第1篇 基础篇 2

第1章 ARM处理器简介 2

1.1处理器工作模式 2

1.2寄存器介绍 3

1.2.1堆栈指针寄存器R13和链接寄存器R14 4

1.2.2程序计数器R15 4

1.2.3程序状态寄存器 4

1.3工作状态 5

1.4数据长度 5

1.5存储系统 5

1.5.1 ARM地址空间 6

1.5.2 ARM存储器的格式 6

1.6天嵌TQ2440开发板硬件资源概述 7

1.7本章小结 9

1.8扩展阅读之CISC处理器和RISC处理器简介 9

第2章 ADS集成开发环境及程序下载具体流程 11

2.1 ADS 1.2集成开发环境简介 11

2.1.1 CodeWarrior for ARM开发环境 12

2.1.2 AXD调试器的启动 13

2.2工程的编辑与修改 13

2.2.1建立一个新工程 14

2.2.2建立一个源文件 14

2.2.3添加源文件到工程 15

2.2.4编译与链接工程 16

2.2.5打开已有的工程 16

2.3工程的调试 16

2.3.1装载映像文件 16

2.3.2调试工具条的使用 17

2.4 H-JTAG的安装与调试 18

2.4.1 H-JTAG的安装 18

2.4.2 H-JTAG的设置 18

2.5使用U-Boot下载裸机程序 21

2.6本章小结 23

第3章 ARM指令集及汇编语言基础 24

3.1 ARM指令集介绍 24

3.1.1 ARM指令集 24

3.1.2 ARM寻址方式 30

3.1.3 ARM伪操作和伪指令介绍 33

3.2 ARM汇编基础知识 40

3.3 ARM汇编程序的基本结构 41

3.3.1编写汇编程序基本的格式规范 42

3.3.2程序入口和程序结束 43

3.3.3段 43

3.3.4标号(标志符) 44

3.3.5外部标号 48

3.3.6文件包含 48

3.4用AXD调试ARM汇编程序实验 48

3.4.1建立工程并添加源文件 48

3.4.2工程的设置 50

3.4.3编译源文件 51

3.4.4启动AXD调试器 51

3.4.5手把手调试汇编程序 54

3.5常用汇编语言程序子模块实例分析 57

3.5.1特殊功能寄存器的访问 57

3.5.2内存数据复制 58

3.5.3批量加载与存储 58

3.5.4堆栈操作 59

3.5.5实现查表功能 61

3.6本章小结 61

3.7扩展阅读之内存和I/O地址、前序寻址和后序寻址 61

第4章 ARM C语言基础 63

4.1数据类型基础 63

4.1.1用typedef和#define定义类型 63

4.1.2用signed和unsigned修饰数据类型 64

4.1.3 volatile和强制类型转换 64

4.2深入理解位运算符和位运算 65

4.2.1按位与运算符(&) 65

4.2.2按位或运算符(|) 66

4.2.3按位取反运算符(~) 66

4.2.4左移和右移运算符(<<)、(>>) 66

4.2.5位运算应用实例分析 66

4.3控制结构 67

4.3.1选择结构 67

4.3.2循环结构 67

4.4防止文件重复包含技巧 68

4.5 ARM编译器对C语言的扩展 68

4.5.1 _irq声明中断处理函数 68

4.5.2 _swi声明软中断 69

4.5.3 _asm内嵌汇编 69

4.5.4 _inline定义内联函数 69

4.6本章小结 71

4.7扩展阅读之高速缓存基础知识 71

第5章 ARM汇编语言和C语言混合编程基础 74

5.1一个混合编程实例的实现 74

5.2 APCS规则概述 77

5.2.1寄存器的使用 77

5.2.2参数传递 77

5.2.3函数的返回值 77

5.3本章小结 77

第6章 GPIO编程实验 79

6.1 GPIO概述 79

6.1.1 GPIO引脚介绍 79

6.1.2 GPIO特性分析 79

6.1.3 GPIO相关寄存器 80

6.1.4 GPIO应用实例 81

6.2基础实验:第一个裸机程序——流水灯 82

6.2.1硬件电路分析 82

6.2.2建立工程并添加启动代码 83

6.2.3添加源文件 84

6.2.4编辑源文件 85

6.2.5工程设置、编译、链接 86

6.2.6下载程序到开发板运行 89

6.2.7由点亮LED引发的思考 93

6.2.8再议点亮LED实验 95

6.2.9将点亮一个LED扩展到流水灯 97

6.3 GPIO扩展实验 99

6.3.1按键实验 99

6.3.2蜂鸣器实验 104

6.4本章小结 105

6.5扩展阅读之模块化编程、NAND FLASH和NOR FLASH概述 106

第2篇 提高篇 110

第7章 启动代码分析 110

7.1从开发板硬件讲起 110

7.1.1 TQ2440核心板芯片功能介绍 110

7.1.2从NAND FLASH和NOR FLASH启动流程分析 112

7.2启动代码详解 113

7.3启动代码主要功能模块分析 134

7.3.1建立中断向量表 134

7.3.2初始化各个模式的堆栈 136

7.3.3初始化系统硬件 137

7.3.4初始化应用程序的执行环境并跳转到主程序执行 137

7.3.5跳转到C语言主程序执行 139

7.4本章小结 140

7.5本章附录——完整版启动代码 140

第8章 系统时钟和定时器 147

8.1 S3C2440时钟系统概述 147

8.1.1系统时钟初始化 148

8.1.2 FCLK、HCLK和PCLK与Fin的关系 149

8.2定时器原理与应用 151

8.2.1定时器原理 151

8.2.2定时器相关的寄存器 153

8.2.3定时器基础实验代码详解及测试 155

8.2.4定时器扩展实验之PWM实验 157

8.3本章小结 159

第9章 存储器控制器 160

9.1 S3C2440地址空间 160

9.2操作实例:SDRAM实例分析 162

9.2.1 SDRAM工作原理 162

9.2.2 SDRAM接口电路设计 163

9.2.3 SDRAM初始化过程详解 164

9.2.4回顾启动代码中的SDRAM初始化 166

9.3本章小结 167

第10章 通用异步收发器(UART) 168

10.1 UART概述 168

10.2 S3C2440处理器UART工作原理 169

10.3引脚描述及相关寄存器 170

10.4 UART基础实验 173

10.4.1硬件电路分析 173

10.4.2程序设计及代码详解 174

10.4.3实例测试 175

10.4.4 UART基础实验分析 176

10.5 UART高级实验——可变参数函数在UART中的应用 178

10.5.1程序设计及代码详解 178

10.5.2实例测试 181

106本章小结 181

第11章 中断控制系统 182

11.1 S3C2440中断系统概述 182

11.1.1深入理解CPU的工作模式 183

11.1.2中断控制器 184

11.2外部中断实验 189

11.2.1硬件电路分析 189

11.2.2程序分析 189

11.2.3中断执行流程详解 201

11.2.4中断处理流程引发的思考 206

11.2.5实例测试 210

11.2.6为什么进入不了中断 212

11.3定时器中断实验 216

11.3.1程序代码分析 217

11.3.2实例测试 220

11.4串口中断原理及实验 220

11.4.1如何正确使用中断 221

11.4.2程序代码分析 224

11.4.3实例测试 228

11.5 ARM中断之高级应用:软中断原理及实验 228

11.5.1程序代码分析 228

11.5.2实例测试 233

11.5.3软中断所用到的启动代码 234

11.6本章小结 240

第12章 NAND FLASH原理与实验 241

12.1 FLASH概述 241

12.1.1 NAND FLASH的基本结构 242

12.1.2 NAND FLASH接口电路 243

12.1.3如何访问NAND FLASH 245

12.1.4 S3C2440 NAND FLASH控制器 246

12.1.5使用宏代替简单的函数 249

12.2 NAND FLASH基础实验 251

12.2.1 NAND FLASH基本操作函数分析 251

12.2.2 NAND FLASH基础实验之页读写 259

12.2.3页读写实例测试 265

12.2.4 NAND FLASH基础实验之读ID 268

12.2.5读ID实例测试 271

12.3 NAND FLASH高级实验 272

12.3.1随机读、写实验代码详解 273

12.3.2随机读、写实例测试 276

12.4回顾启动代码中的NAND FLASH读取函数 277

12.5本章小结 280

第13章 LCD控制器原理与实验 281

13.1 LCD和LCD控制器工作原理 281

13.1.1 LCD概述 281

13.1.2 LCD接口信号 282

13.1.3 LCD显示原理 283

13.1.4 LCD操作时序详解 285

13.1.5 S3C2440 LCD控制器 287

13.1.6 LCD控制寄存器初始化 288

13.2 LCD基础实验 295

13.2.1硬件电路分析 295

13.2.2程序代码分析 296

13.2.3实例测试 299

13.3 LCD基础实验之单像素显示 299

13.3.1程序代码分析 300

13.3.2实例测试 300

13.4 LCD基础实验之图片显示 301

13.4.1如何将图片转换为C语言数组 301

13.4.2程序代码分析 304

13.4.3实例测试 307

13.5 LCD高级实验之汉字显示 307

13.5.1两种常见的汉字编码 307

13.5.2 LCD汉字显示原理 308

13.5.3程序代码分析 309

13.5.4实例测试 312

13.5.5 LCD显示高级技巧——可变参函数Lcd_Printf的实现 313

13.5.6可变参函数Lcd_Printf测试 316

13.5.7汉字区位码的思考 316

13.5.8实例测试 318

13.6本章小结 319

第14章 ADC原理与实验 320

14.1 ADC原理 320

14.1.1 ADC相关寄存器 321

14.1.2 ADC初始化 322

14.2 ADC实验 323

14.2.1 ADC实验代码详解 323

14.2.2 ADC实验测试 326

14.3本章小结 327

第3篇 典型项目分析 330

第15章 综合实战 330

15.1实战1:数据采集系统实现 330

15.1.1功能描述 330

15.1.2模块划分 330

15.1.3代码实现 331

15.1.4实例测试 339

15.1.5实验总结 339

15.2实战2:串口控制实验 339

15.2.1功能描述 339

15.2.2模块划分 340

15.2.3代码实现 340

15.2.4实例测试 347

15.2.5实验总结 347

15.3实战3:制作电子相册 347

15.3.1功能描述 347

15.3.2模块划分 347

15.3.3代码实现 347

15.3.4实例测试 354

15.3.5实验总结 354

第4篇 理论知识扩展 356

第16章 嵌入式系统电源设计和Linux内核开发基础 356

16.1直流稳压电源分类 356

16.1.1普通线性稳压器工作原理 356

16.1.2低压差线性稳压器工作原理 357

16.1.3电容式开关电源的工作原理 357

16.1.4电感式开关电源的工作原理 358

16.1.5嵌入式系统设计中的电源芯片选型 358

16.1.6设计实例分析 360

16.2 Linux内核基础实验 361

16.2.1实验一:修改调度算法实验 361

16.2.2实验二:添加内核模块实验 367

参考文献 370

返回顶部