孔旭影主编的《嵌入式Linux应用项目教程》与当前教学改革紧密结合,探索职业教育教学新思路。理论加实践的教学思路仍是学科体系的教学思路,而本教材采用经过教学化处理的实践体系的教学思路。在使用本教材时特别强调:教学过程以学生为主体,课程安排以项目活动为主线,培养学生自主学习习惯,从制订项目计划、实施项目、自我检查和控制实施过程、总结项目到展示成果,让学生不断强化这一过程;教师在授课计划开始就要有意识地去思考、去准备,主动提升学生的职业能力和素质,最终实现人才培养目标。本教材是适用于嵌入式技术与应用专业相关课程的一本教材,对应的课程是嵌入式操作系统Linux、嵌入式Linux系统移植或嵌入式Linux系统应用。
孔旭影主编的《嵌入式Linux应用项目教程》共4章:第1章项目实施准备,介绍了项目总任务目标、嵌入式系统开发工作条件与流程、工作要求与规范、工具准备等;第2章项目任务与要求,给出了三个微小项目任务和两个嵌入式产品小项目任务,包括任务目标、要求及背景等相关资料;第3章理论知识模块,阐述了嵌入式Linux的基本理论、基本操作和系统移植的实现机制;第4章Logo设计助理项目案例,介绍了一个真实案例,以供教学参考。
《嵌入式Linux应用项目教程》可作为高等学校、职业院校应用型、技能型人才培养的嵌入式技术相关专业的教学用书,尤其适合作为培养嵌入式系统移植、嵌入式技术支持与维护等有关技术人员的参考用书。
第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 LogoViewer模块说明/310
4.6.3 Graph模块说明/311
4.6.4 Ime模块说明/312
4.6.5 Control等模块说明/313
4.7 软件程序源代码说明/315
4.7.1 LogoViewer图形界面的实现/315
4.7.2 LogoViewer核心功能的实现/316
4.8 项目总结报告/316
4.8.1 项目任务要点/317
4.8.2 系统移植的准备工作/317
4.8.3 系统移植过程分析/317
参考文献/318