嵌入式linux应用程序开发详解.rar
第 1 章Linux 快速入门.................................................................................................................. 1 1.1 嵌入式 Linux基础........................................................................................................... 1 1.1.1 Linux 发展概述..................................................................................................... 1 1.1.2 Linux 作为嵌入式操作系统的优势..................................................................... 2 1.1.3 Linux 发行版本............................................. ........................................................ 3 1.1.4 如何学习Linux ..................................................................................................... 4 1.2 Linux 安装........................................................................................................................ 5 1.2.1 基础概念................................................................................................................ 5 1.2.2 硬件需求................................................................................................................ 7 1.2.3 安装准备................................................................................................................ 7 1.2.4 安装过程................................................................................................................ 8 1.3 Linux 文件及文件系统...................................................................................................11 1.3.1 文件类型及文件属性...........................................................................................11 1.3.2 文件系统类型介绍.............................................................................................. 13 1.3.3 Linux 目录结构................................................................................................... 14 1.4 实验内容——安装Linux 操作系统............................................................................. 17 本章小结................................................................................................................................. 17 思考与练习.............................................................................................................................. 18 第2 章Linux 基础命令................................................................................................................ 19 2.1 Linux 常用操作命令...................................................................................................... 19 2.1.1 用户系统相关命令.............................................................................................. 20 2.1.2 文件目录相关命令.............................................................................................. 27 2.1.3 压缩打包相关命令.............................................................................................. 38 2.1.4 比较合并文件相关命令...................................................................................... 40 2.1.5 网络相关命令...................................................................................................... 45 A-PDF MERGER DEMO ║2 嵌入式应用程序开发详解 2.2 Linux 启动过程详解...................................................................................................... 50 2.2.1 概述...................................................................................................................... 51 2.2.2 内核引导阶段...................................................................................................... 51 2.2.3 init阶段............................................................................................................... 52 2.3 Linux 系统服务.............................................................................................................. 54 2.3.1 独立运行的服务.................................................................................................. 55 2.3.2 xinetd设定的服务............................................................................................... 56 2.3.3 设定服务命令常用方法...................................................................................... 56 2.4 实验内容......................................................................................................................... 57 2.4.1 在Linux 下解压常见软件.................................................................................. 57 2.4.2 定制 Linux系统服务.......................................................................................... 58 本章小结................................................................................................................................. 60 思考与练习.............................................................................................................................. 60 第3 章Linux 下的C 编程基础................................................................................................... 61 3.1 Linux 下C语言编程概述.............................................................................................. 61 3.1.1 C语言简单回顾.................................................................................................. 61 3.1.2 Linux 下C语言编程环境概述........................................................................... 62 3.2 进入 Vi............................................................................................................................ 63 3.2.1 Vi的模式............................................................................................................. 63 3.2.2 Vi的基本流程..................................................................................................... 63 3.2.3 Vi 的各模式功能键............................................................................................. 65 3.3 初探 Emacs ..................................................................................................................... 66 3.3.1 Emacs的基本操作.............................................................................................. 67 3.3.2 Emacs的编译概述.............................................................................................. 70 3.4 Gcc编译器..................................................................................................................... 71 3.4.1 Gcc编译流程解析.............................................................................................. 71 3.4.2 Gcc编译选项分析.............................................................................................. 74 3.5 Gdb调试器..................................................................................................................... 77 3.5.1 Gdb 使用流程...................................................................................................... 78 3.5.2 Gdb基本命令...................................................................................................... 81 3.6 Make工程管理器........................................................................................................... 86 3.6.1 Makefile基本结构.............................................................................................. 86 3.6.2 Makefile变量...................................................................................................... 87 3.6.3 Makefile规则...................................................................................................... 90 3.6.4 Make管理器的使用............................................................................................ 91 3.7 使用autotools ................................................................................................................. 92 3.7.1 autotools使用流程.............................................................................................. 92 3.7.2 使用autotools所生成的Makefile...................................................................... 96 第1 章目录 3║ 3.8 实验内容......................................................................................................................... 98 3.8.1 Vi 使用练习......................................................................................................... 98 3.8.2 用Gdb调试有问题的程序................................................................................. 99 3.8.3 编写包含多文件的Makefile ............................................................................ 101 3.8.4 使用autotools生成包含多文件的Makefile.................................................... 103 本章小结............................................................................................................................... 105 思考与练习............................................................................................................................ 105 第4章嵌入式系统基础............................................................................................................ 106 4.1 嵌入式系统概述............................................................................................................ 106 4.1.1 嵌入式系统简介................................................................................................ 106 4.1.2 嵌入式系统发展历史........................................................................................ 107 4.1.3 嵌入式系统的特点............................................................................................ 108 4.1.4 嵌入式系统的体系结构.................................................................................... 108 4.1.5 几种主流嵌入式操作系统分析........................................................................ 109 4.2 ARM处理器硬件开发平台...........................................................................................111 4.2.1 ARM处理器简介...............................................................................................111 4.2.2 ARM体系结构简介...........................................................................................113 4.2.3 ARM9 体系结构.................................................................................................113 4.2.4 S3C2410处理器详解.........................................................................................116 4.3 嵌入式软件开发流程.................................................................................................... 121 4.3.1 嵌入式系统开发概述........................................................................................ 121 4.3.2 嵌入式软件开发概述........................................................................................ 122 4.4 实验内容——使用JTAG 烧写NAND Flash............................................................... 128 本章小结................................................................................................................................ 131 思考与练习............................................................................................................................. 132 第5章嵌入式Linux开发环境的搭建....................................................................................... 133 5.1 嵌入式开发环境的搭建................................................................................................ 133 5.1.1 嵌入式交叉编译环境的搭建............................................................................ 133 5.1.2 超级终端和Minicom配置及使用................................................................... 135 5.1.3 下载映像到开发板............................................................................................ 142 5.1.4 编译嵌入式Linux 内核.................................................................................... 145 5.1.5 Linux 内核目录结构......................................................................................... 149 5.1.6 制作文件系统.................................................................................................... 149 5.2 U-Boot移植................................................................................................................... 153 5.2.1 Bootloader 介绍................................................................................................. 153 5.2.2 U-Boot概述....................................................................................................... 155 5.2.3 U-Boot源码导读............................................................................................... 156 ║4 嵌入式应用程序开发详解 5.2.4 U-Boot移植主要步骤....................................................................................... 163 5.2.5 U-Boot常见命令............................................................................................... 164 5.3 实验内容——移植Linux 内核..................................................................................... 164 本章小结................................................................................................................................ 165 思考与练习............................................................................................................................. 165 第6 章文件 I/O 编程................................................................................................................ 166 6.1 Linux 系统调用及用户编程接口(API)................................................................... 166 6.1.1 系统调用............................................................................................................ 166 6.1.2 用户编程接口(API)..................................................................................... 167 6.1.3 系统命令............................................................................................................ 167 6.2 Linux 中文件及文件描述符概述.................................................................................. 168 6.3 不带缓存的文件I/O 操作............................................................................................. 168 6.3.1 open和close...................................................................................................... 168 6.3.2 read、write和lseek .......................................................................................... 170 6.3.3 fcntl .................................................................................................................... 173 6.3.4 select................................................................................................................... 178 6.4 嵌入式 Linux串口应用开发......................................................................................... 183 6.4.1 串口概述............................................................................................................ 183 6.4.2 串口设置详解.................................................................................................... 184 6.4.3 串口使用详解.................................................................................................... 191 6.5 标准 I/O 开发................................................................................................................. 194 6.5.1 打开和关闭文件................................................................................................ 194 6.5.2 文件读写............................................................................................................ 197 6.5.3 输入输出............................................................................................................ 198 6.6 实验内容........................................................................................................................ 201 6.6.1 文件读写及上锁................................................................................................ 201 6.6.2 多路复用式串口读写........................................................................................ 204 本章小结................................................................................................................................ 207 思考与练习............................................................................................................................. 207 第7 章进程控制开发................................................................................................................ 208 7.1 Linux 下进程概述........................................................................................................ 208 7.1.1 进程相关基本概念............................................................................................ 208 7.1.2 Linux 下的进程结构......................................................................................... 210 7.1.3 Linux 下进程的模式和类型............................................................................. 210 7.1.4 Linux 下的进程管理..........................................................................................211 7.2 Linux 进程控制编程.................................................................................................... 212 7.3 Linux 守护进程............................................................................................................ 224 第1 章目录 5║ 7.3.1 守护进程概述.................................................................................................... 224 7.3.2 编写守护进程.................................................................................................... 224 7.3.3 守护进程的出错处理........................................................................................ 229 7.4 实验内容....................................................................................................................... 232 7.4.1 编写多进程程序................................................................................................ 232 7.4.2 编写守护进程.................................................................................................... 235 本章小结............................................................................................................................... 238 思考与练习............................................................................................................................ 239