嵌入式Linux应用开发教程(21世纪高等学校计算机规划教材)
分類: 图书,教材教辅与参考书,大学,计算机专业,
品牌: 华清远见嵌入式学院
基本信息·出版社:人民邮电出版社
·页码:329 页
·出版日期:2009年10月
·ISBN:7115209049/9787115209047
·条形码:9787115209047
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:21世纪高等学校计算机规划教材
产品信息有问题吗?请帮我们更新产品信息。
内容简介《嵌入式Linux应用开发教程》重点介绍嵌入式Linux应用开发的基本概念和核心理论。全书分为3大部分,包括嵌入式Linux开发基础知识、嵌入式LinuxC编程知识和嵌入式Linux应用开发知识。《嵌入式Linux应用开发教程》在讲解中给出了翔实的实例,并在部分章节的后面详细设计并分析了贴近实践的实验内容。
《嵌入式Linux应用开发教程》可作为高等院校计算机类、电子类、电气类、控制类专业高年级本科生、研究生学习嵌入式Linux应用开发的教材,也可供希望转入嵌入式领域的科研和工程技术人员参考使用。
编辑推荐《嵌入式Linux应用开发教程》以S3C2410为基础,讲解基本概念;结合丰富代码实例,突出理论重点;精心设计实验内容,重视实践应用。
在社会日益信息化的今天,计算机和网络的应用已经全面渗透到日常生活中,各种应用嵌入式系统的电子产品随处可见。嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是嵌入式Linux。这与它自身的优良特性是分不开的。
华清远见嵌入式学院 是华清远见在6年高端嵌入式人才培养的基础上倾力打造的“嵌入式领域就业优势倍增”项目,学院充分整合行业经验及专业优势,并借助自身丰富的合作企业资源及专业、科学的实训体系,帮助合作院校时刻紧跟嵌入式行业用人需求的最新趋势。引导毕业生在知识结构上更好地实现与企业真实需求的对接。从而有效提高其就业竞争优势,顺利进入嵌入式专业领域。华清远见嵌入式学院将继续专注于为更多希望从事嵌入式行业工作。但又缺乏相关经验的人员提供更专业的嵌入式实训课程,培养出更多合格的嵌入式人才,以促进行业的健康、持续发展。华清远见嵌入式学院官方网站为:WWW.embedu.org。
目录
第1章嵌入式系统基础1
1.1嵌入式系统概述1
1.1.1嵌入式系统的基本概念1
1.1.2嵌入式系统的体系结构2
1.1.3几种常用的嵌入式操作系统2
1.1.4嵌入式系统发展趋势5
1.2ARM处理器硬件开发平台6
1.2.1嵌入式处理器简介6
1.2.2ARM处理器简介6
1.2.3S3C2410处理器介绍10
1.3嵌入式软件开发流程13
1.3.1嵌入式系统开发概述13
1.3.2嵌入式软件开发概述14
1.4实验内容:使用JTAG烧写NAND Flash18
小结21
思考与练习21
第2章嵌入式Linux C语言程序开发工具22
2.1嵌入式Linux下C语言概述22
2.2编辑器vim23
2.2.1vim的基本模式23
2.2.2vim的基本操作24
2.3编译器gcc26
2.3.1gcc的简介26
2.3.2gcc的编译流程27
2.3.3gcc的常用编译选项29
2.4调试器GDB34
2.4.1gdb使用流程34
2.4.2gdb基本命令37
2.4.3gdbserver远程调试40
2.5make工程管理器42
2.5.1makefile基本结构43
2.5.2makefile变量43
2.5.3makefile规则46
2.5.4make管理器的使用47
2.6autotools47
2.6.1autotools使用流程47
2.6.2使用autotools所生成的makefile50
2.7实验内容51
2.7.1vim使用练习51
2.7.2用gdb调试程序的bug52
2.7.3编写包含多文件的makefile53
2.7.4使用autotools生成包含多文件的makefile53
小结54
思考与练习54
第3章嵌入式Linux C语言基础55
3.1预处理55
3.1.1预定义55
3.1.2文件包含60
3.1.3条件编译61
3.2C语言中的内存分配62
3.2.1C语言程序所占内存分类63
3.2.2堆和栈的区别63
3.3程序的可移植性考虑64
3.3.1字长和数据类型64
3.3.2数据对齐65
3.3.3字节顺序65
3.4C和汇编的接口66
3.4.1内嵌汇编的语法66
3.4.2编译器优化介绍69
3.4.3C语言关键字volatile69
3.4.4memory描述符69
3.5ARM Linux内核常见数据结构70
3.5.1链表70
3.5.2树、二叉树、平衡树75
3.5.3哈希表82
小结87
思考与练习87
第4章嵌入式Linux开发环境的搭建88
4.1构建嵌入式Linux开发环境88
4.1.1嵌入式交叉编译环境搭建89
4.1.2主机交叉开发环境配置90
4.2Bootloader94
4.2.1Bootloader的种类94
4.2.2U-Boot编译与使用95
4.2.3U-Boot移植102
4.3Linux内核与移植103
4.3.1Linux内核结构104
4.3.2Linux内核配置与编译105
4.3.3Linux内核移植108
4.4嵌入式文件系统构建112
小结115
思考与练习116
第5章嵌入式Linux文件I/O编程117
5.1Linux系统调用及用户编程接口117
5.1.1系统调用117
5.1.2用户编程接口118
5.1.3系统命令118
5.2Linux文件I/O系统概述118
5.2.1虚拟文件系统118
5.2.2通用文件模型119
5.2.3Linux中文件及文件描述符121
5.3底层文件I/O操作121
5.3.1基本文件操作121
5.3.2文件锁124
5.3.3多路复用126
5.4嵌入式Linux串口应用编程131
5.4.1串口概述131
5.4.2串口设置详解132
5.4.3串口使用详解140
5.5标准I/O编程143
5.5.1基本操作143
5.5.2其他操作146
5.6实验内容148
5.6.1文件读写及上锁148
5.6.2多路复用式串口操作153
小结156
思考与练习156
第6章嵌入式Linux多任务编程157
6.1Linux下多任务概述157
6.1.1任务157
6.1.2进程157
6.1.3线程162
6.2进程控制编程163
6.2.1进程编程基础163
6.2.2Linux守护进程167
6.3进程间通信171
6.3.1Linux下进程间通信概述171
6.3.2管道通信172
6.3.3信号通信177
6.3.4信号量183
6.3.5共享内存187
6.3.6消息队列188
6.4多线程编程193
6.4.1线程基本编程193
6.4.2线程之间的同步与互斥196
6.4.3线程属性198
6.5实验内容200
6.5.1编写多进程程序200
6.5.2编写守护进程204
6.5.3有名管道通信实验205
6.5.4共享内存实验209
6.5.5多线程实验212
小结216
思考与练习217
第7章嵌入式Linux网络编程218
7.1TCP/IP概述218
7.1.1TCP/IP的分层模型218
7.1.2TCP/IP分层模型特点219
7.1.3TCP/IP核心协议220
7.2网络编程基本知识222
7.2.1套接字概述222
7.2.2地址及顺序处理223
7.2.3套接字编程228
7.2.4编程实例231
7.3网络高级编程234
7.4Web服务器240
7.4.1Web服务器的工作原理240
7.4.2Web服务器的编程实现242
7.4.3运行Web服务器246
7.5实验内容:NTP的客户端实现247
小结252
思考与练习252
第8章嵌入式Linux设备驱动编程253
8.1设备驱动编程基础253
8.1.1Linux设备驱动概述253
8.1.2Linux内核模块编程254
8.2字符设备驱动编程263
8.2.1字符设备驱动编写流程263
8.2.2重要数据结构263
8.2.3设备驱动程序主要组成264
8.3GPIO驱动程序实例270
8.3.1GPIO工作原理270
8.3.2GPIO驱动程序272
8.4按键驱动程序实例277
8.4.1中断编程277
8.4.2按键工作原理278
8.4.3按键驱动程序279
8.4.4按键驱动的测试程序285
小结287
思考与练习287
第9章Qt图形编程288
9.1嵌入式GUI简介288
9.1.1Qt/Embedded289
9.1.2MiniGUI289
9.1.3Microwindows、Tiny X等289
9.2Qt/Embedded开发入门290
9.2.1Qt/Embedded介绍290
9.2.2Qt/Embedded信号和插槽机制292
9.2.3搭建Qt/Embedded开发环境295
9.2.4Qt/Embedded窗口部件298
9.2.5Qt/Embedded图形界面编程300
9.2.6Qt/Embedded对话框设计302
9.3实验内容:使用Qt编写“Hello,World”程序306
小结309
思考与练习310
第10章综合实例——视频监控系统311
10.1视频监控系统概述311
10.1.1系统组成311
10.1.2音视频服务器312
10.1.3音视频客户端312
10.1.4通信传输控制协议313
10.2基本数据结构315
10.3功能实现317
10.3.1传输控制317
10.3.2用户检验321
10.3.3控制命令处理322
10.3.4云台转动控制324
10.3.5线程相关327
小结328
思考与练习328
参考文献329
……[看更多目录]
序言在社会日益信息化的今天,计算机和网络的应用已经全面渗透到日常生活中。应用嵌人式系统的电子产品随处可见,如人们平常使用的手机、摄像机、医疗仪器、汽车。在经济发达国家,每个家庭平均拥有255个嵌入式系统,如每辆汽车平均装有35个嵌入式系统。嵌入式系统的应用广泛进入到工业、军事、宇宙、通信、运输、金融、医疗、气象、农业等众多领域。
ARM作为一种32位的高性能、低成本的嵌入式RISC处理器,已得到广泛的应用。2007年,全球半导体IP市场规模约为19亿美元,英国的ARM依然位居行业老大的地位,其营业收入约占全行业的四分之一。目前ARM9处理器仍然占据了高端嵌入式产品市场的很大份额。
随着摩托罗拉手机A760、IBM智能型手表WatchPad、夏普PDA Zaurus等一款款高性能“智能数码产品”的出现,以及Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN等众多国际顶级巨头的加入,嵌入式Linux的队伍越来越庞大了。目前,国外不少大学、研究机构和知名公司,都加入了嵌入式Linux的开发工作,成熟的嵌入式Linux产品不断涌现。
2004年全球嵌入式Linux市场规模已达9150万美元,2005年有1.336亿美元,2006年有1653亿美元,2007年更至2.011亿美元,每年平均以30%的成长率稳定挖掘科技商机。
本书以ARM920T S3C2410处理器为硬件平台,以嵌入式Linux为软件平台,介绍了嵌入式系统开发的主要环节。本书重点讲解了嵌入式Linux应用开发的基本概念和核心理论,同时结合大量代码实例帮助读者理解和应用相关的概念和理论。突出理论重点,重视实践应用是贯穿本书的理念。
本书没有深入讲解C语言基础、Linux的安装/使用/操作命令等基础知识、操作系统的基本理论、单片机与微机接口原理等基础知识。因此,在学习本书之前,建议读者最好掌握这些基础理论和实践基础。
文摘插图:
第1章 嵌入式系统基础
1.1 嵌入式系统概述
1.1.1 嵌入式系统的基本概念
在社会日益信息化的今天,计算机和网络的应用已经全面渗透到日常生活中。应用嵌入式系统的电子产品随处可见,如日常使用的手机、摄像机、医疗仪器、汽车,乃至工业控制、航天、航空等设备都要用到嵌入式系统。在一些发达国家,平均每个家庭拥有255个嵌入式系统,如每辆汽车平均装有35个嵌入式系统。嵌入式系统的应用已涉及工业、军事、宇宙、通信、运输、金融、医疗、气象、农业等众多领域。
在嵌入式系统行业内有一个被普遍接受的定义:嵌入式系统是以应用为中心,以计算机控制系统为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。笔者认为,将一套计算机控制系统嵌入到已具有某种完整的特定功能的(或者将会具备完整功能的)系统内(例如各种机械设备),以实现对原有系统的计算机控制,此时将这个计算机控制系统叫做嵌入式系统。简单地说,嵌入式系统就是被嵌入到电子设备中的专用计算系统。
嵌入式系统通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。嵌入式系统的特点如下。