![(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf_第1页](http://file.renrendoc.com/FileRoot1/2019-12/13/5567682c-e640-4a5e-9b11-6f9f44c9c1a4/5567682c-e640-4a5e-9b11-6f9f44c9c1a41.gif)
![(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf_第2页](http://file.renrendoc.com/FileRoot1/2019-12/13/5567682c-e640-4a5e-9b11-6f9f44c9c1a4/5567682c-e640-4a5e-9b11-6f9f44c9c1a42.gif)
![(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf_第3页](http://file.renrendoc.com/FileRoot1/2019-12/13/5567682c-e640-4a5e-9b11-6f9f44c9c1a4/5567682c-e640-4a5e-9b11-6f9f44c9c1a43.gif)
![(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf_第4页](http://file.renrendoc.com/FileRoot1/2019-12/13/5567682c-e640-4a5e-9b11-6f9f44c9c1a4/5567682c-e640-4a5e-9b11-6f9f44c9c1a44.gif)
![(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf_第5页](http://file.renrendoc.com/FileRoot1/2019-12/13/5567682c-e640-4a5e-9b11-6f9f44c9c1a4/5567682c-e640-4a5e-9b11-6f9f44c9c1a45.gif)
已阅读5页,还剩52页未读, 继续免费阅读
(电路与系统专业论文)基于CKcore的可扩展硬件模拟平台研究[电路与系统专业优秀论文].pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 硬件模拟平台是在广泛使用的、人机接口完备的工作平台上,如小型机和 p c ,通过软件手段模拟执行为某种嵌入式处理器内核编写的纯软件实现的程序 测试工具,在嵌入式开发中,这是一种必不可少的软件开发平台。 本文从硬件模拟平台开发的必要性谈起,探讨了现有的模拟平台的一些特 性,综合分析c k c o r e 的特点和需求,提出了一种全新的模拟器c k s i m u l a t o r 的架构设计,讨论的重点在平台的灵活性和可扩展性设计上。c k s i m u l a t o r 的设 计中主要提出了三点创新来改善模拟平台的可扩展性与灵活性: 第一,为了模拟器结构清晰,统一访问入口,设计一个完整而独立b u s 的数 据结构,模拟目标硬件中总线的功能。由于以往模拟器的设计往往出于一些其他 的考虑而忽略了这一点,导致m e m o 叭i o 访问入口容易出现混乱,而这种b u s 访问入口的完善,可以统一访问入口,使程序结构变得非常清晰。 第二:,为了便于外围设备的扩展,设计一种通用的m o d u l e 数据结构。因为 所有的外围设备对于c p u 来说,都只是i o 的访问,那么只要在m o d u l e 中实现 了i o 方法的入口, 一个完整的开发板上,除c p u 和b u s 之外,所有的外围设备 都可以用这样一个m o d u l e 数据结构来描述。这种结构与上面提到的b u s 结构相 结合,使c k s i m u l a t o r 的设备扩展非常容易。 c k s i m u l a t o r 设计的第三个创新,是指令集模拟设计中的实现方法。 c k s i m u l a t o r 的设计中,指令集的功能使用一个类实现,每一条指令形成一个完 全独立的方法,这种结构保证了每条指令完全独立的特性,使以后的指令扩展也 非常容易。 c k s i m u l a t o r 平台的可扩展性设计对于使用c k c o r e 的任何一种m c u 的模 拟扩展都非常方便,也便于c k c o r e 的升级。 关键字:硬件模拟平台指令集模拟可扩展性设计嵌入式软件开发 c k c o r ec k 5 1 0 a b s t r a c t b e g i i l i l i n g 谢t h 恤en e c e s s i t ) ro ft h cd e v e l o p m e n to ft h es i m u i a t o rb a s e do n c k c o r e ,t l i i sa n i c l ed i s c u s s e sm ec h a m c t e r so fe x i s t e ds i m u l a t o r s ,a n a l y z e s 也e c h a r a c t e r sa n dn c e d so fc k c o r e ,a n dp u t sf b 删dan e wk i n do ff h n ed e s i g n t h e d i s c u s s i o na i l da n a l y s i sp u tt h ee m p h a s i so nt h en e x i b i l i t ya 1 1 de x p a n d a b i l i 哆o ft h e s i m l l l a t o li nt h i sp a p e r ,t 1 1 r e ec r e a t i v ep o i n t sa r ed e r i v e dt oi m p r o v et h en e x i b i l i t ya n d e x p a n d a b i l i t yo f n l es i m u l a t o r ,i n c l u d i n g : f i r s t ,a ni n t e g r a t e da n di n d 印e n d e n td a t as m l c t u r ei sd e s i g n e dt os i m u l a t et l l eb u s , w h i c ha l w a y si si g n o r e db yt h ee x i s t e ds i m u l a t o r sd e s i g n e r s a sar e s u l t ,t h ea c c e s so f m e m o r ya n di o t e n d st ob ed i s o r d e r e d i nc o n t r a s t ,u n i f y i n g l ea c c e s s ,t h e m e n t i o n e db u sc a nm a k et h ep r o g r a mf 捌 i l ec l e a l s e c o n d ,au n i v e r s a ld a t as t r i l c t u r en a m e dm o d u l ei sd e s i g n e dt os i m u l a t et 量l e p e r i p h e r a le q u i p m e m i ti sw e l lk n o w n t h a tw h a tc p ud o e sw i _ i l lp e r i p h e r a le q u i p m e n t o n l yi si ,o a sar e s u l t ,o n l yi fi 0a c c e s si sr e a l i z e di nm o d u l ed a t as t r u c t u r e ,c a l la l l p e r i p h e m le q u i p m e n tb es i m u l a t e db yt l l i sd a t as t r u c t u r e t h ea b o v et w od a t as t r u c t u r e sm a l ( et h ei l l l i t so fc k s i m u l a t o re x p a n dm o r e e a s i l y t h i r d ,i ti sam e t l o db yw h i c hi n s t r u c t i o ns e ti sr e a l i z e di ns i m l l l a t i o nd e s i g n i n c k s i m u l a t o r ,廿l ei n s t m c t i o ns e “sr e a l i z e di nap a t c c mo fl i b r a j xw h i c hm a k e s f o l l o w i n gi n s t r u c t i o ne x p a r dv e r ye a s i l y k e y w o r d s :s i m u l a t o r s i m u la t o ro f i n s t m c t i o ns e t e x p e n d a b l ed e s i g n e m b e d d e ds o 盘w a r ed e v e l o p m e n t c k c o r ec k 5 10 第一章绪论 随着科学技术的不断发展,人们对生活质量要求的不断提高,数字化产品和 网络技术在人们生活中的应用也越来越多。而在被称为“后p c ”时代的现在,形 式多样的各种嵌入式产品,开始取代p c 机成为人们处理信息的一大工具,小到 m p 3 、手机、机顶盒、数码相机等微型数字化产品,大到网络家电、智能家电、 车载电子设备、工业机器人,在不知不觉中,嵌入式已经无处不在形成了一个充 满商机的巨大产业。嵌入式应用的广阔前景给嵌入式软件带来了机遇,但同时也 给嵌入式软件的开发带来了极大的挑战。 嵌入式的开发中,如何缩短开发周期,降低开发成本是每个从事嵌入式丌发 的人最为关心的问题,这也是开发能否成功的关键。在嵌入式软件开发过程中, = j i f 发调试手段的状况基本上决定了丌发的效率,也就是说,是否好的丌发调试手 段,好的丌发平台,这将足决定嵌入式开发是否成功的关键。因此开发平台的建 立与完善,各种开发工具的完备,对于嵌入式的开发来说至关重要。 另一方面,传统的嵌入式开发都是先硬件后软件的开发模式,但是这种模式 由于硬件和软件不能并行开发而造成人力资源的浪费,更重要的是开发周期受到 很大的影响,实际上,对于嵌入式的开发来说,一个能够获得软硬件并行开发的 开发平台是必要的。 1 1 开发平台的类型 好的丌发平台除能够开发出处理器的全部功能以外,还应当是用户友好的。 目前嵌入式系统的开发工具平台主要包括下面几类。 1 实时在线仿真系统i c e ( i n c i r c l l i te m u l a t o n 直到计算机辅助设计非常发达的今天,实时在线仿真系统r i c e ) 仍是进行嵌入 式应用系统调试最有效的开发工具之一。i c e 首先可以通过实际执行,对应用程 序进行原理性检验,排除以人的思维难以发现的设计逻辑错误。i c e 的另一个主 要功能是在应用系统中仿真微控制器的实时执行,发现和排除由于硬件干扰等引 起的异常执行行为。此外,高级的i c e 带有完善的跟踪功能,可以将应用系统 的实际状态变化、微控制器对状态变化的反应、以及应用系统对控制的响应等以 一种录像的方式连续记录下来,以供分析,在分析中优化控制过程。很多机电系 统难以建立一个精确有效的数学模型,或是建立模型需要大量人力,这时采用 i c e 的跟踪功能对系统进行记录和分析是一个快而有效的方法。 嵌入式应用的特点是和现实世界中的硬件系统有关,存在各种异变和事先未 知的变化,这就给微控制器的指令执行带来了各种不确定性,这种不确定性只有 通过i c e 的实时在线仿真才能发现,特别是在分析可靠性时要在同样条件下多 次仿真,以发现偶然出现的错误。 i c e 不仅是软件硬件排错工具,同时也是提高和优化系统性能指标的工具。 高档i c e 工具( 如美国n o h a u 公司的产品) 足可根据用户投资裁剪功能的系统, 亦可根据需要选择配置各种档次的实时逻辑跟踪器( t r a c e ) 、实时映象存储器 ( s h a d o wr a m ) 及程序效率实时分析功能( p p a ) 。 图l - l 典型的啪i c e 仿真器 2 高级语言编译器( c o m p i l e rt o o l s ) c 语言作为一种通用的高级语言,大幅度提高了嵌入式系统工程师的工作效 率,使之能够充分发挥出嵌入式处理器日益提高的性能,缩短产品进入市场时问。 另外c 语言便于移植和修改,使产品的升级和继承更迅速。更重要的是采用c 语言编写的程序易于在不同的开发者之间进行交流,从而促进了嵌入式系统开发 的产业化。 2 区别于一般计算机中的c 语言编译器,嵌入式系统中的c 语言编译器要专门 进行优化,以提高编译效率。优秀的嵌入式系统c 编译器代码长度和执行时间 仅比以汇编语言编写的同样功能程序长5 2 0 。编译质量的不同,是区别嵌入 式c 编译器工具的重要指标。而c 编译器与汇编语言工具相比残余的5 2 0 效 率差别,完全可以由现代微控制器的高速度、大存储器空间以及产品提前进入市 场的优势来弥补。 新型的微控制器指令及s o c 速度不断提高,存储器空间也相应加大,已经 达到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程师采用过去 一直不敢问津的c + + 语言创造了条件。c + + 语言强大的类、继承等功能更便于实 现复杂的程序功能。但是c + + 语言为了支持复杂的语法,在代码生成效率方面不 免有所下降。为此,1 9 9 5 年初在日本成立的e m b e d d e dc + + 技术委员会经过几年 的研究,针对嵌入式应用制订了减小代码尺寸的e c + + 标准。e c + + 保留了c + + 的主要优点,提供对c + + 的向上兼容性,并满足嵌入式系统设计的一些特殊要求。 在嵌入式高级语言编译器方面处于领先地位的t a s k i n g 公司,是e c + + 技术委员 会成员之一,电是最先推出e c + + 产品的公司。 c c 抖e c + + 引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等之 间在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至库函数可以 移植到嵌入式系统。在嵌入式开发中采用高级语言,还使得硬件丌发和软件开发 可以分工,从事嵌入式软件开发不再必须精通系统硬件和相应用汇编语言指令 集。 另一种高级语言,j a v a 的发展则具有戏剧性。j a v a 本来是为设备独立的 嵌入式系统设计的、为了提高程序继承性的语言,但是目前基于j a v a 的嵌入式 开发工具代码生成长度要比嵌入式c 编译工具差1 0 倍以上。因此e c + + 很可能 将成为未来的主流工具。 3 纯软件模拟器( s i m u l a t o r l 纯软件程序模拟器是在广泛使用的、人机接口完备的工作平台上,如小型机 和p c ,通过软件手段模拟执行为某种嵌入式处理器内核编写的纯软件实现的程 序测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存 储空间和外设,供程序员检查;高级的模拟器可以利用计算机的外部接口模拟出 处理器的“o 电气信母。不同档次昶功能模拟器工县价格差距隧大。 模撤瓣较舞独立予楚理嚣溪静,一般与编译嚣裳残在嚣一个霹:凌孛,是一霉孛 有效的源程序检验和测试工具。但值得注意的是,模拟器毕竟媳以一种处理器模 拟另一种处理器的运行,在指令执行时闯、中断响虚、定时器警方面很可能与实 甄整理器窍籀当熬差溺。舅努宅无法鞠l c e 一榉,谚真嵌入凌系缓在建薅系统 中的实际执行情况。 4 实时多任务操作系统( r e a lt i m em u l 诳t a 熊i n go p e 赋i o 牲s y 或e m ,r t o s ) 实辩爹程务操终系统f r 强辩爨激入式痉霹辍件夔基毯窝开发平台。弱藩在串 国大多数嵌入式软件朋:发还是基于处理器直接编写,没有采用商品化的r t o s , 不能将累娩软 牛和成用欺馋分开处理。r t o s 是一段嵌入在目标代码中的软j f 譬, 愆户翁蕊它应穗翟痔帮建立在r 鞫s 之上。不懿翔姥,受固s 还霆一令霹嚣链藕 可信性根商的实时内拨,将c p u 时问、中断、i ,o 、定时器锋资源都包装越来, 留给用户个标准的a p l ,著根攒各个任务的优先级,合理地在不同任务之间分 配e p 移对溺。 r t o s 是针对不同处理器优化设计的高效率实时多任务内梭,优秀商鼎化的 r t o s 可以蕊对几十个系列蟾嵌入式处理器m 张j 、m c u 、d s p 、s o c 等提供类 司熬a p l 穰弱,这是觳o s 摹予设餐独立静瘗蕊程序开发鏊旗。透诧基予粼静s 上的c 谬富程序具脊檄大的可移植性。掘专家测簿,优秀r t o s 上跨处理器平 台的摇序移褴只需要修改l 5 的内褰。在r t o s 基i i 主可以编写出各秽硬襻驱 动程露、专家痒函数、行谨疼露鼗、产菇瘁蚕数,移j 夔臻洼麓应蔫翟穿一起,可 以作为产品销售,促进行业内的知识产权交流,阁此r 1 0 s 又媳一个软件开靛平 台。 襄黝s 最关链弱帮分是实辩多强务内孩,它麴基本凌藏遂铤侄务瞽理、怒时 器管理、存储器管理、资源管理、渗件管理、系统管理、消息管理、队列管理、 旗语管理慧,这些管耀功髓是逶过内核鼹务函数形式交绘溪户调鼹酶, 塑就是 嘲s 翡a p l 。 r t o s 的引入,解决了嵌入式软件开发标准化的难题。随瀚嵌入式系统中软 转比重不甑上舞、应露程序越来越大,对开发人受、应尾程黟搂疆、程序挡粲瓣 缝缓鬻联成为一个丈瀚课题。弓i 入r 下0 s 稳当于孪| 入了一种新瀚管理模式,对于 4 开发单位和开发人员都是一个提赢。 基予r 葺0 s 开发薤l 戆程痔,其鸯较毫熬霉移穗往,实嚣多溉疆上设备独立, 一些成熟的通用程序可以作为专家库函数产品推向社会。嵌入式软件的函数化、 产品化能够促进行业交流以及社会分工专业化,减少重复劳动,提高知识创新的 效率。 嵌入式工业的基础是以应用为中心的芯片设计和面向应用的软件开发。实时 多任务攥作系统( r t l o s ) 进入嵌入式工业的意义不弧于历史上机械工业采用三视 图静贡献,对嵌入式软箨熬标准化秘热速翔谖镬赣跫一个晕稳碑。 目前,商品化的r t o s 可支持从8 b i t 的8 0 5 1 到3 2 b i t 的p o w e r p c 及d s p 等几 j 个系列的嵌入式处理器。提供高质量源代弼r t 0 s 的著名公司主要集中在 美国。 以i :所描述的四种软件开发平台中,最后一种是针对嵌入式应用软件的开 发,对予系统软件的丌发来说,为了方便有效的进行调试,前丽三张开发平食都 楚一静选择。偿三静乎台有各垂静酶点,萁中以第三三释平台源程窟模掇器最 为特殊,它是一种纯软件模拟的开发平台,而正是这种模拟平台,能够满足我们 软硬件并幸亍开发的需爱。 1 2 纯软件模拟器的特点 l 。运霉形式 纯软件的模拟器在真实计算机系统中运行,提供给需要调试的软件一套模拟 的计算机系统,它在系统中运行的位置如图1 。2 。 2 。糖确度 有魉仿真器,尤其是专业开教人员使用的那些仿真器,都是髑朗精确 ( c y c l 舡a c c u r a t e ) 的,成者叫时钟精确。也就是说,对于一个绘定上下文环境下 夔特定豢令,它在谚粪疆中慈费魏髑期与它在囊实硬箨上运李j 二鼹蔫懿弱翅完全一 致。这些仿真器不仅可以仿真指令集,而且还可以仿真内部的管道和处理器的缓 存。在拥商实际芯片之前的开发过程中,这些仿奥器特别有用。与硬件性能计数 器浚集粪趋售惑穗跑,彷襄器诖舞发久受霹以受深入途漏悉稳戆癍强。然蠢,这 些仿真器也有一些严蘸的局限性。由于它们在编制文档时对知议产权和硬件技巧 图1 2 软件模拟器在系统中的位置 有太多的要求,因此想免费查看或修改其内部结构几乎是不可能的。相反,处理 器设计人员会提供一些可用的二进制文件,有时候它们是免费的,但通常只适用 于非常严格的范围内的丰机。对于更高级的软件丌发人员来说,另一个问题是, 由于他们要仿真大量的处理器内部结构,所以速度会非常慢。最后,这些仿真器 可能不如真实硬件那样精确。由于速度或复杂性的原因,即使是周期精确的仿真 器,也可能忽略了缓存或i o 的仿真,从而导致有偏差的结果。在大多数情况下, 这些仿真器都很接近,但也存在这样的事实,即一个仿真器在某个时候只仿真硬 件,因而其行为可能会有所偏差。 我们后面将要讨论的仿真器都不是周期精确的。实际上,它们甚至还不完全 是行为精确( b e h a v i o r a c c u r a t e ) 的。( 如果出现行为不精确的现象,则称之为 一个b u g ,这种b u g 通常最终都会得以解决。) 3 仿真的用户模式 纯软件的模拟器中,一个非常方便的特性就是用户模式仿真。如果一个仿真 器只仿真处理器和i o ( 例如一个网络设备) ,那么首先需要启动( 和仿真) 一 个操作系统内核,然后在此基础上启动一个仿真的应用程序。对于更重大的工作 而言,这当然很重要,但是对于简单的实验,这样做要方便得多,可以避免完全 处理操作系统内核。如果仿真器不仅能够仿真处理器,而且还可以仿真操作系统 内核,那么对于那些不依赖很多内核服务的小程序,例如只需要使用w i t e 和 e x i t 系统调用的小程序,运行起来就要容易得多。 另一方面,当一个支持用户模式仿真的仿真器碰到一个系统调用指令时,它 并不是把控制转交给仿真的异常处理程序,相反,它会自己解释浚系统调用。最 6 简单的例子是像r e a d 和w r j t e 这样的系统调用:这两种系统调用几乎可以立即 转换为仿真器做出的实际的系统调用。用于在仿真的应用程序做出的仿真系统调 用与仿真器做出的实际系统调用之间进行转换的g l u e 层可能还有其他的功能, 例如记录仿真的应用程序做出的所有系统调用。 除了绕开构建一个用于仿真的内核和一个用于启动到其中的文件系统镜像, 以及为i o 配置虚拟网络设备的复杂性之外,这条捷径还加快了仿真的速度,因 为绕开了从异常处理程序到v f s 稃到设备驱动程序的很多内核指令,而这些内 核指令本来就是用来处理系统调用的。不过,很显然,不在仿真器里运行内核就 意味着总体行为可能会有很大的偏差。在最坏的情况下,仿真器系统调用g l u e 中出现一个b u g 就会使仿真的应用程序看上去像是充满了b u g ,即使它在实际 的内核上能够运行得很好也无济于事。 1 3 基于c k _ c o r e 的模拟平台 由于纯软件的模拟器首先模拟了c p u 的指令集,然后才模拟各种外围设备, 所以每一种既定的模拟器事实上都对应一种c p u ,或者在运行时选择已经实现的 多种c p u 中的一种。目前市面卜流行的嵌入式c p u 有多种,每一种c p u 的发行商 一般都会开发他们的模拟平台,例如姗的a r m u l a t o r 、p o w e r p c 的q e m u 等。 c k c o r e 是一款指令集与c + c o r e3 1 0 c p u 兼容的新型的c p uc o r c 。面临着 用户的需求,软件开发平台的建立与完善迫在眉睫。 基于c k c o r e 的模拟平台c k s i m u l a t o r 的开发有相当重要的意义。本文的 重点就是在综合讨论国内外的各种硬件模拟平台的基础上,提出基于c k c o r e 的 硬件模拟平台的研究与开发方案并实施的。 在后面的章节中,我们将分别描述:第二章:国内外研究现状,主要简述了 基于p o w e r p c 和a r m 的几种模拟器的现状;第三章:c k 5 1 0 及c k m 5 l o x 简 介,分析介绍了关于c k 5 1 0 以及c k m 5 1 0 x 的一些必要知识,和结构分析,为 后面的设计做准备;第四章:模拟平台c k s i m u l a t o r 的设计,这是论文的主体 部分,涉及到模拟平台的架构设计、目标硬件结构设计、指令集的模拟、异常处 理机制、总线、以及各种外围i p 挂载的方法设计等内容;第五章模拟平台的实 现及评估,模拟平台的实现结果及评估;最后是小结和参考文献。 第二章国内外硬件模拟平台研究现状 纯软件的模拟器根据模拟的程度、模拟的目标硬件分类有很多种,如模拟一 个芯片时序逻辑的模拟器、只模拟c p u 指令的模拟器、模拟整个硬件开发板的 模拟器、模拟一个p d a 的模拟器等。目前,国内外已经有针对不同的c p u c o r e 、 出发点和开发目标各不相同的多种模拟器,比较典型的有:s t a n f b r d 大学的s i m o s 模拟器,它仿真的是m i p s 系列c p u 和相关外设,町以在其上运行s g i 公司的 i 淑操作系统和软件;x c o p i l o t 是一个p d a 模拟器,它是由g r e gh e w g i i l 出于个 人喜好编写的,它仿真的是m 6 8 kc p u ,通过它可以给基于p a l m 0 s 的软件丌发 者提供一个模拟开发环境;b o c h s 是一个仿真x 8 6c p u 的开源项目,目前还支持 a m d 6 4c p u ,在它上面可以运行l i n l l ) ( 操作系统;其它一些商业的仿真软件如 v m w a r e 和v i n i l a l p c 可以仿真一个真实的x 8 6 计算机,而v i r t l l t e c hs i m i c s 仿真器 呵以仿真多种c p u 和硬件,功能强大,甚至可用于硬件和系统软件的评测。其 中大多是一些开源的研究项目。 下面针对几种主流的嵌入式c p u ,就几种常见的模拟器来分别说明它们现 在的模拟器研发状况。 2 1p o w e r p c p o w e r p c 是早期m o t o m l a ( 现舶e s c a l e ) 和i b m 联合为a p p l e 的m a c 机开 发的c p u 芯片,商标权同时属于i b m 和m o t o r o l a ( f r e e s c a l e ) ,并成为他们的 主导成品i b m 主要的p o w e r p c 产品有p o w e r p c 6 0 4 s ( 深蓝内部的c p u ) 、 p o w e r p c 7 5 0 、p o w e r p c g 3 ( 1 1 g h z ) 。m o t o r 0 1 a ( 舶e s c a l e ) 主要有m c 和m p c 系 列尽管他们产品不一样,但都采用p o w e r p c 的内核。这些产品大都用在嵌入式 系统中,而且运用广泛,尤其是m o t o r o l a ( f k e s c a l e ) 公司的m p c 系列产品更 是占据通讯市场的7 0 分额。现在至少有三种开源p o w e r p c 仿真器: q e m u q e m u 是非常新的一种仿真器,它使用动态翻译( 例如j a v aj u s t1 1 1t i m e ( j i t ) 编译器) ,以便获得良好的性能。在这种情况下,良好的性能大约要比本地硬件 慢4 到l o 嫠,这取决予基准豹不同。q e 翔艟支持一些不嗣数主提帮磊括,镪 孝羞x 8 6 主援葶爨p o 戳f p c 晷栋等。q e 热l 逐支持运撰g 转b ( g 黼执b u g g e f ) 连接,这对予调试j # 常有侩蕊。不搴豹怒,q e 氆醢不支持爱户模式仿真孛鹃g d b 连接,只支持全系统模式中懿g 鞠连接。q e m 毪不支持a 挺i v e c t ”商量楚毽 指令。 p 镰f p c p e a r p c 是另一种新的仿真器,它可以使用j i t 动态翻译,但只能和 p o w e r p c 目标一起在x 8 6 主机上使用。它的性能不如q e m l l 好,大约要比主枞 系统慢1 5 债。不幸的是,p e a r p c 不支持用户环境,因此还霈要一个走核翻一 个基本文件系统( l i n u x 、d a r 稍n 和m a co sx 目翦都受支持) 。p e a r p c 不 支持g d b 连接,也不支持a l t i v e c 囱量处理攒令。 p s i t u p s i m( p o 他r p c 仿真器) 是p o w e r p c 仿真的最早版本:它编写于1 9 9 4 年,对于当时还算新的p o w e r p c 体系结构,它在l i n u x 和n e t b s d 的初始端 1 中起辅助作用。p s i m 与g d b 代码集成在_ 。起,令人惊奇的是,虽然自1 9 9 6 年以后就没有人对它作进一步开发,但它至今仍被使用。通过与g d b 集成, p s i m 逐支持g d b 连接,包括用户模式。因为早于a l t i v e c 出现,所以p s i m 不支持a i t i v e c 向量处理指令。 2 2 a r m 越t m 楚瑗在最为流行豹嵌入式c p u 。由子a t m 技本方案架鞫其备低葫耗、 赢效髓、羝成本以及小体弦等将性,使褥a r m 褥到了众多的豁识产权授权瘸户, 其中包籍毽器顼缀豁半导体恭l 系统公司,运溺十分普遍,因而链静疆彳牛模授器也 襁对更鸯h 完善,蠢吸弓i 了一大批志繇者去开发它海模襁嚣。萁中影晌最大酌模拟 器有a 嗣证激o r 帮盘清华i 犬学的陈渝组蹊开发的s k y e y e 。 a r 瓣h l 建l o f 1 a r m u l 8 t c 塔麓分 9 a i 洲u l a t o r 是一个在删公司推出的集成开发环境a d s( 删 d e v e l o d e rs u i t c ) 中提供的指令集模拟器,在上面可以运行u c i i i l u x 操作系统。它 与运行在通用计算机( 通常是x 8 6 体系结构) 上的调试器相连接,模拟删微 处理器体系结构和指令集,提供了开发和调试a r m 程序的软件仿真环境。 a r m u l a t o r 不仅可以仿真a r m 处理器的体系结构和指令集,还可以仿真存储 器和处理器外围设备,例如中断控制器和定时器等,这样就模拟了一个进行嵌入 式开发的最小子系统,另外使用者还可以扩展添加自己的外设。 a r mu l ,l t o r 同时支持全部的标准c 库函数,这样所有的c 程序都可以在仿 真器上运行。a r m u l a t o r 通过s e m m o s t i n g 方式来实现程序中输入输出功能。 s e m i h o s t i i l g 是指在a r m 程序开发调试的过程中,目标系统还不具备输入输出 的功能,通过调试代理向调试器请求i o 。a r m u i a t o r 就是这里所说的调试代理 之一,其他还有a n g e l 、m u l t i - i c e 也通过类似的方式来实现i ,0 功能。 a r m u l a t o r 在w i n d o w s 平台上实现为动态链接库文件( d 1 1 ) ,在l i n u x 或 者s o l a r i s 系统上实现为共享库文件( s o ) 。前者的使用一般是通过a r m 公 司提供的图形界面调试器a x d 中,选择目标系统为a r m u i a t e d i l ,这样就设 置了a r m u l a t o r 作为调试代理。用户在进行调试丌发时,对于底层使用的调试 代理是透明的。 2 a r m u l a t o r 组成 a r m u l a t o r 本身是由系列的模块( m o d u l e ) 组成的,其中最主要的模块 包括: a r m 处理器核心模块,用来仿真处理器的体系结构。 处理器使用的存储器模块,用来仿真存储系统。 缺省的内存模型是n a t m e m ,内存的大小不限制,理论上4 g 的地址 空间都可以使用。 同时,a r m 【u l a t o r 也包含了几种外设模块,用来仿真如下的外设模型: i n t e m l p tc o n 廿o l l e r ( 中断控制器) :用于中断控制,包含状态寄存器、 使能寄存器、状态位清除寄存器等。 t i n l e r ( 定时器) :a r m u l a t o r 提供了两个定时器。包含控制寄存器、 计数值寄存器、中断清除寄存器等。定时器支持髓e r u n n i n g 和p e r i o d i c 1 0 两种工作方式,前者计数器从0 x f f f f 递减,到“o ”后计数器溢出发生中 断。后者计数器从计数值寄存器中读取计数值,然后递减至“o ”后溢出 发生中断。 w a t c h d o g ( 看门狗) :看门狗是为了防止用户程序出错导致系统死锁而 采用的一种保护手段。一一旦到了预定时间没有设置看门狗,看门狗就会 停j la r m u l a t o r 的运行,返回调试器中。看门狗使用2 个定时器工作, 第一个定时器在复位时启动,或者通过程序写入k e y v a l u e 寄存器预先 设定好的值来启动,当过了一定时钟周期( w a t c h p e r i o d ) 后,第个定 时器产生i r o 中断,并启动第二个定时器;如果在规定时间 ( 墩q p e r i o d ) 内程序没有写k e y v a l u e 寄存器,则看门狗将停止 a i t m u l a t o r ,返回调试器中。 s t a c kt r a c k e r ( 栈跟踪器):栈跟踪器在每条指令执行后,检查栈指针 ( r 1 3 ) 寄存器的值。它记录下栈顶的最小值,从而可以计算出所用堆栈 的最大长度。 t u b e ( 显示管) :t u b e 实际上是一个寄存器,它用来显示输出。一旦 写入这个寄存器某个可以显示的字符,则调试器将会把它显示在控制台 c o n s o l e 下。这样用米显示对某个指定地址的写操作记录。 使用者也可以根据定的接口规范编写自己的外设模块,或者通过修改已有 模块的方式来适合自己的需求。比如定制自己的存储系统等。 s l g e y e 1 s k y e y e 简介: 是在早期的g d b a n l l l l l a t o r 的基础上发展来的一个模拟器。有清华大学的陈 渝和一个志愿者组织开发,日标是让s k y e y e 仿真多种c p u 的主流嵌入式开发板 和外设,实现一个可扩展的硬件模拟框架,、止更多的嵌入式操作系统可以在 s k y e y e 上运行。 该项目一直在丌发中,到目前为止目前s k y e y e 模拟了大量的硬件,包括c p u 内核、存储器、存储器管理单元、缓存单元、串口、网络芯片、时钟等。在s k y e y e 上可以模拟几乎所有的主流a r m 开发板,可以在s l ( y e y e 上运行多种嵌入式操 作系统。 早期的s k y c y e 是在g d b 中开发,至版本v 1 0 开始,s k y e y e 的结构从g 曲中 脱离出来,形成了一个独立而完整的硬件模拟器,它可以通过r s p 协议与g 曲 进行通信,对于嵌入式操作系统、t c p i p 等系统软件的开发,可提供源码级的 调试。 2 s k y e y e 的总体结构 s k y e y e 基于g d b ,a r m u l a t o r ,并进行了全面的改变和扩展。s k y e y e 建立在 c n ug d b 的底层,可以模仿多种完整的嵌入式计算机系统,目前模拟的硬件包 括c p u 、内存、i o 寄存器、时钟、u a r t 、网络芯片、m m u 、c a c h e ,将来 还会模拟l c d 、u s b 等各种硬件。在s k y e y e 上运行的操作系统和各种系统软 件”意识”不到它们是在一个虚拟的计算机系统卜运行。 s k y e y e 从总体上分为四个层次: 用户接口模块:包括命令行用户界面和图形用户界面,完成处理用户的 输入命令,并把相关调试数据输出给用户的任务。这一部分基本上直接 利用了g d b 的用户接口模块,并在此基础上有一定的扩充。 符号处理模块:主要处理执行文件的头信息,解释执行文件中内嵌的 d e b u g e r 调试信息,对符号表的管理,对源代码表达式的解析,定位源 代码中的语句位置和机器码的位置关系等。这一部分也是直接利用了 g d b 的符号处理模块,也正是有了这个模块的支持,s k y e y e 可以支持 源码级调试。 目标控制模块:主要完成执行控制( 如中断程序的执行,设置中断条件 等) ,程序栈结构分析,对具体目标硬件的控制( 如本地调试、远程调 试和模拟调试的控制) 。这一部分完成对s k y e y e 上运行的软件的控制, 提供了多种调试手段。 目标模拟模块:这一部分是s k y e y e 的核心。它的功能是模仿计算机系 统中的主要硬件( 包括c p u 、内存和各种硬件外设等) 的执行,对执行 文件的机器指令进行解释,并模拟执行每一条机器指令,产生相应的硬 件响应等。 3 s k y e ”目标模拟模块功能划分 如下图: 图2 1s k y e y e 目标模拟硬件框架图 s k y e y e 目标模拟模块从功能上可分为如下几大模块: 配置选项解析和初始化模块:在模拟硬件开始运行前,根据配置文件的 选项,控制对模拟硬件的配置和初始化。 处理器模拟宏模块:主要完成与处理器体系结构相关的模拟,它可细分 为:c p u 指令模拟执行模块、m m u c a c h e 模拟模块、c o p r o c e s s o r ( 又 称协处理器) 模拟模块。 c p u 指令模拟执行模块:其主要任务是,当模拟硬件开始运行,完成指 令读取,指令译码,指令执行的工作;如果c p u 状态发生了改变,调 整指令和各种寄存器值;在指令执行前,调用开发板1 0 模拟模块的 i od oc y c l e 驱动模拟各种外设的行为。 m m u c a c h e 模拟模块:该模块分为两部分:与具体c p u 类型无关的 m m u c a c h e 模拟子模块和与具体c p u 类型相关的模拟子模块。主要 的任务是:根据配置文件进行初始化;进行m m u c a c h e 模拟;执行 与m m u c a c h e 相关的指令。如果c p u 指令模拟模块执行读写存储器 的操作指令,则转到m m u 化a c h e 模拟模块。如果模拟的c p u 类型彳; 支持舢( 如a r m 7 t d m i ) ,则s k y e y e 会根据将访问的地址,直接转 到m e m o r y 模拟模块或开发板1 0 模拟模块;否则转到具体c p u 类型 l3 相关的模拟子模块进行m m u c a c h e 模拟。 c o p m c e s s o r ( 又称协处理器) 模拟模块:其主要任务是:完成各种协处理 器的初始化;执行各种协处理器的指令。实际上m m u c a c h e 模拟模 块的一部分工作是模拟a r m 的第1 5 号协处理器,它的主要功能是配置 m m u c a c h e 等。 1 0 模拟宏模块:该模块包含各种逻辑行为各异的外设模拟,主要包括系 统i o 模拟模块、网络芯片模拟模块、l c d 模拟模块等。 系统1 0 模拟模块:该模块的主要任务包括:根据配置文件进行i o 和外 设初始化;完成各种外部i o 设备的模拟( 如时钟计数器累加、产生中断、 l c d 显示等) ;进行各种特定c p u 和外设的i o 寄存器读写的模拟。该 模块与各种具体的开发板和c p u 有很紧密的联系。 网络芯片模拟模块:该模块主要完成了对8 叭9 a s 网络芯片的模拟工作, 主要任务包括:模拟8 0 1 9 a s 的控制逻辑、8 叭9 a s 与具体开发板i o 模 拟模块的接口、虚拟网络输入输出接口处理。 l c d 厂r o u c h s c r e e n 模拟模块:该模块主要完成l c d t o u c h s c r e e n 控制逻 辑的模拟,是目前唯一需要g u l 支持的模块,它的主要任务是:配置 l c d ,t o u c h s c r e e n 硬件模拟、模拟l c d t o u c h s c r e e n 控制逻辑。 m e m o r y 模拟模块:该模块与具体的c p u 和开发板无关,它的主要任 务包括:根据配置文件进行内存初始化,并加载b i n a r yi m a g e 文件;进 行r a m 瓜o m 读写的模拟。 小结: 可以看出,每种c p u 都有各自的特点,因此一种模拟器必然是针对某种特 定的系列c p u 而设计( 也有一个模拟器去模拟多种c p u 的情况,例如s k y e y e 。 但实际e 它每种c p u 是分别实现的) ,对于一种新的c p u 类型,必须针对其结 构特点、指令集特点、寄存器、以及异常处理机制等,重新设计一种模拟器,来 对它进行模拟。那么对于c k 5 l o 来说,一个全新的硬件模拟平台是必须的,我 们的研发目标就是设计这样一款有着鲜明特色的硬件模拟平台一一 c k s i m u l a t o r 。下一章我们将对c k 5 l o 进行分析,另外对一款中天公司自己研发 的m c u c k m 5 1 0 x 的一些外围设备进行分析,为后面的模拟器设计做准备。 第三章c k 5 1 0 及c k m 5 1 0 x 简介 c k c o r e 是有杭州中天微系统有限公司开发的3 2 位的系列c p uc o r e 。 c k 5 1 0 是面向高性能、低功耗、低成本的嵌入式控制系统和电池供电的便携式 产品的应用领域,具有可扩展指令,可配置硬件资源,可重新综合,易于继承等 优点,而且c k 5 1 0 拥有自主知识产权,可以提供最优秀的技术支持与服务。c k 5 1 0 在功耗与电源管理上也很出色,通过静态设计、动态电源管理和低压供电来减少 功耗,还可以通过进入省电模式束节省能量,还可以实时的关断内部功能模块。 3 1c k 5 1 0 特点 c k 5 1 0 主要特点如下: 高性能的3 2 位c p u ,1 6 位指令长度 o 1 8 t s m c1 艺,2 5 0 m h z 丁作频率( 最恶劣情况) ,4 0 0 m h z ( 正常情 况) 1 7 7 d h r y s t o n em i p s ( 2 5 0 m h z ) 精简指令结构集( r i s c ) 7 级流水线,完全对软件透明 高性能片i ! :高速缓存 支持b i ge n d i a n 和1 i t t l ee n d i a l l 模式 内部硬件调试摸魁岸支持片上硬件调试 支持快速中断,支持向量中断和自动向量中断 高度可配置性 指令c a c h e 和数据c a c h e 大小可以调整 指令c a c h e 和数据c a c h e 的相关组的个数调整 3 2 微体系结构 c k 5 1 0 使用了7 级流水线结构。 内存管理单元可以让超级拥护自由定义四个地址空间的访问权限。权限划分 1 6 为:不可读写只读只写可读写。四个地址空间可重叠,从而可形成各种访问控 制模式。 指令提取单元配备8 k b 高速缓存,采用关键指令先取和发射以及添加指令 暂存器等手段来增加指令的发射效率,零用先进二级指令跳转预测,全局和局部 结合的记录来减少因为转移指令造成的流水线空闲,预测准确率高达9 4 。 存储单元支持不间断流水线,开辟了8 个写缓冲区,具有内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼教新理念新策略
- 工厂安全培训收获与体会课件
- 工厂安全培训总结报告课件
- 复合防火涂料耐久性机理-洞察及研究
- 手指画辣椒课件
- 手指操炒鸡蛋课件
- 化肥厂安全设备维护办法
- 学生食品安全课程培训课件
- 文化差异广告策略-洞察及研究
- 手卫生和消毒灭菌课件
- 叉车工作手册
- 干式气柜检修施工方案
- 佳能-EOSM-相机说明书
- 2024年食品生产企业食品安全管理人员监督抽查考试题库(含答案)
- 《无机化学》课件-第6章 分子结构和晶体结构
- 货运代理运输服务合同范本2024年
- 预防高处坠落安全监理细则
- 5.2 氮及其化合物 课件高一下学期化学人教版(2019)必修第二册
- 经典脑筋急转弯400则
- 2024-2030年中国移动DR产业发展动态及未来趋势预测报告
- (正式版)QBT 5998-2024 宠物尿垫(裤)
评论
0/150
提交评论