内容简介
第1章 嵌入式系统概述及项目分析
1.1 嵌入式Linux系统概述
1.1.1 嵌入式Linux简介
1.1.2 嵌入式系统中使用Linux的优势
1.2 农业信息采集控制系统总体分析设计
1.2.1 农业信息采集控制系统介绍
1.2.2 农业信息采集控制系统硬件设计
1.2.3 农业信息采集控制系统软件设计
习题1
第2章 嵌入式Linux开发环境
2.1 项目目标
2.2 Linux Shell与常用命令
2.2.1 Linux Shell简介
2.2.2 Linux常用命令与使用
2.3 Linux文本编辑器vi
2.3.1 vi编辑器简介
2.3.2 vi的操作模式
2.3.3 命令模式命令
2.3.4 底行模式命令
2.4 Shell脚本编程
2.4.1 Shell脚本的建立与执行
2.4.2 变量
2.4.3 命令的执行顺序
2.4.4 命令替换
2.4.5 算术运算
2.4.6 Shell特殊字符
2.4.7 位置参数
2.4.8 条件测试
2.4.9 控制流结构
2.5 嵌入式Linux开发工具
2.5.1 编译工具gcc
2.5.2 工程管理Makefile
2.5.3 调试工具gdb
2.5.4 交叉编译工具链
2.6 嵌入式Linux开发环境搭建
2.6.1 安装Linux操作系统
2.6.2 超级终端minicom
2.6.3 网络文件系统NFS
2.6.4 简单文件传输协议TFTP
2.6.5 安装交叉编译工具
习题2
第3章 嵌入式Linux系统移植
3.1 项目目标
3.2 Bootloader移植
3.2.1 Bootloader简介
3.2.2 Bootloader启动流程
3.2.3 Bootloader的工作模式
3.2.4 常用Bootloader介绍
3.2.5 U-Boot工程简介
3.2.6 U-Boot源码结构
3.2.7 U-Boot的编译
3.2.8 U-Boot的移植
3.2.9 U-Boot的使用
3.3 嵌入式Linux内核移植
3.3.1 Linux内核结构
3.3.2 Linux内核配置
3.3.3 嵌入式Linux内核移植
3.4 嵌入式Linux文件系统移植
3.4.1 Linux文件系统介绍
3.4.2 常见的嵌入式文件系统
3.4.3 嵌入式系统存储设备及其管理机制
3.4.4 Busybox
3.4.5 嵌入式Linux文件系统移植
习题3
第4章 嵌入式Linux驱动开发
4.1 项目目标
4.2 Linux设备驱动程序概述
4.2.1 驱动程序介绍
4.2.2 内核态和用户态
4.2.3 设备文件
4.3 模块的构造与运行
4.3.1 Linux的模块化机制
4.3.2 模块操作相关命令
4.3.3 内核模块的程序结构
4.3.4 内核模块编译和运行
4.4 内核调试技术
4.4.1 打印调试
4.4.2 查询调试
4.4.3 使用strace命令进行调试
4.5 字符设备驱动
4.5.1 确定设备号
4.5.2 字符设备的注册与注销
4.5.3 cdev结构体
4.5.4 创建字符设备节点
4.5.5 设备驱动程序接口
4.5.6 交互数据
4.5.7 一个简单的字符设备驱动实例
4.5.8 设备I/O端口和I/O内存的访问
4.6 项目驱动开发实例
4.6.1 LED设备驱动开发
4.6.2 矩阵键盘驱动开发
4.6.3 温湿度传感器驱动开发
4.6.4 大气压力传感器应用程序
4.6.5 直流电机驱动开发
4.6.6 继电器开关驱动开发
习题4
第5章 嵌入式Linux文件编程
5.1 项目目标
5.2 文件编程概述
5.2.1 文件描述符
5.2.2 系统调用
5.2.3 应用程序编程接口
5.3 基于文件描述符的文件I/O操作
5.3.1 文件的创建、打开和关闭
5.3.2 文件的读写操作
5.3.3 文件定位
5.3.4 设备控制接口函数ioctl
5.4 嵌入式Linux串口应用编程
5.4.1 串口概述
5.4.2 串口属性设置
5.4.3 串口的使用
5.5 农业信息采集控制系统GPS通信
5.5.1 GPS概述
5.5.2 GPS通信实现
习题5
第6章 嵌入式Linux时间编程
6.1 项目目标
6.2 时间类型
6.3 常用时间函数
6.3.1 返回时间函数
6.3.2 时间转换函数
6.3.3 时间格式化函数
6.3.4 获取精确时间函数
6.4 农业信息采集控制系统中时间的应用
习题6
第7章 进程控制程序设计
7.1 项目目标
7.2 进程控制概述
7.2.1 进程及相关概念
7.2.2 进程控制块和标识符
7.2.3 进程调度
7.2.4 进程同步互斥
7.2.5 Linux下的进程管理常用命令
7.3 Linux进程控制编程
7.3.1 获取进程ID
7.3.2 进程的创建
7.3.3 进程终止
7.3.4 进程等待
7.3.5 exec函数族
7.4 Linux守护进程
7.4.1 守护进程的编写
7.4.2 守护进程实例
7.5 农业信息采集控制系统主程序设计
7.5.1 农业信息采集控制系统主程序流程
7.5.2 农业信息采集控制系统主程序
习题7
第8章 进程间通信
8.1 项目目标
8.2 进程间通信概述
8.3 管道通信
8.3.1 无名管道
8.3.2 命名管道
8.4 信号通信
8.4.1 信号的定义
8.4.2 信号来源
8.4.3 信号的种类
8.4.4 信号的处理
8.4.5 信号的安装
8.4.6 信号发送
8.4.7 信号通信总结
8.5 信号量通信
8.5.1 信号量概述
8.5.2 信号量的使用
8.5.3 信号量控制函数
8.5.4 信号量应用举例
8.6 共享内存
8.6.1 共享内存概述
8.6.2 共享内存的操作
8.6.3 共享内存应用
8.7 消息队列
8.7.1 消息队列概述
8.7.2 消息队列操作
8.8 农业信息采集控制系统中进程间通信的应用
8.8.1 信号通信在农业信息采集系统中的应用
8.8.2 管道在农业信息采集系统中的应用
习题8
第9章 多线程编程
9.1 项目目标
9.2 Linux多线程概述
9.3 Linux多线程编程
9.3.1 Linux线程的基本函数
9.3.2 多线程实例分析
9.3.3 修改线程的属性
9.4 线程的并发访问
9.4.1 互斥锁
9.4.2 信号量线程控制
9.5 农业信息采集控制系统多线程应用
习题9
第10章 嵌入式Linux网络编程
10.1 项目目标
10.2 TCP/IP概述
10.2.1 OSI网络模型
10.2.2 TCP/IP概述
10.3 Linux网络编程概述
10.3.1 套接字基础
10.3.2 网络字节顺序转换
10.3.3 多字节数据处理
10.3.4 IP地址格式转换
10.3.5 端口
10.4 TCP socket编程
10.4.1 常用函数介绍
10.4.2 TCP网络编程流程
10.5 UDP socket编程
10.5.1 UDP socket编程主要函数
10.5.2 UDP socket编程流程
10.6 农业信息采集控制系统数据上传的实现
10.6.1 基于TCP协议的农业信息采集控制系统数据上传
10.6.2 基于UDP协议的农业信息采集控制系统数据上传
习题10
第11章 嵌入式GUI程序开发
11.1 项目目标
11.2 Qt编程基础
11.2.1 Qt对象模型
11.2.2 事件系统
11.2.3 一个完整的Qt程序
11.3 Qt/Embedded环境配置
11.3.1 获得源码
11.3.2 编译Qt-X11环境
11.3.3 安装Qt/Embedded环境
11.4 Qt Designer介绍
11.5 农业信息采集控制系统设计
11.5.1 窗口部件
11.5.2 布局管理
11.5.3 农业信息采集控制系统终端GUI设计
11.5.4 农业信息采集控制系统GUI显示与控制的实现
习题11
附录A 农业信息采集控制系统源程序
参考文献