第一篇 ARM硬件 2
第1章 概述 2
1.1嵌入式系统、单片机、ARM及Linux 2
1.2ARM处理器的选择 3
1.3AM335x简介和公版资源 4
1.4AM335x官方开发资源 7
1.4.1硬件开发板 7
1.4.2软件开发包 9
1.5ARM开发工具及调试方法 12
1.5.1集成开发环境 12
1.5.2硬件仿真器 12
1.5.3前后台系统的调试方法 18
1.5.4嵌入式Linux的开发调试方法 19
1.6“实践再实践”在ARM学习中的意义 20
第2章 AM335x Starter Kit实验平台硬件分析 22
2.1AM335x Starter Kit实验平台概述及功能组成 22
2.2地址空间分配 25
2.2.1AM335x处理器内存映射 25
2.2.2AM335x Starter Kit平台地址空间分配 31
2.3常用元件概述 34
2.3.1电阻标称值 34
2.3.2肖特基二极管 36
2.3.3功率电感 37
2.3.4铁氧体磁珠 37
2.3.5自恢复保险丝PPTC 38
2.3.6有源和无源蜂鸣器 38
2.4AM335x Starter Kit(TMDSSK3358)原理图分析 39
2.4.1MPU AM3358 39
2.4.2时钟电路 48
2.4.3上电引导模式配置 49
2.4.4JTAG接口电路 50
2.4.5μSD卡接口 50
2.4.6DDR3 SDRAM存储器 51
2.4.7调试串口 53
2.4.8以太网接口 55
2.4.9按键 GPIO 57
2.4.10LED显示 58
2.4.11IIC总线的EEROM存储器 58
2.4.12复位电路 59
2.4.13按键中断输入 60
2.4.14电源输入及PMIC电源管理芯片 60
2.4.15Wi-Fi和蓝牙模块 64
2.4.16USB Host/Device 64
2.4.17IIS音频电路 64
2.4.18LCD显示 69
第3章 AM335x Starter Kit入门 72
3.1AM335x Starter Kit快速入门指南 72
3.2硬件调试概述 76
3.3XDS100v2仿真器和CCS软件的使用 78
3.3.1集成开发环境CCS的下载与安装 78
3.3.2仿真器与目标板的硬件安装 82
3.3.3XDS100v2 USB仿真器在CCSv6集成开发环境中的配置 83
第二篇 ARM前后台系统 92
第4章 无操作系统平台下的应用库——StarterWare 92
4.1StarterWare下载安装 92
4.2StarterWare快速入门指南 94
4.2.1StarterWare概述 94
4.2.2在AM335x Starter Kit开发板上运行StarterWare应用 96
4.2.3Windows下开发环境的搭建 98
4.3AM335x内存映射和启动过程 105
4.3.1AM335x处理器内存映射 105
4.3.2AM335x处理器启动过程 106
第5章 启动代码分析 109
5.1启动代码和Bootloader的区别 110
5.2汇编基础 110
5.2.1伪操作 110
5.2.2CCS支持的伪操作 115
5.2.3汇编指令及伪指令 118
5.2.4ARM程序状态寄存器和段 122
5.3启动代码bl_init.asm及功能模块分解 123
5.3.1全局变量、内部符号等的定义 123
5.3.2程序入口及各种模式的堆栈初始化 124
5.3.3BBS段初始化 125
5.3.4进入C语言程序 126
5.3.5bl_init.asm汇编结束 126
5.3.6bl_init.asm总结 126
第6章 Boot源代码分析 128
6.1Boot源代码目录结构 128
6.2启动代码bl_init.asm分析 128
6.3bl_main.c主函数分析 129
6.4bl_platform.c平台配置及硬件初始化分析 130
6.5bl_copy.c映像复制分析 132
6.6跳转到app运行 135
第7章 LCD例程源代码分析 136
7.1LCD例程源代码目录结构 136
7.2rasterDisplay.c文件分析 137
7.2.1内存管理和高速缓存的配置 137
7.2.2中断相关的配置分析 137
7.2.3LCD背光设置 145
7.2.4LCD显示模块配置 151
7.2.5LCD控制器Raster及中断使能 154
7.3LCD显示修改实验 156
7.3.1demo工程中关于LCD显示代码的对比分析 156
7.3.2LCD显示实验调试曾出现的问题及解决方法 161
第8章 触摸屏例程源代码分析 171
8.1触摸屏例程源代码目录结构 171
8.2tscCalibrate.c文件分析 172
8.2.1内存管理和高速缓存的配置 172
8.2.2中断使能和注册 172
8.2.3调试串口初始化设置 173
8.2.4定时器初始化 173
8.2.5触摸屏函数分析 173
第9章 StarterWare对BeagleBone Black的支持 177
9.1补丁包Start erWare_BBB_support.gz 177
9.2demo在BeagleBone Black上死机现象的分析及追踪 178
9.3StarterWare在BeagleBone Black上死机现象的解决 182
第10章 基于前后台系统的应用 184
10.1前后台系统概述 184
10.2Bootloader的设计 185
10.3简易文件系统设计 185
10.3.1文件系统结构 186
10.3.2文件系统功能函数 187
10.3.3文件系统的测试 196
10.4简易图形用户界面(GUI)的设计 199
10.4.1字符和汉字的显示 199
10.4.2基本图形和控件的绘制 205
10.4.3触摸屏事件处理 217
第三篇 基于Linux系统的应用 222
第11章 基于PC的Linux学习 222
11.1RedHat Linux系统下的常用操作 222
11.1.1RedHat Linux 9下的常用操作问答 222
11.1.2超级终端Minicom的使用 225
11.1.3NFS的使用 226
11.2Ubuntu系统的安装与常用操作 227
11.2.1Ubuntu 14.04的安装 227
11.2.2Ubuntu 14.04的基本设置和常用操作 228
11.2.3Ubuntu常用命令 232
11.2.4Ubuntu Linux与Windows系统下的文件共享 234
11.2.5Ubuntu Linux与Linux系统下的文件共享 236
11.2.6超级终端Minicom的使用 236
11.3Linux下的应用编程 237
11.3.1进程间隔定时器 238
11.3.2关于进程的体会 241
11.4Linux下的驱动程序设计 244
11.4.1模块编程实验 244
11.4.2简单的字符设备驱动实验 245
第12章 嵌入式Linux开发环境 249
12.1概述 249
12.1.1Linux开发环境概述 249
12.1.2TI官方AM335x Linux SDK资源及参考文档 249
12.1.3PROCESSOR-SDK-LINUX-AM335x概述 250
12.2PC宿主机环境的创建 250
12.2.1安装基本的软件开发工具 250
12.2.2下载安装Sitara Linux SDK for AM335x 251
12.2.3Sitara Linux SDK for AM335x目录结构和软件架构 259
12.2.4Sitara Linux SDK for AM335x环境配置 261
12.2.5交叉编译工具链的安装与配置 266
12.3嵌入式Linux系统的配置和编译 269
12.3.1SDK根目录下编译U-boot和Linux内核 269
12.3.2Bootloader的配置和编译 269
12.3.3Linux内核的配置和编译 274
12.3.4文件系统 276
12.4目标板Linux系统的创建 277
12.4.1Windows系统下AM335x Linux SDK SD卡的创建 277
12.4.2Ubuntu系统下AM335x Linux SDK SD卡的创建 287
12.5嵌入式Linux平台测试 296
12.5.1串口调试终端Minicom和以太网测试 296
12.5.2TFTP网络文件下载 300
12.5.3Hello测试程序 302
第13章 嵌入式Linux驱动开发 304
13.1设备树 304
13.1.1Linux内核对硬件的描述 304
13.1.2设备树概述 305
13.1.3AM335x Starter Kit设备树分析 307
13.2LED显示驱动 322
13.2.1AM335x的LED控制 322
13.2.2Linux内核中的leds子系统概述 322
13.2.3leds子系统驱动代码分析 323
13.2.4leds驱动与DTS中的联系 340
13.2.5leds驱动的测试 341
13.3按键输入驱动 344
13.3.1AM335x的按键测试 344
13.3.2Linux内核中的input子系统概述 345
13.3.3输入子系统中按键驱动代码分析 346
13.3.4按键驱动与DTS中的联系 352
13.3.5按键驱动的测试 353
13.4PWM的LCD背光调节驱动 355
13.4.1AM335x的背光调节测试 355
13.4.2Linux内核中的Backlight背光子系统概述 356
13.4.3Backlight背光子系统驱动代码分析 356
13.4.4背光驱动与DTS的联系 362
13.4.5背光驱动的测试 363
13.5LCD显示驱动及配置 365
13.5.1LCD DTS配置 365
13.5.2LCD测试程序 368
13.6ADC及触摸屏驱动 368
13.6.1AM335x的触摸屏测试 369
13.6.2触摸屏驱动代码分析 371
13.6.3触摸屏驱动与DTS的联系 379
13.6.4触摸屏驱动的测试 380
第14章 网络编程 383
14.1常用函数 383
14.2服务器实例 394
14.3客户端测试 399
14.4利用I/O复用替代多进程的并发服务器 401
参考文献 405