Linux嵌入式系统开发

当前位置:首页 > 计算机网络 > 操作系统/系统开发 > Linux嵌入式系统开发

出版社:电子工业出版社
出版日期:2012-1
ISBN:9787121152177
作者:朱小远 谢龙汉
页数:538页

章节摘录

版权页:插图:(2)远程调试远程调试是一种允许调试器以某种方式控制目标机上被调试进程的运行方式,并具有查看和修改目标机上内存单元、寄存器及被调试进程中变量值等各种调试功能的调试方式。在嵌入式系统中,调试器运行在宿主机的通用操作系统之上,被调试的进程运行在目标机的嵌入式操作系统中,调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。嵌入式系统的交叉调试可分为硬件调试和软件调试两种。硬件调试需要使用仿真调试器协助调试过程,硬件调试器是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。而软件调试则使用软件调试器完成调试过程。在目标机上,嵌入式操作系统、应用程序代码构成可执行映像。可以在宿主机上生成完整映像,再移植到目标机上;也可以把应用程序做成可加载模块,在目标机操作系统启动后,从宿主机向目标机加载应用程序模块。2.3.2 目标监控器嵌入式系统开发环境中,目标监控器对嵌入式软件的开发和调试有至关重要的意义。嵌入式系统的调试,与一般台式机上编程调试显著不同。嵌入式调试工具是用于嵌入式系统开发中代码定制和调试的工具,分为驻留主机部分和驻留目标机部分。驻留主机部分称为调试器,驻留目标机部分称为目标监控器。目标监控器是解决嵌入式软件开发工具与这些支撑硬件的连接和通信的一个重要支持部件,是嵌入式应用开发、调试环境的核心部件,是许多功能模块实现的基础。按照具体的实现方式的不同,可以将目标监控器分为软件监控器、硬件监控器、软件仿真器和软件模拟监控器。(1)软件监控器软件监控器是驻留在目标机上通过软件手段实现的调试代理。实际上,主机端的调试命令不是直接交由目标机硬件执行的,而是首先发送给软件监控器,再由软件监控器转交给目标机执行,然后将所监控的程序运行到断点处的相关信息反馈给主机端的调试器。按照对目标机硬件和软件的控制能力,软件监控器分为引导型监控器和应用型监控器。1)引导型监控器引导型监控器是一种具有启动系统、加载和调试包括内核在内的程序等功能的软件监控器,它实际上是一个具有监控功能的微型操作系统。

书籍目录

第1章 嵌入式系统概述 1
1.1 嵌入式系统的概念 1
1.1.1 嵌入式系统的定义 1
1.1.2 嵌入式系统的特点 2
1.2 嵌入式系统的组成 2
1.2.1 嵌入式处理器 2
1.2.2 外围设备 3
1.2.3 嵌入式操作系统 3
1.2.4 应用软件 3
1.3 嵌入式处理器 4
1.3.1 嵌入式处理器的分类 4
1.3.2 嵌入式微处理器 5
1.3.3 嵌入式微控制器 5
1.3.4 嵌入式DSP处理器 6
1.3.5 嵌入式片上系统 6
1.3.6 选择嵌入式处理器 7
1.4 嵌入式操作系统 7
1.4.1 操作系统的概念和分类 7
1.4.2 实时操作系统 8
1.4.3 常用的嵌入式操作系统 10
1.5 新型的嵌入式操作系统 13
1.5.1 Android 13
1.5.2 MontaVista 14
1.6 嵌入式系统的应用 15
1.7 嵌入式系统的发展趋势 18
1.7.1 嵌入式系统面临的挑战 18
1.7.2 嵌入式系统的发展前景 18
1.8 本章小结 19
第2章 嵌入式系统开发过程 20
2.1 嵌入式软件开发介绍 20
2.1.1 嵌入式软件开发的特殊性 20
2.1.2 嵌入式软件的分类 21
2.1.3 嵌入式软件的开发流程 21
2.1.4 嵌入式软件开发工具的发展趋势 23
2.2 嵌入式软件的调试技术 24
2.2.1 调试技术介绍 24
2.2.2 基于JTAG的ARM系统调试 25
2.3 嵌入式软件测试技术 26
2.3.1 宿主机-目标机开发模式 26
2.3.2 目标监控器 27
2.4 嵌入式系统集成开发环境 29
2.4.1 ADS的介绍 29
2.4.2 ADS建立工程的使用介绍 31
2.4.3 AXD调试器的使用介绍 36
实例2-1:ARM开发环境ADS的使用实例 38
2.5 本章小结 42
第3章 ARM体系结构 43
3.1 ARM体系结构概述 43
3.1.1 ARM体系结构简介 44
3.1.2 ARM体系结构的技术特征 46
3.1.3 CISC的体系结构 47
3.1.4 RISC的体系结构 47
3.1.5 RISC系统和CISC系统的比较 49
3.2 ARM微处理器的分类 50
3.2.1 ARM7微处理器 50
3.2.2 ARM9微处理器 51
3.2.3 ARM9E微处理器 51
3.2.4 ARM10E微处理器 52
3.2.5 ARM11微处理器 53
3.2.6 SecurCore微处理器 53
3.2.7 trongARM微处理器 53
3.2.8 XScale微处理器 54
3.3 ARM微处理器的应用 54
3.3.1 ARM微处理器的应用选型 54
3.3.2 S3C2410处理器 55
3.4 存储器 56
3.4. 1 存储器简介 56
3.4.2 SDRAM操作 58
3.4.3 Flash 59
3.5 ARM编程模型 60
3.5.1 数据类型 60
3.5.2 存储器格式 61
3.5.3 处理器工作状态 61
3.5.4 处理器运行模式 62
3.5.5 寄存器组织 62
3.5.6 内部寄存器 65
3.6 ARM指令的寻址方式 66
3.6.1 立即寻址 66
3.6.2 寄存器寻址 67
3.6.3 寄存器间接寻址 67
3.6.4 相对寻址 68
3.6.5 堆栈寻址 68
3.6.6 块复制寻址 69
3.6.7 变址寻址 69
3.6.8 多寄存器寻址 70
3.7 ARM指令集 70
3.7.1 ARM指令的格式 70
3.7.2 ARM指令分类 71
3.7.3 Thumb指令介绍 77
3.7.4 Thumb指令分类 78
3.7.5 ARM指令集和Thumb指令集的区别 81
3.8 ARM微处理器的异常 82
3.8.1 ARM体系结构所支持的异常类型 83
3.8.2 异常向量表 84
3.8.3 异常优先级 84
3.8.4 应用程序中的异常处理 85
3.8.5 各类异常的具体描述 86
3.9 本章小结 90
第4章 Linux基本操作 91
4.1 Linux系统的介绍 91
4.1.1 Linux的概况 91
4.1.2 Linux操作系统的构成 93
4.1.3 Linux常见的发行版本 94
4.1.4 Linux内核的特点 95
4.2 Linux命令的使用 96
4.3 vi编辑器的使用 106
4.3.1 vi编辑器的进入 107
4.3.2 命令模式的命令 107
4.3.3 末行模式的命令 108
实例4-1:vi编辑器使用实例 109
4.4 Shell编程 110
4.4.1 Shell基础介绍 110
4.4.2 Shell程序的变量和参数 113
4.4.3 运行Shell程序 114
4.4.4 Shell程序设计的流程控制 115
4.4.5 Shell输入与输出 120
4.4.6 bash介绍 121
4.5 综合实例 123
实例4-2:编写清除/var/log下的log文件综合实例 123
实例4-3:编写寻找死链接文件综合实例 126
4.6 本章小结 129
第5章 Linux进程 130
5.1 进程概述 130
5.1.1 进程结构 131
5.1.2 进程的控制操作 132
5.1.3 进程的属性 134
5.1.4 进程的创建和调度 135
5.1.5 Linux进程命令 137
5.2 系统调用 141
5.2.1 系统调用简述 141
5.2.2 系统调用的进入 142
5.2.3 与进程管理相关的系统调用 142
5.3 管道 143
5.3.1 管道系统调用 143
5.3.2 管道的分类 144
实例5-1:管道通信实例 145
5.4 信号 147
5.4.1 常见的信号种类 147
5.4.2 系统调用函数 148
5.4.3 信号的处理 149
5.4.4 信号与系统调用的关系 150
实例5-2:信号实例 151
5.5 信号量 152
5.5.1 信号量概述 152
5.5.2 相关的数据结构 153
5.5.3 相关的函数 155
实例5-3:信号量实例 156
5.6 共享内存 161
5.6.1 共享内存原理 161
5.6.2 共享内存对象的结构 162
5.6.3 相关的函数 162
实例5-4:共享内存实例 163
5.7 消息队列 169
5.7.1 有关的数据结构 169
5.7.2 相关的函数 171
实例5-5:消息队列实例 173
5.8 综合实例 177
实例5-6:多线程编程实例 177
5.9 本章小结 178
第6章 建立Linux开发环境 179
6.1 建立Linux开发环境 179
6.1.1 Cygwin开发环境 179
6.1.2 VMware Workstation开发环境 181
6.2 交叉编译的使用 183
6.2.1 GNU交叉工具链的设置 183
6.2.2 ARM GNU常用汇编语言 186
6.2.3 GNU交叉工具链的常用工具 188
6.2.4 交叉编译环境 191
6.3 Linux下的C编程 194
6.3.1 Linux程序设计特点 194
6.3.2 Linux下C语言编码的风格 195
6.3.3 Linux程序基础 195
6.3.4 Linux下C编程的库依赖 197
6.4 gcc的使用与开发 197
6.4.1 gcc简介和使用 197
6.4.2 gcc选项 198
6.4.3 gcc的错误类型 201
实例6-1:gcc编译器环境的应用实例 202
6.5 gdb调试器的介绍和使用 203
6.5.1 gdb调试器的使用 203
6.5.2 在gdb中运行程序 204
6.5.3 暂停和恢复程序运行 206
6.5.4 远程调试 209
实例6-2:gdb调试器环境的应用实例 209
6.6 GNU make和Makefile的使用 211
6.6.1 Makefile的基本结构 212
6.6.2 Makefile的变量 213
6.6.3 Makefile的隐含规则 215
6.6.4 Makefile的命令使用 218
6.6.5 Makefile的函数使用 219
6.6.6 Makefile文件的运行 221
6.6.7 Makefile规则书写命令 223
实例6-3:Makefile的命令使用实例 229
6.7 autoconf和automake的使用 231
6.7.1 autoconf的使用 231
6.7.2 Makefile.am的编写 234
6.7.3 automake的使用 234
6.7.4 使用automake和autoconf产生Makefile 235
6.7.5 自动生成Makefile的方法 235
6.8 综合实例 236
实例6-4:gcc编译器的综合实例 236
实例6-5:gdb调试器的综合实例 239
实例6-6:Makefile的综合实例 242
6.9 本章小结 244
第7章 Linux操作系统移植 245
7.1 移植的概念 245
7.1.1 Linux可移植性发展 246
7.1.2 Linux的移植性 246
7.2 Linux内核结构 247
7.2.1 Linux内核组成 247
7.2.2 子系统相互间的关系 251
7.2.3 系统数据结构 252
7.2.4 Linux内核源代码 252
7.3 Linux内核配置 256
实例7-1:Linux内核配置实例 256
7.4 Linux操作系统移植介绍 259
7.4.1 Linux系统移植的两大部分 259
7.4.2 内核文件的修改 261
7.4.3 系统移植所必需的环境 265
7.5 综合实例 268
实例7-2:编译Linux内核应用实例 268
实例7-3:Linux内核的烧写实例 270
实例7-4:使用Kgdb构建Linux内核调试环境 271
7.6 本章小结 280
第8章 Bootloader的使用 281
8.1 Bootloader 概述 281
8.1.1 Bootloader的作用 282
8.1.2 Bootloader的功能 283
8.1.3 Bootloader的种类 283
8.1.4 Bootloader的工作模式 285
8.1.5 Bootloader的启动方式 285
8.1.6 Bootloader的启动流程 287
8.1.7 Bootloader与主机的通信 287
8.2 vivi 287
8.2.1 vivi的常用命令和文件结构 288
8.2.2 vivi第一阶段的分析 288
8.2.3 vivi第二阶段的分析 295
8.2.4 vivi的配置与编译 297
8.3 U-boot 298
8.3.1 U-boot常用命令和源代码目录结构 298
8.3.2 U-boot支持的主要功能 301
8.3.3 U-boot的编译和添加命令 302
8.3.4 U-boot的启动介绍 305
8.3.5 U-boot的移植和使用 307
8.3.6 U-boot的启动过程 308
8.3.7 U-boot的调试 310
8.4 其他常见的Bootloader 312
8.5 综合实例 313
实例8-1:vivi编译实例 314
实例8-2:U-boot在S3C2410上的移植实例 315
实例8-3:Bootloader设计实例 317
8.6 本章小结 319
第9章 构建Linux根文件系统 320
9.1 Linux文件系统概述 320
9.1.1 Linux文件系统的特点 320
9.1.2 其他常见的嵌入式文件系统 322
9.1.3 Linux根文件目录结构 324
9.1.4 Linux文件属性介绍 324
9.2 使用BusyBox生成工具集 325
9.2.1 BusyBox概述 325
9.2.2 BusyBox进程和用户程序启动过程 326
9.2.3 编译/安装BusyBox 327
实例9-1:用BusyBox建立简单的根文件系统 331
9.3 构建根文件系统 333
实例9-2:构建根文件系统 337
9.4 配置yaffs文件 339
9.4.1 yaffs文件系统设置 340
9.4.2 yaffs文件系统测试 341
9.5 综合实例 343
实例9-3:制作/使用yaffs文件系统映像文件 343
实例9-4:制作/使用jffs2文件系统映像文件 345
9.6 本章小结 347
第10章 设备驱动程序开发 348
10.1 设备驱动程序概述 348
10.1.1 驱动程序的简介 349
10.1.2 设备分类 349
10.1.3 设备号 350
10.1.4 设备节点 350
10.1.5 驱动层次结构 351
10.1.6 设备驱动程序的特点 352
10.2 设备驱动程序与文件系统 353
10.2.1 设备驱动程序与文件系统的关系 353
10.2.2 设备驱动程序与操作系统的关系 353
10.2.3 Linux设备驱动程序的接口 353
10.2.4 设备驱动程序开发的基本函数 359
10.2.5 Linux驱动程序的加载 359
10.3 设备驱动程序的使用 364
10.3.1 驱动程序模块的加载 364
10.3.2 创建设备文件 364
10.3.3 使用设备 364
10.4 网络设备基础知识 365
10.4.1 网络协议 365
10.4.2 网络设备接口基础 366
10.5 网络设备驱动程序的架构 369
10.5.1 网络设备驱动程序体系结构 369
10.5.2 网络设备驱动程序模块分析 369
10.5.3 网络设备驱动程序的实现模式 376
10.5.4 网络设备驱动程序的数据结构 376
10.6 综合实例 381
实例10-1:键盘驱动开发实例 381
实例10-2:I2C总线驱动的编写实例 384
实例10-3:TFT-LCD显示驱动实例 388
10.7 本章小结 393
第11章 嵌入式GUI开发 394
11.1 嵌入式系统中的GUI简介 395
11.1.1 嵌入式GUI系统的介绍 395
11.1.2 基于嵌入式Linux的GUI系统底层实现基础 397
11.1.3 嵌入式GUI系统的分析与比较 397
11.2 嵌入式系统下MiniGUI的实现 399
11.2.1 图形用户界面MiniGUI简介 399
11.2.2 MiniGUI的发布版本 401
11.2.3 MiniGUI在S3C2410处理器上的移植过程 404
11.3 Qt/Embedded嵌入式图形开发基础 407
11.3.1 Qt/Embedded开发环境的安装 407
11.3.2 Qt/Embedded底层支持及实现代码分析 411
11.3.3 Qt/Embedded信号和插槽机制 412
11.3.4 Qt/Embedded窗口部件 415
11.3.5 Qt/Embedded图形界面编程 418
11.3.6 Qt/Embedded对话框设计 419
11.3.7 数据库 420
实例11-1:Qt/Embedded图形开发应用实例 423
11.4 Qtopia移植 424
11.4.1 Qtopia简介 424
11.4.2 交叉编译、安装Qtopia 424
实例11-2:Qtopia移植应用实例 426
11.5 Qt/Embedded应用开发 427
11.5.1 嵌入式硬件开发平台的选择 427
11.5.2 Qt/Embedded常用工具的介绍 429
11.5.3 交叉编译Qt/Embedded的库 430
11.5.4 Qt/E程序的编译与执行 431
实例11-3:Qt/Embedded实战演练 432
11.6 综合实例 436
实例11-4:Hello,Qt/Embedded应用程序 436
实例11-5:基本绘图应用程序的编写 439
11.7 本章小结 443
第12章 综合工程实例 444
12.1 文件系统的生成与烧写 444
12.1.1 yaffs文件系统的制作与生成 445
12.1.2 jffs2文件系统的制作与生成 449
12.2 基于Linux的数码相框 452
12.2.1 系统需求分析 452
12.2.2 系统总体设计 453
12.2.3 软件设计实现 454
12.2.4 软硬件集成 460
12.3 基于Linux的MPlayer解码播放器 461
12.3.1 可行性分析报告 461
12.3.2 系统总体设计 462
12.3.3 软件总体设计 463
12.3.4 软件详细设计 467
12.3.5 软硬件集成 477
12.4 基于Linux的GPS导航系统的开发 478
12.4.1 嵌入式开发流程图 479
12.4.2 GPS导航定位系统的系统定义 481
12.4.3 GPS导航系统的可行性分析报告 486
12.4.4 GPS导航系统需求分析 487
12.4.5 GPS导航系统总体设计实现 489
12.4.6 GPS导航系统硬件设计实现 491
12.4.7 GPS导航系统软件概括设计 495
12.4.8 GPS导航系统软件详细设计 495
12.4.9 GPS导航系统数据库的配置设计 522
12.4.10 GPS导航系统软件实现 534
12.5 本章小结 538

编辑推荐

《Linux嵌入式系统开发》:Linux-嵌入式系统开发的首选软件、信息家电、工业控制、医疗器械、机器人领域的必备技术、基础知识-实训实例-工程实例、实例操作视频教学,轻松学习。

作者简介

《Linux嵌入式系统开发》以Linux嵌入式系统的基本开发技术为主线,以基于ARM架构的嵌入式处理器为嵌入式硬件平台,全面介绍嵌入式系统开发过程、ARM体系结构、Linux基础、Linux进程、Linux开发环境的建立、Linux操作系统移植、Bootloader的使用、Linux根文件系统的构建、设备驱动程序的开发、嵌入式GUI开发等嵌入式知识,最后介绍近年来较为热门的GPS导航系统的设计。
《Linux嵌入式系统开发》可作为机电控制、信息家电、工业控制、手持仪器、医疗器械、机器人技术等方面嵌入式系统开发与应用的参考书,也可作为高等院校有关嵌入式系统教学的本科生或研究生教材。

图书封面


 Linux嵌入式系统开发下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     Linux是嵌入式系统设计开发的首选软件,信息家电、工业控制、医疗器械、机器人领域的必备技术,本书特点是基础知识-实训实例-工程实例相结合,值得一看呦!(1)本书从高校教学与工程实例相结合的角度编写,内容系统性、实用性强。(2)本书全部实例配有教学视频,方便读者学习。(3)GPS导航系统设计应用案例。

精彩短评 (总计15条)

  •     gooooooooooood
  •     对没有基础的人(比如俺),还是不错的教材
  •     这类书的内容大概相同....
  •     书籍的内容那是相当的大不错,还有视频嘛,不错!
  •     很多知识泛泛而谈 不过覆盖面好像还算全
  •     Linux是嵌入式系统设计开发的首选软件,信息家电、工业控制、医疗器械、机器人领域的必备技术,本书特点是基础知识-实训实例-工程实例相结合,值得一看呦!
  •     还没读呢,不过比较喜欢
  •     老公需要的,很实用,看他没事就在翻阅研究。
  •     书本内容很不错,比较实用,不过主要讲的是2410的技术,有点点小过时了,刚开始接触嵌入式,想接触些比较新的技术
  •     很专业,不错,值得一看。
  •     linux的嵌入式应用,还没看但感觉很不错......
  •     还行挺全面的就是不是很详细不太适合初学者
  •     详细的介绍了linux嵌入式系统开发。
  •     好评,书不错。
  •     做毕业设计要用到linux来做嵌入式,唉,现学现卖的啦,硬着头皮自学,oh yeah,书上有视频,直接就看视频了,哈哈哈
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024