(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf_第1页
(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf_第2页
(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf_第3页
(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf_第4页
(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(计算机应用技术专业论文)16位32位mcu软件仿真器的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 6 位3 2 位m c u 软件仿真器的设计与实现 中文摘要 16 位3 2 位m c u 软件仿真器的设计与实现 中文摘要 在p c 机和普适计算盛行的今天,嵌入式系统的应用已经成为计算机工业最热门 的领域之一,1 6 位3 2 位高端m c u 由于具有功能强大、处理速度快、能耗低等优点, 逐渐成为研究与开发的热点。在嵌入式应用的软件开发中,传统交叉开发方式制约了 系统开发的效率,硬件对软件的牵制严重影响软件的调试和测试,延误开发进度,致 使软件质量难以保整。软件仿真是摆脱困境的一种有效途径,利用仿真技术模拟硬件 系统的运行,使软件开发和系统测试在虚拟平台上进行,避免软硬件开发的相互等待, 提高开发效率,降低风险成本。 本文通过研究1 6 位3 2 位m c u 软件仿真的相关技术,设计并实现了一种具有良 好扩展性和通用性的m c u 软件仿真器。本文实现的仿真器采用面向对象的设计思想, 参照m v c 模式,把仿真器的结构分为两层:用户接口层和指令仿真层。接口部分采 用构件技术实现,使得仿真器具有良好的扩展性,指令仿真层采用虚指令技术,使得 仿真器具有良好的通用性。 首先,本文通过对m c u 硬件体系结构的分析,提出了在构造m c u 软件仿真器 时引入构件技术,设计了基于构件的m c u 软件仿真器模型,并实现各个子构件的设 计,通过动态集成方式将分离的构件组合起来,构成一个完整的m c u 软件仿真器, 实现动态配置仿真器的功能,使其具有良好的扩展性。其次,为实现对不同体系m c u 指令集的仿真,本文提出采用虚指令技术来设计指令的仿真,研究了虚指令的设计与 翻译,设计了虚指令函数并对翻译的虚指令进行优化,实现了体系无关的通用型指令 仿真的设计。再次,为便于用户进行软件开发,本文设计实现了基于构件的仿真调试 平台,提供多种调试方式和部分时序分析的功能。最后,本文对m c u 软件仿真器进 行测试,结果表明仿真器模型和虚指令的设计都能较好的满足仿真器的要求。 关键词:m v c 模式,构件技术,m c u 软件仿真器,虚指令集,仿真调试 作 者:徐怀亮 指导老师:朱巧明 t h ed e s i g na n di m p l e m e n to f1 6 3 2 - b i tm c u s o f t w a r es i m u l a t o r a b s t r a c t w i t ht h ep r e v a l e n c eo fp ca n du b i q u i t o u sc o m p u t i n g ,e m b e d d e ds y s t e ma p p l i c a t i o n b e c o m e so n eo ft h eh o t t e s ta r e a so fc o m p u t e ri n d u s t r y s p e c i e so f16 3 2 - b i tm c ui s b e c o m i n gt h ek e ya n dh o ts p o t , f o rt h ea d v a n t a g eo fp o w e r f u l ,f a s ta n dl o we n e r g y c o n s u m p t i o n i nt h es o f t w a r ed e v e l o p m e n to fe m b e d d e da p p l i c a t i o n ,t h e t r a d i t i o n a l d e v e l o p m e n tm o d er e d u c e st h ee f f i c i e n c yo fd e v e l o p m e n t h a m p e r f r o mh a r d w a r et o s o f t w a r eh a ss e r i o u si m p a c to ns o f t w a r ed e b u g g i n ga n dt e s t i n g ,d e l a y st h ed e v e l o p m e n t p r o g r e s s ,a n dm a k e st h eq u a l i t yo fs o f t w a r eh a r dt og u a r a n t e e s i m u l a t i o nd e v e l o p m e n ti s a ne f f e c t i v ew a yt ob r e a kt h em a s s w i t hs i m u l a t i o nt e c h n o l o g ys i m u l a t i n gt h er u n n i n go f h a r d w a r es y s t e m ,s o f t w a r ed e v e l o p m e n ta n ds y s t e mt e s t i n gc a nb ei m p l e m e n t e do na v i r t u a lp l a t f o r m ,w h i c ha v o i d sm u t u a lw a i tb e t w e e nh a r d w a r ed e v e l o p m e n ta n ds o f t w a r e d e v e l o p m e n t ,i m p r o v e st h ed e v e l o p m e n te f f i c i e n c ya n dl o w e r st h ec o s t sa n d r i s k t h r o u g ht h ea n a l y s i so f16 3 2 一b i tm c us i m u l a t i o nt e c h n o l o g y , ag e n e r a lm c u s i m u l a t o rw i t hg o o de x p a n s i b i l i t yi sd e s i g n e da n di m p l e m e n t e d u s i n gt h ei d e ao f o b j e c t o r i e n t e da n dr e f e r r i n gt ot h em v cp a t t e n ,t h em c u s i m u l a t o ri sd i v i d e di n t ot w o t i e r s :u s e ri n t e r f a c ea n di n s t r u c t i o ns i m u l a t i o n t h ei n t e r f a c ei si m p l e m e n t e db yc o m p o n e n t t e c h n o l o g y , w h i c hm a k e st h es i m u l a t o re a z i l ye x p a n d e d t h e i n s t r u c t i o ns i m u l a t i o nu t i l i z e s v i r t u a li n s t r u c t i o nt e c h n o l o g y , w h i c hm a k e st h es i m u l a t o rag e n e r a lo n e f i r s t l y , t h r o u g ht h ea n a l y s i so fm c u ,c o m p o n e n tt e c h n o l o g yi su t i l i z e dt ob u i l dm c u s i m u l a t o r t h em c us o f t w a r es i m u l a t o rm o d e lb a s e do nc o m p o n e n ti sd e s i g n e da n d m c u ss u b c o m p o n e n t sa r ei m p l e m e n t e d d y n a m i ci n t e g r a t i o ni s u t i l i z e dt of o r ma c o m p l e t em c us i m u l a t o rw i t h i s o l a t e dc o m p o n e n t s ,w h i c hm a k e sm c us o f t w a r e s i m u l a t o rc a nb ed y n a m i cc o n f i g u r e da n de a z i l ye x p a n d e d s e c o n d l y , t os i m u l a t ed i f f e r e n t i n s t r u c t i o n s ,v i r t u a li n s t r u c t i o nt e c h n o l o g yi su t i l i z e dt od e s i g no fi n s t r u c t i o ns i m u l a t i o n , i i t h e d e s i g na n dl m p l e m e mo f16 3 2 - b i tm c us o f t w a r es i m u l a t o r a b s t r a c t a n dt h ec o n s t r u c t i o n , t r a n s l a t i o na n do p t i m i z a t i o ni ss t u d i e d t h ei n s t r u c t i o nf u n c t i o ni s d e s i g n e da n dt h et r a n s l a t e dv i r t u a li n s t r u c t i o ni so p o t i m i z e d a tl a s t , ag e n e t i ca n d h i e r a r c h y i n d e p e n d e n ti n s t r u c t i o ns i m u l a t o ri si m p l e m e n t e d t h i r d l y , t of a c i l i t a t et h e s o f t w a r ed e v e l o p m e n t ,s i m u l a t i o nd e b u g g i n gi si m p l e m e n t e da n ds e v e r a ld e b u gm o d e sa r e p r o v i d e da n dt h et i m i n ga n a l y s e f i n a l l yt h et e s to fm c us o f t w a r es i m u l a t o ri sd o n e ,t h e r e s u l ts h o w st h a tt h em c us o f t w a r es i m u l a t o rm o d e la n dt h ed e s i g no fv i r t u a li n s t r u c t i o n b o t hc a ns a t i s f yt h er e q u i r e m e n to fm c us o f t w a r es i m u l a t o r k e yw o r d s :m v cp a t t e n ,c o m p o n e n t , m c us o f t w a r es i m u l a t o r , v i r t u a li n s t r u c t i o ns e t , s i m u l m i o nd e b u g g i n g i i l w f i u e n b y :x uh u a i l i a n g s u p e r v i s e db y :z h uq i a o m i n g 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集 体已经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的 学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已 在文中以明确方式标明。本人承担本声明的法律责任。 研究生签名:鳓 日 期: 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论文合作部、 中国社科院文献信息情报中心有权保留本人所送交学位论文的复印件和电 子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅 和借阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括 刊登) 授权苏州大学学位办办理。 研究生签名:鳓期: 导师签名:期: 1 6 位3 2 位m c u 软件仿真器的设计与实现第一章绪论 第一章绪论 1 1 嵌入式系统与m c u 概述 嵌入式系统( e m b e d d e ds y s t e m ) 是一种面向测控对象,将计算机( 或单片机) 嵌入 到实际应用系统中,实现嵌入式应用的计算机系统【1 】。它一般包括微控制器及其软、 硬件系统。 微控制器( m i c r oc o n t r o l l e ru n i t ,m c u ) ,也就是人们通常所说的单片机,其全 称为单片微型计算机( s i n g l ec h i pm i c r oc o m p u t e r ) ,基本含义是:在一块芯片上集 成了中央处理单元( c p u ) 、存储器( r a m r o m 等) 、定时器计数器及多种输入输出( i o ) 接口的比较完整的数字处理系统【l 】,图1 - 1 给出了典型的m c u 组成框图。各种各样的 以单片机为核心的应用系统从广义上来说都是简易的嵌入式系统。 c p u ii 工作支撑模块ii r a m il f l a s h 存储 m c u 内部总线( 控制总线、数据总线、地址总线) 定时器接口i悼行通信接口ii a y d 转换接口i i 其他i 0 模 1 2 研究背景 图卜1 一个典型的m c u 内部框图 在p c 机和普适计算盛行的今天,嵌入式系统的应用开发已经成为计算机工业最 热门的领域之一,广泛应用于消费类电子、汽车电子、信息、工业控制、通信、航天 和军工等诸多领域,并渗透到我们日常生活的各个角落。 与此同时,在嵌入式系统应用的开发中,软件开发在整个项目开发中所占得比重 越来越大,已经成为数字化产品中的设计创新和软件增值的关键因素,是未来市场竞 争力的重要体现。 因此,面向应用的软件开发成为嵌入式工业的基础,与之紧密联系的开发调试工 具则是嵌入式支撑软件的核心,开发工具的集成度和可用性直接关系到嵌入式系统应 用的开发效率。 随着全球电子制造业产能继续向中国转移,未来几年将推动中国消费电子产量持 第一章绪论1 6 位3 2 位m c u 软件仿真器的设计与实现 续增长,中国内销市场增长旺盛也对消费电子产业形成很大的拉动作用。 在消费电子产品制造业持续发展的带动下,未来几年中国m c u 市场规模持续增 长,预计2 0 0 6 年- 2 0 1 0 年这5 年间市场的年均复合增长率将达到2 2 1 ,到2 0 1 0 年 时其市场规模将达到8 0 4 2 亿元。 与此同时,数字电视一体机、电子游戏机等数字消费电子产品以及高端白色家电 市场需求的强劲增长,必然拉动对1 6 位3 2 位高端m c u 的需求,并使得1 6 位3 2 位 高端m c u 市场份额不断增长。 科学时报曾报道:从2 0 0 8 年开始,中国的m c u 市场会进入一个新的时代, 对1 6 位3 2 位m c u 的市场需求会迅速增加。 1 3 课题来源 本课题来源于苏州市工业科技攻关项目基于1 6 位3 2 位m c u 的嵌入式软件开 发平台。该课题目标是通过研究m c u 调试技术及g c c 交叉编译技术,研发适用于1 6 位3 2 位m c u 的通用型嵌入式软件开发平台。在通用的开发框架下,集成工程管理、 源码编辑、远程调试、下载代码、扩展功能的解决方案。该平台的特点是具有良好的 通用性和可扩展性,并提供多样性的调试接口。 课题设计和开发的基于1 6 位3 2 位m c u 的通用嵌入式开发平台可以为国内广大 嵌入式产品研发人员提供一套廉价实用的工具。为国内高校利用国产化的开发工具和 实验仪器进行嵌入式系统教学提供方便,通过提供丰富的实验例程和教程,为1 6 位 3 2 位嵌入式系统初学者进行实验和开发提供捷径。 通过对仿真器的研究,可以帮助用户更高效、快速地开发嵌入式软件系统,产生 极大的社会和经济效益,增强其在市场中的竞争力。本文主要设计和实现了项目中的 1 6 位3 2 位m u c 软件仿真器。 1 4 研究现状 1 4 1 嵌入式软件开发方式比较 嵌入式系统的开发就是软硬件协同开发的过程,主要包括两部分:硬件设计和 软件设计。其中,硬件是应用程序运行的平台,不同的硬件平台需要设计不同的应用 2 6 位日2 位m c u 软件仿真嚣的设计与实现 第一章绪论 程序,同时不同的应用程序也需要不同的硬件环境。 l 、传统开发方式 在系统软件硬件功能分解后,开发人员分别进行独立的软件与硬件设计开发。 该阶段又可细分为无操作系统支持和有操作系统支持两个阶段。 无操作系统阶段:即基于程序设计语言的软件开发,早期的编程语言主要是汇编 语言,现在主要包括嵌入式程序设计语言如引入嵌入式系统的c c + + e c + + 以及j a v a 。 嵌入式开发中采用高级语言,使得硬件开发和软件开笈可以分工,从事嵌入式软件开 发不再必须精通系统硬件和相应的汇编语言指令集,大幅度提高了嵌入式系统工程师 的工作效率,同时也可以方便地进行移植。 有操作系统阶段:这是随着嵌入式技术发展而逐步完善起来的趋势,代表是 w i n d r i v e rs y s t e m 公司的v x w o r k s t o r n a d o 、m i c r o s o f t 公司支持w i n 3 2 a p i 编程接 口的w i n d o w s c e s t u d i o 、p a l m 公司的广泛应用于p d a 市场的p a l mo s 以及l i n u x 等。 这类开发平台和工具通常具有专用性,使用前需要移植相应的操作系统,同时开发的 软件系统在很大程度上依赖其提供的操作系统。 该方式的优点是运行比较精确,时序严格。其缺点是软件调试在没有硬件支持的 情况下无法有效进行,必须等待硬件原型制造出来才能在上面调试和整个系统的集成 与测试。由于软件与硬件设计是相互独立完成的,嵌入式系统行为模型的合理性、软 件硬件间接口的有效性等问题在集成测试阶段才能得以验证,早期设计阶段的问题 等到这时才可能发现,严重的情况下还要重新调整软件硬件功能分配,重复整个开 发流程,浪费极大的人力物力,使得开发周期较长,开发成本较高。 2 、硬件仿真,在线仿真 大多数的嵌入式应用设计都是使 用i d e 与目标板相结合的方式进行开 发的,如图1 2 所示。其优点是能在 硬件上直接进行调试,而且调试力度 高,能反应目标板的真实运行情况。 当然该种方式也存在缺点,如下: j 田卜2 硬件仿真开发囝 ( 1 ) 需要定制在线仿真器,不同的目标板的仿真器不同: ( 2 ) 调试过程繁琐:在p c 机上完成开发后,下载到目标板进行调试,若出现问题 第一章绪论1 6 位b 2 位m c u 软件仿真嚣的设计与实现 则需要在p c 方修改,之后再重新下载、调试,过程繁琐、麻烦,开发效率低。 ( 3 ) 调试过程中问题难于定位,不能确定是软件问题还是硬件问题。 ( 4 ) 在线仿真器价格比较贵,一般4 0 0 0 元左右。而且要求设计者或设计团体必须 具备软件开发和硬件设计的能力。一般来说,很难兼顾两方面的知识。 此外,目前硬件仿真只限于进行功能验证、故障仿真以及部分的时序验证。 3 、软件仿真开发 该种开发方式使得所有的操作在p c 机上完成,包括开发和调试,不需要任何目 标板的支持,如图卜3 所示。该方式可进 一步改善开发环境,避免硬件干扰,集中 精力开发软件。为程序员提供了一个更便 捷、高效、低成本的开发环境,在仿真平 台开发出的程序,具有较高的可移植性, 一些成熟的通用程序可以作为专用库函 数产品推向社会。 【,lnon 田1 3 软件竹真井发田 其优点是突破嵌入式系统开发中软硬件结台紧密的障碍,提高系统软硬件协同设 计和开发的速度,还可以使人在计算机上自由地运行其所希望的程序而无需关心底层 硬件和系统软件的技术差异,而且过程简洁、调试方便、真正实现软硬件的并行开发、 降低开发成本、加速产品进入市场的周期,在芯片的开发和应用领域有广泛的应用。 这也是本文设计实现删软件仿真器的原因之一。 1 4 ,2 研究现状 软件仿真器己有数十年的历史,这可以追溯到1 9 6 4 年e 那时i b m 的新s y s t e m 3 6 0 可以执行为i b m l 0 4 0 写的程序1 2 1 ,只是速度比在真正的芯片上运行要慢很多。i b m 公 司在1 9 9 4 年用o + 实现了一个面向p o w e r p c 6 9 3 处理器的时钟精确模型口】。服务器巨 头s u n 公司在1 9 9 5 年开发u l t r a s p a r c 处理器时,设计了名为i n c a s 的时钟精确仿真 模型i “。1 9 9 2 年威斯康星大学编写了一个叫s i m p l e s c a l a r 的工具集n 并在1 9 9 5 年 成为开源工具。嵌入式处理器供应商a r m 的o e s i g n s t a r t 计划则是时钟精确仿真平台 应用的成功例子1 6 。斯坦福大学的开源项目s i a o s 主要仿真m i p s 处理器,是一个全 系统仿真平台,可以运行i r i x ( u n i x ) 操作系统川。mw o u d g i l l 实现了每小时运行超 羁 1 6 位3 2 位m c u 软件仿真器的设计与实现 第一章绪论 过3 5 0 万条指令的仿真软件t u r a n d o t i 引。e d d yo u i c k s a l l ,k e n g i b s o n 提出了一种利 用仿真环境加速驱动开发的方法【9 】。国内芯片设计厂商苏州国芯科技有限公司在2 0 0 3 年推出基于摩托罗拉的m , c o r e 名为c * s o c 的s o c 仿真验证平台【l o 】,其中包括一个仿 真器一s i m d e v 。李霞、亓雪冬设计实现了在l i n u x 系统上的r t o s 通用仿真环境 l i n u x v a l i l l 】。浙江大学的金方其等设计实现了一个可重配置的时钟精确嵌入式处理器 仿真平台【l2 1 。苏州大学的廖桂华设计实现了一个面向f r e e s c a l e s 0 8 系列m c u 的软件 仿真器【13 1 。电子科技大学的江乐斌等设计实现了一个面向a r m 系列的m c u 仿真平台 1 1 4 1 o 从上面分析看出,目前大多数的仿真器都是针对8 位1 6 位m c u 的仿真器,部分 是针对1 6 位3 2 位的m c u 设计的,但都只适用于某一系列的m c u ,仿真器不具备通用 性,而且不容易扩展。基于基于1 6 位及3 2 位m c u 的嵌入式软件开发平台的课题, 创建一种适用于多种目标m c u 的软件仿真器是很必要的。本文的目标是通过研究m c u 结构及相关的仿真技术,设计一种适用于1 6 位及3 2 位m c u 的通用型软件仿真器。 1 5 基于构件的m c u 软件仿真器模型 通过对当前嵌入式产品的开发需求和技术现状的分析,确定核心问题和关键技术 之后,综合研究构件技术和虚指令技术,提出了一种基于构件的m c u 软件仿真器模型, 通过采用虚指令技术,设计实现一种通用型的m c u 软件仿真器。该仿真器通过组合硬 件仿真构件构成m c u 软件仿真器,实现目标m c u 的功能仿真。对于指令的仿真设计采 用虚指令仿真技术,使得仿真器具有一定的通用性。同时仿真器还提供了丰富的调试 方式,使调试工作可以在仿真器上进行,脱离真实硬件,不仅可以跟踪调试应用软件 的执行过程,也可以对m c u 的运行状态了如指掌,使软件的设计错误在系统制造之前 就被发现、修改。 仿真器的设计采用m v c 模式,总体分为两层结构:用户接口层和指令仿真层。用 户接口层的设计采用构件技术,使得仿真器具有很强扩展性,以便以后扩充对其它类 型的m c u 的支持。指令仿真层采用虚指令集实现,使仿真器具有良好的通用性。 第一章绪论 1 6 位3 2 位m c u 软件仿真器的设计与实现 1 6 研究内容与本文结构 1 6 1 研究内容 本文首先探讨了当前主流的嵌入式开发方式及相关的仿真技术,针对嵌入式系统 软硬件交叉开发过程中的问题,引入了纯软件仿真的开发方式。通过对不同体系m c u 的研究,设计了基于构件的m c u 软件仿真器模型。通过采用虚指令技术设计并实现了 一种颇具通用性的基于指令仿真的m c u 软件仿真器。并给用户提供了多种调试手段, 便于用户进行软件开发。 为实现具备良好的扩展性和通用性的m c u 软件仿真器,本文的主要内容如下: ( 1 ) m c u 硬件体系结构分析:针对硬件系统的复杂性和相关性,深入地分析了m c u 各硬件模块的体系结构及工作原理,引入了构件技术。 ( 2 ) m c u 软件仿真器的设计与实现:针对嵌入式m c u 逻辑复杂的问题,深入剖析了 m c u 原型,设计了一种基于构件的m c u 的软件仿真器模型、设计了构件的结构及构件 间的逻辑关系、分析了m c u 仿真器模型的可扩展性,并最终实现了一种基于指令仿真 的m c u 软件仿真器。 ( 3 ) 虚指令集的设计与实现:针对嵌入式m c u 体系的多样性,分析了几种常见的 指令集系统,研究了虚指令仿真技术,实现虚指令集的设计与翻译以及虚指令功能函 数的实现,并讨论了几种指令仿真过程中的优化技术。 ( 4 ) 仿真调试的设计与实现:针对用户的调试要求,通过分析源文件、反汇编文 件及d b g 文件,设计并实现了种基于构件的仿真调试平台,并分析了时序分析模 块的关键问题。 ( 5 ) m c u 软件仿真器的测试:本文最后对实现的仿真器进行了部分测试,结果表 明仿真器模型和虚指令的设计都能较好的满足仿真器的要求。 1 6 2 本文结构 全文共七章,各章的内容安排如下: 第一章,介绍嵌入式系统及m c u 、课题的背景和来源、研究现状以及基于构件 的m c u 仿真器模型的提出,最后给出本文工作及结构。 6 1 6 位3 2 位m c u 软件仿真器的设计与实现第一章绪论 第二章,介绍了嵌入式系统构件仿真的相关技术,包括仿真技术、m c u 软件仿 真技术、构件技术、虚指令技术以及m v c 设计模式。 第三章,通过分析不同体系结构的m c u ,设计了基于构件的m c u 软件仿真器 模型,并介绍模型的设计、工作流程、特点、实现方法、逻辑关系和扩展性分析,最 后总结了本章的关键技术。 第四章,实现了m c u 仿真器模型中的各个构件,包括m c u 构件、m m u 构件、 c a c h e 构件、w r i t e r b u f f e r 构件及其他构件,分析了m c u 必须提供的接口,实现了 m c u 软件仿真器,最后总结了本章的关键技术。 第五章,阐述了虚指令的概念、给出虚指令的设计分析及实现,介绍了虚指令的 翻译过程以及虚指令函数的实现,最后总结了本章的关键技术。 第六章,给出调试模块的分析、设计并实现了仿真调试平台并对m c u 仿真器进 行验证和分析,最后总结了本章的关键技术。 第七章,对整个设计过程进行总结,并给出了设计中存在的不足之处以及下步的 工作。 7 第二章m c u 软件仿真的相关技术1 6 位3 2 位m c u 软件仿真器的设计与实现 第二章m c u 软件仿真的相关技术 2 1 仿真技术概述 计算机仿真技术是近3 0 年发展起来的- - i j 综合学科,它以控制论、系统论、相 似原理和信息技术为基础,以计算机和各种物理效应设备为工具,借助系统模型对实 际或设想的系统进行动态试验研究的一门综合性技术。 仿真意指在实际系统尚不存在的情况下对于系统或活动本质的实现【1 5 】,这是 g w m o r g e n t h a t e r 于1 9 6 1 年首次对仿真进行的技术性定义。计算机仿真则是利用计 算机仿真实际系统,对系统进行分析与研究,以此获得该系统的行为数据。当真实系 统进行实验分析比较困难或代价昂贵甚至没有可能时,仿真技术就显示其无可替代的 作用【1 6 1 。 2 1 1m c u 软件仿真技术 m c u 是嵌入式硬件系统的不可缺少的组成部分,m c u 的仿真不同于一般集成电路 的仿真,m c u 的一些运行机制( 如中断、异常、时序控制等) 在一定的条件下才能启动, 而且周期精确的仿真必须要实现流水线技术的仿真,这是难点也是重点。 从本质上讲,m c u 软件仿真器是一种集成运行环境的仿真,要求实现m c u 的功能、 对外的接口以及和其他设备的交互,由于本文重点在于指令集的仿真设计与实现,因 此下面详细介绍指令集仿真的原理及过程。 1 、仿真原理 基于w i n d o w s 的汇编级的软件仿真器是用软件仿真实现各硬件的功能,并通过指 令解释的方法完成指令功能的仿真过程。一个仿真器就是一个特定的目标板,本文采 用构件设计实现,仿真构件应包含三要素:内部属性、功能模块及对外接口。内部属 性对应着各硬件的属性;功能模块是对硬件功能的仿真;对外接口是各硬件所能提供 的相应接口。因各构件是根据各种硬件的结构设计的,故又可称之为“软硬件 。而 且各构件都设计了相应的时钟模块,可参照m c u 的体系结构及其工作流程,使这些构 件在统一的时钟下相互合作完成各硬件功能的实现,从而完成仿真。 2 、仿真过程 8 1 6 位3 2 位m c u 软件仿真器的设计与实现第二章m c u 软件仿真的相关技术 本文设计的仿真器是基于w i n d o w s 的汇编级指令集仿真器,其主要仿真过程包括 m c u 仿真器的生成、指令集的仿真以及调试过程的仿真。 “硬件”初始化:用户在集成开发环境中新建工程,并通过编译、连接之后,可 以调用软件仿真器进行仿真运行,仿真器启动时,系统根据用户新建工程的属性,如 m c u 类型等信息,调用相应的构件完成仿真器的初始化。初始化工作包括:生成一种 具体型号的m c u 仿真器对象,该对象一般有c p u 构件、m e m o r y 构件、r e g is t e r 构件、 t i m e r 构件组合而成,并初始化系统运行参数和状态,为存储器、寄存器和i o 等分 配空间,并初始化r o m 和r a m 的内容和一些寄存器的初值,为程序仿真运行提供环境, 该过程就是生成目标m c u 的软件仿真器。 指令仿真:初始化m c u 仿真器之后,便进入指令集仿真阶段。根据m c u 仿真器的 类型,调用相应的构件完成指令的仿真。其过程如下:首先查询系统队列看是否有用 户请求,若有,则响应请求,并根据请求的内容完成一些特定的操作;若用户选择调试 状态,则仿真器转入调试状态;若出现异常,则跳到相应的异常处理过程中执行,否 则正常运行,先通过调用c p u 的取指构件读取p c 地址处的指令,采用解释方法解释 指令,通过对指令字及汇编标识符的识别,完成指令的寻址和译码,最后通过规则匹 配调用相应的指令执行过程完成指令仿真。指令仿真完成后,调用更新构件,更新该 指令操作过的存储器、i o 和寄存器等等。 仿真调试:当用户要求进入调试状态时,调用调试构件完成仿真调试。本仿真器 提供两种调试手段:断点调试和单步调试。进入调试状态后,根据用户要求的调试方 式进行调试。过程如下:首先判断指令仿真过程有无异常发生,若有则调用相应的异 常处理程序,异常处理后退出;否则继续运行,根据p c 指针取得指令并且仿真运行, 运行过程中检查是否到达用户设置的断点,若到达断点处则停止执行,根据用户的调 试请求如单步调试、单步步入、单步跳出、单步步过等进行调试。若没有到达断点处 则按照取指、译码、执行三步继续仿真运行,如果用户要求单步运行,则只执行一条 指令就停止,等待用户的命令。 2 1 2 仿真分类 对仿真技术的基本要求是精度、速度和费用。精度是说明仿真系统能力的最基本 指标,目前数字仿真技术日益成熟,仿真精度一般能达到要求。速度也是一个重要指 9 第二章m c u 软件仿真的相关技术1 6 位3 2 位m c u 软件仿真器的设计与实现 标,特别是在规模不断增大的集成电路仿真中,速度日益成为仿真的瓶颈。另外,仿 真的目的是用较少的费用来验证系统的设计是否达到预定的要求,尽早发现问题,通 过减少设计风险来降低产品的开发成本。因此,当仿真费用低于预定的产品开发成本 时,仿真才有价值。 从仿真时钟( 系统仿真时模型所采用的时钟) 与实际时钟( 实际系统运行时的时钟) 之间的比例关系来分类,可以将系统仿真分为实时仿真、亚实时仿真和超实时仿真【l 5 1 。 实时仿真的仿真时钟与实际时钟完全一致,嵌入式应用中目标系统的在线调试就属于 实时仿真。亚实时仿真的仿真时钟慢于实际时钟,软件仿真属于亚实时仿真。超实时 仿真的仿真时钟要快于实际时钟。 根据所研究的系统不同,系统仿真又可分为连续系统仿真和离散事件仿真 1 7 , 1 8 , 1 9 。在单片机系统中,键盘中断事件需用户的参与,属于离散事件;定时器计数 功能属于连续事件。对键盘中断事件的仿真就属于离散事件的仿真,而对定时器计数 功能的仿真则属于连续系统的仿真。 从仿真手段来考虑,仿真可分为两类2 0 1 ,一类是软硬件结合的仿真器,当前国内 常用的嵌入式软件开发系统大多是这种仿真器,它以在线仿真器i c e 为核心,存在许 多缺陷f 2 l 】。另一类是软件仿真器,它一般不与实际应用硬件环境联系,是用软件的手 段对运行嵌入式应用程序所需的特定硬件环境( 包括c p u 、内存及其它外围硬件设备) 及其活动进行描述( 仿真) ,进而可以在没有真实硬件环境的情况下,实现程序的仿真 运行,与前者相比,最大的优点是脱离具体的硬件,便于调试【2 。 软件仿真器又可再细分为结构仿真器和指令集仿真器【2 0 1 。前者是对目标芯片的完 全描述,仿真芯片真实的物理结构,它不仅仿真了芯片的寄存器和存储器,而且还仿 真了芯片的c a c h e 结构、跳转指令预测和无序执行等。因而它不仅能给出指令执行的 效果,而且还能够给出指令在流水线运行中的过程。指令集仿真器只对指令运行的结 果加以仿真。 2 2 构件技术 所谓构件( c o m p o n e n t ) 是指组封装的、规范的、可重用的软件模块,它具有特 定的功能,支持灵活的即插即用,可以方便地插入到网络、语言、应用、工具、操作 系统中工作,是组织系统的基本单位【2 2 1 。g a r t n e rg r o u p 是这样定义的:运行时,软 l o 1 6 位3 2 位m c u 软件仿真器的设计与实现第二章m c u 软件仿真的相关技术 件构件是一个可动态绑定的、含一个或多个程序的软件包,它作为一个独立单位,通 过运行时可辨别的文档化接口加以管理和存取。构件是一个动态的概念,运行时要占 用内存空间,具有一定的生命周期即构件的创建、构件的运行和构件的消亡。 构件的封装性有两层含义:一层是指数据和操作的封装;另一层是指没有操作的 数据属性的封装,这一层的封装可以认为是数据和操作封装的一种特例,即操作为空 的特殊封装。象a d a 的p a c k a g e 、s m a l l t a l k 一8 0 的o b j e c t 、c + + 的c l a s s 和数据类型 都可属于构件范畴。但是操作集合、过程、函数即使可以重用也不能成为一个构件。 2 2 1 构件模型 构件模型是为开发者定义软件构件而建立的体系结构和a p i 集,使开发者可通过 软件构件的动态组合来建立应用系统。构件模型由构件和容器两种主要成份构成。构 件是具有可复用特性的基本软件部件。容器用于存放和安排构件,实现构件间的交互, 也可以作为另一个容器的构件使用。 目前,产业界广泛使用的具有代表性的构件模型主要有:3 c 模型、对象管理组 织o m g 的c o r b a 、微软公司的c o m d c o m c o m + 、s u n 公司的j 2 e e 和微软与i b m 提出的 w e bs e r v i c e s 以及e j b 模型等。从构件组装的角度可以将构件分为源代码级构件和 二进制代码级构件。3 c 模型是一个指导性的构件模型,认为对一个构件的描述应该 包括概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同方面的内容。c o r b a 模型则是通过属性、功能接口和依赖关系三个部分来描述一个分布式二进制代码级构 件,c o m d c o m 模型和e j b 模型与c o r b a 模型类似,侧重于实现分布式二进制代码级 构件的复用。w e bs e r v i c e 是由u r i 标识的软件应用程序,其接口和绑定可以通过x m l 构件进行定义、描述和发现,w e b 服务支持通过基于因特网的协议使用基于x m l 的消 息与其他软件应用程序直接交互。w e bs e r v i c e 解决了不同构件平台、不同操作系统 之间的互操作问题,从而使应用系统的设计开发、组装可以按语义方式、面向服务的 形式来实现。真正意义上的基于构件的软件开发模式是在源码件或者比它更高层次的 设计件、分析件的基础上进行的,而就目前的研究情况来看,支持源码级组装的构件 模型并不多。 2 2 2 构件动态组合技术 构件的动态组合是一种高级的构件组合技术,它要求构件的连接与构件的执行不 第二章m c u 软件仿真的相关技术1 6 位3 2 位m c u 软件仿真器的设计与实现 间断地进行,即连接好的构件要能够立即执行。毫无疑问,动态组合构件对于构件的 重用能够提供更加方便、有效的手段,但同时它也对构件提出了特殊的规格要求。 i n t e l l i g e n t p a d 就给出了一种具有动态组合特性的构件的规格【2 3 1 。 i n t e l l i g e n t p a d ( 简称i p ) 是日本北海道大学田中让教授提出的一种软件重用方 法,该方法实现了软件构件设计过程的构件分解、合成和重用过程。在i p 方法中, 构件统一用p a d ( 纸片) 概念来表示,p a d 既具有作为软件构件的处理功能,同时还具 有一定的外观,用户可以自由设定屏幕上p a d 的位置和大小。p a d 还可以相互粘贴以 生成复合p a d ,将某一p a d 移到另一p a d 的显示区域内即将前者粘贴到后者上。p a d 的粘贴和剥落实际上就是构件的动态组合和分解过程。采用i p 技术后,复合构件也 是能够直接执行的对象。 i p 构件模型给出了具有动态连接特性的构件的一种规格。i p 构件是实现构件动 态连接的基础。本文在各构件设计完成之后,采用i p 技术对其进行封装,封装是将 构件对外提供服务的接口表示成统一的形式,并为构件的组合提供支持。封装后构件 的对外接口被表示成插槽和插头的形式,符合i p 构件的设计,便于构件的组合。 2 2 3 基于构件开发的现状 嵌入式系统的快速增长和嵌入式软件复杂度的增长,迫切要求提高嵌入式软件 的开发技术,而软件工程在嵌入式系统仿真领域的发展要远远落后于其他应用领域 z 4 1 。经过多年的发展,硬件仿真系统中已普遍采用了构件技术,如m a t l a b 2 5 1 、s i m u l i n k 【2 6 1 、v h d l 2 7 1 。e d a 工具一般也都带有构件化的硬件仿真系统【2 8 】,以验证设计的硬件电 路,但这些仿真系统的设计方法并不适合在软件仿真器中使用,主要原因是1 ) 仿真硬 件的构件模型抽象粒度过细,达到了门电路级。嵌入式系统软件仿真器是为了验证软 件对硬件仿真的正确性,只需要仿真出硬件的功能,不需要仿真其内部的真实运行过 程。仿真过细对帮助软件调试并没有好处,反而会增加仿真的工作量和仿真构件的复 杂度。2 ) 没有考虑与开发工具之间集成的问题。 2 3 虚指令技术 传统的指令集仿真方法有基于解释型仿真和基于编译型仿真两种【2 9 1 。由于传统仿 真技术多针对于具体的处理器,随着技术的进步,处理器的种类越来越多,用户迫切 1 2 1 6 位3 2 位m c u 软件仿真器的设计与实现第二章m c u 软件仿真的相关技术 需要可以仿真多种处理器的仿真器,这促使了可重用仿真技术的出现和发展。 利用虚指令来进行可重用指令集仿真是- f - j 新兴的仿真技术【3 0 1 。在该技术中,仿 真器分为前端和后端:仿真器前端是虚指令翻译器,负责将各种处理器的汇编指令翻 译为虚指令,供仿真器后端识别并仿真;仿真器后端与普通的仿真器类似,只是普通 仿真器是对具体的处理器指令进行仿真,而后端则对前端生成的虚指令进行仿真。可 见利用虚指令仿真技术可以实现通用型仿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论