嵌入式Linux系统实训教程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-17 12:36:20

点击下载

作者:徐成,谭曼琼,徐署华,刘豪,朱雪庆

出版社:出版服务编辑部

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

嵌入式Linux系统实训教程

嵌入式Linux系统实训教程试读:

前言

背景

随着计算机技术、微处理器技术、电子技术、通信技术、集成电路技术的发展,嵌入式系统已成为计算机技术和应用领域的一个重要组成部分,嵌入式产品在人们的日常生活中也扮演着越来越重要的角色。

近年来,Linux 在嵌入式领域的成功应用引起了人们广泛的兴趣和热烈的回应,越来越多的开发者开始学习和研究嵌入式Linux系统。但是嵌入式Linux的入门却不简单,进行嵌入式Linux的开发需要具备完善的知识结构,不仅要了解嵌入式设备相关的硬件知识,比如常用嵌入式处理器的体系结构、接口技术等,还需要有一定的Linux操作系统作为基础。

目前,针对嵌入式Linux开发的书籍相当多,也不乏经典。然而大多数书中介绍的实例依赖于平台却又脱离平台,使得其可操作性反而不强;互联网的发展使得共享的网络资源琳琅满目,面对这么多的书籍和资料,刚入门的开发者们往往比较茫然。

本书面向那些想要在未来或者目前的计划中使用Linux的有一定经验的嵌入式系统设计者,以及想要熟悉嵌入式Linux系统开发工具和技术但没有经验的嵌入式系统开发者,以现在嵌入式领域使用相当广泛的ARM处理器为开发平台,在一个具体的S3C2410开发板上,从开发平台的介绍、开发环境的搭建、Linux 系统的移植,到最终成功运行一个应用实例,带领读者一步一步掌握嵌入式Linux的开发过程。

本书的作者具有多年的嵌入式开发经验,了解嵌入式 Linux 的开发过程,又熟悉 ARM的体系结构及底层硬件接口电路。特别地,笔者在编写本书之前针对S3C2410做过很多的实例开发,解决了不少在开发过程中遇到的问题,也积累了很多经验,因此笔者希望借助本书与大家分享这些经验,目的只是为了让大家在嵌入式Linux这条路上少走弯路。

为了让本书更加贴近初学者,笔者根据自己的经验,精心设计了一系列的实验范例,并选定了一个具体的开发平台——深圳旋级力通有限公司的Super-ARM实验教学平台。书中所有实验范例的开发都在该平台上完成。之所以选择Super-ARM平台,是因为该平台的处理器及其接口电路等都很具有代表性。笔者专门安排了一章来介绍这个平台,只是为了让读者在充分了解平台的基础上更好地理解书中的实例,这样当读者面对其他平台的时候更能够举一反三。另外,本书的所有实验范例都经过多位初学者的再三验证,这足以证明本书实例的可操作性。

预备知识

本书编写依赖3个假定:假定读者已经具备一定的Linux基础,包括Linux的安装、一些基本命令的使用以及在PC的Linux环境下使用C或者C++开发简单的应用程序;假定读者对ARM的体系结构有所了解,包括ARM处理器的工作原理和接口技术,如I/O、中断与异常机制等,同时对设备驱动程序的开发以及嵌入式图形界面的开发有一定认识;假定读者有一定硬件电路基础,能看懂一些简单的接口电路,如LED、数码管等。

本书内容及组织方式

本书分为4篇,共17章,组织如下。

第一篇:开发环境篇

本篇包括第1章到第4章,介绍如何搭建嵌入式开发的软硬件环境。

第1章:概述

本章主要介绍在嵌入式Linux开发过程中会涉及的一些基本概念和基础知识等。

第2章:开发平台介绍

本章主要介绍本书实例使用的Super-ARM实验教学平台,使读者对开发平台的硬件资源有一定的了解。

第3章:ADS开发环境搭建

本章主要讲解ADS开发环境的安装过程,并结合一个简单实例介绍其使用方法,为后续开发中BootLoader移植做好准备。

第4章:嵌入式Linux开发环境搭建

本章介绍主机Linux开发环境的安装,包括系统的安装和相关开发工具的配置等。

第二篇:系统移植篇

本篇包括第5章到第7章,介绍Linux系统的移植过程。

第5章:BootLoader移植

本章主要介绍BootLoader的一些基础知识以及U-Boot的详细移植过程。

第6章:内核移植

本章主要介绍Linux内核的编译、配置及安装过程。

第7章:文件系统移植

本章主要讲解根文件系统的制作、移植和访问以及NFS文件系统的挂载。

第三篇:基础实验篇

本篇包括第8章到第14章,主要介绍一些简单硬件的驱动程序的编写、移植及测试。

第8章:Linux设备驱动概述

本章主要介绍Linux设备驱动的相关概念,包括设备驱动的作用、分类及特点,以及驱动模块的加载与卸载等。

第9章:LED实例

本章结合LED驱动实例介绍简单字符设备驱动的程序结构,并编写简单的应用程序对设备驱动进行测试,通过本章的学习,读者可以了解开发驱动程序的大致流程,为以后学习其他设备驱动程序的开发打下基础。

第10章:按键中断实例

本章介绍S3C2410的中断机制及嵌入式Linux中断驱动程序的结构。通过按键驱动实例的开发,带领大家一步一步实现该驱动程序的设计与测试过程。

第11章:数码管实例

本章主要介绍数码管驱动的开发过程。通过本章的学习,读者可以了解数码管的显示原理及其驱动程序的设计方法。

第12章:4×4矩阵键盘实例

本章主要介绍键盘驱动的开发及测试。通过本章的学习,读者可以了解键盘扫描的原理,从而为自己的系统添加键盘设备驱动程序。

第13章:LCD驱动实例

本章主要介绍LCD显示设备的工作原理以及在Linux中移植LCD设备驱动的过程。

第14章:触摸屏实例

本章主要介绍触摸屏的工作原理,以及在Linux中移植触摸屏输入设备驱动的过程。

第四篇:图形应用篇

本篇包括第15章到第17章,主要介绍QT/Embedded的安装和编译,并通过开发一个简单的QT实例,使学生逐步了解嵌入式图形界面编程,最后完成本书的一个综合实例。

第15章:嵌入式QT环境搭建

本章首先对嵌入式GUI编程做个简单介绍,然后在宿主机上完成QT/Embedded开发环境的搭建。

第16章:嵌入式QT之HelloWorld

本章指导学生编写一个最简单的QT程序:在一个主窗口中添加一个按钮,点击该按钮会弹出一个对话框,让该程序分别运行在桌面PC和实验箱上。

第17章:综合实例

作为本书的最后一章,本章结合基础实验篇中的一些实例,用QT/Embedded编写一个简单图片浏览程序。该程序具有如下功能:(1)能读取文件系统系统所有目录下的图片,在实验箱的LCD屏幕上显示出来。(2)具有单张查看和循环播放两种模式。(3)在循环播放模式下,可以通过实验箱的数码管显示播放时间间隔(以s为单位)。(4)在单张查看模式下可以通过点击触摸屏切换到下一张或上一张。

附件

为方便读者高效地理解并完成本书的实例,笔者为部分章节提供了相关的源代码、工程文件以及参考资料等,以附件的形式发布在随书光盘中。

作者

本书第一篇由徐成、徐署华、刘豪、谭曼琼和朱雪庆编写,第二篇由徐成、谭曼琼和朱雪庆编写,第三篇由谭曼琼编写,第四篇由谭曼琼、朱雪庆和邱金波编写。全书由谭曼琼整理和统稿,由李仁发教授主审。

徐成教授多年从事嵌入式系统教学,有丰富的嵌入式系统开发和教学经验,徐署华、刘豪、谭曼琼等也从事嵌入式开发和教学多年,本书是所有作者教学与开发经验的积累和总结。

本书的所有内容和实例都经过作者的仔细编排与验证。这里要特别感谢刘冬、张嵎桐、张泰忠、曾娟丽等人的无私帮助,他们本着认真负责的态度对本书的内容,特别是实例部分进行了验证,并提出了宝贵的意见。我们尽管再三校对,但书中肯定还存在错误和不足,恳请读者批评指正。您宝贵的意见和建议是我们的期待,也是我们继续前进的动力。我们的联系方式:xu_cheng@yeah.net, heima251210490@163.com。

第一篇 开发环境篇

本篇内容

概述

开发平台介绍

ADS开发环境搭建

嵌入式Linux开发环境搭建

本篇目标

了解嵌入式Linux开发过程中会涉及的一些基本概念

了解本书实例所使用的硬件开发平台

熟悉ADS开发环境的安装过程及使用方法

掌握主机 Linux 开发环境中虚拟机的安装方法及相关开发工具详细配置过程

本篇实例

实例1:ADS相关开发工具的安装及使用

实例2:虚拟机上Linux工作站的安装及配置

实例3:Minicom及TFTP的安装配置

实例4:交叉编译工具链的制作

第1章 概述

本书的目的就是带领你完成一个任务——在一块空的嵌入式开发板上移植一个基于Linux 的应用程序实例。在进行我们的嵌入式Linux(Embedded Linux)开发过程之前,也许你心中正在问:“嵌入式 Linux”,这究竟是一个怎样的世界?从这一刻开始,让我们一起步入这个世界吧!

当你已经拿到本书的时候,不管你是未入门的还是刚入门的,我想你一定是对“嵌入式Linux”感兴趣的,所以假定你已经知道什么是嵌入式系统了,套用现在流行的定义“嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、功耗、体积等有严格要求的专用计算机系统”,而且我们几乎天天在跟嵌入式设备打交道,别不承认,你有几天离开过你的手机?你一个人听歌或者听英语的时候是不是要MP3呢?还有,公交车上和银行里几乎都存在嵌入式设备。同样,我也认为你已经知道Linux是什么了,甚至还在自己的PC上安装过Linux,进行过Linux的开发。在此,就不多费口舌介绍“什么是Linux”了。至于“什么是嵌入式Linux”,恐怕很多读者都想得到答案,笔者在接下来的基本概念中将做简单介绍。

本章接下来向大家介绍嵌入式Linux开发中的一些基本概念,以及嵌入式Linux的开发过程,让读者对在开发过程中遇到的一些术语不至于感到陌生,同时也对嵌入式Linux的开发有个大致的了解。当然,你读完这一章之后对于某些概念,可能还是不甚理解,不妨先把疑问留下,相信随着开发过程的深入,你一定会得到答案的,到时候再回过头来阅读这些概念,便会明了了。

1.1 基本概念

1.1.1 嵌入式Linux

嵌入式Linux是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几千字节或者几兆字节的存储器芯片(如Flash)或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。

嵌入式Linux同Linux一样,具有低成本、高性能、支持多种硬件平台和良好的网络支持等优点。另外,嵌入式Linux为了更好地适应嵌入式领域的开发,还在Linux基础上做了不少改进,例举部分如下。(1)改善的内核结构

整个Linux内核是一个单独的、非常大的程序,这种整体式结构虽然能够使系统的各个部分直接沟通,提高了系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不符合。因此,嵌入式系统中经常采用的是一种称为微内核的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行裁剪。这样就大大减小了内核的体积,便于维护和移植。(2)提高的系统实时性

现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等各领域。

嵌入式Linux同Linux一样,也有众多的版本(见表1-1)。表1-1 嵌入式Linux的主要版本

表1-1所列出的嵌入式Linux的不同版本分别是针对不同的需要在内核等方面加入了特定的机制而定制的,在很多嵌入式Linux应用中,开发者一般在标准发行版Linux内核的基础上直接为自己的硬件平台定制裁剪嵌入式Linux系统。

正如上面所说,在“嵌入式开发”的语境中,嵌入式Linux通常指一个针对特定硬件设备的完整的系统;而在“嵌入式Linux厂商”的语境中,嵌入式Linux用于表示以嵌入式系统为需求对象的发行套件,如“嵌入式Linux发行套件”指的是为嵌入式系统与开发工具量身定制的软件套件,以便建立一个完整的系统。嵌入式Linux发行套件所提供的开发工具可能包括交叉编译器、调试器、引导映像生成器等(你可能对这些概念感到陌生,笔者将在开发中陆续介绍)。

1.1.2 ARM 处理器

(1)ARM简介

ARM(Advanced RISC Machines),既可以被认为是一个公司的名字,也可以被认为是对一类微处理器的通称,还可以被认为是一种技术的名字。

ARM公司主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的 ARM 处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统和无线系统等各类产品市场,基于ARM技术的微处理器应用占据32位RISC微处理器75%以上的市场份额。

ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,它本身不直接从事芯片生产,靠转让设计许可,由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM处理器芯片进入市场。目前,全世界有几十家大半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,从而使产品更容易进入市场被消费者所接受,更具有竞争力。(2)ARM处理器的应用领域及特点

到目前为止,ARM 处理器及技术的应用几乎已经深入到各个领域,并会在将来取得更加广泛的应用。工业控制领域:作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分份额,同时也逐渐向低端微控制器应用领域扩展,ARM 微控制器的低功耗、高性价比,已向传统的8位/16位微控制器提出了挑战。无线通信领域:目前已有85%以上的无线通信设备采用了ARM技术,ARM以其高性能和低成本的特点,地位日益巩固。网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。消费类电子产品:ARM 技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛应用。

ARM处理器一般具有如下特点:体积小、低功耗、低成本、高性能;支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;大量使用寄存器,指令执行速度更快;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。(3)ARM处理器系列

下面所列的是 ARM 处理器的几个系列,以及其他厂商基于 ARM 体系结构的处理器,这些处理器除了具有 ARM 体系结构的共同特点以外,每一个系列的 ARM 处理器都有各自的特点和应用领域。ARM7系列;ARM9系列;ARM9E系列;ARM10E系列;SecurCore系列;Intel的Xscale;Intel的StrongARM。

其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。

下面详细介绍ARM7处理器及ARM9处理器的特点。

① ARM7 处理器

ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点。具有嵌入式ICE-RT逻辑,调试开发方便。极低的功耗,适合对功耗要求较高的应用,如便携式产品。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS 等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。

ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义:

T为支持16位压缩指令集Thumb;

D为支持片上Debug;

M为内嵌硬件乘法器(Multiplier);

I为嵌入式ICE,支持片上断点和调试点。

② ARM9 处理器

ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能,具有以下特点。5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持Windows CE、Linux、Palm OS 等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T这3种类型,以适用于不同的应用场合。本书的开发平台上使用的处理器就是ARM920T。

1.1.3 宿主机和目标机

宿主机其实就是我们的开发主机,大多数时候指的就是日常使用的PC,我们在宿主机上进行应用程序的开发;而目标机就是我们的

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载