精通ARM嵌入式Linux系统开发(txt+pdf+epub+mobi电子书下载)

作者:杨水清,张剑,等

出版社:电子工业出版社

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

精通ARM嵌入式Linux系统开发

精通ARM嵌入式Linux系统开发试读:

内容简介

本书由浅入深、通俗易懂地讲解了嵌入式Linux的系统设计与开发。全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令集、ADS开发工具、嵌入式系统硬件环境的构建、Bootloader、Linux内核移植、嵌入式文件系统、嵌入式Linux多任务程序开发、嵌入式Linux设备驱动开发、嵌入式Linux网络程序开发、MiniGUI图形界面开发、设备驱动开发案例、综合案例等内容。书中通过大量的例程来讲解知识要点,并提供了大量极有参考价值的开发案例,读者可以通过这些例程和开发案例对嵌入式Linux开发有一个系统的学习和提高。

本书共包括4个方面的内容:在嵌入式系统的硬件结构中讲述了嵌入式处理器ARM的特点、嵌入式系统硬件环境的构建和ADS开发工具的使用;在嵌入式Linux系统移植中讲述了目标板软件环境的构建,主要包括Boot Loader、Linux内核、文件系统及交叉开发环境的构建;在嵌入式Linux软件开发中讲述了嵌入式Linux C语言开发工具的使用、标准库的使用、多任务开发基础和设备驱动开发基础;在嵌入式应用系统实例分析中讲述了嵌入式Linux的网络程序开发、MiniGUI图形界面开发、CAN总线设备驱动设计、DM9000网络驱动设计、SD卡驱动设计和嵌入式B超系统设计。

本书语言通俗易懂,内容丰富,注重理解与实例,知识涵盖面广,非常适合从事嵌入式Linux系统开发的初级工程师、高校学生、Linux程序开发人员阅读和学习。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据精通ARM嵌入式Linux系统开发/杨水清,张剑,施云飞编著.—北京:电子工业出版社,2012.5ISBN 978-7-121-16197-1Ⅰ.①精… Ⅱ.①杨…②张…③施… Ⅲ.①微处理器,ARM-系统设计②Linux操作系统 Ⅳ.①TP332②TP316中国版本图书馆CIP数据核字(2012)第039547号策划编辑:胡辛征责任编辑:许 艳特约编辑:赵树刚印  刷:北京东光印刷厂装  订:三河市皇庄路通装订厂出版发行:电子工业出版社     北京市海淀区万寿路173信箱 邮编 100036开  本:787×1092 1/16 印张:40 字数:1024千字印  次:2012年5月第1次印刷印  数:4000册  定价:79.00元

凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。

质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。前 言

你想知道手中的MP4由什么组成吗?

你想亲手制作一个电子相框吗?

你想深入研究操作系统内核,学习编写驱动程序吗?

你想为嵌入式系统设计功能强大的图形界面吗?

你想知道一个真实的嵌入式系统是如何从无到有建立起来的吗?

本书将通过作者亲身开发的经验带给你详细实用的解答。嵌入式Linux开发的前景

嵌入式产业发展迅猛,已成为计算机体系的重要组成部分。嵌入式系统产品正不断渗透到各个行业之中,其产业增幅也不断加大。在后PC技术时代,嵌入式系统将拥有最大的市场。任何一个普通人都可以拥有从小到大的各种使用嵌入式技术的电子产品,小到手机、MP3等,大到智能家电、车载电子设备等。在工业和服务领域中,使用嵌入式技术的数字机床、工业机器人、安全系统等也在逐渐改变传统工业和服务方式。正是因为如此大的需求,促使笔者结合多年的开发经验,编写了本书。本书特点

1.注重读者的学习与接受情况。在嵌入式Linux系统下进行开发,一个很大的困难就是各种工具纷繁复杂,不知从何入手。本书在每个部分都安排了一章,引导读者一步一步熟悉各种开发工具和环境,使读者首先建立起感性认识,为进一步深入学习打下基础。

2.代码注释规范细致。为了便于读者学习,在实例代码中,进行了非常详细的注释,这些注释可以引导读者理解和掌握编写程序的关键过程。例如,下面的代码是C语言标准库章节中的实例。在实例中,代码的文件名、代码的作用和重要函数的功能提示,都体现在了代码注释中。

3.Eclipse集成开发环境。长期以来Linux开发没有统一的开发平台,大多数开发者直接使用VI、GCC等命令行工具,这样其实不利于大型项目的开发,也是很多开发者感到遗憾的地方。笔者经过多年的比较,引入了Eclipse作为进行嵌入式Linux开发的集成开发环境,取得了很好的效果(如下图所示) ,因此把它介绍给读者。

4.起点高、内容新。市场上大多数介绍嵌入式Linux开发的同类书籍都是基于Linux 2.4内核的,现在2.6版本的内核已经十分成熟了,取代2.4版本的内核指日可待。当然,还需要与之配套的基于2.6内核的Linux开发平台。因此笔者选择了基于2.6内核的Ubuntu系统、 arm-linux-gcc 3.4作为开发平台(如下图所示) ,帮助读者抢占嵌入式Linux开发领域的制高点。

5.内容深入。本书在注重基础和实际的同时,注重知识的扩充。设备驱动开发、网络程序设计和图形界面编程是在实际中应用极为广泛的内容,本书中对这些知识的讲述可以使读者对嵌入式Linux系统的开发有一个从书本到实践的本质上的提高。本书包括的内容本书适合的读者嵌入式Linux开发入门者。高校计算机、电子专业学生。嵌入式Linux爱好者。嵌入式Linux相关学习和研究的研究生。嵌入式Linux程序员。编 者第1章 嵌入式系统概述

嵌入式系统(Embeded System)是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品,因此往往是技术密集、投资强度大、高度分散、不断创新的知识密集型系统,反映当代最新技术的先进水平。嵌入式系统不仅和一般的PC上的应用系统不同,而且针对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一、简单,且在兼容性方面要求不高,但是在大小、成本方面限制较多。嵌入式计算机基本上不能算是嵌入式系统,它仍然属于计算机一类,只不过工作条件有所不同而已,因为它还保留了计算机的特点。1.1 嵌入式系统简介

事实上,在很早以前,嵌入式这个概念就已经存在了。在通信方面,嵌入式系统在20世纪60年代就用于对电子机械电话交换的控制,当时被称为 “存储式程序控制系统” (Stored Program Control) 。

嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单地说就是系统的应用软件与系统的硬件一体化,类似于BIOS的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时的和多任务的体系。1.1.1 嵌入式系统

嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了第一款微处理器Intel 4004,其后各厂家陆续推出了许多8位、16位的微处理器,包括Intel 8080/8085、 8086, Motorola 的6800、 68000,以及Zilog的Z80、 Z8000等。以这些微处理器作为核心所构成的系统,广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。微处理器的广泛应用形成了一个广阔的嵌入式应用市场,计算机厂家开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要选择一套适合的CPU板、存储器板及各式I/O插件板,从而构成专用的嵌入式计算机系统,并将其嵌入到自己的系统设备中。

为灵活兼容考虑,出现了系列化、模块化的单板机。流行的单板机有Intel公司的iSBC系列、Zilog公司的MCB等。后来人们可以不必从选择芯片开始来设计一台专用的嵌入式计算机,而是只要选择各功能模块,就能够组建一台专用计算机系统。用户和开发者都希望从不同的厂家选购最适合的OEM产品,插入外购或自制的机箱中就形成新的系统,这样就希望插件是互相兼容的,也就导致了工业控制微机系统总线的诞生。1976年Intel公司推出Multibus,1983年扩展为带宽达40MB/s的MultibusⅡ。1978年由Prolog设计的简单STD总线广泛应用于小型嵌入式系统。

20世纪80年代可以说是各种总线层出不穷、群雄并起的时代。随着微电子工艺水平的提高,集成电路制造商开始把嵌入式应用中所需要的微处理器、I/O接口、A/D、D/A转换、串行接口及RAM、ROM等部件统统集成到一个VLSI中,从而制造出面向I/O设计的微控制器,也就是俗称的单片机,成为嵌入式计算机系统异军突起的一支新秀。其后发展的DSP产品则进一步提升了嵌入式计算机系统的技术水平,并迅速地渗入到消费电子、医用电子、智能控制、通信电子、仪器仪表、交通运输等各种领域。

20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步加速发展。面向实时信号处理算法的DSP产品向着高速、高精度、低功耗发展。 Texas推出的第三代DSP芯片TMS320C30,引导着微控制器向32位高速智能化发展。在应用方面,掌上电脑、手持PC、机顶盒技术相对成熟,发展也较为迅速。特别是掌上电脑,1997年在美国市场上掌上电脑不过四五个品牌,而1998年底,各式各样的掌上电脑如雨后春笋般涌现出来。此外,Nokia推出了智能电话,西门子推出了机顶盒,Wyse推出了智能终端,NS推出了WebPAD。装载在汽车上的小型电脑,不但可以控制汽车内的各种设备(如音响等) ,还可以与GPS连接,从而自动操控汽车。21世纪无疑是一个网络的时代,而嵌入式计算机系统应用到各类网络中也必然是嵌入式系统发展的重要方向。在发展潜力巨大的“信息家电”中,人们非常关注的网络电话设备,即IP电话,就是一个代表。该设备可以简单到像普通电话一样,可它却是通过互联网来实现双方通话的,花市话的钱就可以打长途电话!1.1.2 嵌入式系统的特点

嵌入式系统可以称为后PC时代和后网络时代的新秀。与传统的通用计算机、数字产品相比,利用嵌入式技术的产品有其自身的特点。嵌入式系统通常是面向特定应用的。嵌入式CPU与通用CPU的最大不同就是,嵌入式CPU大多工作在为特定用户群设计的系统中,通常都具有低功耗、体积小、集成度高等特点。它能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,使其移动能力大大增强,跟网络的耦合也越来越紧密。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。嵌入式系统和具体应用有机地结合在一起,它的升级换代也和具体产品同步进行,因此嵌入式系统产品一旦进入市场,将具有较长的生命周期。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。1.1.3 嵌入式系统的发展趋势

嵌入式软件产业发展迅猛,已成为软件体系的重要组成部分。嵌入式系统产品正不断渗透至各个行业,其作为包含在这些硬件产品中的特殊软件形态,产业增幅不断加大,而且在整个软件产业中的比重日趋提高。 2003年全球嵌入式软件市场规模达到346亿美元, 2003年中国市场规模达到188亿元。

新一轮汽车、通信、信息电器、医疗、军事等行业的巨大的智能化装备需求拉动了嵌入式软件及系统的发展。同传统的通用计算机系统不同,嵌入式系统面向特定应用领域,根据应用需求定制开发,并随着智能化产品的普遍需求渗透到各行各业。随着硬件技术的不断革新,硬件平台的处理能力不断增强,硬件成本不断下降,嵌入式软件已成为产品的数字化改造、智能化增值的关键性、带动性技术。

目前的因特网技术只连接了5%左右的计算装置,大量的嵌入式设备急需网络连接来提升其服务能力和应用价值。同时,以人为中心的普适计算技术正推动新一轮信息技术的革命。计算无所不在,嵌入式设备将以各种形态分布在人类的生存环境中,提供更加人性化、自然化的服务。互联网的“深度”联网和普通计算机“纵向”普及所带来的计算挑战,将推动嵌入式软件技术向“纵深”发展,催生了新型嵌入式软件技术。

近十年来,嵌入式操作系统得到飞速的发展:微处理器从8位到64位;从支持单一品种的CPU芯片到支持多品种的CPU;从单一内核到除了内核外还提供其他功能模块,如文件系统、TCP/IP网络系统、窗口图形系统等;并形成了包括嵌入式操作系统、中间平台软件在内的嵌入式软件体系。硬件技术的进步,推动了嵌入式系统软件向运行速度更快、支持功能更强、应用开发更便捷的方向不断发展。

随着嵌入式系统应用的不断深入和产业化程度的不断提升,新的应用环境和产业化需求对嵌入式系统软件提出了更加严格的要求。在新需求的推动下,嵌入式操作系统内核不仅需要具有微型化、高实时性等基本特征,还将向高可信性、自适应性、构件组件化方向发展。支撑开发环境将更加集成化、自动化、人性化,系统软件对无线通信和能源管理的功能支持也将日益重要。总的来讲,嵌入式系统的发展趋势有如下几个特点。

1.嵌入式应用软件的开发需要强大的开发工具和操作系统的支持

随着因特网技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富,应用项目多种多样,像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器,如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,以简化应用程序设计、保障软件质量和缩短开发周期。

目前,国外商品化的嵌入式实时操作系统已进入我国市场的有WindRiver、Microsoft、QNX 和Nuclear等产品。我国自主开发的嵌入式系统软件产品,如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,它不仅包括DeltaCore嵌入式实时操作系统,而且还包括LamdaTools交叉开发工具套件、测试工具、应用组件等。此外,中科院也推出了Hopen嵌入式操作系统。

2.联网成为必然趋势

为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必须配有通信接口,相应地需要TCP/IP协议栈等软件支持。由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。

3.支持小型电子设备实现小尺寸、微功耗和低成本

为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片,这就相应提高了对嵌入式软件设计的技术要求。例如,选用最佳的编程模型和不断改进算法,采用Java编程模式,优化编译器性能。因此,既需要软件人员有丰富的经验,更需要发展先进的嵌入式软件技术,如Java、Web和WAP等。

4.提供精巧的多媒体人机界面

嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力,以及自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网、收发电子邮件及彩色图形、图像已取得初步成效。目前一些先进的PDA在显示屏幕上已实现了汉字写入、短消息语音发布,但离掌式语言同声翻译还有很大的距离。1.2 嵌入式系统中的处理器

嵌入式系统的核心部件是各种类型的嵌入式处理器。目前,据不完全统计,全世界嵌入式处理器的品种总量已经超过1000多种,流行体系结构有30几个系列,其中8051体系的占有多半。生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近100种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从64KB到16MB,处理速度从0.1MIPS到2000 MIPS,常用封装从8个引脚到144个引脚。根据其现状,嵌入式计算机可以分成下面几类。1.2.1 微处理器

嵌入式微处理器(Embedded Microprocessor Unit,EMPU) ,它的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计的电路板上,只保留和嵌入式应用有关的母版功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本一样,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。

和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高等优点,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机,如STD-BUS、PC104等。近年来,德国、日本的一些公司又开发出了类似“火柴盒”式名片大小的嵌入式计算机系列OEM产品。

嵌入式微处理器目前主要有AM186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。1.2.2 微控制器

嵌入式微控制器(Microcontroller Unit,MCU) ,又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要的功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。

和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流,其片上外设资源一般比较丰富,适合于控制,因此称微控制器。

嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列,如支持USB接口的MCU 8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。

特别值得注意的是近年来提供X86微处理器的著名厂商AMD公司,将AM186CC/CH/CU等嵌入式处理器称为Microcontroller,Motorola公司把以PowerPC为基础的PPC505和PPC555亦列入单片机行列。TI公司亦将其TMS320C2XXX系列DSP作为MCU进行推广。1.2.3 数字信号处理器

嵌入式数字信号处理器(Embedded Digital Signal Processor,EDSP)对嵌入式系统结构和指令做了特殊的设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较快。在数字滤波、FFT、谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器有两个发展来源:一是DSP处理器经过单片化、 EMC改造、增加片上外设成为嵌入式DSP处理器, TI的TMS320C2000 /C5000等属于此范畴;二是在通用单片机或SOC中增加DSP协处理器,例如Intel的MCS-296和Infineon (Siemens)的TriCore。

推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘,ADSL接入、实时语音解压系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。

嵌入式DSP处理器比较有代表性的产品是Texas Instruments的TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列、移动通信的C5000系列,以及性能更高的C6000和C8000系列。 DSP56000目前已经发展成为DSP56000、 DSP56100、 DSP56200 和DSP56300等几个不同系列的处理器。另外,PHILIPS公司也推出了基于可重置嵌入式DSP结构低成本、低功耗技术上制造的Real DSP处理器,特点是具备双Harvard结构和双乘/累加单元,应用目标是大批量消费类产品。1.2.4 嵌入式片上系统

随着EDI的推广和VLSI设计的普及化,以及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂系统的时代已经来临,这就是System on Chip(SoC) 。各种通用处理器内核将作为SoC设计公司的标准库,和许多其他嵌入式系统外设一样,成为VLSI设计中一种标准的器件,用标准的VHDL等语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中,这样应用系统电路板将变得很简洁,对于减小体积和功耗、提高可靠性非常有利。

SoC可以分为通用和专用两类。通用系列包括Infineon的TriCore,Motorola的M-Core,某些ARM系列器件, Echelon和Motorola联合研制的Neuron芯片等。专用SoC一般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是Philips的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形成一个可加载Java或C语言的专用的SoC,可用于公众互联网如Internet安全方面。1.3 嵌入式系统软件

嵌入式系统中的软件开发非常不容易,必须借助各种辅助工具和仪器,既要考虑不同平台的差异,修正多样化的外围存取程序,又要能达到一种运行稳定、操作容易的条件。1.3.1 嵌入式系统软件

开发嵌入式系统软件,必须了解嵌入式系统既是硬件的属性,需要软件人力资源的投入,更需要硬件平台来实现具体的功能,它甚至比操作系统本身的开发更需要硬件的背景知识。以往这些类型的软件开发都是由硬件厂商自行包办,但是面对未来嵌入式系统的需求,仅仅依靠一些硬件厂商旗下的软件工程师可能无法完成,因此以后提供有关嵌入式系统软件解决方案的厂商会越来越多。

从Windows CE对于嵌入式领域的全面布局中可以看出端倪,微软对于后PC时代的布局相当全面,从网站、有线电视、通信到电子商务各个领域,但是目前嵌入式系统的领域还处在百家争鸣的时代,将来发展成何种格局无人知晓。然而透过Palm OS的发展、SUN的Java,以及各种各样的免费的Embeded OS和Linux的发展,可以想象未来将出现非常热闹的局面。对于一个嵌入式软件工程师来讲,这是非常令人期待的。面对这样的局面,不断充实自我,是每一个将要进入嵌入式系统领域的人才必须具备的能力。1.3.2 嵌入式系统软件开发的一般过程

嵌入式系统的开发工具包括:人机界面、系统程序、模拟程序、模块集(包括CPU模块、I/O模块和功能模块) 。整个系统的输出为软件的目标文件与硬件的版图文件。用户依照硬件的版图文件制作硬件,然后将软件的目标文件烧写在ROM上,即可以得到所需的嵌入式系统。

建构系统的首要任务就是确定这个系统到底用来做什么,因为用途决定了嵌入式系统整体行为模式和系统架构。例如开发一个ATM提款机系统,开始就必须选择需要用到的硬件设备和软件开发工具。很明显,需要一个硬件开发的规格,包含电子线路的连接、显示和操作界面的方式。

接下来就是选择适当的开发环境和开发工具,例如编译器、链接器、定址器,或是使用硬件厂商提供的IDE,其中还包括了怎样把编译好的程序转换为image,下载到开发者的平台上,与开发平台连接后进行测试。

如果都很顺利,接下来将要进行系统的Release测试。嵌入式系统的测试比较复杂,如果没有一个很好的除错环境,那就只能依靠人力和经验来做“碰错误与” 。这是一项非常辛苦的工作,原因在于目标平台往往没有很好的显示或者输出能力,而且开发者不是直接在目标平台上写程序,因此从软件层面来说无法像在PC上直接进行除错。为了缩短开发周期,一般需要一些现成的辅助工具来进行这样的动作,只是这些额外的硬件非常昂贵,例如ICE仿真器。1.3.3 嵌入式应用程序的开发

现在嵌入式系统的软件开发一般都会按照以下几个层次来开发。第一层是用户界面函数,因为每个嵌入式系统的硬件所提供的用户界面不一样,虽然现在大多采用LCD屏幕及触摸面板的方式,但还是有屏幕尺寸不同的问题,所以有关界面的设计,必须根据每一个平台的不同而有所调整。第二层是环境界面函数,因为每个操作系统所提供的系统调用不一样,甚至因为硬件及编译器不同而造成数值的长度不一样。例如int这个变量声明,可能在16位CPU上是2B,在32位CPU上会是4B,所以直接用int做运算时,会因为不同的平台而出现不一样的结果,甚至发生死机的情况。

另外,开发的程序需要大量的CPU运算。例如MP3播放程序,除了要定义基本的CPU运算能力外,有些地方还必须使用汇编语言及最优化的方式来处理。这类程序的移植工作一般都比较困难,甚至还必须和操作系统共用核心模式。1.4 本章小结

本章介绍了嵌入式系统的一些基础知识,解释了什么是嵌入式系统、嵌入式系统中的处理器,以及嵌入式系统中的软件系统。在学习了本章的内容以后,读者会对嵌入式系统有一个整体的印象。本章将读者引入嵌入式系统开发的大门,从下一章开始,将逐步学习嵌入式系统的开发过程。第2章 快速体验——目标板

在开发嵌入式系统时,通常需要选择一款满足开发要求的开发板(也称为目标板) ,作为开发和测试的原型系统。本章将为读者简要介绍基于S3C2440嵌入式处理器的开发板结构,以及如何通过ADS(一个软件开发环境)对开发板上的设备进行测试和使用。2.1 目标板结构

如图2-1所示为S3C2440开发板的硬件结构图,其中CPU是三星公司生产的S3C2440,配备了存储容量较大的64MB的SDRAM和64MB的闪存(Flash) 。外部接口非常丰富,包括SD卡接口、串口(UART)接口、摄像头(CAMERA)接口、USB接口、网络接口、CAN总线接口等。同时还将CPU的地址、数据和一些控制总线统统延伸出来,作为总线接口以便扩展其他设备。图2-1 目标板总体结构

考虑到不同的外部设备数据传输的方式有很大不同,特别是数据的读写方式有很大不同,所以开发板在CPU和外部设备之间加了一个CPLD,以便为扩展不同的设备设置不同的逻辑。

闪存芯片有两种,即NOR Flash和NAND Flash。开发板上这两种闪存都有,主要原因是S3C2440既可以从NOR Flash启动,也可以从NAND Flash启动。NOR Flash的存储容量比NAND Flash小,但是读写速度很快。开发板上的NOR Flash容量为2MB。通过开发板上的跳线选择,可以决定S3C2440是从NOR Flash启动,还是从NAND Flash启动。同时,这两种Flash芯片在系统运行以后,还可以用来存放用户的个人数据,如MP3歌曲或者文件等。2.2 ARM初体验

在了解了开发板的基本结构以后,读者肯定在想,如何使用这样一块板子呢?如何才能有效地控制板子上的芯片呢?这是一个很自然的问题。下面的内容就是介绍如何利用开发板搭建起嵌入式系统开发的环境,希望读者能够对ARM开发有一个最初的体验。2.2.1 测试ARM处理器

硬件上应该如何搭建环境呢?很简单,读者只要按照图2-2所示,把开发板与PC连接好,然后通过DNW这个USB下载工具把测试bin文件下载到开发板的SDRAM中,板子就能正常运行了。图2-2 开发板与PC连接方式

DNW是三星公司研制的一款软件,可以实现PC和开发板的通信。运行DNW,选择“Configration”命令对串口及USB下载地址进行配置,如图2-3所示。选择“Serial port” |“Connect”命令,接通串口,如图2-4所示。图2-3 DNW的配置窗口图2-4 DNW连接串口

给开发板上电,系统启动,DNW的文字显示部分如图2-5所示。按下键盘任意键,并选择0选项,如图2-6所示。

选择DNW中的“USB Port”|“Transmit”命令,弹出“打开”对话框,选择要下载的硬件测试文件2440test.bin,如图2-7所示。图2-5 系统复位时的串口输出图2-6 等待从USB下载文件图2-7 选择要下载的bin文件

程序下载并运行后,显示如图2-8所示,用户可选择0~87之间的测试项目对硬件进行测试。图2-8 功能测试选择界面

测试程序中包括88个测试项目,进入某个项目后,还会显示出若干子项,测试内容基本囊括了2440的各个模块功能和基本应用。输入需要进行测试的项目编号,即可进入测试。2.2.2 安装ADS 1.2

ADS 1.2(以下简称ADS)是目前主流的ARM平台集成开发环境(IDE) ,具有人机界面友好、编译效率高等诸多优点。下面将以逐步图示的方法介绍如何安装ADS软件。运行ADS光盘中的Setup.exe文件,将弹出如图2-9所示的界面,单击“Next”按钮, ADS将按照默认模式进行安装。图2-9 ADS安装初始界面当出现如图2-10所示的界面时,说明ADS已经安装完毕,并提示用户安装License(注:每一份正版的ADS均会配有ARM公司提供的一个唯一的Lincese文件) 。单击“Browse”按钮选中相应的License.dat文件,并单击“Install Full”按钮,如图2-11所示。图2-10 安装License第一步图2-11 安装License第二步当出现如图2-12所示的界面时,说明ADS及其License均已正确安装完毕。图2-12 ADS安装完毕2.2.3 安装Multi-ICE和配置AXD

Multi-ICE是ARM 公司RealView系列工具中的一员,支持目前几乎所有采用ARM 内核的处理器,主要有:ARM70DI、ARM7DMI、ARM7TDMI、ARM7TDMI-S、ARM7TDI-S、ARM7EJ-S、ARM710T、 ARM720T、 ARM740T、 ARM9TDMI、 ARM920T、 ARM9TDMI、 ARM922T、 ARM925T、ARM940T、ARM9E-S、ARM9EJ-S、ARM926EJ-S、ARM946E-S、ARM9E-S、ARM966E-S、ARM1020T、ARM10200、Xscale,是目前进行ARM开发的理想工具之一。

在安装Multi-ICE驱动程序之前,首先确定要安装的PC并口(LPT)模式是否为EPP模式。如果不是,请先退出Windows,在PC的CMOS设置中将并口的模式改为EPP(某些主板的并口ECP模式与Multi-ICE之间的兼容性不佳,可能会导致驱动程序无法安装。为避免发生此类情况,请先行改为EPP模式) 。安装步骤如下。双击Multi-ICE安装光盘中的Setup.exe文件,弹出如图2-13所示的界面。

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

下载完整电子书

若在网站上没有找合适的书籍,可联系网站客服获取,各类电子版图书资料皆有。

客服微信:xzh432

登入/注册
卧槽~你还有脸回来
没有账号? 忘记密码?