
| 王桐等编著的《零点起步——嵌入式Linux编程入门与开发实例》是集C语言程序设计、Linux编程环境讲解及嵌入式开发于一体的书籍。为了使读者迅速使用嵌入式Linux C进行系统开发,本书每个知识点都通过典型的例题来说明其功能和用法,并给出重要的设置选项含义。通过学习本书,读者可以快速学会在Linux环境下进行C语言编程,掌握其中的编程方法和技巧,从而实现Linux环境下C语言编程的入门和提高。 本书的作者都是科研和实际工作的教师和博士研究生,有着丰富的教学和编著经验。本书在内容编排上,按照读者学习的一般规律,结合大量实例讲解操作步骤,使读者快速熟悉Linux操作系统、嵌入式开发环境,熟练掌握Linux C的使用。 |
| 前言 第1章 嵌入式系统基础 1 1.1 嵌入式系统概述 1 1.2 嵌入式操作系统 3 1.3 Linux 操作系统 5 1.3.1 Linux的发展历史 5 1.3.2 Linux的发行版本 5 1.3.3 Linux系统的特点和组成 7 1.4 ARM处理器平台 9 1.4.1 ARM处理器简介 9 1.4.2 ARM处理器的体系结构 10 1.4.3 ARM微处理器系列 11 1.4.4 ARM微处理器的应用领域及特点 15 1.4.5 ARM微处理器的结构 16 1.4.6 ARM微处理器的应用选型 17 1.5 嵌入式系统开发 18 1.5.1 嵌入式系统的开发流程 18 1.5.2 Linux程序设计流程 19 1.6 思考与练习 20 第2章 文本编辑器的使用 21 2.1 Vi编辑器 21 2.1.1 Vi的基本模式 21 2.1.2 Vi的基本操作 22 2.2 Vim编辑器 25 2.3 Emacs编辑器 31 2.3.1 Emacs的启动与退出 31 2.3.2 Emacs的基本编辑 32 2.3.3 Emacs的C模式 34 2.3.4 Emacs的Shell模式 34 2.4 gedit编辑器 35 2.5 思考与练习 36 第3章 构建嵌入式Linux开发环境 37 3.1 嵌入式系统开发环境的构建 37 3.2 移植U-Boot 40 3.2.1 Bootloader简介 40 3.2.2 Bootloader的启动流程 41 3.2.3 U-Boot的分析与移植 49 3.2.4 VIVI 分析 52 3.3 嵌入式Linux操作系统内核编译 53 3.3.1 Linux 内核结构 53 3.3.2 内核的配置 55 3.3.3 内核编译的过程 56 3.3.4 内核的移植 57 3.4 思考与练习 58 第4章 Linux常用命令 59 4.1 目录命令 59 4.1.1 ls 59 4.1.2 cd 62 4.1.3 pwd 63 4.1.4 mkdir 63 4.1.5 rmdir 64 4.2 文件命令 65 4.2.1 cp 66 4.2.2 rm 68 4.2.3 mv 69 4.2.4 cat 71 4.2.5 chmod 72 4.2.6 find 74 4.2.7 grep 77 4.2.8 sort 79 4.3 思考与练习 80 第5章 编译与调试 81 5.1 嵌入式Linux编译器GCC 81 5.1.1 GCC编译分析 82 5.1.2 GCC编译选项分析 89 5.1.3 库函数的使用方法 92 5.2 调试工具GDB 95 5.2.1 GDB使用实例 96 5.2.2 GDB的帮助 99 5.2.3 设置/删除断点 100 5.2.4 各种相关命令 100 5.3 Make工程管理器 102 5.3.1 Makefile文件的构成 103 5.3.2 Makefile变量 105 5.3.3 Make管理器的使用 106 5.4 思考与练习 108 第6章 图形界面应用程序开发 109 6.1 嵌入式图形用户界面 109 6.2 Linux环境下几种主流的GUI 110 6.2.1 MiniGUI 110 6.2.2 Qt/Embedded 112 6.2.3 MicroWindows 113 6.2.4 OpenGUI 114 6.2.5 GTK+ 114 6.3 基于MiniGUI的图形界面开发 115 6.3.1 MiniGUI程序框架 116 6.3.2 MiniGUI中的窗口与消息 116 6.3.3 菜单 124 6.3.4 键盘与鼠标 124 6.3.5 对话框 125 6.3.6 常用控件 126 6.4 思考与练习 134 第7章 嵌入式文件系统与存储技术 135 7.1 嵌入式文件系统的功能和特点 135 7.2 Linux操作系统支持的常见文件系统 136 7.3 Linux文件结构 140 7.3.1 Linux文件系统 142 7.3.2 Linux文件类型 143 7.3.3 Linux文件的访问权限控制 145 7.4 Flash存储技术 147 7.4.1 Flash的类型 147 7.4.2 Flash的技术特点 147 7.4.3 NOR Flash与NAND Flash的区别 148 7.5 NOR Flash与JFFS2文件系统 150 7.5.1 JFFS2原理 150 7.5.2 JFFS2文件系统在Linux中的实现 154 7.6 NAND Flash与YAFFS文件系统 155 7.6.1 YAFFS原理 156 7.6.2 YAFFS文件系统在Linux中的实现 159 7.7 思考与练习 160 第8章 Linux设备驱动程序开发 161 8.1 Linux设备驱动程序概述 161 8.2 Linux设备驱动程序与内核的关系 163 8.3 Linux设备驱动程序框架 164 8.4 设备访问方式及实现 166 8.4.1 查询方式 166 8.4.2 中断方式 167 8.4.3 DMA方式 168 8.5 字符设备驱动 169 8.6 块设备驱动 174 8.6.1 块设备驱动简介 174 8.6.2 块设备相关结构体 175 8.7 网络设备驱动 179 8.7.1 网络设备简介 179 8.7.2 网络设备的运行机制 180 8.7.3 sk_buff数据结构 181 8.7.4 数据包的发送与接收 182 8.7.5 网络设备驱动程序的加载 183 8.7.6 DM9000网卡驱动程序分析 184 8.8 思考与练习 188 第9章 进程控制 189 9.1 Linux进程 189 9.1.1 Linux进程简介 189 9.1.2 Linux进程调度 193 9.1.3 进程的内存映像 198 9.2 进程控制 198 9.2.1 创建进程 199 9.2.2 创建守护进程 200 9.2.3 进程退出 204 9.2.4 改变进程的优先级 205 9.2.5 执行新程序 206 9.2.6 等待进程结束 207 9.3 进程间通信 209 9.3.1 管道 210 9.3.2 有名管道 211 9.3.3 消息队列 214 9.3.4 信号量 217 9.3.5 共享内存 219 9.4 思考与练习 224 第10章 线程控制 226 10.1 Linux线程 226 10.1.1 线程和进程的关系 227 10.1.2 线程的分类 228 10.2 创建线程 229 10.3 线程的属性 231 10.4 线程等待终止 235 10.5 私有数据 236 10.6 线程同步 236 10.6.1 互斥锁 237 10.6.2 条件变量 240 10.6.3 信号量 243 10.7 出错处理 244 10.7.1 错误码 245 10.7.2 出错处理相关函数 245 10.8 思考与练习 247 第11章 嵌入式车载终端的设计 248 11.1 车载终端的硬件平台 248 11.1.1 S3C2440A微处理器 248 11.1.2 车辆监控系统 249 11.1.3 存储单元 250 11.1.4 LCD 250 11.1.5 数字音频接口 250 11.2 嵌入式开发环境的建立 251 11.3 嵌入式车载终端软件的开发 252 11.3.1 GPRS通信模块 252 11.3.2 温度自动调节系统 253 11.3.3 可视倒车功能的实现 257 11.3.4 车载语音电话 263 第12章 嵌入式BOA服务器的构建 269 12.1 嵌入式Web服务器 269 12.2 嵌入式Linux系统移植 270 12.2.1 开发环境的构建 270 12.2.2 Boot Loader分析移植 271 12.2.3 Linux内核移植 272 12.2.4 构建根文件系统 274 12.3 嵌入式Linux的BOA服务器移植 276 12.3.1 BOA服务器 276 12.3.2 CGIC库的移植 281 12.3.3 HTML模板的制作 283 12.3.4 CGI程序的开发 283 第13章 嵌入式VNC远程控制的实现 291 13.1 远程控制及VNC 291 13.2 需求分析 292 13.2.1 软件需求分析 292 13.2.2 硬件需求分析 293 13.3 嵌入式Linux系统移植 294 13.3.1 交叉开发环境的构建 294 13.3.2 Bootloader的移植 297 13.3.3 Linux内核的移植 300 13.3.4 Linux根文件系统的构建 302 13.4 Tiny-X及应用程序移植 307 13.4.1 Linux X图形系统和嵌入式X 307 13.4.2 配置编译Tiny-X 307 13.4.3 编译Matchbox 312 13.4.4 编译VNC Viewer 312 13.4.5 编译Xterm 313 13.5 RFB协议简析及文件系统的裁剪 313 13.5.1 RFB协议简析 314 13.5.2 文件系统的裁剪 315 第14章 ARM Linux 指纹门禁系统 316 14.1 指纹识别技术概述 316 14.2 指纹识别系统的原理 318 14.3 系统硬件结构 320 14.4 指纹采集芯片fps200 321 14.5 Linux操作系统移植 322 14.5.1 BootLoader移植 323 14.5.2 Linux内核移植到S3C2410 324 14.5.3 加载指纹芯片驱动程序 326 14.5.4 加载文件系统 326 14.6 系统软件设计 328 14.6.1 系统的初始化 328 14.6.2 指纹采集与处理 329 14.6.3 指纹识别算法的实现 331 第15章 基于ARM Linux的家庭安全监控系统设计 336 15.1 系统的功能和组成 336 15.1.1 S3C2410简介 337 15.1.2 无线红外探头RD-HW14G 339 15.1.3 系统模块功能描述 339 15.2 软件平台与开发工具 340 15.2.1 Linux系统 341 15.2.2 Shell脚本 341 15.2.3 GCC编译器 342 15.2.4 Make项目管理器 342 15.2.5 Socket编程接口 343 15.3 基于嵌入式平台的网络服务器 343 15.3.1 嵌入式Web服务器 344 15.3.2 嵌入式视频服务器 346 15.3.3 嵌入式SSH服务器 348 15.4 视频监控系统的实现 350 15.4.1 基于Java的浏览器实现 350 15.4.2 Windows平台下客户端的分析和实现 351 15.5 红外监控模块的设计 355 参考文献 356 |
商品评论(0条)