在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例嵌入式开发 → 零点起步——嵌入式Linux编程入门与开发实例

零点起步——嵌入式Linux编程入门与开发实例

嵌入式开发

下载此实例
  • 开发语言:C/C++
  • 实例大小:8.59M
  • 下载次数:23
  • 浏览次数:96
  • 发布时间:2022-08-07
  • 实例类别:嵌入式开发
  • 发 布 人:寻梦1984
  • 文件格式:.pdf
  • 所需积分:1
 相关标签: linux 编程入门 嵌入式 LIN 编程

实例介绍

【实例简介】零点起步——嵌入式Linux编程入门与开发实例

本书共分 15 章,分别介绍了嵌入式系统基础、文本编辑器的使用、构 建嵌入式 Linux 开发环境、Linux 常用命令、编译与调试、图形界面应用程 序开发、嵌入式文件系统与存储技术、Linux 设备驱动程序开发、进程控 制、线程控制、嵌入式车载终端的设计、嵌入式 BOA 服务器的构建、嵌入 式 VNC 远程控制的实现、ARM Linux 指纹门禁系统和基于 ARM Linux 的 家庭安全监控系统设计

【实例截图】

【核心代码】

目 录
前言
第 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
VI目 录
VII
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零点起步—嵌入式 Linux 编程入门与开发实例
VIII
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
IX零点起步—嵌入式 Linux 编程入门与开发实例
第 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
X目 录
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
XI零点起步—嵌入式 Linux 编程入门与开发实例
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

实例下载地址

零点起步——嵌入式Linux编程入门与开发实例

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警