第1章Linux及嵌入式开发系统组成简介 1
1.1 Linux起源及发展 1
1.1.1 UNIX和GNU软件 1
1.1.2 Linux的发展 2
1.2内核、shell、文件系统及实用程序 3
1.2.1 Linux内核 3
1.2.2 shell简介 3
1.2.3文件系统 7
1.2.4实用程序 7
1.3选择Linux的理由 8
1.3.1 Linux是成熟的、广泛使用的操作系统 8
1.3.2开源软件带来的优点 8
1.3.3免费软件带来的优点 8
1.3.4 Linux得到了众多软、硬件厂商的支持 9
1.3.5使用Linux的不足之处 9
1.4 Linux环境嵌入式开发系统组成简介 9
1.4.1 Linux环境嵌入式开发系统组成 9
1.4.2主机(Host) 9
1.4.3目标板(T arget) 10
1.4.4主机与目标板的连接 10
1.4.5主机中运行的程序 10
1.4.6目标板中运行的程序 11
1.4.7开发系统附带的光盘文档 12
1.5主机安装的Linux发行版 12
1.5.1常用的Linux发行版 13
1.5.2 Linux发行版在主机的安装方式 13
1.6本章小结 15
1.7习题、操作与实验 15
第2章 主机及目标板的运行 16
2.1终端基础知识 16
2.1.1 tty 16
2.1.2早期的终端及终端与主机的连接 16
2.1.3 X-Window、GNOME及KDE简介 17
2.2主机系统引导、登录及退出Linux 19
2.2.1系统引导 19
2.2.2登录Linux 19
2.2.3 Linux的终端 20
2.2.4查看及修改用户使用的shell 23
2.2.5通过退出与shell的会话退出Linux 25
2.2.6关闭运行的Linux系统 25
2.2.7使用帮助命令help和man 26
2.3目标板初次运行 28
2.3.1目标板连接的电源、端口及安装的操作系统 28
2.3.2目标板引导过程简述 29
2.3.3主机Windows下的超级终端 31
2.3.4主机Linux下的 minicom仿真终端 33
2.3.5装载引导程序支持的命令简介 36
2.3.6目标板Linux登录、退出讨论 38
2.3.7目标板Linux基础 39
2.4本章小结 42
2.5习题、操作与实验 42
第3章 主机开发环境配置 44
3.1交叉开发平台基础 44
3.1.1本地开发及交叉开发 44
3.1.2 GNU跨平台工具链组成 45
3.1.3如何获取工具链 45
3.1.4工具链的组件及GDB简介 46
3.2交叉工具链安装举例 47
3.2.1交叉工具链及实验例程安装位置 47
3.2.2对查找工具链的路径变量进行修改 48
3.3主机Linux环境网络配置举例 48
3.3.1主机Linux环境IP地址设置 48
3.3.2主机Linux环境网络防火墙设置 52
3.3.3主机与目标板网络通信测试 52
3.3.4主机Linux环境NFS设置 54
3.4输入、编译、运行一个程序全过程举例 57
3.5本章小结 59
3.6习题、操作与实验 59
第4章 实验例程及驱动程序分析(一) 61
4.1读取、转换时间函数编程举例 61
4.1.1 Linux查看、设置时间的命令 61
4.1.2常用的读取、转换时间的函数 62
4.1.3读取、转换时间的函数编程举例 63
4.1.4例4.1对应的Makefile文件 65
4.2多线程编程举例 65
4.2.1 Linux线程概述 65
4.2.2线程、互斥量、条件变量函数 66
4.2.3生产者、消费者编程举例 68
4.3串行端口及标准输入/输出/错误编程举例 73
4.3.1串行通信基础 73
4.3.2 Linux标准输入/输出/错误系统调用编程举例 77
4.3.3 Linux串行端口编程举例 80
4.3.4 C语言标准输入/输出/错误函数编程举例 83
4.4 ADC应用程序编程举例 85
4.4.1 ADC编程基础 85
4.4.2 ADC应用程序编程举例 87
4.5 ADC驱动程序源代码分析 91
4.5.1概述 91
4.5.2 Linux设备驱动程序概述 92
4.5.3 s3c2410-adc.h头文件源代码分析 96
4.5.4 s3c2410.h-chip.H头文件源代码分析 96
4.5.5 s3c2410-adc.c设备驱动程序源代码分析 98
4.6本章小结 104
4.7习题、操作、编程与实验 105
第5章Linux环境下目标板出厂软件烧写实验 107
5.1目标板出厂软件烧写概述 107
5.1.1目标板出厂软件 107
5.1.2 Linux环境要烧写的文件 107
5.1.3什么情况下烧写目标板出厂软件 108
5.1.4烧写环境 108
5.2目标板出厂软件烧写实验(一) 108
5.2.1主机Windows下安装JTAG驱动程序 109
5.2.2通过JTAG端口传送并烧写装载引导程序vivi 109
5.2.3通过串口传送并烧写内核zImage 110
5.2.4通过串口传送并烧写根文件系统root.cramfs 112
5.2.5通过网口传送并烧写应用程序yaffs.tar.bz2 112
5.2.6格式化闪存以及通过串口传送并烧写vivi 116
5.3目标板出厂软件烧写实验(二) 117
5.3.1通过网口传送并烧写内核zImage 117
5.3.2通过网口传送并烧写根文件系统root.cramfs 120
5.4目标板出厂软件烧写实验(三) 121
5.4.1通过JTAG端口传送并烧写装载引导程序u-boot 121
5.4.2通过网口传送并烧写内核uImage 123
5.4.3通过网口传送并烧写根文件系统root.cramfs 125
5.4.4通过网口传送并烧写应用程序yaffs.tar.bz2 126
5.5 u-boot装载引导程序支持的命令 126
5.5.1 u-boot支持的命令集 126
5.5.2查询u-boot命令的参数含义 128
5.6本章小结 128
5.7习题、操作与实验 129
第6章 实验例程及驱动程序分析(二) 131
6.1 DAC应用程序编程举例及驱动程序分析 131
6.1.1 DAC硬件基础 131
6.1.2 DAC应用程序编程举例 133
6.1.3 DAC驱动程序主要代码分析 135
6.2 PWM直流电机应用程序编程举例及驱动程序分析 138
6.2.1 PWM定时器基础 138
6.2.2 PWM直流电机 143
6.2.3编译、加载驱动程序模块 145
6.2.4 PWM直流电机应用程序编程举例 146
6.2.5 PWM直流电机驱动程序主要代码分析 148
6.3 LED应用程序编程举例及驱动程序分析 149
6.3.1七段LED概述 149
6.3.2 8×8点阵LED显示概述 152
6.3.3 CPLD与七段LED、8×8点阵LED连接举例 154
6.3.4七段LED、8×8点阵LED应用程序编程举例 156
6.3.5 LED驱动程序主要代码分析 158
6.4本章小结 160
6.5习题、操作、实验及编程 161
附录A英汉名词术语对照汇总表 162
参考文献 166