· 多年嵌入式人才培养及项目研发经验总结
· 数百家企业嵌入式研发岗位人才需求汇总
· 数十所嵌入式专业大学院校教学现状调研
· 侧重实践及案例分析并辅以代码加以讲解
嵌入式系统是目前最热门的计算机应用领域之一,嵌入式linux是应用最广泛的嵌入式操作系统之一,嵌入式c语言在其中起着至关重要的作用。
本书共13章,全面讲解了嵌入式系统基础,嵌入式linux c语言开发工具、语言基础,文件i/o相关实例,arm linux进程线程开发实例,arm linux网络开发实例,嵌入式linux设备驱动开发以及视频监控系统。
本书可作为大中专院校嵌入式相关专业本科生、研究生的教材,也可供广大希望转入嵌入式领域的科研和工程技术人员使用。
第1章 嵌入式系统基础知识
1.1 嵌入式系统概述
1.1.1 嵌入式系统的发展史
1.1.2 嵌入式系统的定义与特点
1.1.3 嵌入式系统的特点
1.2 嵌入式系统的组成
1.2.1 嵌入式系统的硬件架构
1.2.2 嵌入式操作系统
1.2.3 嵌入式应用软件
1.3 arm处理器平台介绍
1.3.1 arm处理器简介
1.3.2 arm处理器系列
1.3.3 arm体系结构简介
1.3.4 s3c2410处理器简介
1.4 嵌入式系统硬件平台选型
1.4.1 硬件平台的选择
1.4.2 arm处理器选型
1.5 嵌入式系统开发概述
1.5.1 嵌入式系统开发流程
1.5.2 嵌入式软件开发流程
本章小结
动手练练
第2章 嵌入式linux c语言开发工具
2.1 嵌入式linux下c语言概述
2.1.1 c语言简史
2.1.2 c语言特点
2.1.3 嵌入式linux c语言编程环境
2.2 嵌入式linux编辑器vi的使用
2.2.1 vi的基本模式
2.2.2 vi的基本操作
2.2.3 vi的使用实例分析
2.3 嵌入式linux编译器gcc的使用
2.3.1 gcc概述
2.3.2 gcc编译流程分析
2.3.3 gcc警告提示
2.3.4 gcc使用库函数
2.3.5 gcc代码优化
2.4 嵌入式linux调试器gdb的使用
2.4.1 gdb使用实例
2.4.2 设置/删除断点
2.4.3 数据相关命令
2.4.4 调试运行环境相关命令
2.4.5 堆栈相关命令
2.5 make工程管理器
2.5.1 makefile基本结构
2.5.2 makefile变量
2.5.3 makefile规则
2.5.4 make使用
2.6 emacs综合编辑器
2.6.1 emacs的启动与退出
2.6.2 emacs的基本编辑
2.6.3 emacs的c模式
2.6.4 emacs的shell模式
本章小结
动手练练
第3章 构建嵌入式linux系统
3.1 嵌入式系统开发环境的构建
3.1.1 嵌入式交叉编译环境搭建
3.1.2 minicom和超级终端配置及使用
3.1.3 宿主机服务配置
3.2 bootloader
3.2.1 bootloader的概念
3.2.2 bootloader启动流程分析
3.2.3 u-boot概述
3.2.4 u-boot源码导读
3.3 编译嵌入式linux内核
3.4 linux内核目录结构
3.5 制作文件系统
本章小结
动手练练
第4章 嵌入式linux c语言基础——数据、表达式
4.1 嵌入式linux c语言概述
4.2 基本数据类型
4.2.1 整型家族
4.2.2 实型家族
4.2.3 字符型家族
4.2.4 枚举家族
4.2.5 指针家族
4.3 变量与常量
4.3.1 变量的定义
4.3.2 typedef
4.3.3 常量定义
4.3.4 arm-linux基本数据类型综合应用实例
4.4 运算符与表达式
4.4.1 算术运算符和表达式
4.4.2 赋值运算符和表达式
4.4.3 逗号运算符和表达式
4.4.4 位运算符和表达式
4.4.5 关系运算符和表达式
4.4.6 逻辑运算符和表达式
4.4.7 sizeof操作符
4.4.8 条件(?)运算符
4.4.9 运算符优先级总结
4.4.10 arm-linux运算符
综合实例
本章小结
动手练练
第5章 嵌入式linux c语言基础——控制语句及函数
5.1 嵌入式linux c语言程序结构概述
5.1.1 嵌入式linux c语言3种程序结构
5.1.2 嵌入式linux c语言基本语句
5.2 选择语句
5.2.1 if语句
5.2.2 switch语句
5.2.3 arm-linux选择语句应用实例
5.3 循环语句
5.3.1 while和do-while语句
5.3.2 for循环语句
5.3.3 break和continue语句
5.3.4 arm-linux循环语句应用实例
5.4 goto语句
5.4.1 goto语句语法
5.4.2 arm-linux中goto语句应用实例
5.5 函数的定义与声明
5.5.1 c语言函数概述
5.5.2 函数定义
5.5.3 函数声明
5.5.4 arm-linux函数定义与声明实例
5.6 函数的参数、值和基本调用
5.6.1 函数的参数
5.6.2 函数的值
5.6.3 函数的基本调用
5.7 函数的嵌套、递归调用
5.7.1 函数的嵌套调用
5.7.2 函数的递归调用
5.7.3 arm-linux函数调用应用实例
本章小结
动手练练
第6章 嵌入式linux c语言基础——数组、指针与结构
6.1 数组
6.1.1 一维数组
6.1.2 字符串
6.1.3 二维数组
6.2 指针
6.2.1 指针的概念
6.2.2 指针变量的操作
6.2.3 指针和数组
6.2.4 指针高级议题
6.3 结构体与联合
6.3.1 结构体
6.3.2 联合
6.3.3 arm-linux指针、结构体使用实例
本章小结
动手练练
第7章 嵌入式linux c语言基础——高级议题
7.1 预处理
7.1.1 预处理的概念
7.1.2 预定义
7.1.3 文件包含
7.1.4 条件编译
7.2 c语言中的内存分配
7.2.1 c语言程序所占内存分类
7.2.2 堆和栈的区别
7.3 嵌入式linux可移植性考虑
7.3.1 字长和数据类型
7.3.2 数据对齐
7.3.3 字节顺序
7.4 c和汇编的接口
7.4.1 内嵌汇编的语法
7.4.2 编译器优化介绍
7.4.3 c语言关键字volatile
7.4.4 memory描述符
7.4.5 gcc对内嵌汇编语言的处理方式
本章小结
动手练练
第8章 嵌入式linux c语言基础——arm linux内核常见数据结构
8.1 链表
8.1.1 链表概述
8.1.2 单向链表
8.1.3 双向链表
8.1.4 循环链表
8.1.5 arm linux中链表使用实例
8.2 树、二叉树、平衡树
8.2.1 树
8.2.2 二叉树
8.2.3 平衡树
8.2.4 arm linux中红黑树使用实例
8.3 哈希表
8.3.1 哈希表的概念及作用
8.3.2 哈希表的构造方法
8.3.3 哈希表的处理冲突方法
8.3.4 arm linux中哈希表使用实例
本章小结
动手练练
第9章 文件i/o相关实例
9.1 linux系统调用及用户编程接口(api)
9.1.1 系统调用
9.1.2 用户编程接口(api)
9.1.3 系统命令
9.2 arm linux文件i/o系统概述
9.2.1 虚拟文件系统(vfs)
9.2.2 通用文件模型
9.2.3 arm linux的设备文件
9.3 文件i/o操作
9.3.1 不带缓存的文件i/o操作
9.3.2 标准i/o开发
9.4 嵌入式linux串口应用开发
9.4.1 串口概述
9.4.2 串口设置详解
9.4.3 串口使用详解
本章小结
动手练练
第10章 arm linux进程线程开发实例
10.1 arm linux进程线程管理
10.1.1 进程描述符及任务结构
10.1.2 进程的调度
10.1.3 linux中的线程
10.1.4 linux中进程间通信
10.2 arm linux进程控制相关api
10.3 arm linux进程间通信api
10.3.1 管道通信
10.3.2 信号通信
10.3.3 共享内存
10.3.4 消息队列
10.4 arm linux线程相关api
10.5 linux守护进程
10.5.1 守护进程概述
10.5.2 编写规则
10.5.3 守护进程实例
本章小结
动手练练
第11章 arm linux网络开发实例
11.1 tcp/ip协议简介
11.1.1 tcp/ip的分层模型
11.1.2 tcp/ip分层模型特点
11.1.3 tcp/ip核心协议
11.2 网络基础编程
11.2.1 socket概述
11.2.2 地址及顺序处理
11.2.3 socket基础编程
11.3 web服务器
11.3.1 web服务器功能
11.3.2 web服务器协议
11.3.3 web服务器协议
11.3.4 运行web服务器
11.4 traceroute程序实例
11.4.1 traceroute原理简介
11.4.2 traceroute实例与分析
11.4.3 traceroute实例运行结果
本章小结
动手练练
第12章 嵌入式linux设备驱动开发
12.1 设备驱动概述
12.1.1 设备驱动简介
12.1.2 设备驱动程序的特点
12.2 模块编程
12.2.1 模块编程简介
12.2.2 模块相关命令
12.2.3 模块编程流程
12.3 字符设备驱动编写
12.4 块设备驱动编写
12.4.1 块设备驱动程序描述符
12.4.2 块设备驱动编写流程
12.5 简单的skull驱动实例
12.5.1 驱动简介
12.5.2 驱动编写流程
12.5.3 结果分析
12.6 lcd驱动编写实例
12.6.1 lcd工作原理
12.6.2 lcd驱动实例
本章小结
动手练练
第13章 视频监控系统
13.1 视频监控系统概述
13.1.1 系统组成
13.1.2 音视频服务器
13.1.3 音视频客户端
13.1.4 通信传输控制协议
13.2 基本数据结构
13.3 功能实现
13.3.1 传输控制
13.3.2 用户检验
13.3.3 控制命令处理
13.3.4 云台转动控制
13.3.5 线程相关
本章小结
动手练练