当前位置:文档之家› 嵌入式Linux应用程序开发详解-第4章(嵌入式系统基础)

嵌入式Linux应用程序开发详解-第4章(嵌入式系统基础)

嵌入式Linux应用程序开发详解-第4章(嵌入式系统基础)
嵌入式Linux应用程序开发详解-第4章(嵌入式系统基础)

华清远见<嵌入式Linux 应用开发班>培训教材

“黑色经典”系列之《嵌入式Linux 应用程序开发详解》

熟悉三星处理器S3C2410

4.1 嵌入式系统概述

4.1.1 嵌入式系统简介

尼葛洛庞帝2001年访华时的预言“4~5年后,嵌入式智能电脑将是继PC和Internet后的最伟大发明!”如今,嵌入式系统已成功当今最为热门的领域之一,它迅猛的发展势头引起了社会各方面人士的关注。如家用电器、手持通信设备、信息终端、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等。今天,嵌入式系统带来的工业年产值已超过1万亿美元。用市场观点来看,PC已经从高速增长进入到平稳发展时期,其年增长率由20世纪90年代中期的35%逐年下降,使单纯由PC机带领电子产业蒸蒸日上的时代成为历史。根据PC时代的概念,美国Business Week杂志提出了“后PC时代”概念,即计算机、通信和消费产品的技术将结合起来,以3C产品的形式通过Internet进入家庭。这必将培育出一个庞大的嵌入式应用市场。那么究竟什么是嵌入式系统呢?

按照电器工程协会的定义,嵌入式系统是用来控制或者监视机器、装置、工厂等大规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行定义的。

那么,下面再来看一个在多数书籍资料中的关于嵌入式系统的定义:嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。

从这个定义可以看出,人们平常所广泛使用的手机、PDA、MP3、机顶盒都属于嵌入式系统设备;而车载GPS系统、机器人也是属于嵌入式系统。图4.1展出了人们日常生活中形形色色的嵌入式产品。的确,嵌入式系统已经进入了人们生活的方方面面。

华清远见<嵌入式Linux应用开发班>培训教材

手机

PDA

车载GPS接收机

网际频宽管理器

智能通讯服务器

无线网络摄像机MP3

指纹系统

Internet

图4.1 生活中的嵌入式设备

4.1.2 嵌入式系统发展历史

嵌入式系统经过30年的发展历程,主要经历了4个阶段。

第1阶段是以单芯片为核心的可编程控制器形式的系统。这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单、价格低,因此以前在国内工业领域应用较为普遍,但是现在已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。

第2阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。其主要特点是:CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到一定的兼容性和扩展性;应用软件较专业化,用户界面不够友好。

第3阶段是以嵌入式操作系统为标志的嵌入式系统。其主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、支持多任务、支持网络应用、具备图形窗口和用户界面;具有大量的应用程序接口API,开发应用程序较简单;嵌入式应用软件丰富。

第4阶段是以Internet为标志的嵌入式系统。这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、

>培训教材

工业控制技术结合日益密切,嵌入式设备与Internet的结合将代表嵌入式系统的未来。

4.1.3 嵌入式系统的特点

(1)面向特定应用的特点。从前面图1.1中也可以看出,嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因此它通常都具有低功耗、体积小、集成度高等特点,并且可以满足不用应用的特定需求。

(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。

(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。

(4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘中。

(5)嵌入式开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备所处的环境往往是无人职守或条件恶劣的情况下,因此,其代码必须有更高的要求。

(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行再次开发。

4.1.4 嵌入式系统的体系结构

嵌入式系统作为一类特殊的计算机系统,一般包括以下3个方面:硬件设备、嵌入式操作系统和应用软件。它们之间的关系如图4.2所示。

硬件设备包括嵌入式处理器和外围设备。其中的嵌入式处理器(CPU)是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。如今,全世界嵌入式处理器已经超过1000多种,流行的体系结构有30多个系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最为广泛。

华清远见<嵌入式Linux应用开发班>培训教材

应用软件

嵌入式操作系统

硬件设备

嵌入式处理器外围设备

图4.2 嵌入式体系结构图

外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目前常用的嵌入式外围设备按功能可以分为存储设备(如RAM、SRAM、Flash等)、通信设备(如RS-232接口、SPI接口、以太网接口等)和显示设备(如显示屏等)3类。

常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash

存储器可以分为很多种类,其中根据掉电数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电

后数据不会丢失。人们通常所说的内存即指系统中的RAM。

RAM又可分为SRAM(静态存储器)和DRAM(动态存储器)。SRAM是利用双稳态触发器来保存信息的,只要不掉电,信息是不会丢失的。DRAM是利用MOS(金属氧化物半导

体)电容存储电荷来储存信息,因此必须通过不停的给电容充电来维持信息,所以DRAM的

成本、集成度、功耗等明显优于SRAM。

而通常人们所说的SDRAM是DRAM的一种,它是同步动态存储器,利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能提高系统表现,还能简化设计、

提供高速的数据传输。在嵌入式系统中经常使用。

EPROM、EEPROM都是ROM的一种,分别为可擦除可编程ROM和电可擦除ROM,但使用不是很方便。

Flash也是一种非易失性存储器(掉电不会丢失),它擦写方便,访问速度快,已大大取代了传统的EPROM的地位。由于它具有和ROM一样掉电不会丢失的特性,因此很多人称其为

Flash ROM。

嵌入式操作系统从嵌入式发展的第3阶段起开始引入。嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口(如图形界面、库函数API等),向下提供与硬件设备交互的接口(硬件驱动程序等),管理复杂的系统资源,同时,它还在系统实时性、

>培训教材

硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点。

应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于嵌入式系统自身的特点,决定了嵌入式应用软件不仅要求做到准确性、安全性和稳定性等方面需要,而且还要尽可能地进行代码优化,以减少对系统资源的消耗,降低硬件成本。

4.1.5 几种主流嵌入式操作系统分析

1.嵌入式Linux

嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。这与它自身的优良特性是分不开的。

嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如下所示。

?改善的内核结构

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

?提高的系统实时性

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

嵌入式Linux同Linux一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux的主要版本如表4.1所示。

表4.1 嵌入式Linux主要版本

版本简单介绍

μCLinux 开放源码的嵌入式Linux的典范之作。它主要是针对目标处理器没有存储管理单元MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备的支持,并提供标准丰富的API

RT-Linux 由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用Embedix 根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux

华清远见<嵌入式Linux应用开发班>培训教材

系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案

XLinux 采用了“超字元集”专利技术,使Linux内核不仅能与标准字符集相容,还涵盖了12个国家和地区的字符集。因此,XLinux在推广Linux的国际应用方面有独特的优势

PoketLinux 它可以提供跨操作系统并且构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台

红旗嵌入式Linux 由北京中科院红旗软件公司推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。目前,中科院计算机研究所自行开发的开放源码的嵌入式操作系统——Easy Embedded OS(EEOS)也已经开始进入实用阶段了

为了不失一般性,本书说所用的嵌入式Linux是标准内核裁减的Linux,而不是上表中的任何一种。

2.VxWorks

VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率最高的嵌入式操作系统。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。另外VxWorks提供的多任务机制,对任务的控制采用了优先级抢占(Linux 2.6内核也采用了优先级抢占的机制)和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。另外VxWorks具有高度的可靠性,从而保证了用户工作环境的稳定。同时,VxWorks还有很完备强大的集成开发环境,这也大大方便了用户的使用。

但是,由于VxWorks的开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。同时,由于VxWorks的源码不公开,造成它部分功能的更新(如网络功能模块)滞后。

3.QNX

QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一,它具有独一无二的微内核实时平台,是建立在微内核和完全地址空间保护基础之上的,它同样具有实时性强、稳定可靠的优点。

4.Windows CE

WINDOWS CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。它是精简的Windows 95。Windows CE的图形用户界面相当出色。Windows CE具有模块化、结构化和基干Win32应用程序接口以及与处理器无关等特点。它不仅继承了传统的Windows图形界面,并且用户在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual++等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数Windows上的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。但与VxWorks相同,WindowsCE也是比较昂

>培训教材

华清远见<嵌入式Linux 应用开发班>培训教材

贵的。

5.Palm OS

Paml OS 在PDA 和掌上电脑有着很大的用户群。Plam OS 最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的可操作性。

4.2 ARM 处理器硬件开发平台

4.2.1 ARM 处理器简介

ARM 是一类嵌入式微处理器,同时也是一个公司的名字。ARM 公司于1990年11月成立于英国剑桥,它是一家专门从事16/32位RISC 微处理器知识产权设计的供应商。ARM 公司本身不直接从事芯片生产,而只是授权ARM 内核,再给生产和销售半导体的合作伙伴,同时也提供基于ARM 架构的开发设计技术。世界各大半导体生产商从ARM 公司处购买其设计的ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM 微处理器芯片进入市场。

ARM 公司从成立至今,在短短几十年的时间就占据了75%的市场份额,如今,ARM 微处理器及技术的应用几乎已经深入到各个领域。采用ARM 技术的微处理器现在已经遍及各类电子产品,汽车、消费娱乐、影像、工业控制、海量存储、网络、安保和无线等市场。到2001年就几乎已经垄断了全球RISC 芯片市场,成为业界实际的RISC

芯片标准。图4.3列举了使用ARM 微处理器的公司名称。

图4.3 采用ARM 微处理器的公司

ARM的成功,一方面得益于它独特的公司运作模式,另一方面,当然来自于ARM处理器自身的优良性能。ARM处理器有如下特点。

?体积小、低功耗、低成本、高性能。

?支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。

?大量使用寄存器,指令执行速度更快。

?大多数数据操作都在寄存器中完成。

?寻址方式灵活简单,执行效率高。

?指令长度固定。

小知识常见的CPU指令集分为CISC和RISC两种。

CISC(Complex Instruction Set Computer)是“复杂指令集”。自PC机诞生以来,32位以前的处理器都采用CISC指令集方式。由于这种指令系统的指令不等长,因此指令的数目非常多,编程和设计处理器时都较为麻烦。但由于基于CISC指令架构系统设计的软件已经非常普遍了,所以包括Intel、AMD等众多厂商至今使用的仍为CISC。

RISC(Reduced Instruction Set Computing)是“精简指令集”。研究人员在对CISC指令集进行测试时发现,各种指令的使用频度相当悬殊,其中最常使用的是一些比较简单的指令,它们仅占指令总数的20%,但在程序中出现的频度却占80%。RISC正是基于这种思想提出的。采用RISC指令集的微处理器处理能力强,并且还通过采用超标量和超流水线结构,大大增强并行处理能力。

4.2.2 ARM体系结构简介

1.ARM微处理器工作状态

ARM微处理器的工作状态一般有两种,并可在两种状态之间切换。

?第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。

?第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

2.ARM体系结构的存储格式

?大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

?小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

3.ARM处理器模式

ARM微处理器支持7种运行模式,分别如下。

?用户模式(usr):ARM处理器正常的程序执行状态。

?快速中断模式(fiq):用于高速数据传输或通道处理。

?外部中断模式(irq):用于通用的中断处理。

?管理模式(svc):操作系统使用的保护模式。

>培训教材

?数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

?系统模式(sys):运行具有特权的操作系统任务。

4.2.3 ARM9体系结构

1.ARM微处理器系列简介

ARM微处理器系列主要特点及其主要应用领域如表4.2所示。

表4.2 ARM微处理器系列

2.ARM9主要特点

ARM处理器凭借它的低功耗、高性能等特点,被广泛应用于个人通信等嵌入式领域,而ARM7也曾在中低端手持设备中占据了一席之地。然而,ARM7的处理性能逐渐无法满足人们日益增长的高性能功能需求的处理,它开始退出主流应用领域,取而代之的是性能更加强大的ARM9系列处理器。

华清远见<嵌入式Linux应用开发班>培训教材

新一代的ARM9处理器,通过全新的设计,能够达到两倍以上于ARM7处理器的处理能力。它的主要特点如下所述。

(1)5级流水线

ARM7处理器采用的3级流水线设计,而ARM9则采用5级流水线设计,如图4.4所示。

图4.4 ARM7与ARM9流水线比较

通过使用5级流水线机制,在每一个时钟周期内可以同时执行5条指令。这样就大大提高了处理性能。在同样的加工工艺下,ARM9处理器的时钟频率是ARM7的1.8~2.2倍。

(2)采用哈佛结构

首先读者需要了解什么叫哈佛结构?在计算机中,根据计算机的存储器结构及其总线连接形式,计算机系统可以被分为冯·诺依曼结构和哈佛结构,其中冯·诺依曼结构共用数据存储空间和程序存储空间,它们共享存储器总线,这也是以往设计时常用的方式;而哈佛结构则具有分离的数据和程序空间及分离的访问总线。所以哈佛结构在指令执行时,取址和取数可以并行,因此具有更高的执行效率。ARM9采用的就是哈佛结构,而ARM7采用的则是冯·诺依曼结构。如图4.5和图4.6分别体现了冯·诺依曼结构和哈佛结构的数据存储方式。

图4.5 冯·诺依曼结构图4.6 哈佛结构

由于在RISC架构的处理器中,程序中大约有30%的指令是Load-Store指令,而采用哈佛结构大大提升了这两个指令的执行速度,因此对提高系统效率的贡献是非常明显的。

(3)高速缓存和写缓存的引入

由于在处理器中,一般处理器速度远远高于存储器访问速度,那么,如果存储器访问成

>培训教材

华清远见<嵌入式Linux 应用开发班>培训教材

为系统性能的瓶颈,则处理器再快也都毫无作用。在这种情况下,高速缓存(Cache )和写缓存(Write Buffer )可以很好地解决这个问题,它们存储了最近常

用的代码和数据,以供CPU 快速存储,如图4.7所示:

图4.7 ARM9的高速缓存和读缓存

(4)支持MMU

MMU 是内存管理单元,它把内存以“页(page )”为单位来进行处理。一页内存是指一个具有一定大小的连续的内存块,通常为4096B 或8192B 。操作系统为每个正在运行的程序建立并维护一张被称为进程内存映射(Process Memory Map )的表,表中记录了程序可以存取的所有内存页以及它们的实际位置。

每当程序存取一块内存时,它会把相应的虚拟地址(virtual address )传送给MMU ,而MMU 会在PMM 中查找这块内存的实际位置,也就是物理地址(physical address ),物理地址可以在内存中或磁盘上的任何位置。如果程序要存取的位置在磁盘上,就必须把包含该地址的页从磁盘上读到内存中,并且必须更新PMM 以反映这个变化(这被称为pagefault ,即页错)。MMU 的实现过程如图4.8所示。

只有拥有了MMU 才能真正实现内存保护。例如当A 进程的程序试图直接访问属于B 进程的虚拟地址中的数据,那么MMU 会产生一个异常(Exception )来阻止A 的越界操作。这样,通过内存保护,一个进程的失败并不会影响其他进程的运行,从而增强了系统的稳定性,如图4.9所示。ARM9也正是因此拥有了MMU ,比ARM7有了更强的稳定性和可靠性。

图4.8 MMU的实现过程

图4.9 内存保护示意图

4.2.4 S3C2410处理器详解

本书所采用的硬件平台是深圳优龙科技有限公司的开发板FS2410(如图4.10所示),它的中央处理器是三星公司的S3C2410X。S3C2410X是使用ARM920T核、采用0.18um工艺CMOS标准宏单元和存储编译器开发而成的。由于采用了由ARM公司设计的16/32位ARM920T RISC处理器,因此S3C2410X实现了MMU和独立的16KB指令和16KB数据哈佛结构的缓存,且每个缓存均为8个字长度的流水线。它的低功耗、精简而出色的全静态设计特别适用于对成本和功耗敏感的领域。

S3C2410X提供全面的、通用的片上外设,大大降低系统的成本,下面列举了S3C2410X 的主要片上功能。

? 1.8V ARM920T内核供电,1.8V/2.5V/3.3V存储器供电;

?16KB指令和16KB数据缓存的MMU内存管理单元;

?外部存储器控制(SDRAM控制和芯片选择逻辑);

?提供LCD控制器(最大支持4K色的STN或256K色TFT的LCD),并带有1个通道的LCD专用DMA控制器;

?提供4通道DMA,具有外部请求引脚;

>培训教材

?提供3通道UART(支持IrDA1.0,16字节发送FIFO及16字节接收FIFO)/2通道SPI接口;

?提供1个通道多主IIC总线控制器/1通道IIS总线控制器;

?兼容SD主机接口1.0版及MMC卡协议2.11版;

?提供2个主机接口的USB口/1个设备USB口(1.1版本);

?

4通道PWM定时器/1通道内部计时器;

图4.10 优龙FS2410开发板实物图

?提供看门狗定时器;

?提供117个通用I/O口/24通道外部中断源;

?提供电源控制不同模式:正常、慢速、空闲及电源关闭模式;

?提供带触摸屏接口的8通道10位ADC;

?提供带日历功能的实时时钟控制器(RTC);

?具有PLL的片上时钟发生器。

S3C2410X系统结构图如图4.11所示。

下面依次对S3C2410X的系统管理器、NAND Flash引导装载器、缓冲存储器、时钟和电源管理及中断控制进行简要讲解,要注意,其中所有模式的选择都是通过相关寄存器特定值的设定来实现的,因此,当读者需要对此进行修改时,请参阅三星公司提供S3C2410X用户手册。

华清远见<嵌入式Linux应用开发班>培训教材

1.系统管理器

S3C2410X支持小/大端模式,它将系统的存储空间分为8个组(bank),其中每个bank 有128MB,总共为1GB。每个组可编程的数据总线宽度为8/16/32位,其中bank0~bank5具有固定的bank起始地址和结束地址,用于ROM和SRAM。而bank6和bank7是大小可变的,用于ROM、SRAM或SDRAM。这里,所有的存储器bank都具有可编程的操作周期,并且支持掉电时的SDRAM自刷新模式和多种类型的引导ROM。

2.NAND Flash引导装载器

S3C2410X支持从NAND flash存储器启动,其中,开始的4KB为内置缓冲存储器,它

>培训教材

图4.11 S3C2410X系统结构图

在启动时将被转载(装在or转载)到SDRAM中并执行引导,之后该4KB可以用作其他

华清远见<嵌入式Linux应用开发班>培训教材

用途。

小知识Flash是一种非易失闪存技术。Intel于1988年首先开发出NOR Flash技术之后,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年东芝公司发布了NAND Flash 结构,强调降低每比特的成本、更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash的特点是芯片内执行(Execute In Place),这样应用程序可以直接在flash闪存内运行,而不必再把代码读到系统RAM中。NOR Flash的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

NAND Flash结构能提供极高的单元密度,可以达到高存储密度,NAND读和写操作采用512字节的块,单元尺寸几乎是NOR器件的一半,同时由于生产过程更为简单,大大降低了生产的成本。NAND闪存中每个块的最大擦写次数是100万次,是NOR Flash的10倍,这些都使得NAND Flash越来越受到人们的欢迎。

同时,S3C2410X也支持从外部nGCS0片选的NorFlash启动,如在优龙的开发板上将JP1跳线去掉就可从NorFlash启动(默认从NAND Flash启动)。在这两种启动模式下,各片选的存储空间分配是不同的,如图4.12所示。

图4.12 S3C2410两种启动模式地址映射

>培训教材

3.缓冲存储器

S3C2410X是带有指令缓存(16KB)和数据缓存(16KB)的联合缓存装置,一个缓冲区能够保持16字的数据和4个地址。

4.时钟和电源管理

S3C2410X采用独特的时钟管理模式,它具有PLL(相位锁定环路,用于稳定频率)的芯片时钟发生器,而在此,PLL又分为UPLL和MPLL。其中UPLL时钟发生器用于主/从USB操作,MPLL时钟发生器用于产生主时钟,使其能在在极限频率203MHz(1.8V)上运行。

S3C2410X的电源管理模式又分为正常,慢速,空闲和掉电4种模式。其中慢速模式为不带PLL的低频时钟模式,空闲模式始终为CPU停止模式,掉电模式为所有外围设备全部掉电仅内核电源供电模式。

另外,S3C2410X对片内的各个部件采用独立的供电方式。

? 1.8V的内核供电。

? 3.3V的存储器独立供电(通常对SDRAM采用3.3V,对移动SDRAM采用1.8/2.5V)。

? 3.3V的VDDQ。

? 3.3V的I/O独立供电。

由于在嵌入式中电源管理非常关键,它直接涉及到功耗等各方面的系统性能,而S3C2410X的电源管理中独立的供电方式和多种模式可以有效地处理系统的不同状态,从而达到最优的配置。

5.中断控制

中断处理在嵌入式的开发中非常重要,尤其对于从单片机转入到嵌入式的读者来说,对比单片机中简单的中断模式而言,ARM中的中断处理要复杂得多。如果读者无相关基础,建议先熟悉相关的基础概念再进行下一步学习。

首先给出了一般的中断处理流程,如图4.13所示。

华清远见<嵌入式Linux应用开发班>培训教材

>培训教材

时间

后台程序

中断服务程序 恢复

9个通用异步串断、2个USB 触发模式。另图中其中);SUBMASK (INTSUBMSK 寄存器)和MASK (INTMSK 寄存器)用于屏蔽某些中断。

图中的“Request sources (with sub –register )”表示的是INT_RXD0、INT_TXD0等11个中断源,它们不同于“Request sources (without sub –register )”的操作在于:

(1)“Request sources (without sub –register )”中的中断源被触发之后,SRCPND 寄存器中相应位被置1,如果此中断没有被INTMSK 寄存器屏蔽、或者是快中断(FIQ )的话,它将被进一步处理。

Request sources

FIQ

图4.14 S3C2410X 中断处理流程

(2)对于“Request sources(with sub –register)”中的中断源被触发之后,SUBSRCPND 寄存器中的相应位被置1,如果此中断没有被SUBMSK寄存器屏蔽的话,它在SRCPND寄存器中的相应位也被置1。在此之后的两者的处理过程一样了。

接下来,在SRCPND寄存器中,被触发的中断的相应位被置1,等待处理。

(1)如果被触发的中断中有快中断(FIQ)——MODE(INTMOD寄存器)中为1的位对应的中断,则CPU的FIQ中断函数被调用。注意:FIQ只能分配一个,即INTMOD中只能有一位被设为1。

(2)对于一般中断IRQ,可能同时有几个中断被触发,未被INTMSK寄存器屏蔽的中断经过比较后,选出优先级最高的中断,然后CPU调用IRQ中断处理函数。中断处理函数可以通过读取INTPND(标识最高优先级的寄存器)寄存器来确定中断源是哪个,也可以读INTOFFSET寄存器来确定中断源。

4.3 嵌入式软件开发流程

4.3.1 嵌入式系统开发概述

由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图4.15所示。

在系统总体开发中,由于嵌入式系统与硬件依赖程序非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成品,但能大大提高产品的性能和可靠性。

再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。本书在4.1.5节对各种不同的嵌入式操作系统进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

华清远见<嵌入式Linux应用开发班>培训教材

嵌入式系统设计与应用

嵌入式系统设计与应用第五章程序设计与分析(1) 西安交通大学电信学院 任鹏举

本章主要内容 Software Design Cycle ●嵌入式软件中的组件(状态机 、循环缓存器、队列) ●编程模型,如数据流和控制图●编译方法介绍 ●根据性能、大小和功耗来分析 和优化程序 ●如何测试程序以验证其正确性

1 嵌入式程序组件 ●状态机(State machine) 用变量来表示内部的状态,根据输入完成状态的转移交通灯控制、CPU design controller ●循环缓冲区(Circular buffer) I/O input buffer ●队列(Queue)

状态机(1) ● 反应系统(reactive system ):响应外部事件的系统。 ●外部输入是间歇到达● 适合使用状态机描述 ● 有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 ●Moore 机:● Mealy 机:输出只由当前状态确定 输出依赖于当前状态和输入

状态机(2) 例子:一个简单的座位安全带控制器 idle buzzer seated belted 未入座/-入座/定时器启动 未系安全带且定时器未超时/- 未系安全带/定时器启动系好安全带/-系好安全带/蜂鸣器关闭 定时器超时/蜂鸣器启动 未入座/-未入座/蜂鸣器关闭输入/输出-= 无动作

状态机(3) #define IDLE 0#define SEATED 1#define BELTED 2#define BUZZER 3switch (state) { case IDLE: if (seat) { state = SEATED; timer_on = TRUE; } break; case SEATED: if (belt) state = BELTED; else if (timer) state = BUZZER; break; case BELTED: if (!seat) state = IDLE; else if (!belt) state = SEATED; break; case BUZZER: if (belt) state = BELTED; else if (!seat) state = IDLE; break; } Inputs :seat, belt, timer Outputs: buzzer

(完整word版)嵌入式系统设计与应用

嵌入式系统设计与应用 本文由kenneth67贡献 ppt文档可能在W AP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 课程名称:课程名称:嵌入式系统设计与应用 总学时:其中讲课36学时,上机实践环节12 36学时12学时总学时:其中讲课36学时,上机实践环节12学时教材:嵌入式系统设计教程》教材:《嵌入式系统设计教程》电子工业出版社马洪连参考书:参考书:1、《嵌入式系统开发与应用》北航出版社、田泽编著. 嵌入式系统开发与应用》北航出版社、田泽编著. 2、《ARM体系结构与编程》清华大学出版社杜春雷编著ARM体系结构与编程体系结构与编程》嵌入式系统设计与实例开发—ARM ARM与C/OS3、《嵌入式系统设计与实例开发ARM与μC/OS-Ⅱ》清华大学出版社王田苗、魏洪兴编著清华大学出版社王田苗、ARM嵌入式微处理器体系结构嵌入式微处理器体系结构》4、《ARM嵌入式微处理器体系结构》北航出版社、马忠梅等著. 北航出版社、马忠梅等著. 张石.ARM嵌入式系统教程嵌入式系统教程》5、张石.《ARM嵌入式系统教程》.机械工业出版2008年社.2008年9月 1 课程内容 绪论:绪论: 1)学习嵌入式系统的意义2)高校人才嵌入式培养情况嵌入式系统设计(实验课)3)嵌入式系统设计(实验课)内容安排 第1章嵌入式系统概况 1.1 嵌入式系统的定义1.2 嵌入式系统的应用领域及发展趋势1.3 嵌入式系统组成简介 第2章嵌入式系统的基本知识 2.1 2.2 2.3 嵌入式系统的硬件基础嵌入式系统的软件基础ARM微处理器的指令系统和程序设计ARM微处理器的指令系统和程序设计 2 第3章 3.1 3.2 3.3 基于ARM架构的嵌入式微处理器基于ARM架构的嵌入式微处理器ARM 概述嵌入式微处理器的组成常用的三种ARM ARM微处理器介绍常用的三种ARM 微处理器介绍 第4章 4.1 4.2 4.3 4.4 4.5 4.6 嵌入式系统设计 概述嵌入式系统的硬件设计嵌入式系统接口设计嵌入式系统人机交互设备接口嵌入式系统的总线接口和网络接口设计嵌入式系统中常用的无线通信技术 3 第5章嵌入式系统开发环境与相关开发技术 5.1 5.2 5.3 5.4 5.5 6.1 6.2 6.3 6.4 概述嵌入式系统的开发工具嵌入式系统调试技术嵌入式系统开发经验嵌入式系统的Bootloader Bootloader技术嵌入式系统的Bootloader技术μC/OS-II操作系统概述C/OS-II操作系统概述ADS开发环境ARM ADS开发环境C/OS-II操作系统在ARM系统中的移植操作系统在ARM μC/OS-II操作系统在ARM系统

arm嵌入式系统基础教程课后答案.doc

arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】 /p> 1 、举出3 个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微控制器(microcontroller unit, mcu) 嵌入式dsp 处理器(embedded digital signal processor, edsp) 嵌入式片上系统(system on chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实 时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了 开发周期。再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务 是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结 束项目 4 个阶段。识别需求阶段的主要任务是确认需求,分析投资 收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定 期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系 统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行 的初期,在客户和开发团队都还未投入大量资源之前,风险的评估

嵌入式系统设计与应用复习资料.docx

嵌入式系统设计与应用复习资料 (一)?单项选择题: 1. 下面哪个系统属于嵌入式系统。 ( 八、“天河一号”计算机系统 C 、联想S10±网木 D ) B 、联想T400笔记本计算机 D 、联想OPhone 手机 2. 软硕件协同设计方法与传统设计方法的最大不同Z 处在于(B )。 A 、软硬件分开描述 C 、协同测试 3. 卜?面关于哈佛结构描述正确的是(A A 、程序存储空间与数据存储空间分离 C 、程序存储空间与数据存储空间合并 4. 下面哪一种工作模式不属于ARM 特权模式 A 、用户模式 B 、系统模式 C 、 5. ARM7TDM1的工作状态包括(D )。 A 、测试状态和运行状态 C 、就绪状态和运行状态 6. USB 接口移动硬盘最合适的传输类型为( A 、控制传输 B 、批量传输 C 、 7. 下而哪一种功能单元不属于I/O 接口电路。(D ) A 、USB 控制器 B 、UART 控制器 C 、以太网控制器 &下面哪个操作系统是恢入式操作系统。(B ) As Red-hat Linux B 、 PCLinux C 、 Ubuntu Linux D 、 SUSE Linux 9. 使用Host-Target 联合开发嵌入式应用,(B )不是必须的。 A 、宿主机 B 、银河麒麟操作系统 C 、目标机 D 、交叉编译器 10. 下面哪个系统不属于嵌入式系统(D )。 A 、MP3播放器 B 、GPS 接收机 C 、“银河玉衡”核心路由器 D 、“犬河一号”计算机系统 11. 在嵌入式系统设计中,嵌入式处理器选型是在进行(C )吋完成。 A 、需求分析 B 、系统集成 C 、体系结构设计 D 、软便件设计 12. 下面哪一类嵌入式处理器最适合于用于工业控制(B )。 A 、嵌入式微处理器 B 、微控制器 C 、DSP D 、以上都不合适 13. 关于ARM 了程序和Thumb 了程序互相调用描述正确的是(B )。 A 、 系统初始化Z 后,ARM 处理器只能工作在一种状态,不存在互相调用。 B 、 只要遵循一定调用的规则,Thumb 子程序和ARM 子程序就可以互相调用。 C 、 只要遵循一定调用的规则,仅能Thumb 子程序调用ARM 子程序。 D 、 只耍遵循一定调用的规则,仅能ARM 子程序调用Thumb 子程序。 14. 关于ARM 处理器的异常的描述不正确的是(C )。 A 、复位属于异常 B 、除数为零会引起异常 B 、软硬件统一描述 D 、协同验证 B 、存储空间与10空间分离 D 、存储空间与10空间合并 (A )0 软中断模式 D 、FTQ 模式 B 、挂起状态和就绪状态 D 、ARM 状态和Thumb 状态 B )0 中断传输 D 、等时传输 D 、LED

ARM嵌入式系统开发与应用课后题答案与习题

课后题答案:第一章 1.写出下列英文缩写的英文原文及中文含义。 RAM随机存储器 DRAM动态随机存储器 ROM只读存储器 PROM可编程只读存储器 EPROM可插除可编程只读存储器 CANCAN总线 RTOS实时操作系统 SOPC片上可编程系统 ICE硬件调试器 FI快速终端请求 EEPROM电可插除可编程只读存储器 API应用程序接 DMA直接内存存取 RISC精简指令集计算机 SPI串行万维指令 MMU存储管理单元 UART异步接受发送装置 ARM先进RISC存储器 SWI软件终端指令 2、什么是嵌入式系统? P3 嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。 3、是比较嵌入式系统与通用PC的区别。P3 (1)嵌入式系统是专用的计算机系统,而PC是通用的计算机系统。 (2)技术要求不同,通用PC追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。(3)发展方向不同,PC追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。 4、嵌入式体统有哪些部分组成?简单说明各部分的功能与作用 (1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他I/O 接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(RAM和ROM等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在ROM中。 (2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。一般包括硬件抽象层(Hardware Abstract Layer,HAL)和板级支持包(Board Support Package,BSP)。(3)软件层由实时操作系统(Real Time Operating System,RTOS)、文件系统、图形用户接口(Graphical User Interfaces,GUI)、网络组件组成。 (4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人机界面。 5、什么是可编程片上系统?在技术上它有哪些特点? 用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC,特点如下:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用一个以上的嵌入式处理器/DSP;外部可对芯片进行编程;主要采用第三方IP进行设计;足够的片上可编程逻辑资源;具有处理器调试接口和FPGA编程接口;可能包含部分可编程模拟电路;单芯片,低功耗,微封装;微处理器/dsp以ip核的形式方便的嵌入在FPGA中。 6、什么是嵌入式外围设备?简要说明嵌入式外围设备是如何分类的。 嵌入式外围设备,是指在一个嵌入式系统硬件构成中,除了核心控制部件-----嵌入式微处理器/DSP 以外的各种存储器,输入/输出接口、人机接口的显示器/键盘、串行通信接口等。根据外围设备的功能可分为以下五类:存储器类型;通信接口;输入/输出设备;设备扩展接口;电源及辅助设备。 7、.简述嵌入式系统软件的组成和功能? 组成:应用层,OS层,BSP层 11、什么是软硬件协同设计?他最大的特点是什么?嵌入式系统开发为什么可以采用这种方法进行。嵌入式是系统设计时使用一组物理硬件和软件来完成所需功能的过程。系统是指任何由硬件,软件或者两者的结合来构成的功能设备。由于嵌入式系统是一个专用系统,所以在嵌入式产品的设计过程中,软件设计和硬件设计是紧密结合的、相互协调的;特点是:在设计时从系统功能的是先考虑,把实现时的软硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。这样既可最大限度的利用有效资源,缩短开发周期,又能取得更好的设计效果。 第二章 1、CISC与RISC分别指什么?说明他们各自有什么特点,应用领域和发展趋势如何? 复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。 RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。 RISC与CISC的主要特征对比 比较内容 CISC RISC 指令系统复杂,庞大简单,精简 指令数目一般大于200 一般小于100 指令格式一般大于4 一般小于4 寻址方式一般大于4 一般小于4 指令字长不固定等长 可访存指令不加限制只有LOAD/STORE指令 各种指令使用频率相差很大相差不大

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式系统开发与应用教程 期末考试

一、选择题 1、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 2、GET伪指令的含义是( A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 3、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为( C)。 A、0x00 B、0x87 C、0x65 D、0x61 4、μCOS-II操作系统不属于( C)。 A、RTOS B、占先式实时操作系统 C、非占先式实时操作系统 D、嵌入式实时操作系统 5、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 6、寄存器R13除了可以做通用寄存器外,还可以做(C )。 A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 7、FIQ中断的入口地址是( A)。 A、0x0000001C B、0x00000008 C、0x00000018 D、0x00000014 8、ARM指令集和Thumb指令集分别是(D )位的。 A. 8位,16位 B. 16位,32位 C. 16位,16位 D. 32位,16位 9、ARM寄存器组有(D )个寄存器。 A、7 B、32 C、6 D、37 10、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x28 C. 0x2008 1.和PC机系统相比,下列哪个不是嵌入式系统独具的特点( C ) A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 2.UCOS-II操作系统属于( B ) A、顺序执行系统 B、占先式实时操作系统 C、非占先式实时操作系统 D、分时操作系统 3.ARM公司是专门从事( A ) A、基于RISC技术芯片设计开发 B、ARM芯片生产 C、软件设计 D、ARM芯片销售 4.ARM9系列微处理器是( C ) A、三级流水线结构 B、四级流水线结构 C、五级流水线结构 D、六级流水线结构 5.在所有工作模式下,( A )都指向同一个物理寄存器,即各模式共享 A、R0-R7 B、R0-R12 C、R8-R12 D、R13,R14 6.当异常发生时,寄存器( A )用于保存CPSR的当前值,从异常退出时则可由它来恢复CPSR. A、SPSR B、R13 C、R14 D、R15 7.能实现把立即数0X3FF5000保存在R0中的指令是( A ) A、LDR R0, = 0X3FF5000 B、LDR R0, 0X3FF5000 C、MOV R0, 0X3FF5000 D、MOV R0, =0X3FF5000

嵌入式系统设计与应用-西安交通大学教师个人主页

嵌入式系统设计与应用第六章进程和操作系统(3)西安交通大学电信学院孙宏滨 i n S u n i 'a n J i a o t o n g U i v e r s i t y I n t e r n a l T e a c h i n g U s e O n l y

● 我们该如何评估调度策略?● 能满足所有截止时限 ● CPU 利用率---CPU 执行有用工作所占的时间比例● 调度开销---做调度决策所需的时间 i n S u n i 'a n J i a o t o n g U i v e r s i t y I n t e r n a l T e a c h i n g U s e O n l y

● 分配优先级主要有两种方法:● 静态优先级:在整个执行过程中优先级始终不变● 动态优先级:在执行过程中优先级发生变化 i n S u n i 'a n J i a o t o n g U i v e r s i t y I n t e r n a l T e a c h i n g U s e O n l y

● 单调速率调度(Rate-Monotonic Scheduling, RMS ):首先为实时操作系统开发的调度策略之一,直至现在仍然被广泛使用。● RMS 属于静态调度策略。事实证明,固定优 先级的做法在许多情况下都足以有效地调度进程。● RMS 的理论基础是单调速率分析(Rate Monotonic Analysis, RMA )。i n S u n i 'a n J i a o t o n g U i v e r s i t y I n t e r n a l T e a c h i n g U s e O n l y

嵌入式系统原理与应用习题解析

嵌入式系统原理与应用 习题解析 文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]

1.8 练习题P14 1.选择题 (1)A 说明:嵌入式系统的发展趋势表现在以下几方面: 1.产品种类不断丰富,应用范围不断普及 2.产品性能不断提高 3.产品功耗不断降低,体积不断缩小 4.网络化、智能化程度不断提高 5.软件成为影响价格的主要因素 (2)D 说明:常见的嵌入式操作系统: VxWorks,Windows CE、uC/OS-II和嵌入式Linux。 (3)A 说明:VxWorks是美国WindRiver公司于1983年开发的一种32位嵌入式实时操作系统。 2.填空题 (1)嵌入式计算机 (2)微处理器外围电路外部设备 (3)板级支持包实时操作系统应用编程接口应用程序 (4)嵌入式处理器微控制器数字信号处理器 3.简答题 (1)简述嵌入式系统的定义和特点

答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 特点:专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。(2)简述计算机系统的发展历程 第一阶段大致在20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段; 第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统; 第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段; 第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。 (3)简述MCU和DSP的区别 MCU是微控制器,DSP是数字信号处理器。 MCU相当于小型的电脑,内部集成的CPU、ROM、RAM、I/O总线,所以集成度高是它的特点。 DSP是专用的信息处理器,内部的程序是对不同的机器和环境进行特别优化,所以处理速度是最快的。 2.4 练习题 1. 填空题 (1) ARM7 ARM9 ARM9E ARM10E ARM11

江苏科技大学通信专业嵌入式系统设计及应用_复习大纲

嵌入式系统设计复习 题型: 1、填空,15分左右 2、选择,30分左右 3、简答题40分左右 4、综述15分左右 第一章嵌入式系统概述 提纲: 1、掌握嵌入式系统的定义 2、了解嵌入式系统的一般组成 嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序 (嵌入式系统一般由嵌入式计算机和执行部件组成。其中嵌入式计算机是整个嵌入式系统的核心,主要包括硬件层、中间层、系统软件层以及应用软件层) 知识点: 1、嵌入式系统的定义与特点 定义:是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统 特点:软件硬件可裁剪 ①专用性:嵌入式系统具有特定的功能,用于特定的任务; ②低成本:嵌入式系统极其关注成本; ③低功耗:嵌入式系统大都有功耗的要求; ④高实时性OS; ⑤嵌入式系统的运行环境广泛; ⑥嵌入式系统的软件通常要求固态化存储; ⑦嵌入式系统的软件、硬件可靠性要求更高; 2.RISC指令系统的特点 答:指令系统:RISC设计者把上要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来实现。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。 存储器操作:RISC对存储器操作有限制,使控制简单化 程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计 中断:RISC机器在一条指令执行的适当地方可以响应中断 CPU:由于RISC CPU包含少的单元电路,因而面积小、功耗低 设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术易用性:RISC微处理器结构简单,指令规整,性能容易把握,易学易用 应用范围:由于RISC指令系统的确定与特定的应用领域有关,所以RISC机器更适合于嵌入式应用 3、嵌入式系统由硬件与软件组成,其中软件的组成 答:由实时多任务操作系统、文件系统、图形用户界面接口、网络系统及通用组件模块组成 4、嵌入式系统的运行可靠性指标

嵌入式系统设计教程(第2版)简答题答案.pdf

第一章嵌入式系统概论 1.嵌入式系统的定义是什么? 答:以应用为中心,以计算机技术为基础,硬件、软件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2.简述嵌入式系统的主要特点。 答:(1)功耗低、体积小、具有专用性 (2)实时性强、系统内核小 (3)创新性和高可靠性 (4)高效率的设计 (5)需要开发环境和调试工具 3. 嵌入式系统一般可以应用到那些领域? 答:嵌入式系统可以应用在工业控制、交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测和机器人等方面。 4. 简述嵌入式系统的发展趋势 答:(1)嵌入式应用的开发需要强大的开发工具和操作系统的支持 (2)连网成为必然趋势 (3)精简系统内核、算法,设备实现小尺寸、微功耗和低成本 (4)提供精巧的多媒体人机界面 (5)嵌入式软件开发走向标准化 5.嵌入式系统基本架构主要包括那几部分? 答:嵌入式系统的组织架构是由嵌入式处理器、存储器等硬件、嵌入式系统软件和嵌入式应用软件组成。嵌入式系统一般由硬件系统和软件系统两大部分组成,其中,硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件;软件系统包括操作系统和应用软件。 6.嵌入式操作系统按实时性分为几种类型,各自特点是什么? 答:(1)具有强实时特点的嵌入式操作系统。 (2)具有弱实时特点的嵌入式操作系统。 (3)没有实时特点的嵌入式操作系统。 第二章嵌入式系统的基础知识 1.嵌入式系统体系结构有哪两种基本形式?各自特点是什么? 答:冯诺依曼体系和哈佛体系。冯诺依曼体系结构的特点之一是系统内部的数据与指令都存储在同一存储器中,其二是典型指令的执行周期包含取指令TF,指令译码TD,执行指令TE,存储TS四部分,目前应用的低端嵌入式处理器。 哈佛体系结构的特点是程序存储器与数据存储器分开,提供了较大的数据存储器带宽,适用于数据信号处理及高速数据处理的计算机。

ARM的嵌入式Linux应用程序开发设计

ARM的嵌入式Linux应用程序开发设计 嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux 源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。1ARM处理器及开发板在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一 嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。 1 ARM处理器及开发板 在嵌入式领域,ARM已取得了极大的成功,造就了IP核商业化、市场化的神话。据统计,全球有103家巨型IT公司在采用ARM技术,20家最大的半导体,一商中有19家是ARM的用户。ARM系列芯片已经被广泛的应用于移动电活、手持式计算机以及各种各样的嵌入式应用领域,成为世界上销量最大的32位微处理器。ARM已成为业界实际的RISC芯片标准。 ARM系列处理器根据各自特点应用于不同领域。从应用的角度上ARM芯片选择的一般原则:MMU;处理器速度;内置存储器容量;USB接口;GPIO数量;中断控制器;IIS(integrate interface ofsound)音频接口;nWAIT信号; RTC(real timeclock);LCD控制器;PWM输出等各项指标。 本文使用的是ARM9,其性能远远高过ARM7。开发板使用的是广州斯道信息技术有限公司的开发板,中央处理器是三星公司的S3C2410。ARM9具有以下特点:5级流水线;采用哈佛结构;高速缓存和写缓存的引入;支持MMU。 2 嵌入式Linux系统 嵌入式操作系统是嵌入式应用软件的基础和开发平台,它的出现解决了嵌入式软件开发标准化的难题。嵌入式系统具有操作系统的最基本的功能。目前主流的嵌入式系统有以下儿种:Linux、VxWorks、QNX、Windows CE、Palm OS。 嵌入式Linux操作系统具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。 嵌入式Linux系统有很多种。本文使用的是Red Hat9操作系统。 在安装有Windows和Linux双系统的PC上,系统会以Linux的GRUB作为引导装入器来选择启动二者。此时若直接删除Linux分区,会导致系统无法启动

2019嵌入式课程设计-嵌入式系统设计与应用(第2版)-王剑-清华大学出版社

嵌入式系统课程设计计划 具体内容、进度安排及要求 (附课表,包含指导、答疑、上机的时间、地点,指导教师,学生班级,分组情况等)一、内容及要求: 通过本次课设,使学生了解嵌入式系统的特点,进一步理解和巩固课堂所学的嵌入式系统的基本理论和知识。掌握嵌入式系统的基本设计与分析方法,从而达到理论与实际相结合,并为今后从事嵌入式系统设计及其相关领域的各项工作打下坚实的基础。具体要求如下: 1、掌握嵌入式系统的硬件设计原理。 2、掌握嵌入式linux操作系统下的C语言应用程序设计技术 3、掌握嵌入式linux操作系统驱动程序设计技术 4、掌握嵌入式linux操作系统的移植技术 5、掌握嵌入式linux操作系统的交叉编译与动态调试技术 具体内容如下: (1)熟悉嵌入式硬件系统基础知识及基于Linux的应用开发环境的建立和程序设计方法 熟悉嵌入式硬件系统基础知识,熟悉嵌入式操作系统Linux的特点,了解Linux的主要模块及各自的功能。掌握虚拟机VMW ARE的使用方法,掌握通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试的全过程。了解BSP在嵌入式系统中位置及其作用。掌握在嵌入式操作系统Linux上搭建嵌入式应用开发环境的方法,熟悉Bootloader的使用方法。 (2)嵌入式操作系统Linux平台的编译移植搭建 安装嵌入式实验开发平台的BSP。根据嵌入式实验开发平台的特点和系统需求,利用VMARE环境配置Linux操作系统的特性和功能, 熟悉Bootloader的使用方法,使用TOOLCHAIN进行交叉编译、链接生成操作系统内核,生成系统映像文件ZImage。下载并运行编译好的Linux系统内核。对文件系统同样进行相关编译移植下载至嵌入式开发平台上。 (3)嵌入式数据库SQLITE与UI开发工具QT的掌握。 (4)根据所学理论知识和嵌入式硬件开发平台的具体情况,设计一个具有一定规模较复杂功能的嵌入式系统(如嵌入式系统设备驱动程序),一般来讲需要2个学生共同完成. (5)编写课设报告。课设报告要求: 1.要求使用A4纸打印,必须有封面和目录。封面内容有课设题目、班级、序号(两位)、姓名、指导教师、日期等内容。 2.课设内容一般应包含如下部分: ①课设名称、目的、要求、内容。 ②嵌入式系统a8开发硬件平台的基本概述。 ③嵌入式操作系统Linux配置、编译、移植的基本原理和过程及测试程序设计。 ④嵌入式数据库sqlite的移植过程及程序设计。 ⑤基于QT的数据库应用程序设计。 ⑥目标系统如嵌入式设备驱动程序的设计。 ⑦课设结果及分析。 ⑧收获、体会和建议。 二、进度安排: 1.嵌入式开发平台的熟悉(硬件设计环境和软件开发环境)(1天) 2.嵌入式操作系统Linux平台的编译移植搭建(1天) 3.嵌入式linux操作系统的交叉编译与动态调试(1天) 4.嵌入式数据库SQLITE的熟悉(1天)

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

嵌入式系统设计与应用课程设计报告

《嵌入式系统设计与应用》课程设计报告 专业: 班级: 姓名: 学号: 指导教师:

目录 一、设计目的 (3) 二、开发环境 (3) 三、设计任务及要求 (3) 四、实现过程 (3) 用户应用程序设计 (3) 服务器端程序 (3) 五、总结 (4)

一、设计目的 (1)、熟悉并掌握在Linux开发环境下C语言程序设计及编译方法、嵌入式系统;(2)、掌握嵌入式linux下基础网络编程:socket编程 (3)、独立编写客户机/服务器通信程序; 二、开发环境 (1) 编程环境:在Linux开发环境下设计及编译C语言程序。 (2) 硬件设备:PXA270开发板,PC机。 三、设计任务及要求 设计一套可远程调用求和函数并返回客户端的程序。 四、实现过程 用户应用程序设计 1.程序 int sum(); 2.程序 #include <> int sum(){ int i=1,sum=0; while(i<=100){ sum=sum+i; i++; } return sum; } 服务器端程序 /******************************* * 服务器端程序*

********************************/ #include #include #include <> #include <> #include <> #include <> #include <> #include #include “” main() { int sockfd,new_fd,numbytes; struct sockaddr_in my_addr; struct sockaddr_in their_addr; int sin_size,sum; char buff[100] ,temp[100]; sum=sum(); itoa(sum, temp, 10); ..\n"); ,100,0)==-1) { perror("send"); exit(1); } socket success! Sockfd=3; bind success; Listening... Hello!I am Client. (5)、在PC机上运行客户端程序 # ./ result:5050 五、总结 通过本次课程设计,让我熟悉并掌握在Linux开发环境下C语言程序设计及编译方法、嵌入式系统、明白了嵌套字的使用方法、嵌入式linux下基础网络编

关于嵌入式系统软件的全过程质量保证精

关于嵌入式系统软件的全过程质量保证 质量是产品的生命 当今随着软、硬件技术的发展,嵌入式系统广泛应用于航空航天、国防军事、电子通信等行业,其中软件也越来越复杂。而这些领域应用特点,决定了嵌入式系统往往是高安全、任务关键的系统,软件的微小瑕疵就可能严重威胁到生命和国家的安全、天文数字的巨额财产损失。这就使得保证嵌入式软件的质量和可靠性,变得至关重要。而在这些领域,对产品质量从来就保持着高度的重视,有将“质量视为产品的生命”的传统。这样,相关行业的高层管理人员和开发人员对于软件的质量也逐渐提高了重视程度。近年来,在组织上,建立了完善的软件测试体系;在开发和测试方法上,建立了中国的软件过程成熟度的评价体系GJB5OO0在自动化工具方面,投入了大量的经费和人员在测试设备的开发、购置和建设方面。应该说,软件作为嵌入式产品主要的组成部分之一,对其质量的重视是目前相关行业的一个共识。 IBM Rational多年来在软件工程和质量保证方面积累了丰富的方法和经验。本文依据部分嵌入式开发机构对软件质量保证工作的一些理解,分析相应开发机构工作中可能的问题,并提出以RUP为核心的全过程质量管理的思想和具体的实现方式,提出不同单位的过程改进方法,以一种渐进的方式,从简单的工作开始,逐渐深入地改进组织的软件质量管理水平。 定义质量 对于任何一个组织,定义共同的对质量的理解是重要的第一步。软件开发组织经常按照一种不精确的、概括的质量观念来运转。 在IBM Rational统一过程中,质量定义如下: 满足或超出认定的一组需求; 使用经过认可的评测方法和标准来评估; 使用认定的流程来生产。 在这个定义中,我们首先看需求,IBM Rati onal的软件质量在用户需求方面的定义分为五个方面:易用性、可靠性、性能、可支持和功能。 质量保证,归根结底就是为客户提供更高品质的产品,更好地满足客户的需求。另一方面,这个质量定义中明确指出,质量更体现在软件开发的整个过程和一个标准的评价方式上。 软件开发过程质量就是指为了生成工件而对可接受流程的实施和遵守程度,体现在三个层次: 产品本身和用来生产、组装软件产品的零部件质量; 在软件开发过程的标准化、流程化、自动化程度和团队基本协作平台的效率,各个过程对质量的承诺; 软件产品验收的评测手段应该是被业界广泛认可和接受的方法,所构筑的质量评价标准。 一个软件生产企业的过程质量一般可以用它的软件过程成熟度等级来评估。 RUP全过程质量保证 Rational Unified Process (RUP是一个可以通过Web来使用的软件工程过程。作为软件工业事实上的标准,它回答了我们以下问题:在整个软件开发的各个过程中,谁(角色)应该在什么时候(详细工作流程)做什么(任务)和产生什

相关主题
相关文档 最新文档