· 国内领先的嵌入式培训机构华清远见出品
· 作者具有多年从业经验,真正从企业用人需求出发
· 历经市场考验,第三次修订改版
· 书中配有大量微课,详细讲解重点难点
本书重点介绍嵌入式Linux应用开发的基本概念和核心理论。全书分为10 章,包括嵌嵌入式系统基础、嵌入式Linux C语言程序开发工具、嵌入式Linux C语言基础、嵌入式Linux开发环境的搭建、嵌入式Linux文件I/O编程、嵌入式Linux多任务编程、嵌入式Linux网络编程、嵌入式Linux设备驱动编程、Qt图形编程和综合案例——仓库信息处理系统。本书在讲解中给出了翔实的实例,并在部分章节后详细设计并分析了实验内容。
本书可作为高等院校计算机类、电子类、电气类、控制类专业高年级本科生、研究生学习嵌入式Linux应用开发的教材,也可供希望转入嵌入式领域的科研和工程技术人员参考使用。
嵌入式Linux C语言应用开发教程 移动学习版 第2版章节:
第1章 嵌入式系统基础
1.1 嵌入式系统概述
1.1.1 嵌入式系统的基本概念
1.1.2 嵌入式系统的体系结构
1.1.3 几种常用的嵌入式操作系统
1.1.4 嵌入式系统发展趋势
1.2 ARM处理器硬件开发平台
1.2.1 嵌入式处理器简介
1.2.2 ARM处理器简介
1.2.3 Exynos4412处理器简介
1.3 嵌入式软件开发流程
1.3.1 嵌入式系统开发概述
1.3.2 嵌入式软件开发概述
1.4 实验内容:使用SD-CARD 烧写EMMC
小结
思考与练习
第2章 嵌入式Linux C语言程序开发工具
2.1 嵌入式Linux下C语言概述
2.2 编辑器vim
2.2.1 vim的基本模式
2.2.2 vim的基本操作
2.3 编译器gcc
2.3.1 gcc的简介
2.3.2 gcc的编译流程
2.3.3 gcc的常用编译选项
2.4 调试器gdb
2.4.1 gdb的使用流程
2.4.2 gdb的基本命令
2.4.3 gdbserver的远程调试
2.5 make工程管理器
2.5.1 makefile的基本结构
2.5.2 makefile的变量
2.5.3 makefile的规则
2.5.4 make管理器的使用
2.6 实验内容
2.6.1 vim使用练习
2.6.2 用gdb调试程序的bug
2.6.3 编写包含多文件的makefile
小结
思考与练习
第3章 嵌入式Linux C语言基础
3.1 预处理
3.1.1 预定义
3.1.2 文件包含
3.1.3 条件编译
3.2 C语言中的内存分配
3.2.1 C语言程序所含内存分类
3.2.2 堆和栈的区别
3.3 程序的可移植性考虑
3.3.1 字长和数据类型
3.3.2 数据对齐
3.3.3 字节顺序
3.4 C和汇编的接口
3.4.1 内嵌汇编的语法
3.4.2 编译器优化
3.4.3 C语言关键字volatile
3.5 ARM Linux内核常见数据结构
3.5.1 链表
3.5.2 树、二叉树、平衡树
3.5.3 哈希表
小结
思考与练习
第4章 嵌入式Linux开发环境的搭建
4.1 构建嵌入式Linux开发环境
4.1.1 嵌入式交叉编译环境搭建
4.1.2 主机交叉开发环境配置
4.2 Bootloader
4.2.1 Bootloader的种类
4.2.2 U-Boot编译与使用
4.2.3 U-Boot移植
4.3 Linux内核与移植
4.3.1 Linux内核结构
4.3.2 Linux内核配置与编译
4.3.3 Linux设备树文件
4.3.4 Linux内核移植
4.4 嵌入式文件系统构建
小结
思考与练习
第5章 嵌入式Linux文件I/O编程
5.1 Linux系统调用及用户编程接口
5.1.1 系统调用
5.1.2 用户编程接口
5.1.3 系统命令
5.2 Linux文件I/O系统概述
5.2.1 虚拟文件系统
5.2.2 通用文件模型
5.2.3 Linux中文件及文件描述符
5.3 底层文件I/O操作
5.3.1 基本文件操作
5.3.2 文件锁
5.3.3 多路复用
5.4 标准I/O编程
5.4.1 基本操作
5.4.2 其他操作
5.4.3 目录操作
5.5 实验内容
小结
思考与练习
第6章 嵌入式Linux多任务编程
6.1 Linux下多任务概述
6.1.1 任务
6.1.2 进程
6.1.3 线程
6.2 进程控制编程
6.2.1 进程编程基础
6.2.2 Linux守护进程
6.3 进程间通信
6.3.1 Linux下进程间通信概述
6.3.2 管道通信
6.3.3 信号通信
6.3.4 信号量
6.3.5 共享内存
6.3.6 消息队列
6.4 多线程编程
6.4.1 线程基本编程
6.4.2 线程之间的同步与互斥
6.4.3线程属性
6.4.4 线程私有数据
6.5 实验内容
6.5.1 编写多进程程序
6.5.2 编写守护进程
6.5.3 有名管道通信实验
6.5.4 共享内存实验
6.5.5 线程池实验
小结
思考与练习
第7章 嵌入式Linux网络编程
7.1 TCP/IP概述
7.1.1 TCP/IP的分层模型
7.1.2 TCP/IP分层模型特点
7.1.3 TCP/IP核心协议
7.2 网络编程基本知识
7.2.1 套接字概述
7.2.2 地址及顺序处理
7.2.3 套接字编程
7.2.4 编程实例
7.3 网络高级编程
7.3.1 非阻塞和异步I/O
7.3.2 使用多路复用
7.4 实验内容:NTP的客户端实现
小结
思考与练习
第8章 嵌入式Linux设备驱动编程
8.1 设备驱动编程基础
8.1.1 Linux设备驱动概述
8.1.2 Linux内核模块编程
8.2 字符设备驱动编程
8.2.1 字符设备驱动编写流程
8.2.2 重要数据结构
8.2.3 设备驱动程序主要组成
8.2.4 字符设备驱动程序框架
8.3 基于设备树的字符驱动程序实例
8.4 GPIO驱动程序实例
8.4.1 GPIO工作原理
8.4.2 GPIO驱动程序
8.5 按键驱动程序实例
8.5.1 中断编程
8.5.2 按键工作原理
8.5.3 按键驱动程序
8.5.4 中断信息的编写
小结
思考与练习
第9章 Qt图形编程
9.1 嵌入式GUI简介
9.1.1 Qt/Embedded
9.1.2 其他嵌入式图形用户界面开发环境
9.2 Qt/Embedded开发入门
9.2.1 Qt/Embedded介绍
9.2.2 Qt/Embedded信号和插槽机制
9.2.3 搭建Qt/Embedded-5.8.0开发环境
9.2.4 Qt/Embedded窗口部件
9.2.5 Qt/Embedded图形界面编程
9.2.6 Qt/Embedded对话框设计
9.3 实验内容:使用Qt编写 “Hello,World”程序
小结
思考与练习
第10章 综合实例——仓库信息处理系统
10.1 仓库信息处理系统概述
10.1.1 系统组成
10.1.2 前端数据中心(Cortex-A9)
10.1.3 显示中心
10.2 基本数据结构
10.3 功能实现
10.3.1 数据接收模块
10.3.2 数据处理模块
10.3.3 共享内存刷新模块
10.3.4 显示中心
10.3.5 线程相关
小结
思考与练习
参考文献