图书目录

目    录 

 

— 第一部分 –

常用的Linux开发工具

第1章  ARM技术概述 3

1.1  ARM处理器简介 3

1.1.1  ARM体系结构的发展 3

1.1.2  ARM体系结构的存储器格式 8

1.2  ARM技术应用领域的现状及发展趋势 9

1.3  习题 11

第2章  Linux开发基础 13

2.1  vi文本编辑器 13

2.1.1  vi的模式 13

2.1.2  vi的基本流程 14

2.1.3  vi各模式的功能键 15

2.2  GCC 编译器 16

2.3  GNU Make 17

2.3.1  基本结构 18

2.3.2  Makefile的规则 21

2.3.3  Makefile管理器的使用 22

2.3.4  Makefile管理器的实验 23

2.4  Linux常用命令 24

2.5  习题 31

第3章  shell编程 33

3.1  Linux常用的shell 33

3.2  shell 编程实例 34

3.2.1  实例程序 34

3.2.2  变量和运算符 35

3.2.3  表达式求值 40

3.2.4  脚本执行命令和控制语句 41

3.2.5  条件测试 45

3.3  循环结构 52

3.4  读取用户输入 57

3.5  脚本执行命令 58

3.6  创建命令表 60

3.7  其他shell编程工具 61

3.8  安全的delete命令 66

3.9  shell定制 67

3.9.1  修改环境变量 67

3.9.2  设置别名 69

3.9.3  个性化设置:修改.bashrc 文件 70

3.10  总结 71

3.11  习题 71

第4章  Exynos4412资源 73

4.1  Exynos4412基本功能 74

4.2  Exynos4412处理器引脚 74

4.3  Exynos4412软件资源 81

4.4  Exynos4412存储器结构 81

4.5  Exynos4412开发板资源 82

4.6  习题 83

— 第二部分 –

ARM Cortex-A9芯片Exynos4412的硬件及软件编程

第5章  Exynos4412的I/O端口和端口操作 87

5.1  Exynos4412的I/O端口寄存器分类 88

5.1.1  Exynos4412的I/O端口分组 88

5.1.2  Exynos4412的I/O端口寄存器 88

5.1.3  常用的Exynos4412的I/O端口控制寄存器 89

5.1.4  Exynos 4412的I/O端口数据寄存器 90

5.1.5  Exynos 4412的I/O端口编程 91

5.2  习题 92

第6章  Exynos4412的中断系统 93

6.1  中断程序硬件电路设计 94

6.2  中断控制寄存器设置 97

6.3  中断程序设计 100

6.4  习题 102

第7章  Exynos4412串口UART 103

7.1  Exynos4412串口UART概述 104

7.1.1  设置I/O引脚复用功能 104

7.1.2  设置UART数据帧格式 104

7.2  Exynos4412 UART实验电路 107

7.3  Exynos4412 UART实验程序 107

7.4  习题 109

第8章  Exynos4412的A/D转换控制 111

8.1  Exynos4412的A/D转换控制概述 112

8.1.1  A/D转换控制寄存器(ADCCON) 112

8.1.2  A/D转换控制程序的编写步骤 113

8.2  参考程序 113

8.3  习题 116

第9章  DMAC驱动控制 117

9.1  DMA工作过程 118

9.2  DMA传送的方式 118

9.3  PL330指令集 119

9.4  DMA编程 121

9.4.1  DMA驱动程序的编写 121

9.4.2  DMA驱动程序 122

9.5  习题 127

第10章  Exynos4412的PWM控制 129

10.1  PWM定时器概述 129

10.1.1  什么是脉宽调制 129

10.1.2  Exynos4412的PWM及其控制 130

10.1.3  Exynos4412定时器的特性 131

10.1.4  定时器操作示例 132

10.1.5  死区生成器 133

10.2  PWM输出电平控制 133

10.2.1  PWM的工作原理 134

10.2.2  PWM输出控制 134

10.3  PWM定时器控制寄存器 135

10.3.1  定时器配置寄存器0 135

10.3.2  定时器配置寄存器1 135

10.3.3  减法缓冲寄存器和比较缓冲寄存器 136

10.3.4  定时器控制寄存器 136

10.3.5  减法计数器观察寄存器 137

10.4  PWM实验 138

10.5  习题 139

第11章  Exynos4412的看门狗电路控制 141

11.1  看门狗电路的功能及工作原理 141

11.1.1  Exynos4412的看门狗控制 141

11.1.2  看门狗定时器的寄存器 142

11.2  参考程序 143

11.3  习题 145

第12章  Exynos4412的实时时钟 147

12.1  实时时钟在嵌入式系统中的作用 147

12.1.1  Exynos4412的实时时钟单元 147

12.1.2  Exynos4412的实时时钟寄存器 148

12.2  实验程序 149

12.3  习题 151

第13章  Exynos4412 I2C总线控制 153

13.1  I2C总线的工作原理 153

13.2  Exynos4412 I2C接口简介 156

13.3  Exynos4412 I2C控制寄存器 157

13.4  使用Exynos4412 I2C总线进行读/写的方法 158

13.5  I2C实验程序 159

13.6  习题 162

第14章  串行外设接口(SPI)介绍 163

14.1  SPI及操作 163

14.1.1  SPI的原理 163

14.1.2  SPI的特性 165

14.2  SPI寄存器 165

14.2.1  SPI状态寄存器 165

14.2.2  SPI时钟分频寄存器 166

14.2.3  SPI传输配置寄存器 167

14.2.4  SPI发送数据寄存器 167

14.2.5  SPI接收数据寄存器 167

14.2.6  SPI操作 168

14.2.7  SPI的传输格式 168

14.2.8  SPI通信模式 169

14.3  MCP2515芯片介绍 170

14.4  硬件实验电路 170

14.5  SPI2实验程序 171

14.6  习题 172

第15章  ADC驱动程序开发 173

15.1  硬件原理 173

15.2  ADC驱动程序 174

15.3  ADC make文件 178

15.4  ADC测试程序 179

15.5  习题 180

第16章  LED驱动程序设计 181

16.1  Linux设备分类 181

16.2  Linux设备驱动程序结构 182

16.3  Linux LED驱动程序 183

16.4  Linux LED驱动程序有关函数 183

16.5  Linux LED驱动程序设计 184

16.5.1  LED驱动电路 185

16.5.2  LED驱动程序 185

16.5.3  LED驱动程序测试 193

16.6  习题 194

第17章  PWM驱动程序开发设计 195

17.1  硬件连接 195

17.2  驱动程序源代码和头文件 196

17.3  PWM测试 205

17.4  习题 206

第18章  多线程程序设计 207

18.1  任务、进程和线程 207

18.1.1  任务 207

18.1.2  多线程编程常用函数 208

18.1.3 多线程编程实例 210

18.2  Linux进程间通信 215

18.2.1  进程间通信方法概述 215

18.2.2  进程间相关函数介绍 216

18.2.3  进程间通信编程实例 219

18.3  Linux进程管理 226

18.4  习题 227

第19章  Linux网络程序设计 229

19.1  TCP/IP的分层模型 230

19.2  UDP (用户数据报协议) 231

19.3  套接字(socket)概述 232

19.3.1  套接字定义 232

19.3.2  套接字类型 232

19.3.3  地址及顺序处理 232

19.4 套接字(socket)编程 237

19.5  Linux系统UDP网络协议编程 241

19.5.1 Ubuntu系统运行UDP网络协议程序 241

19.5.2  Ubuntu系统运行UDP网络协议代码 242

19.6  习题 244

— 第三部分 –

嵌入式开发的方法

第20章  嵌入式Linux程序开发 247

20.1 嵌入式Linux开发环境的搭建 247

20.1.1  嵌入式Linux系统

BootLoader(Uboot)移植 248

20.1.2 嵌入式Linux系统内核移植 252

20.1.3 嵌入式Linux系统文件系统移植 254

20.2  Linux系统配置TFTP 258

20.3  Linux系统配置NFS 259

20.4  习题 260

第21章  嵌入式Linux编译环境 261

21.1  配置开发环境网络 261

21.2  配置交叉工具链 262

21.2.1 将共享目录中需要下载的文件复制到 tftp目录中 264

21.2.2 解压文件系统 264

21.3  习题 265

第22章  嵌入式Linux联机试验 267

22.1  嵌入式Linux系统与开发板硬件连接 268

22.2  设置串口调试工具 268

22.3  修改开发板环境变量 270

22.4  烧写Uboot 271

22.5  习题 272

第23章  Exynos4412的启动 273

23.1  eMMC方式启动 273

23.2  Exynos4412 SD 卡的启动和制作 275

23.3  Exynos4412 NFS挂载方式启动 279

23.4  习题 282

第24章  嵌入式Linux程序的运行 283

24.1  复制代码、建立相关目录 283

24.2 编译代码 284

24.3  执行代码 284

24.4  习题 286

参考文献 287