嵌入式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月于中国石油大学(华东)青岛校区