当前: 首页 - 图书专区 - 嵌入式Linux程序设计案例与实验教程
嵌入式Linux程序设计案例与实验教程


  在线购买
俞辉
7-111-26327-2
35.00
305
2009年04月08日

计算机 > 操作系统 > Linux

6025
简体中文
16开

教材
高等院校计算机课程案例教程系列







嵌入式Linux程序设计案例与实验教程
  嵌入式Linux程序具有开源、网络功能强大、内核稳定等特点,目前已广泛应用于智能电子设备中。高校也纷纷开设了嵌入式Linux系统方面的课程,这类课程涉及的知识面广并要求学生有较高的动手能力和系统思考、解决问题的能力。本书基于作者多年对课程教学的思考和实践编写而成,充分体现了理论与实践相结合的特色。
  本书特点
  遵循嵌入式Linux程序设计课程的特点,将理论和实践有机地融合在一起。
  内容全面,涵盖进行嵌入式Linux系统开发所需掌握的相关知识。
  本书提供了多个案例、项目,可帮助读者体验实际项目的开发过程,掌握开发要领。
  本书为读者提供源代码,并为授课教师提供电子教案,为方便下载,我们已将《嵌入式Linux程序设计案例与实验教程》的教辅放在http://www.lenovodata.com/default.php#1上,请需要的读者发邮件到qianrushi09@gmail.com,我们会根据读者的类别(用书教师和普通读者)给读者发送共享邀请,读者回复邀请后即可下载教辅资源并在解压后使用。


教师在本网址可直接下载本书的幻灯片和源代码。
读者在本网址可直接下载本书的源代码。
实例代码(点击下载)
嵌入式Linux系统由于具有开源、网络功能强大、内核稳定高效等特性,在产品开发周期、产品的功能可扩充性、开发时的人力投入等方面都具有显著的优势,因此广泛应用于中低端智能电子设备中。而它与ARM的结合,更是一种主流的解决方案。嵌入式Linux+ARM已经广泛应用于机顶盒、掌上电脑消费电子、MPC、网络设备、工业控制等领域,并且具有良好的市场前景。本书将全面介绍以ARM-Linux为操作系统,结合博创ARM2410/PXA270/OMAP5910平台的嵌入式Linux程序设计与系统开发技术,秉承理论与实践相结合的指导思路,帮助读者快速跨入嵌入式系统开发的门槛。本书内容丰富、概念清楚、层次分明、通俗易懂,可以作为各类高等院校计算机、电子、通信、软件工程等专业高年级学生嵌入式Linux程序设计或嵌入式系统程序设计等课程的教材,也可作为相关工程技术人员和计算机爱好者学习嵌入式程序设计的参考书。
  本书的编写目的与特色
  编写本书的初衷是为嵌入式Linux程序设计和嵌入式系统等相关课程提供配套的教材,通过实验和案例,使读者能够较容易地掌握嵌入式Linux程序设计方面的基本概念和技能;通过综合实例的学习和模拟,达到训练实际开发能力的目的。
  与其他专业课程相比,嵌入式Linux程序设计课程具有鲜明的特点。首先,该课程对学生的专业知识有较高的要求,课程具有交叉性,其先修课程主要包括:面向对象程序设计、计算机组成原理、数据结构、操作系统及Linux方面的相关课程。其次,该课程要求学生具有较高的动手能力和系统思考解决问题能力。下图为嵌入式系统相关课程的教学实验体系。
  
  嵌入式系统课程群框架结构图
  嵌入式Linux程序设计课程与嵌入式系统等课程紧密相关,并具有很强的渗透性。嵌入式系统提供的是一种基础平台,通过与各种行业技术结合,从而渗透到各行业和领域。严格地说,嵌入式系统不是一门学科,但是它却从属于很多门学科。嵌入式系统的另一大特色表现在发展速度上。嵌入式系统的应用无处不在,其知识新陈代谢的速度非常快,新技术层出不穷。因此要求教师不断将新的应用技术补充到嵌入式系统教学体系之中。
  基于上述特点,嵌入式系统课程要求实践的开放性。实践是整个嵌入式系统课程体系中重要的环节,而创新的思想贯穿整个教学的始终。书中所用的相关软件和技术都存在版本问题,教师可以在此基础上修订或延伸自己的教学内容。
  本书的主要内容与结构安排
  本书共10章,分为两大部分。第一部分包括1~9章,主要介绍一些基础内容与实验;第二部分为第10章,通过实例介绍嵌入式Linux系统开发。每章、每节基础知识与实验交替出现,体现实训动手为主的特点;每章最后会给出一个综合实验,作为该章的综合小结。各章知识点请参见教学建议部分。
  相关的实验可以归纳为五部分,分别是基础实验部分、内核实验部分、驱动程序实验部分、高级应用编程部分(包括图形界面编程和高级程序的移植)以及硬件实验部分。这五部分的内容涵盖了嵌入式Linux系统实训的几乎所有内容要点。在完成系统实验之后,课程体系就会进入下一个阶段——综合应用部分。该部分是在前面实验的基础上让学生完成一个基于“案例”的实习作业。通过这种实际案例的训练,学生会具有一定的独立或者协作完成嵌入式项目开发的能力。
  在教师设计的案例前提下,学生可以根据自己的兴趣,以团队的形式自由组合来选择实验内容。一旦实验内容和分组情况确定下来之后,一切设备的安全以及案例工程的进度都将完全由组长负责。最后作为成果提交的实验报告将采用科技论文的形式,包括中英文的摘要和关键词、小组成员分工名单、设计功能与设计特色、模块介绍与使用手册、体系结构、刻录光盘和测试结果性能分析等。通过这个部分,能够有效地锻炼学生实际的嵌入式软硬件设计能力,本书的内容也是基于这种思路进行安排的。
  阅读本书时的注意事项
  理论与实践相结合是本书的一大特色。若读者有相应的实验开发环境,建议动手操作书中安排的每一个环节,会收到良好的效果。本书约定实验平台为博创UP NETARM-2410s。与具体的硬件环境紧密相关的实验,用本书提供的代码可以直接在博创实验平台上编译执行。如果在类似的其他平台上实验,某些实验需考虑平台的差异性,部分硬件相关代码需要修改。
  对于纯软件设计开发的实验,可以不考虑硬件,读者可以先在PC机上完整地学习嵌入式Linux程序设计与系统开发的部分,然后根据条件再转入到开发板上调试运行。读者需要特别注意相关软件的版本与依赖关系。同一软件(包括交叉编译器)的不同版本的在编译环境、使用方式、编程要求上存在一些差异,具体要求与区别均需参考相关文档。
  教学建议中的学时为教授各章全部知识点的所需学时,教师可以根据实际情况增删。
  由于篇幅问题,我们将本书的一些源代码与说明文档放到了出版社网站上,读者可以登录http://www.hzbook.com下载。
  本书在撰写过程中参考了相关公司的技术文档与网络资源,包括北京博创科技兴业有限公司。读者在阅读本书的同时,也可以查阅相关资料(参见本书最后的参考文献)。
  本书由俞辉执笔,李永、刘小洋审定写作提纲,何旭莉、王爱国、李振宁、蒋玉新、林志强、邹国民、李婕、李寅博、吴丹共同参与了编写工作。
  在本书编写过程中,得到了许多同仁以及北京博创科技兴业有限公司和机械工业出版社华章分社的大力支持和帮助,在此一并表示衷心的感谢。
  由于时间仓促,加之水平有限,书中的不足之处在所难免,敬请读者批评指正。编者的联系方式是bysj2004@126.com。欢迎来信交流。
  
  编者
  2009年1月于中国石油大学(华东)青岛校区
前言
教学建议

第1章Linux开发基础1
1.1Linux系统概述1
1.1.1Linux简介1
1.1.2Linux系统的特点1
1.1.3Linux系统的组成2
1.2Linux系统的使用2
实验1.1熟悉Linux基本命令与
文件目录系统2
1.3全屏幕编辑器与vi6
1.3.1vi简介6
1.3.2基本命令7
1.3.3常用操作7
实验1.2全屏幕编辑器vi的使用7
1.4Linux Shell编程8
1.4.1Shell程序的编写和执行8
1.4.2Shell的变量8
1.4.3Shell的测试命令9
1.4.4条件语句9
1.4.5循环语句9
1.4.6函数10
实验1.3Shell脚本编程实验10
第2章嵌入式Linux系统基础12
2.1构建嵌入式Linux系统环境12
2.1.1交叉编译12
2.1.2交叉编译器12
2.1.3 NFS13
实验2.1嵌入式Linux开发环境的
建立14
2.2Linux C程序设计17
2.2.1C程序设计概述17
2.2.2Makefile介绍17
2.2.3Makefile中的变量18
2.2.4Makefile隐含规则19
实验2.2Makefile与helloworld19
2.3Linux多线程库编程21
2.3.1多线程21
2.3.2Linux下的多线程21
2.3.3生产者-消费者模型简述22
2.3.4缓冲区操作概述22
2.3.5几个线程API23
实验2.3Linux多线程使用实例——
生产者-消费者协议24
2.4进程创建以及进程间通信25
2.4.1进程概述25
2.4.2进程的相关函数25
2.4.3信号概述27
2.4.4信号的相关函数27
2.4.5管道概述27
2.4.6管道的相关函数28
实验2.4进程相关的应用程序设计28
综合实验一嵌入式平台的进程管理
模拟实验33
第3章嵌入式Linux内核、引导系统和
文件系统36
3.1Linux内核定制、裁剪和添加36
3.1.1概述36
3.1.2内核目录简介37
3.1.3配置文件和配置工具37
3.1.4内核的编译命令39
实验3.1Linux内核裁剪与编译40
3.2嵌入式引导系统技术42
3.2.1概述42
3.2.2Linux的引导系统——vivi与
uboot43
3.3文件系统的构建44
3.3.1概述44
3.3.2BusyBox45
综合实验二软盘Linux操作系统的
实现45
第4章嵌入式Linux接口设计与
驱动程序53
4.1驱动程序设计基础53
4.1.1Linux驱动程序简介53
4.1.2开发驱动程序的方法53
4.1.3设备驱动程序的分类53
4.1.4主设备号和次设备号54
4.1.5设备文件系统(devfs)与
udevfs54
实验4.1虚拟驱动模块实验55
4.2AD接口驱动程序63
4.2.1AD转换器63
4.2.2AD转换有关参数64
4.2.3ARM自带的AD转换装置65
实验4.2AD接口驱动程序66
4.3直流电机驱动68
4.3.1直流电机介绍68
4.3.2直流电机的PWM原理68
4.3.3PWM TIMER结构69
4.3.4基于ARM的PWM相关寄
存器69
4.3.5关于程序实现72
实验4.3直流电机PWM驱动实验72
4.4触摸屏接口设计与驱动74
4.4.1触摸屏的工作原理74
4.4.2触摸屏驱动芯片ADS784375
4.4.3S3C2410芯片的触摸屏相关
配置寄存器75
实验4.4tslib移植和使用78
4.5显示接口与Linux FrameBuffer83
4.5.1FrameBuffer机制介绍83
4.5.2LCD简介84
实验4.5FrameBuffer实验88
4.6V4L程序设计90
4.6.1V4L概述90
4.6.2V4L设备的体系结构91
实验4.6Linux视频V4L驱动实验91
4.7OSS程序设计93
4.7.1OSS概述93
4.7.2OSS设备的体系结构94
4.7.3OSS驱动分析94
4.7.4OSS用户空间编程95
实验4.7Linux音频OSS驱动实验95
综合实验三五子棋游戏的实现97
第5章嵌入式Linux开源软件移植与
应用101
5.1嵌入式WebServer GoAhead的
移植与应用101
5.1.1嵌入式Web服务器101
5.1.2GoAhead介绍101
5.1.3GoAhead在ARM平台上的
移植102
5.1.4页面操作102
实验5.1嵌入式WebServer GoAhead
实验103
5.2嵌入式Web Service gSOAP的
移植与应用105
5.2.1gSOAP介绍105
5.2.2gSOAP裁剪106
5.2.3gSOAP应用109
实验5.2WebService gSOAP实验111
5.3嵌入式数据库SQLite的移植与
使用113
5.3.1嵌入式数据库113
5.3.2SQLite介绍114
5.3.3SQLite在ARM平台上的
移植114
5.3.4SQLite的使用115
实验5.3SQLite移植实验115
5.4播放器Mplayer的移植120
5.4.1Mplayer介绍120
5.4.2Mplayer在ARM平台上的
移植120
实验5.4Mplayer到ARM平台上的
移植121
5.5ffmpeg应用123
5.5.1ffmpeg简介123
5.5.2ffmpeg在ARM上的移植124
5.5.3ffmpeg命令应用实例124
5.5.4ffmpeg中几个重要的数据
结构125
5.5.5ffmpeg应用开发126
实验5.5ffmpeg移植与应用127
5.6开源软件移植的一般过程131
5.6.1软件移植的概念131
5.6.2软件移植过程131
5.7J2ME-phoneME移植132
5.7.1phoneME简介132
5.7.2软件移植过程与效果132
5.8嵌入式浏览器konqueror移植133
5.8.1konqueror简介133
5.8.2软件移植过程与效果133
综合实验四基于WebService的嵌入式
计算器134
第6章嵌入式Linux图形用户界面137
6.1嵌入式GUI简介137
6.1.1嵌入式GUI的特点137
6.1.2嵌入式GUI的种类137
6.2嵌入式GUI——Qt138
6.2.1Qt与Qt/Embedded简介138
6.2.2Qt的特点138
6.2.3Qt的执行过程139
6.2.4Qt的插槽机制140
6.2.5一个完整的Qt程序140
6.2.6QtDesigner介绍141
实验6.1Qt图形界面相关实验141
6.3基于Qt技术的Qtopia157
6.3.1Qtopia简介157
6.3.2Qtopia的功能157
6.3.3Qtopia编程157
实验6.2Qtopia的移植以及编程158
综合实验五电子点菜系统165
第7章嵌入式Linux下的通信应用167
7.1嵌入式Linux下的串口通信167
7.1.1串口简介167
7.1.2串口编程167
7.1.3串口编程应用实例168
实验7.1串口通信实验170
7.2嵌入式Linux网络编程171
7.2.1网络通信171
7.2.2Socket简介172
7.2.3网络编程172
实验7.2Socket相关程序设计174
7.3嵌入式蓝牙技术176
7.3.1蓝牙技术176
7.3.2蓝牙体系结构176
7.3.3蓝牙通信网络177
7.3.4Linux Bluetooth 软件层177
7.3.5USB适配器177
实验7.3蓝牙相关实验178
7.4CAN总线181
7.4.1CAN总线简介181
7.4.2CAN总线硬件特征182
7.4.3CAN控制器驱动184
实验7.4CAN总线实验186
第8章嵌入式系统硬件设计基础与标准189
8.1嵌入式系统的硬件组成189
8.1.1嵌入式微处理器189
8.1.2存储器189
8.1.3输入/输出设备191
8.1.4通信与扩展接口191
8.2硬件设计基础知识191
8.2.1计算机体系结构191
8.2.2电子技术192
8.2.3抗干扰技术193
8.2.4印制电路板194
8.3硬件设计中应注意的一些问题195
8.3.1IC元件的选择195
8.3.2元件封装设计195
8.3.3PCB设计精度195
8.3.4分离元件的正确使用195
8.3.5高速PCB设计方法196
8.3.6PCB设计的一般原则196
实验8.1常用模拟电路和数字
电路原理197
实验8.22410-S电路原理图阅读202
实验8.32410-S所用芯片数据
手册阅读205
实验8.4OMAP5910核心板电路
原理208
综合实验六基于OMAP的加密终端
硬件设计214
第9章OMAP5910与Linux Gateway219
9.1OMAP5910体系结构219
9.1.1MPU子系统219
9.1.2DSP子系统219
9.2Linux DSP Gateway221
9.2.1DSP Gateway的由来221
9.2.2DSP Gateway的Mailbox
机制222
9.2.3通信缓冲222
9.2.4Mailbox命令协议224
9.2.5DSP Gateway的设备接口225
实验9.1OMAP5910双核间
基本通信226
9.3OMAP5910图像处理229
9.3.1图片格式229
9.3.2数字图像算法230
实验9.2OMAP图像处理实验232
综合实验七基于OMAP的加密终端
的实现(软件部分)234
第10章嵌入式Linux综合项目实例238
10.1基于嵌入式平台的电梯监控系统238
10.1.1系统概述23810.1.2系统设计239
10.1.3系统实现242
10.1.4项目小结248
10.2基于蓝牙技术的嵌入式点菜系统249
10.2.1系统概述249
10.2.2系统设计250
10.2.3系统实现256
10.2.4项目小结257
10.3基于Web Service的数字油田
监控系统257
10.3.1系统概述257
10.3.2系统设计259
10.3.3系统实现26810.3.4项目小结270
10.4基于嵌入式与Web Service的智能
家居系统270
10.4.1系统概述271
10.4.2系统设计272
10.4.3系统实现286
10.4.4项目小结297
10.5基于OMAP的音频与视频处理298
10.5.1概述298
10.5.2MPEG压缩298
10.5.3音视频数据在双处理器间的
传输模块设计299
10.5.4音频处理方案设计300
10.5.5视频处理方案设计300
10.5.6项目小结303
参考文献305
读者书评
发表评论



高级搜索
高性能Linux服务器构建实战:运维监控、性能调优与集群应用
构建高可用Linux服务器
Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理


版权所有© 2008 北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260