本书共5章,包括理论篇和实验篇,主要内容包括:嵌入式系统开发入门、嵌入式Linux开发环境的搭建、Linux编程、ARM Linux设备驱动程序开发、基于ICETEK-AM3359-A的嵌入式系统实验。
戴虹,副教授,1999年7月至今,担任上海第二工业大学教师。目前在工学部计算机与信息工程学院通信工程教研室任教,任工学部督导工作。主讲课程:数字信号处理、嵌入式系统与应用、DSP原理与应用等。主要研究方向为:信号与信息处理,从事教学研究□0余年,已主持教学教改项目8项,其中市级项目3项,出版教材□本,编写讲义4本,共发表教学及科研论文□0余篇。
目 录
上篇 理论篇
□□章 嵌入式系统开发入门3
1.1 嵌入式系统介绍3
1.1.1 嵌入式系统概述3
1.1.□ 嵌入式系统的组成4
1.1.3 几种主流嵌入式系统的分析6
1.□ ARM介绍7
1.□.1 ARM微处理器简介7
1.□.□ ARM微处理器的选择11
1.□.3 ARM9的主要特点1□
1.□.4 ARM Cortex-A8微处理器的技术特点14
1.3 嵌入式软件开发流程15
1.3.1 嵌入式系统开发流程概述15
1.3.□ 嵌入式软件开发概述16
1.4 嵌入式Linux开发介绍□□
1.4.1 Linux历史□□
1.4.□ Linux作为嵌入式系统的优势□□
1.4.3 如何学习Linux□3
1.4.4 Linux开发环境□4
1.4.5 Gcc编译器□5
1.4.6 GNU Make介绍□6
1.4.7 Gdb调试工具□8
本章习题31
第□章 嵌入式Linux开发环境的搭建33
□.1 系统概述33
□.1.1 系统需求33
□.1.□ 软件开发环境概述33
□.□ Linux开发主机的构建34
□.3 嵌入式交叉编译环境的构建35
□.3.1 交叉编译工具链介绍35
□.3.□ 构建ARM Linux交叉编译工具链35
□.4 建立开发主机与嵌入式系统的通信连接43
□.4.1 串口通信43
□.4.□ 以太网通信45
□.4.3 与嵌入式系统交换数据49
本章习题50
第3章 Linux编程51
3.1 Linux下的C语言编程51
3.1.1 C语言简单回顾51
3.1.□ Linux下的C语言编程环境概述51
3.1.3 Gcc编译器5□
3.1.4 Gdb调试器58
3.1.5 Make工程管理器64
3.1.6 使用autotools69
3.□ Linux编程初步74
3.□.1 系统调用及用户编程接口(API)74
3.□.□ Linux中的文件及文件描述符概述76
3.□.3 不带缓存的文件I/O操作76
3.□.4 嵌入式Linux串口应用开发89
3.□.5 标准I/O开发98
3.3 进程控制105
3.3.1 Linu□□程概述105
3.3.□ Linu□□程控制编程108
3.4 进程间通信1□5
3.4.1 Linu□□程间通信概述1□5
3.4.□ 管道通信1□6
3.4.3 信号通信135
3.4.4 共享内存145
3.4.5 消息队列147
3.5 多线程程序设计151
3.5.1 Linux线程概述151
3.5.□ 线程实现153
3.6 嵌入式网络程序设计167
3.6.1 TCP/IP协议概述167
3.6.□ 网络基础编程171
3.6.3 网络高级编程18□
3.6.4 ping源码分析186
本章习题□00
第4章 ARM Linux设备驱动程序开发□01
4.1 设备驱动概述□01
4.1.1 设备驱动程序简介及驱动模块□01
4.1.□ 设备文件分类□0□
4.1.3 设备号□0□
4.1.4 驱动层次结构□0□
4.1.5 设备驱动程序与设备的接口□03
4.1.6 设备驱动程序的特点□03
4.□ 字符设备驱动程序编写□04
4.□.1 字符设备驱动程序编写流程说明□04
4.□.□ 重要数据结构□04
4.□.3 设备驱动程序的主要组成□05
4.□.4 /proc文件系统□10
4.3 块设备驱动程序编写□11
4.3.1 块设备驱动程序描述符□11
4.3.□ 块设备驱动程序的编写流程□11
4.4 中断编程□18
4.5 键盘驱动实现□19
4.5.1 键盘工作原理□19
4.5.□ 键盘驱动综述□□1
4.5.3 键盘驱动流程□□1
本章习题□□9
下篇 实验篇
第5章 基于ICETEK-AM3359-A的嵌入式系统实验□33
5.1 实验设备的安装□33
5.1.1 实验开发环境的设置□33
5.1.□ ICETEK-AM3359-A教学实验箱的连接□33
5.□ ICETEK-AM3359-A的基础Linux实验□34
5.□.1 实验1 LED控制实验□34
5.□.□ 实验□ 按键控制实验□35
5.□.3 实验3 驱动模块编写实验□37
5.□.4 实验4 GPIO控制实验□39
5.□.5 实验5 内存设备模块应用实验□41
5.□.6 实验6 LCD显示实验□43
5.□.7 实验7 触摸屏编程实验□44
5.□.8 实验8 QT编程实验□46
5.3 基于ICETEK-AM3359-A的嵌入式外部控制实验□48
5.3.1 实验1 液晶屏显示实验□48
5.3.□ 实验□ 键盘输入实验□51
5.3.3 实验3 音频信号发生实验□54
5.3.4 实验4 直流电机控制实验□57
5.3.5 实验5 步进电机控制实验□61
5.3.6 实验6 交通灯控制综合实验□64
5.3.7 实验7 单路模数(A/D)转换实验□66
5.3.8 实验8 单路数模(D/A)转换实验□69
参考文献□7□