已阅读5页,还剩84页未读, 继续免费阅读
(电路与系统专业论文)基于arm的嵌入式系统平台及其移植性研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本课题以方法论的全新视角重新审视了嵌入式系统,阐明其本质是一种基 于系统设计的技术观念和开发方法。以此观念入手,课题将平台技术视为现代系 统设计方法的集大成者,详细探讨了其组成要件和实现方法,并将其引入了嵌入 式系统的领域。在此基础上,全面构建了广义电子工程的平台栈模型,并以其中 的体系结构平台和编程模型平台为核心,提出了嵌入式系统的基础架构。 课题以基于a r m 7 t d m ic p u 核的嵌入式系统为实例,具体讨论了上述基 础架构的实现。在此过程中,发现编程模型平台与体系结构平台之间自动移植工 具的缺失是造成嵌入式设计效率低下的重要原因之一。最后课题聚焦于嵌入式开 发平台的可移植性问题,实现了源代码自动移植器的一个原型,在提高嵌入式系 统开发过程的自动化方面进行了有益的实践。 关键词: 平台、嵌入式系统、a r m 、移植性 a b s t r a c t t h i sp a p e rt a k e sav i e wo f m e t h o d o l o g yt os u r v e yt h ee m b e d d e ds y s t e m t h e e s s e n c eo fe m b e d d e ds y s t e mi sak i n do ft e c h t h i n k i n ga n dd e x ;e l o p i n gw a yo f s y s t e m d e s i g n t h i sp a p e rb r i n gp l a t f o r mt e c h ,w i t c hi sab e s tw a yt or e a l i s es y s t e m d e s i g n , i n t oe m b e d d e ds y s t e m d e s i g n a n dc o n s t r u c tam o d e lo fp l a t f o r m s t a c kf o r t h e e x t e n s i v ee l e c t r o n i c e n g i n e e r i n g b a s i n gt h em o d e l ,w ep r e s e n ta ni n f r a s t r u c t u r eo f e m b e d d e d s y s t e ma r o u n dt h ea r c h i t e c t u r ep l a t f o r ma n d p r o g r a m i n g m o d e l p l a t f o r m t a k i n gt h ea r m 7 t d m i - b a s e de m b e d d e ds y s t e ma sa ne x a m p l e ,w es h o wt h e r e a l i s i n gp r o c e s so ft h a t i n f r a s t r u c t u r e d u r i n gt h er e s e a r c h ,w ef o u n dt h el o s so f a u t o - p o r tt o o l si so n eo f t h er e a s o n so f d e v e l o p i n gu n e f f i c i e n t l y s ow ef o c u s eo nt h e p o r t a b i l i t yo f t h ee m b e d d e ds y s t e m sd e v e l o p i n g p l a t f o r ma n d r e a l i s ea na u t o p o r t i n g s o f t w a r e k e y w o r d s : p l a t f o r m ,e m b e d d e ds y s t e m ,a r m ,p o r t a b i l i t y 上篇:原理、思想和方法 第一章嵌入式系统的观念 1 1 对嵌入式系统的一些误解 下面是一些比较常见的误解,这些误解严重阻碍了工程人员快速进入现代 嵌入式系统的领域,更导致工程人员不能深刻认识嵌入式系统的本质,从而未能 真正采纳系统的技术观念和设计方法。 误解1 :嵌入式系统就是比较复杂的单片机系统。 很多从单片机领域跨入嵌入式系统的工程人员经常持有这种误解。他们认 为嵌入式系统本质上就是单片机系统,因此在他们看来嵌入式微处理器就是单片 机。从传统单片机系统的设计来说,这并没有错,但是这种观念严重阻碍了工程 人员正确和深入地理解嵌入式系统,也严重阻碍了他们采用更加先进的系统设计 和产品开发的方法。嵌入式系统的方法和实践确实还很不完善和成熟,但是它决 不是一个噱头,而是一种设计方法和观念的创新。 误解2 :嵌入式系统是达到一定规格要求的莱类产品或系统。 目前,关于嵌入式系统;有一种普遍流行的定义,即:“嵌入式系统是以应 用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠 性、成本、体积、功耗严格要求的专用计算机系统。”但是根据上述定义,很难 界定传统的单片机系统是否属于嵌入式系统,如果是,那么为何又出现了嵌入式 系统的概念? 又如传统的计算机系统完全可以按照上述要求设计,是不是也可以 算嵌入式系统了? 可见,上述定义过于模糊,没能将嵌入式系统与其他事物区别 开来,更没能深入嵌入式系统的实质。正如j e 京航空航天大学何立名教授所说: “这个描述只是提出了嵌入式系统的一些特点,而不是概念本身。” 还有一种关于嵌入式系统的定义比较直观一些,“嵌入式系统是指操作系统 和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的 硬件一体化,类似与b i o s 的工作方式。具有软件代码小,高度自动化,响应速 度快等特点。特别适合于要求实时的和多任务的体系。”但是该定义过于具化, 只描述了嵌入式系统某种表现形式的一个侧面,即嵌入式系统的软件通常以固件 的形式出现,软件嵌在硬件中。但实际上,并不一定如此,譬如嵌入式系统也可 以带有硬盘驱动器,软件也可以像p c 机那样驻留在硬盘中,需要时调入内存运 行。因此不能说软件代码大,或者没有固化,就不是嵌入式系统了。 误解3 :嵌入式系统是单片机系统的更高阶段。 这个误解的产生可能是由于单片机开发工程师们比较容易接受嵌入式系统 的观念,而且引以为先进的技术。传统上,嵌入式系统被看成一块插在其他设备 上的电路板。但实际上,嵌入式系统的观念可以从芯片的级别开始,一直衍生到 系统。譬如本课题研究的a r m 系列c p u 核就是一种嵌入在各个厂家的微处理 器芯片内部的c p u 。上述误解虽然暗示嵌入式系统和单片机系统是不同的,但 仍然未能深入嵌入式系统的本质。 还能发现更多的误解,但上述3 个最具代表性,也是阻挠工程人员认清嵌 入式系统本质的主要障碍。 4 1 2 嵌入式系统的原本含义 要纠正上述3 个以及其他更多的误解,需要认清嵌入式系统的本质,而这 个本质就蕴含在“嵌入式系统”的取名上。因此在挖掘嵌入式系统的本质之前, 让我们先回到这个语汇本身,追寻其间所蕴含的真理的本原。 “取名是智慧的首要表现。”应该说“嵌入式系统”的名称本身是相当智慧 的,直观、简明,又包含了该事物的本质。只是很多工程人员滥用了这个表述, 造成了概念上的混乱。下面要澄清一些语汇的原本含义。 “嵌入式系统”中的“系统”实际上指的是一个“子系统”,这意味着在这 个“予系统”外面还有更大更复杂的大系统和大设备,我们称其为宿主系统。“嵌 入式系统”是嵌在那个宿主系统中的部件。同时,“嵌入式系统”作为一个系统, 应当不依赖于外部其他系统就能独立运行。于是可以得到嵌入式系统最原始的含 义1 ;r 是嵌在其镪系统中且又能不依赖外在系统而独立运行的部件都司以 称为嵌a 式系统, 这个描述虽然简明,但用于描述电子工程领域所指的嵌入式系统,还过于 宽泛。 电子工程领域的“嵌入”是指将智能控制、运算和信息处理能力嵌入在宿 主系统中。对于用户而言,不能直接看到宿主系统所内含的智能部件,他们所看 到的是类似手机、p d a 、p l a ys t a t i o n 、工业机器人、空调等这些产品本身。至于 智能控制部件是用数字电路、还是m c u 来实现,用户并不关心,也不在乎。从 这个角度,传统的单片机系统一般都嵌在其他设备中,因此可以归入嵌入式系统。 而传统的计算机无论多么节省功耗,或者节省体积,由于不嵌在其他设备中,因 此不能归入嵌入式系统。 电子工程领域的“系统”是电子系统,它必须具备硬件和软件的智能性, 再次虽然它可以自成一个系统独立存在,但实际应用中,它总是嵌入在其他更大 的设备和系统中运行。从这个角度,传统单片机系统是能够不依赖所附属的设备 而独立运行的电子系统,因此可以归入嵌入式系统。而传统的计算机虽然是系统, 但使用中总是独立运行,因此不能归入嵌入式系统。 由上,我们可以得出嵌入式系统的原本含义了:篪a 砣莠纺描述的是一秽 警镌系统它嵌入在其他以非传统计算枫形态出现的产品中智能系统是这些产 晶崩生朗纵运髯或詹岛处理的垆以,。因此,传统的单片机系统属于嵌入式系统, 而传统的计算机系统不能纳入嵌入式系统的范畴。 1 3 嵌入式系统的本质 “嵌入式系统”这个语汇的原本含义虽然能够用于界定归属问题了,但是 有个疑惑仍没有消除:虽然单片机系统确实是嵌在其他设备中的智能系统,但是 既然有了单片机系统为什么还要提出嵌入式系统的概念昵? 要解决这个难题,我们必须回到嵌入式系统的本质,这个本质蕴含在现代 的“系统”观中。 现代的“系统”观念,不仅用来描述一大堆有着复杂关系的、能独立运行 的部件集,更多地是一种产品开发的方法和思想。现代电子工业对产品上市时问、 产品可靠性、产品性能等要求越来越高。主观上,工程人员们希望更多地利用现 成的“零部件”组装出一个产品来,这些零部件有些是软件的形式,有些是硬件 的形式。考察电子设计方法的发展,我们看到从最早的数字电路开始,到单片机 和v l s i ,人们经历了设计方法和工具的巨大飞跃,从全手工绘制电路图,到e d a 软件和单片机的汇编器、c 编译器、集成开发环境,自动化程度越来越高。但是 工程人员在交流中发现,他们似乎总是在做一些别人已经做过的工作,当他们想 利用别人现成的设计时,却发现又并非想象的那样可以直接使用别人设计的一些 中间结果。同时,工程人员还发现,不能直接利用别人成果的原因,一方面是因 为他们开发的具体产品有着许多细微的差别,而且这些差别分布在软件和硬件的 设计细节中。譬如尽管都用于机器人控制,但是a 工程师设计的机器人用于高 温环境,b 工程师设计的机器人用于低温潮湿的环境。而a 工程师在设计机器 人手臂动作的控制软件和硬件时,从未考虑过b 工程师的需求。这就造成虽然 同样是手臂运动的控制,但是a 工程师代码中所隐含的对高温环境的适应,不 适合b 工程师对低温潮湿环境的需求。另一方面,是因为总有些天才的工程师 励志创新,追求与众不同。这使得他们不希望仅仅做装配的工作,拒绝接受零部 件组装是最高效的产品设计方法的观念。 于是焦点集中到两个问题上:一是如何更好地继承和利用现有的设计成果, 特别是中间结果,从而减少重复工作,提高设计效率,把主要精力集中在创新性 的环节上;二是如何更好地适应各种应用的细微差别。 种可能的解决方法是a 工程师和b 工程师达成某种协议,在开发的时候 尽量将系统中的通用要求和特殊要求分开设计,从而将可以共享的部分与不能共 享的部分分离开来,同时将共享的部分按照统一的规格说明来设计,这样b 工 程师可以专心设计适应低温潮湿环境要求的部件,而手臂旋转等通用的部分采用 a 工程师的设计。这就要求,大家能从系统的角度来重新整组系统结构,而不是 关注某件产品本身。这种开发观念就是系统级的开发,它是对传统元件级开发的 巨大革新。 嵌a 式系统本质上就是一种技术观念和设计方法的进步蕊不是产品的进 步。逸,就是脱a 莲泰纺的衣劈。我们必须把嵌入式系统看成是一种技术观念和设 计方法,而不是具体的产品,这样才能使得我们的设计工作进入嵌入式系统的时 代,而不是仅仅将其称为嵌入式系统,却还停留在单片机设计的时代。 a 工程师和b 工程师的故事还没有结束,而仅仅是开始。a 和b 都是开发 具体产品的工程师,他们希望有些助手能帮助他们专门设计一些中间部件,这些 部件能够根据具体的要求方便地做一些细节上的调整。这并没有想象中的那样容 易,因为那些细节涉及低温技术、低功耗技术、人体工学技术等等非常专业的知 识,又分布地嵌在整个设计的各个部分,因此需要专业人员来做。这就出现了分 工,于是会有些人专门研究具体的领域,如图象和视频处理,他们出卖那些中间 结果,同时为他们的劳动和智慧收取报酬,当需求越来越多的时候,他们就成立 公司,并将他们的产品取名为中间件,同时通过提供中间件来获取报酬。于是, 嵌入式系统的产业链慢慢形成了,从片级嵌入式系统的供应商( 例如a r m 公司) , 到板机嵌入式系统供应商( 如三星) ,还有中间件供应商、开发工具供应商、最 终产品供应商等等,利润就在这些环节上分配,这使得电子工程进入了真正的嵌 入式系统的时代。 由上可见“嵌入式系统”的提出,本质上反映了嵌入式产品开发技术本身 的要求和发展,即从元件级的开发到系统级的开发。单片机时代的产品虽然也有 6 系统的概念,但是那通常只是为了说明产品内部包含许多部件,他们将协同工作。 而“嵌入式系统”中的“系统”指的是一种开发方法和思想。 瓢姒嵌入式系统的本质就是一种系统的技术观念和设计力法,窀r 瓠斌秣 没有系统的开发方法和思想,因此本质上单片机系统只能算传统的嵌入式系统, 或者是初级嵌入式系统,而不属于现代嵌入式系统,或说高级嵌入式系统。为了 统一起来,我们把初级嵌入式系统和高级嵌入式系统合称为广义的嵌入式系统, 高级嵌入式系统是狭义的嵌入式系统,也就是我们现在常说的嵌入式系统。 作为工程人员更多地要关注系统的技术观念和开发方法,而不是拘泥于嵌 入式系统的语汇本身。目前,嵌入式系统的产业处在从传统向现代的过渡阶段, 虽然系统设计的观念已经被提出,但是还没有形成成熟的方法和技术,本课题关 注这些不成熟的部分,并力图在改善这些不成熟的方面倾注心力。 1 4 嵌入式系统的分类 按应用目标分: 莠翁拦z 勃型旃 贯莠参奠智能机器人、水电控制中,心等等都包含了以可靠 控制为主要目标的嵌入式系统。 蔗盛趔堙r 型蕨久葱孬易蕾而计算机网络、通讯、多媒体等等应用则包含了 以信息的高效处理为主要目标的嵌入式系统。虽然单纯数学运算的应用也存在。 但似乎传统计算机更适合这种应用。 按嵌入深度分: 嵌入深度的界定在于离最外层和最内层系统的距离,越外层系统离“最终 用户”最近,嵌得越浅;越内层的系统离“最终用户”越远,嵌得越深。 爿皱嗽a 式磊练即嵌在某块芯片上的子系统,如a r m 核就是片级的嵌入 式系统,它嵌在各种集成微处理器中,片级嵌入式系统涵盖了集成电路的设计方 法,也被称为片上系统( s y s t e m 0 n c h i p ,s o c ) 。 扼级篪a 芘磊统如以m c u 为核心,配以硬盘等多种外设的产品,其中的 m c u 与外设构成的系统就是板级嵌入式系统,这是常见的嵌入式系统。 系纺亥簏八寇磊统如神舟号上的生命保障系统就是系统级的嵌入式系统。 1 5 嵌入式系统的特征参数 在不同的应用领域,对嵌入式系统有不同的要求,这些要求就构成了一个 描述嵌入式系统的最基本的规格说明。可以用以下参数来描述一个嵌入式系统的 特征。 性能: 一般就用特征工作频率来描述,如微处理器的时钟频率或者峰值处理能力, 或者是每秒能执行的指令数( m e g a i n s t r u t i o n sp e rs e c o n d ,m i p s ) 。 功耗: 工作电压、工作电流、引脚上的驱动电流都能反映了这个特征。 可靠性: 连续工作时间是描述可靠性的常用参数,另外对震动、潮湿、高温或低温 等条件的适应能力也反映了其可靠性。零部件的数量、结构的复杂性一定程度上 也可以用来估计系统的可靠性,越复杂、零部件越多,越不可靠,所以简单的总 是好的。 体积: 嵌入式系统的大小和外形一般都要和外部设备的体积l 口j t , 彤相适应。 成本: 嵌入式系统的成本总是越低越好。 功能: 功能不是越多越好,因为功能越多可靠性通常也越差,成本也越高。 m p u : 采用什么样的m p u ,由应用的性能要求来决定。m p u 的频率和成本都是越 低越好,频率越低,系统可靠性越好。不能简单的说3 2 位、4 0 0 m h z 的a r m 比 8 位1 2 m h z 的a t 8 9 c 5 1 更好。 操作系统: 并非所有的嵌入式应用都要操作系统,只有需要多进程管理的时候才有必 要加载操作系统。 用户界面: 用户界面非常重要,图形化的用户界面是大势所趋。但是复杂的用户界面 会降低系统性能和可靠性,增加功耗和成本。很多嵌入式应用中图形界面会占去 一半以上的功耗。 描述上述特征的参数就叫特征参数,特征参数之间相互制约,需要综合考 虑,通常会先从性能、功耗、成本这三个角度入手,其他参数多是对这三个参数 的延伸。 第二章嵌入式系统与基于平台的设计技术 2 1 系统观念、平台技术及其在嵌入式系统中的应用 第一章得出了很重要的结论:嵌入式系统是一种系统的技术观念和设计方 法。那么,究竟什么是系统的观念昵? 系统的观念要求不再关注具体的产品本身,而是关注产品所归属或包含的 各类系统,从系统的层面来设计产品,而不是从产品的层面来设计系统。譬如要 设计一个m p 3 播放设备,传统上将提供一份详细的关于m p 3 播放系统的设计说 明,内容涉及电路如何设计、软件要分那些模块,这叫做产品级的设计,而最终 将被分解成更加细节的组成元件,进入元件级的设计。如果从系统的角度来看, m p 3 播放器总体上是个音频系统,应当包括m p 3 解码系统、数据存储系统、模 拟播放系统、用户界面系统,现在的问题是如何把这些子系统协调起来。这就叫 系统级的设计。前者需要考虑很多如何实现的技术细节,而后者则只需要考虑系 统所需各部件的整合关系。 系统的观念需要具体的方法来实现,即系统的设计方法,设计方法并不拘 泥于一种,而且也在不断发展和进步。本课题尝试将基于平台的技术观念和设计 方法纳入嵌入式系统的研究和开发中。 馥谓平台实质上是某一领域经验知识的集大或,它由知识模块及其管理 初溯乙舆组成。平台的意义在于更好地利用经验知识来开发和探索新的知识。 这里所说的知识,包括科学原理、技术方法、工具、产品等等,但是这些都必须 以某种具体的方式出现,譬如科学原理可以用编程语言描述的算法和流程来表 述,技术方法可以用函数库来组织。所以说平台是一种技术,它既可以用于科学 研究,也可以用于产品丌发。 平台技术的科学性在于一个基本的假设,即:新产品和新技术可以在经验 知识的基础上开发出来,产品开发可以直接通过整合现有的科技知识来实现。这 个基本假设既提供了一种产品开发的思路,同时也限制了平台技术本身的创新 性。因为基于某个具体平台所开发的产品总是被局限在该平台最大能涉及的技术 范围内。 实际上,平台技术并非新的技术,桌面计算领域早己使用这个观念来开发 产品,而且贯彻在桌面系统的物理硬件到应用软件的始终。p e n t i u m 4 和s p a r c 提供了c p u 的平台;w i n d o w s 和u n 提供了操作系统的平台:t c p i p 协议提 供了网络通讯的平台:。开发w i n 最r n p 软件的工程师并不关心用的是p e m i u m 4 还是s p a r c ,因为那是操作系统设计者帮助解决的问题;他们甚至不必关心 w i n d o w s 和u n i x 的细节,因为集成开发工具会把他们的源代码编译成适合不同 操作系统的可执行文件。 现代嵌入式系统的提出,实际上是将平台技术引入到嵌入式设计领域,领 会和实践这点是掌握嵌入式技术的关键。从这个角度,嵌入式系统更完整地应 该被称为基于平台的嵌入式设计,s o c 应该被称为基于平台的片上系统,或者基 于平台的片级嵌入式设计。 2 2 平台技术的基本观念 2 2 1 平台就是一个强大的知识库 平台是一种形象地说法,实际上可以看成一个知识库,这个知识库按照 定的规范来组织,库内的知识都用某种方式( 描述规范和语汇) 进行描述,并提 供了很多接口和接口工具。描述知识库的方式并不局限于我们比较容易理解的软 件的方式,也可以是硬件的形式,譬如微处理器实际上就是把很多行为抽象为由 基本逻辑运算组成,然后用硬件来实现这些基本逻辑运算。 l 丌发人员通过接口操纵和组合这些基本逻辑运算,创造新的行为。可见开 发人员或者上层平台是利用接口来操作知识库的,并将其中的知识重新整组起来 开发出新的产品,或者产生新的行为。 接口工具的作用在于填补各个平台之间的缝隙,因为不同的平台都有自己 的语汇和规范,接口工具就象一个翻译机,把一种语汇和规范翻译成另一种语汇 和规范。更加强大的接口工具还会提供一些管理方法来维护和进化知识库,这种 迸化不仅局限于容易理解的软件知识库的增添和修改,而且在硬件中也能实现, 譬如现在出现的可重构技术,可以在不同的时间,在一块f p g a 上实现多种不同 的电路。 2 2 2 平台技术的三个组成要素 从2 。- - 2 - - 1 苴的描述我们可以归纳出平台的三个组成要素:知识库、知识 库的接口、接口工具。 一 知识库及其组织规范 将知识以知识库的形式组织起来,基于一个假设,即所有知识都可以归为 w h a t 型知识和h o w 型知识。 w h a t 型知识的主要语汇通常和什么东西、谁、何时、何地有关系:h o w 型 知识的语汇通常和怎么办、如何操作有关。w h a t 型知识比较简单,容易学习和 记忆,而h o w 型知识则需要理解,而不是记忆,甚至需要很长时间的实践和体 验才能领悟其中的真义,h o w 型知识更加难于学习。平台就是把那些h o w 型知 识用w h a t 型知识来封装,这句话的意思是说:用些w h a t 型知识的语汇束描 述知识库中包含了什么样的h o w 型知识。譬如用户只需要用告诉j b u i l d e r ,把什 么样的一个按钮放到面板的什么地方,y o u i l d e r 就会自动实现这个按钮,用户不 必担心这个按钮该如何实现。仔细考察,就会发现这背后所隐藏的玄机:必定有 些现成的类似积木一样的东西,早已存在了;而且事先必得规定统一的语汇规范 来描述面板上的坐标、积木的大小。开发人员按照事先的语汇规范( 实际上我们 用鼠标点击,j b u i l d e r 把“点击”转换为规范的语汇) 告诉j b u i l d e r 需要什么样 的按钮。而这些语汇显然都是w h a t 型的,用户从来不需要告诉j b u i l d e r 该如何 生成这些积木块。 知识库是平台的基础和核心,它包含了h o w 型知识,并用w h a t 型知识将 这些h o w 型知识封装起来。h o w 型知识被分类和模块化,并遵循一定的规范, 使用有限的语汇集加以描述。需要特别指出的是,以软件形态出现的知识库比较 常见,称为软库;但是还存在类似c p u 这样的以硬件形态存在的知识库,它们 把h o w 型知识变成数字集成电路,这被称为硬库。 一 知识库的接口 知识库被封装起来后,应用开发者就不能看到和修改h o w 型知识的细节, 而只能通过某些接口来调用现成的知识模块。软库的接口可以是函数调用,而硬 库的接口则包括总线,可访问的寄存器,以及指令集。 接口工具 增加接口工具的原因主要是两个。 一方面,知识库中的模块按照一定的结构组织起来,这些结构本身虽然比 较稳定,但是却很庞杂;同时,知识库提供的接口规范通常也非常纷繁。接口工 具的作用就是要把这些复杂性屏蔽掉,应用开发者通过接口工具来访问知识库, 而接口工具通过知识库的接口来使用现成的知识模块。 另一方面,上层和下层平台之问的缝隙并没有看起来那样狭小。事实上, 每层平台都有自己的语汇和规范,知识库就是用这些语汇和规范来描述和组织 的。开发人员直接使用某一层平台的语汇和规范,调用该层平台的知识模块,而 不会接触下层平台的语汇和规范。接口工具将上层语汇和规范翻译成下层语汇和 规范,逐层将抽象设计变成物理实现。此外,接口工具还提供了更加形象化的方 法,使得开发人员甚至无需接触枯燥而抽象的语汇与规范。 可见,人们一层层的加载平台,实际上,是将那些复杂的物理实现向上 逐步地抽象出来,使得开发者遵循相对简单的规范,利用有限的语汇就能设计和 控制实际的物理系统。而接口工具,则把那些抽象设计和控制方案向下逐步地具 化,最终变成物理实现。 2 2 3 平台技术要达到的五个目标 一个设计良好的平台必须要达到五个目标:屏蔽细节、易于使用、效能可 靠、适合应用、便于维护,也可以归纳为屏蔽性、易用性、可靠性、适应性和开 放性。 屏蔽性: 平台必须屏蔽h o w 型知识的细节,使得开发者无需关心知识模块内部是如 何实现的,而更多地关注系统的组织和运行结构。 易用性: 平台必须提供易于使用的接口工具,否则开发者会因为接口工具过于复杂 而放弃使用该平台。 可靠性: 平台所提供的知识模块必须是经过实践检验的,如果经常产生b u g ,用户 也会放弃使用该平台。 适用性: 用于嵌入式开发的平台必须能提供复合特定要求的知识模块,或者说要提 供一些方法能够对知识模块的细节做出修改,从而满足不同场合的应用,同时仍 然不需要关心知识模块是如何实现的。 开放性: 平台不仅仅是技术开发的方法和工具,更是一种技术管理的工具。因为平 台意味着一个整理完毕、归类清晰的知识库,而且如何利用知识库也有了一个很 好的规范和向导( 接口和接口工具) 。这意味着企业可以在开发过程中积累新的 知识,以便将来利用这些知识。这里暗示了一个新的要求:即作为技术管理工具 的平台必须具备良好的开放性,用户能够对知识库进行方便的增减和修改。而目 前很多平台并没有提供这样的支持。要满足这样的要求,必需提供知识库的管理 和维护工具。开放性与屏蔽性之间存在一定的矛盾,因为开放性意味着必须披露 一些底层的细节,以便用户能够理解管理知识库的原则。解决办法就是提供一套 明确定义的接口和接口工具的规范,但这不能从根本上解决矛盾,只能缓解矛盾。 2 2 4 平台的概念视图和平台栈 图2 2 4 1 描绘平台的概念视图: 由图可见,平台可以一层叠层,这让人想起数据结构中的堆栈,所以我 们把这种平台的概念视图称为平台栈。这个术语更加形象和完整地包含了平台技 术的所函盖的所有要素:知识库、知识库的接1 2 i 、接1 2 1 工具。 某层平台的内部仍然可以继续细分为更多的予平台,也可以称为层,或级。 从图中我们看到上层平台和下层平台之间存在着一个缝隙,这个缝隙的存 在是由于不同平台处于不同的抽象层,采用不同的规范和语汇集来描述的缘故。 接口工具填补了这个缝隙,在不同抽象层之间完成规范和语汇翻译的工作。v i s u a l c + + 就集成了一个接口工具c + + 编译器,它负责将c + + 语言翻译成体系结构层能 够理解的汇编语言或机器语言。 图2 2 4 1 平台的概念视图( 开发者视图) 接口工具的功能不局限于翻译,它还是知识库和接口的用户视图。也就是 说用户眼中看到的知识库和接口,就是接口工具所提供的开发库和各种函数。 接口工具甚至能提供平台的开发工具,使得开发人员能够管理和维护知识 库。接口工具不仅提供了应用开发的工具,也能提供平台开发的工具。 对于一个平台,对上的接口是必需的,但有时还需要对下的接口。实际上, 对上的接口是实接口,它提供了外部访问该平台的入口;而对下的接口是虚接口, 它实际上就是下层平台的接口在上层平台的投影,有时上层平台需要将接口工具 和虚接口结合起来访问下层平台的实接口。本课题就利用虚接口,在编程模型平 台重新封装体系结构平台的接口,从而方便地实现自动移植。 2 2 5 平台的应用者视图 平台的概念视图实际上是站在平台开发者的角度来看的,因此也称为平台 的开发者视图。本课题正是从这个角度入手来研究嵌入式系统的。而对于应用开 发人员来说,更多面对的是平台的应用者视图。该视图与开发者视图基本类似, 但是展现形式有些许不同,如图2 2 5 1 : 对应用开发者而言,所看到的平台就是接口和对下层平台的接口工具。但 是接口工具往往被提到最表面,应用开发者通常没有意识到该接口工具还涉及下 层平台的语汇。 景。n 一 图2 2 5 一l 平台的应用者视图 在某些情况下,应用开发者会接触到虚接口,从而看到下层平台的接口图 2 3 平台的实现方法 下面将站在平台开发者的角度来看看平台实现过程中涉及的主要方面。 要实现一个平台,实际址就是把知识库、知识库的接口和接口工具逐一实 现,这是个非常庞大而精细的工程,本课题没有真正实现一个完整的平台,只 是在平台的接口工具方面作了些的探索。 下面从上述三个方面介绍如何用软件的方法实现一个平台。 2 3 1 知识库的实现知识库的组织规范 知识库的实现涉及两个问题:一是h o w 型知识如何封装? 二是封装起来的 h o w 型知识如何有组织的放在知识库里? 第一个问题实际上就是如何描述事物的问题。因为知识实际上就是对我们 感兴趣的事物的描述。这就需要我们将知识模型化,即将定性的描述变为定量地 或者逻辑化的描述。这是传统电子工程的弱势,而软件工程则似乎取得了更大的 进步。实际上可以借用软件工程中面向对象的一些观念和方法来描述知识模块。 根据面向对象的理论,任何事物都是对象,所有对象都具有三个特点:可以被封 装、可以继承、行为上具有多态性。用对象可以用其属性和行为来描述,这个过 程就叫封装。对象被分成各种类别类别之间可以相互继承,予类别继承父类别 的属性和行为,同时保有自己的属性和行为。各个子类别继承白同一父类别的行 为,虽然有相同的名称,但是行为的细节可以不同,譬如父类有d r a w 这个动作, a 子类别可以d r a w c i r c l e ,而b 子类别可以d r a w s q a u r e ,这就是多态性。 本课题没有实现面向对象的所有三个特性,而只是将封装技术应用在知识 库和虚接口的实现上,这将在下篇结合基于a r m 的嵌入式系统予以展示。 第二个问题实际上就是如何将知识分类并有机地组织起来的问题。这就需 要对知识库的模型进行研究。 知识库的模型主要有两种:一是物理和数学模型,包括物理原理的数学描 述、过程描述、算法描述、数据结构的描述,这种模型主要应用于知识模块的描 述。另一种是结构模型,它描述了知识模块间的关系,以及按照怎样的规律排布 这些模块。 结构模型在过去并不显得重要,因为传统的嵌入式系统以产品开发为主要 任务,并不关心系统的架构,更加谈不上平台的观念。但是现代产品往往跨越多 个学科,知识的复杂和密集程度已今非昔比,在信息和技术咨询的时代,知识的 组织形式凸现出来。科学的重点依然在于探索新的知识,而技术的重点则从产品 丌发转向知识的组织。 本课题在结构模型方面所做的探索是有限的,总体上我们认为按照应用领 域的不同来组织知识模块是一种比较松散的结构形式,但是非常容易实现,而且 知识模块间的耦合很少,有利于平台的丌放性。而按照应用领域对知识进行归类, 归根到底就是按照不同的物理和数学模型对知识进行归类。 物理和数学模型被按照面向对象的方法封装在知识模块中,这意味着仍然 可以继承传统的方法,使用编程语言来描述知识模块及其中的物理和数学模型。 这样,物理和数学模型具化为各种属性和行为的描述。但是我们注意到除了属性 和行为外,还有一种对象是大量的单纯数据,对此现代软件技术提供了很多方法, 包括数据库、x m l 等技术,这方面本课题没有作研究,但是已经有很多中间件 供应商开始提供嵌入式数据库了。 物理和数学模型+ 结构模型= 知识库的组织规范。按照这个规范就可以实 现一个知识库了。譬如用c 语言来描述m p e g 、j p e g 、m p 3 编解码算法,这就 是知识库的物理和数学模型,他们和属性配置文件结合在一起,被封装成视频和 音频编解码器的知识模块,将音频和视频知识模块分开组织,这就是知识库的结 构模型规范。 知识库可能以软件的形式出现,如函数库、类库、软核等等;也可能以硬 件的形式出现,如c p u 核等。 2 3 2 知识库接口的实现 接口实际上是访问知识库的方法。知识库的组织规范决定了知识库的接口。 与知识库类似,接口有软接口和硬接口之分。 软接口通常以函数调用的形式出现。此时,最重要的是定义一个简洁明了 的名字空间,用名字空间来描述这些函数调用。接口工具直接访问地就是这些名 称,通过这些名称来访问知识库。 硬接口通常以总线、寄存器视图以及指令集的形式出现。指令集实际上是 一种界乎硬件和软件之间的接口,应用开发者主要通过指令集来访问总线和寄存 器等其他硬接口。 尽管有指令集作为中介,但是在软件平台上访问硬接口仍然很不方便。最 好用统一的方法来描述硬接口和软接口。对此本课题丌发了虚接口的技术。正如 2 2 4 节提到,虚接口实际上是下层平台接口在上层平台的投影,我们可以 用软件平台的语汇对硬件平台的接口作必要的描述,从而将该硬接口投影到软件 平台。这样做最大的好处在于给上层平台提供了良好的适应能力,以便适应下层 平台的多态性,这给自动移植提供了基础。 2 3 3 接口工具的实现 前文已经提到,接口工具主要是为了屏蔽接口规范的复杂性,以及在不同 平台的描述规范和语汇集之间进行翻译而引入的。 因此接口工具必须能够同时识别上下层平台的规范和语汇集,才能实现翻 译的工作。如果上层有多个平台,那么接口工具就必须认识多个平台的规范和语 汇集。 可见接口工具是面向上下两层平台的,它不仅向下屏蔽复杂性,而且也向 一卜屏蔽了上层平台的多样性。接口工具是最终使得知识库实用化的关键。 开发接口工具的时候,通常下层平台已经形成,包括知识库、对上的实接 口和对下的虚接口已经定义完毕。平台开发人员站在当前正在开发的平台上,除 了考虑当前层的描述规范和语汇集外,还必须关注下层接口的描述规范和语汇 集。但是,比较特别的是与虚接口结合在一起的接口工具,它其实并不涉及下层 平台的描述规范和语汇集,因为虚接口完成了对下层平台的接口的投影。这类接 口工具仅仅识别上层平台的描述规范和语汇集,对上层平台的设计视图进行某些 辅助设计,然后交给其他接口工具完成真正的翻译工作。 两个平台之间的接口工具往往有很多,形成接口工具集。集成开发环境实 际上就是包含了多种接口工具的工具集,其中甚至包含属于不同层级平台的接口 工具。 2 3 4 平台的描述规范与语汇集 平台三要素的实现过程都离不开所谓描述规范和语汇集。每个平台实际上 有自己的套描述规范语和汇集,知识库和接口都必需用这套统一的规范和语汇 集来描述。 如果没有规范和语汇集,就无法实现该层平台的知识库,也无法开发接口 工具提供自动设计的辅助能力。我们看到应用层和体系结构层由于缺乏严谨的描 述规范和语汇集,使得它们与下层平台之间的接口得以缺失,造成设计自动化程 度的降低,这大大降低了开发效率。 描述规范和语汇集是非常重要的,平台开发者首先就是要结合应用开发者 的需要,定义一个严谨的规范和语汇集,然后按照该规范和语汇集来开发知识库 与接口。 2 4 电子工程领域的平台栈 本课题将把平台技术应用到嵌入式系统中,而嵌入式系统跨越了整个电子 工程领域。这个电子工程领域是广义的概念,包括集成电路、传统板级电子电路、 计算机和软件工程,因为这些领域归根溯源都是传统电子工程的延伸。 我们将电子工程领域的知识平台分为5 层,每层平台都由知识库、接口、 接口工具三部分组成,如图2 4 一l : 卅卜r 、卅 、霹陋匿,7 | 匿里赙:复龋 、o 、 o 、j 1 7j ,一 i 物霉f 冶: 制毪晕抒冶 图2 4 1 电子工程领域的平台栈 6 这5 层平台涉及了不同的知识科目,主干科目罗列如下: 一 第一层平台:物理实现 l 、量子力学 2 、热力学与统计力学 3 、半导体物理 4 、晶体管原理 5 、集成电路原理 6 、v l s i 原理 一 第二层平台:组成与设计 l 、h d l 硬件描述语言:v e r i l o g h d l 2 、a s i c 、p l d ( 如f p g a 和c p l d ) 原理 3 、电工原理( 电路原理与分析) 4 、模拟电路原理集总参数电路:高频和低频电路 5 、模拟电路原理分布参数电路:电磁场原理 5 、数字电路原理 6 、模拟集成电路应用 7 、数字集成电路应用 一 第三层平台:体系结构 1 、计算机体系结构 2 、计算机组成与设计 3 、微处理器原理:8 0 c 5 1 、a r m 、x 8 6 、d s p o r 4 、微处理器接口与总线技术 5 、s o c 原理 一 第四层平台:编程模型( a p ) l 、汇编级编程 2 、c c + + 编程和其他高级语言编程 3 、编译原理 4 、操作系统原理 5 、嵌入式系统原理 6 、计算机应用 7 、b 1 0 s 与设备驱动技术 一 第五层平台:应用模型( 算法实现) 1 、网络技术方向 2 、信号传输技术方向 3 、信号处理技术方向 4 、多媒体技术方向 5 、软件技术方向 上述5 层涵盖了集成电路、传统电子设计和计算机与软件科学的全部领域。 第五层面向不同的应用领域,因此称为应用模型的平台,由于该层平台主 要涉及物理和数学模型的算法,因此也可以称为算法实现的平台。该层的知识库 主要是面向具体应用的各种算法库,譬如高级图形库等。该层的接口也主要是算 法调用。其接口工具因为应用领域的不同,可以有很大的不同。目前工业界已经 定义了应用模型平台的描述规范和语汇集,如u m l 语言,作为应用模型平台和 第四层编程模型平台之间的接口工具u m l 工具也应运而生。 第四层主要提供了应用开发的软件接口,因此称为编程模型的平台,该层 以汇编语言、各种高级语言作为语汇集,以各种软件开发方法为描述规范。其知 识库主要以函数库或类库的形式提供,函数调用就是其对上的接口。在编程模型 平台和第三层体系结构平台之间的接口工具最具传统,发展也最完善。本课题结 合嵌入式系统的移植性,利用虚接口技术,将自动移植工具补充进这些接口工具 集中。 第五和第四层平台都以软件的形式出现,而且常常以集成软件的形态出现, 以此可以合称为软件平台。 第三层涉及复杂电子系统的体系结构,因此称为体系结构的平台,其知i : : 库包括电路结构和指令集体系结构方面的知识。但是该层平台目前缺乏严谨的描 述规范和语汇集,因此实际上不存在实用的知识库。这也使得体系结构平台和篼 二层组成设计平台之间的接口工具仍然缺失,这正是为什么s o c 的观念提出多 年,却一直没能真正得以实现的原因。 第二层主要与电子电路的结构和设计有关,称为组成与设计的平台,目前 该层提供了以硬件描述语言和集成电路设计原理作为语汇集和描述规范。其知识 库包含各种元件和逻辑单元,其接口是对这些元件的调用接口。组成设计平台与 物理实现平台之间的接口工具_ e d a 软件近1 0 年来发展迅速,目前集成 电路设计的全流程都可以在e d a 工具上得以实现。 第一层主要与集成电路、器件的实现有关,因此称为物理实现的平台,其 知识库包含各种工艺库,以及与集成电路制造、测试、封装等相关的知识库,其 接口是对这些工艺库的调用接口。 第一、二、三层平台均实现为硬件的形式,譬如基于a r m 核的微处理器。 实际上最下三层平台在物理实现时,已经被整合到一起,可以看成一个平台,即 所谓的硬件平台。而三层化的平台抽象,只有在集成电路设计时才会体现出来。 可见,以第三和第四层平台之间为分界,以下的平台以硬件为主,以上的 平台以软件为主。目前的嵌入式开发,都是站在第三和第四层平台上进行的,开 发人员用第四层平台的语汇( 汇编语言或者其他高级编程语言) ,由第三和第四 层平台之间的接口工具提供翻译的工作。 从知识科目的角度看,集成电路的设计、制造、封装、测试等知识主要涉 及第一、第二和第三层平台,即物理实现、组成与设计、体系结构三层平台。 传统电子设计的知识涉及第二、第三和第四层平台,即组成与设计、体系 结构和编程模型三层平台。 计算机和软件设计的知识主要涉及第三、第四和第五层平台,即体系结构、 编程模型和应用技术三层平台。 可见各个学科的知识之间是有所重叠的,都跨越了三个平台,上下之间正 好有两个平台是重叠的。 而现代嵌入式系统则涵盖了第二到第五层平台,跨越上述三个学科,因此 牵涉到很多知识。正因为如此,嵌入式系统才有可能形成极为庞大的价值体系和 网络,其所涉及的产业价值达上万亿美元。 正如1 4 节所阐述的,嵌入式系统按照嵌入深度可以分为片级、板级和 系统级三种。这三级嵌入式系统关注着不同的焦点,片级嵌入式系统关注如何将 基于平台的设计引入集成电路设计的领域,并且集成更加复杂的系统。板级嵌入 式系统关注如何将基于平台的设计方法引入传统电子设计领域,这e 是本课题关 注的焦点。而系统级嵌入式系统关注的是怎样将平台的方法扩展到更加复杂和广 大的系统间的设计与整组。 从图2 4 一l 中可以看到,嵌入式系统跨越了四层平台,即:组成与设计、 体系结构、编程模型、算法实现。其涵盖的知识领域是十分广阔的。本课题以基 于a r m 核的嵌入式系统为实例,研究从体系结构平台到编程模型平台的实现, 并将研究的重点集中于体系结构平台和编程模型平台之间的接口及接口工具。在 研究了编程模型平台的基本引导程序和底层驱动程序的可移植性设计后,我们补 充了个用于自动移植的接口工具。 图2 4 1 清晰地反映了本课题所研究的内容、背景、知识架构和关注的 重点。 2 5 平台技术的实质 平台由知识库、接口以及接口工具构成,并且用严谨的规范和语汇集加以 描述和定义。 知识库中包含了h o w 型知识的物理和数学模型,并将这些模型模块化,且 按照一定的结构模型组织起来,同时向外界提供接口来访问知识库,调用其中的 知识模块。应用开发人员用上层平台的语汇和规范来进行设计和开发,产生上层 设计视图,然后利用接口工具将上层设计视图翻译成下层平台
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- ISO 15877-32009Amd 22021 冷热水装置用塑料管道系统.氯化聚氯乙烯(PVC-C).第3部分配件.修改件2标准立项发展报告
- 2026年电工证《低压电工实操》考试题库及答案
- 乡村防汛知识考卷及答案要点
- 2026麻醉科产科麻醉镇痛试题及答案(产科镇痛版)
- 流程培训检验题目及答案解析
- 高中物理必修第一册3.2
- 行政管理领域试题及答案详情
- 物业法规培训练习题及答案
- 山东登高证考试常见试题与答案
- 浦东机场复训测试题与答案解析
- 反假考试培训提纲
- SMETA确保员工合法工作权的核查程序-SEDEX验厂专用文件
- 2025年山西省建设工程专业高级职称评审考试(建筑工程管理)历年参考题库含答案详解(5卷)
- 2025-2030中国养老服务机构连锁化扩张障碍及支付体系完善建议报告
- 学校食堂管理课件
- 肉桂主要化学成分提取与抗衰老生物活性关系研究
- 肌肉注射的试题及答案
- 香港繁体合同协议
- 硬质合金生产工艺流程
- AQ-7015-2018-氨制冷企业安全规范
- 新人教版10.2电能能量守恒定律课件(43张)
评论
0/150
提交评论