第1章 项目实施准备 1
1.1项目总任务目标 1
1.1.1课程学习目标 1
1.1.2项目任务与学习目标及其关系 2
1.1.3项目任务总体要求 3
1.2嵌入式系统开发工作条件与流程 5
1.2.1基本工作条件与环境 5
1.2.2基本工作流程 7
1.2.3 Linux系统移植工作流程 8
1.3工作要求与准备 8
1.3.1工作要求与规范化 9
1.3.2学习工作方法 11
1.3.3工具准备 12
1.3.4利用网络和知识库 12
第2章 项目任务与要求 13
2.1 Linux下Shell应用项目任务书 13
2.1.1制作并显示目录树 13
2.1.2批量创建用户 15
2.1.3注册一个用户 17
2.1.4三个任务实施建议 19
2.2 MP3项目系统移植任务书 20
2.2.1 MP3研发项目背景 20
2.2.2 MP3需求说明书概要 21
2.2.3 MP3项目设计要点说明 22
2.2.4系统移植任务与要求 38
2.2.5项目目标 41
2.2.6项目任务实施建议 42
2.3蓝牙广告机项目系统移植任务书 43
2.3.1蓝牙广告机项目背景 43
2.3.2项目需求说明概要 44
2.3.3蓝牙广告机项目设计要点说明 44
2.3.4项目任务与要求 58
2.3.5蓝牙广告机项目目标 60
2.3.6项目任务实施建议 61
第3章 理论知识模块 63
3.1嵌入式操作系统的基本概念 63
3.1.1嵌入式操作系统及其分类 63
3.1.2操作系统的基本功能 67
3.1.3系统调用 69
3.1.4宏内核与微内核 72
3.1.5进程和线程的基本概念 74
3.1.6任务的同步与通信 75
3.1.7 Linux系统简介 76
3.1.8内容要点 79
3.1.9习题 81
3.2 Linux安装与Linux常用命令操作 82
3.2.1 Linux安装准备 82
3.2.2 Linux安装过程 85
3.2.3目录操作命令 87
3.2.4文件操作命令 89
3.2.5时间操作命令 93
3.2.6文件目录与用户管理命令 95
3.2.7内容要点 102
3.2.8习题 103
3.3 Linux的Shell 104
3.3.1 Shell及其基本操作 104
3.3.2 Shell参数与变量表达式 105
3.3.3 Shell脚本结构 109
3.3.4用Shell编写图形化界面 115
3.3.5 Shell程序实例 117
3.3.6内容要点 120
3.3.7习题 120
3.4常用开发工具 121
3.4.1编译器GCC 121
3.4.2调试器GDB 124
3.4.3管理器make 127
3.4.4 Autotools 129
3.4.5交叉编译环境搭建 130
3.4.6内容要点 138
3.4.7习题 139
3.5 Linux的进程及其同步与通信 139
3.5.1进程概述 140
3.5.2 Linux的进程状态 141
3.5.3 Linux进程的创建 144
3.5.4 Linux进程的调度 148
3.5.5管道与信号 150
3.5.6内容要点 154
3.5.7习题 155
3.6 Linux的内存管理 157
3.6.1内存管理的目标 157
3.6.2虚拟内存技术 158
3.6.3物理内存的分配与回收 163
3.6.4内核空间的内存使用 166
3.6.5内容要点 169
3.6.6习题 170
3.7 Linux的文件系统 172
3.7.1文件及文件系统 173
3.7.2目录文件及其结构 176
3.7.3虚拟文件系统VFS 177
3.7.4文件系统与进程的关联 181
3.7.5常用的文件系统 183
3.7.6网络文件系统NFS 186
3.7.7内容要点 189
3.7.8习题 189
3.8 Linux的中断与定时器 190
3.8.1中断概述 190
3.8.2中断处理机制 192
3.8.3 Linux中断基本操作 194
3.8.4 Linux内核定时器及延时 199
3.8.5内容要点 202
3.8.6习题 203
3.9 Linux设备驱动基础 204
3.9.1设备驱动程序的基本概念 204
3.9.2 Linux设备驱动分类 207
3.9.3设备文件与文件号 209
3.9.4模块的基本概念 212
3.9.5字符设备驱动程序 215
3.9.6内容要点 219
3.9.7习题 220
3.10 Linux系统源代码 221
3.10.1系统源代码概述 222
3.10.2 Linux系统源代码的构成 223
3.10.3 Linux内核的加载 226
3.10.4 Linux内核启动与初始化 230
3.10.5加载驱动和根文件系统 235
3.10.6内容要点 240
3.10.7习题 240
3.11文件系统制作 241
3.11.1根文件系统与Busybox简介 241
3.11.2使用Busybox制作根文件系统 242
3.11.3四种常用文件系统的制作 244
3.11.4 NFS文件系统的制作 246
3.11.5 cramfs文件系统的制作 249
3.11.6 yaffs文件系统的制作 250
3.11.7 ramdisk文件系统的制作 251
3.11.8内容要点 253
3.11.9习题 254
3.12 Linux系统移植 255
3.12.1 Bootloader移植 255
3.12.2内核移植 260
3.12.3应用程序移植 266
3.12.4数据库移植 270
3.12.5内容要点 273
3.12.6习题 273
3.13嵌入式驱动移植 274
3.13.1触摸屏驱动移植 275
3.13.2 Nand Flash驱动移植 279
3.13.3 USB设备驱动移植 281
3.13.4网卡驱动程序移植 285
3.13.5内容要点 288
3.13.6习题 288
第4章 Logo设计助理项目案例 291
4.1项目概述 291
4.1.1课题来源与背景 291
4.1.2研发目标与周期 292
4.1.3涉及的主要技术和方法 292
4.2项目需求说明 292
4.2.1需求概述 292
4.2.2核心功能需求 293
4.2.3界面与菜单等具体需求 293
4.3概要设计说明 294
4.3.1总体设计构架 294
4.3.2系统硬件结构与器件选型 295
4.3.3电源设计 296
4.3.4软件部分的设计 297
4.4原理图与PCB图设计说明 299
4.4.1原理图设计说明 299
4.4.2 PCB图设计说明 302
4.5样机制作过程及说明 303
4.5.1样机部件及组装 303
4.5.2操作系统移植 304
4.5.3设备驱动移植 307
4.5.4应用系统移植 308
4.6软件系统详细设计要点说明 310
4.6.1应用软件设计概述 310
4.6.2 Logo Viewer模块说明 310
4.6.3 Graph模块说明 311
4.6.4 Ime模块说明 312
4.6.5 Control等模块说明 313
4.7软件程序源代码说明 315
4.7.1 Logo Viewer图形界面的实现 315
4.7.2 Logo Viewer核心功能的实现 316
4.8项目总结报告 316
4.8.1项目任务要点 317
4.8.2系统移植的准备工作 317
4.8.3系统移植过程分析 317
参考文献 318