(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf_第1页
(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf_第2页
(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf_第3页
(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf_第4页
(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(电力电子与电力传动专业论文)嵌入式仿真平台的图形系统设计与研究.pdf.pdf 免费下载

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

文档简介

a b s t r c t t h i sp a d e ri n t r o d u c e st h e i n v e s t i g a t i o no ft h ea r m + d s pe m b e d d e d s i m u l a t i o np l a t f o r m ,t h es c h e m eo fa r m + d s pe m b e d d e dp l a t f o r mi n c l u d e s t h ed e s i g no fm a nm a c h i n ei n t e r c h a n g ea n dt h ep e r i p h e r a lc i r c u i t s t h e s o f t w a r ei sa l s od e s c r i b e di nd e t a i lf o rt h ec o m p l e t i o no fr e a l t i m eo p e r a t i n g s y s t e mg c o s - i i ,t h ef o u n d a t i o no fs i m u l a t i o na p p l i c a t i o np r o g r a ma n d e m b e d d e dg r a p h i cu s e ri n t e r f a c e t h e yh a v eb e e ns u c c e s s f u l l ya p p l i e dt ot h e m a r i n ee l e c t r i cp r o p u l s i o ns i m u l a t i o ns y s t e m ,p r o v i d i n gr e a l t i m ed y n a m i c l o a d ( v e s s e le n g i n ep r o p e l l e r ) c h a r a c t e r i s t i c sf o rp r o p u l s i o nm o t o r t h e a f o r e m e n t i o n e ds y s t e m sh a v ep r o v i d e dan e wt e c h n i c a lr o u t e ,a sw e l la sa n e we x p l o i t a t i o np l a t f o r m ,f o rt h ed e v e l o p m e n to f m a r i n ee l e c t r i cp r o p u l s i o n s i m u l a t i o ns y s t e m t h ef o l l o w i n gj o b sw e r e d o n eb yt h ea u t h o r : ( 1 ) e x p a n d i n gm a n m a c h i n ei n t e r c h a n g e ,c o m m u n i c a t i o ni n t e r f a c ec i r c u i t s a n dt h ep e r i p h e r a lc i r c u i t so ft h ea r m + d s ps i m u l a t i o np l a t f o r m ( 2 ) b u i l d i n gu pt h ef a t l 6f i l es y s t e m ( 3 ) w r i t i n gt h eb s p b o a r ds u p p o r tp a c k a g ea n dt h ed r i v ep r o c e d u r e ( 4 ) w r i t i n gt h ep a r t i c u l a re m b e d d e dg r a p h i cu s e ri n t e r f a c ep r o g r a m a c c o r d i n gt ot h ep r o p u l s i o np o w e rs y s t e m ( 5 ) c o o r d i n a t i n gt h ed e b u g g i n go ft h eh a r d w a r ea n ds o f t w a r es y s t e m p r a c t i c a ld e v e l o p m e n tf l o wo fe m b e d d e ds y s t e mi su s e da s ac l u et o o r g a n i z em a t e r i a l sa n dc o n s t r u c tt h ed i s s e r t a t i o n i nt e r m so fi n t r o d u c t i o n , c h a p t e r 1i n t r o d u c e st h ep r o j e c tb a c k g r o u n d ,c u r r e n tr e s e a r c hs t a t u so f a r m + d s pa th o m ea n da b r o a d ,t a s k s ,i n n o v a t i o n a lp o i n t sa n dm e a n i n g ; c h a p t e r2 d i s c u s s e st h ef u n d a m e n t a la r c h i t e c t u r ea n d i m p l e m e n t a t i o n m e t h o do ft h ee m b e d d e ds i m u l a t i o np l a t f o r m ;c h a p t e r3i l l u m i n a t e st h e m e t h o do f p o r t i n g e m b e d d e dr t o s g c o s i it ot m s 3 2 0 v c 5 4 7 x p r o c e s s o r s ,u n d e rt h ec c so m a pc o m p i l ee n v i r o n m e n t ;d i s c u s se x p a n d i n g t h eg c o s - i i ,b u i l d i n gu pt h em o r ei n t e g r a t i v er t o s ;c h a p t e r4i n t r o d u c e s t h e d e s i g n i n go fe m b e d d e dg r a p h i cu s e ri n t e r f a c ep r o g r a m ;c h a p t e r5 d i s c u s s e dt ob u i l d i n gu pa p p l i c a t i o np r o g r a mb a s e do nt h er t o sg c o s i h c h a p t e r 6s u m m a r i z e st h ed i s s e r t a t i o na n d p r e s e n t sp r o s p e c t s 2 t h i sd i s s e r t a t i o nh a s e x p l o r e dk e yt e c h n i q u e sa n dt a k e nab a s i ca n d c r e a t i v es t e pi nm a r i n ep r o p u l s i o ne q u i p m e n t sr e a l t i m e s i m u l a t i o n t h e s e a c h i e v e m e n t sa r eo f a d v a n c e m e n ta n dl a t e n te c o n o m i c b e n e f i t k e y w o r d s :a r m + d s p , g u i , m a r i n ep r o p u l s i o n e m b e d d e ds i m u l a t i o np l a t f o r m , s y s t e m 3 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成 果。论文中除了特别加以标注和致谢的地方外,不包含其他人或其他 机构已经发表或撰写过的研究成果。其他同志对本研究的启发和所做 的贡献均已在论文中作了明确的声明并表示了谢意。 作者签名: 论文使用授权声明 日期:2 丝:鱼:兰! 本人同意上海海事大学有关保留、使用学位论文的规定,即:学 校有权保留送交论文复印件,允许论文被查阅和借阅;学校可以上网 公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保 存论文。保密的论文在解密后遵守此规定。 作者签名: 铷签祥 日期:塑堕! 兰! 兰! 嵌入式仿真平台的图形系统设计与研究 1 1 课题来源 第一章引言 上世纪9 0 年代以来,微电子工业迅速发展,d s p ( d i g i t a ls i g n a lp r o c e s s o r ) 和 a r m ( a d v a n c e dr i s cm a c h i n e s ) 芯片问世,并在数字信号处理和多变量控制领域得 到广泛应用。航运仿真中心就此研究探索并开发a r m + d s p 双核嵌入式仿真系统 硬件平台用于对精确度和实时性要求较高的船舶推进系统的仿真研究。 本课题是交通部“嵌入式仿真系统在船舶中应用基础研究”项目( 项目编号: 2 0 0 4 3 2 9 8 1 0 0 7 ) 的一部分,得到相关研究资金的扶持。此外,所有设计开发工作将 在交通部重点实验室上海海事大学航运仿真中心完成。本中心现有“检测与自动测量 实验室”、“仿真技术研究所”、“自动化机舱实验室”、“轮机模拟器实验室”、“电力 推进仿真实验室”等多个实验室,科研条件雄厚,拥有教授、副教授、博士生导师多 名,博硕士研究生4 0 人以上,这些都为本课题的顺利开展奠定了坚实的基础。 1 2 本研究领域的国内外现状: 船舶推进系统是利用推进电机驱动螺旋桨转动,从而推动船舶前进。它的优点 是其良好的调节性能、机动性能以及低噪声性能。2 0 世纪8 0 年代中期以来,船舶 推进进入了一个蓬勃发展的时期,相对来说,我国的研究相当滞后,国外船舶推进 技术已近趋成熟,但与此相关的先进技术资料目前还很难传入国内,国内由于关键 技术不能掌握,基本上仍未形成成熟的经验。本课题的开展,有利于突破国外大公 司在船舶推进系统中的技术垄断,这对于形成自主知识产权、开拓产学研的新生长 点有着重要意义。 1 3 课题主要研究内容及创新 1 3 1 本课题的主要任务 该课题要完成一套基于a r m + d s p 架构的评估板用于仿真和控制的嵌入式实时 仿真平台。在该平台中可以建立和运行仿真软件,还可以驱动物理仿真设备,完成 半实物在环的精确仿真。 船舶推进实时仿真系统包括上位计算机( 工控p c 机) 、嵌入式仿真平台和c a n 总线。为了满足教学和实践的需要,系统添设了半实物的物理环境,包括实船操纵 嵌入式仿真平台的图形系统设计与研究 盘台、显示仪表及报警装置、仿真电动机模拟的推进器和螺旋桨系统等。其中,嵌 入式仿真平台采用a r m + d s p 双处理器架构的t m s 3 2 0 v c 5 4 7 0 芯片,是整个实时 仿真系统的核心。t m s 3 2 0 v c 5 4 7 0 芯片的a r m 侧接收上位机通过c a n 总线或直 接由外部输入装置( 如键盘、开关等) 输入的控制或参数信息,再控制d s p 进行解 算,并将解算的结果通过c a n 总线传送到上位机或l c d 液晶屏,特别地, t m s 3 2 0 v c 5 4 7 0 芯片还将实时仿真计算结果输出到以t m s 3 2 0 l f 2 4 0 7 芯片为核心 的交流电机控制系统,控制电机跟随仿真得出的转速,达到用电机模拟推进系统的 主机的目的。上位机选用工控p c 机,它和嵌入式仿真平台进行实时通信,得到仿 真对象的信息,并以各种多媒体方式显示。c a n 总线以其实时性强、可靠性高、 抗干扰能力强和通信方式灵活等特点在工业控制中应用很广,所以采用c a n 总线 实现上位机和嵌入式仿真平台之间实时可靠的通信。 1 3 2 本课题的创新 中央处理器采用a r m + d s p 双核处理器 a r m 在监视控制、人机接口方面的强大功能是不可替代的【4 1 ,其指令密度大, 存储器的利用率很高,芯片结构相对简单,体积和能耗都很小,可很好地支持使用 高级语言的开发,但其数字信号处理能力和速度相对于d s p 耍显得有限。而d s p 在声音、图像及其他数字信号或数据处理方面的能力也是a r m 微控制器无法比拟 的,但d s p 代码的密度不高,存储器占用较大,对各种高级和低级的控制能力有限, 而且d s p 有很多针对数字信号处理的特殊指令,使得d s p ( 尤其是定点的d s p ) 对高级语言开发的支持较为有限【1 0 1 。 因此嵌入式仿真平台主要由以t m s 3 2 0 v c 5 4 7 0 芯片为中心构成。其中a r m 侧 是主处理器,它是整个系统的控制中心。a r m 侧带有自己的f l a s h ,r a m ,a d , d a 转换器等外围设备,主要负责上电后完成整个系统的自举加载和系统的任务分 配,从物理设备输入和向物理设各输出信号,通过c a n 总线与上位计算机通信等。 d s p 侧主要运行船舶推进系统的数学模型并将仿真结果传回a r m 进行控制。 实时仿真系统的实时性和仿真精度 在实时仿真系统中,实际设备和仿真环境整合为一体,变频器和电动机的实物 与计算机直接连接,对于求解数学模型而言,所采用的仿真算法在满足实时性的同 时尽可能提高精确性。要求计算机在每个仿真计算步长中能及时完成对实际设备的 有关输入信号的检测、所有仿真运算和实际设备输出控制和显示。因此,计算机的 响应必须适应实际设备动态特性的需要。由于系统实时仿真的工况变动非常大,如 果采用简单的线性化模型,不仅会造成动态仿真的严重失真,而且连静态也得不到 2 嵌入式仿真平台的图形系统设计与研究 准确的终值。 常用的计算机仿真方式,在仿真这种非线性系统时,一般通过把数据曲线,包 括动态数据曲线存入计算机,也就是做成一个相应的数据库。使用时,系统会根据 当前的航速值或是其它计算值,利用曲线拟合求出与之相对应的其它值,这样就可 以利用计算机进行仿真了。但这种方式往往是事先把数据存入计算机,仿真时没有 动态的过渡过程,而不能做到动态数据仿真,数据量相对较少,而且固定不变。动 态数据仿真需要将各种实际设备的信号予以检测,并采集这些信号,然后根据这些 值计算出一些需要输出的量,以控制执行机构。这样计算量非常大,同时需要有较 高的实时性能,最好计算机有流水线结构,能并行的处理数据。这些也都是原有仿 真方式的缺陷,而工控计算机的这些缺点正好是a r m + d s p 系统的长处,所以可以 考虑用该系统来进行主机或其他设备的仿真,来提高仿真精度,实时性,及对物理 仿真设备控制能力,比较完美的构成一个半实物在环的仿真系统。 1 4 本课题的理论意义和实用价值 本课题通过采用a r m + d s p 的架构从硬件到软件开发套a r m + d s p 的系统, 不仅可以分别掌握a r m 和d s p 的原理、体系结构,软硬件的开发过程、开发方法、 开发技术,雨且可以掌握a r m + d s p 双处理器架构的软硬件的开发及应用,完成由 元件集成系统的工作,培养集成系统的能力。在开发过程中,要面临处理好两个处 理器间的通信、资源和功能分配的问题,通过这方面的研究,可能会对解决 a r m + d s p 架构相应的分配、协调及配合的问题有一定的帮助。 嵌入式仿真平台的图形系统设计与研究 第二章嵌入式仿真平台简介 2 1 嵌入式实时仿真系统总体结构 图2 - 1基于嵌入式仿真平台的实时仿真系统总体结构 实时仿真系统包括上位计算机、嵌入式仿真平台和数据总线。为了满足教学和 实践的需要,系统添设了半实物的物理环境,包括实船操纵盘台、显示仪表及报警 装置、仿真电动机模拟的推进器和螺旋桨系统等,其结构框图如图2 1 所示。其中, 嵌入式仿真平台采用a r m + d s p 双处理器架构的t m s 3 2 0 v c 5 4 7 0 芯片,是整个实 时仿真系统的核心。t m s 3 2 0 v c 5 4 7 0 芯片的a r m 侧接收上位机通过c a n 总线或 直接由外部输入装置输入的控制或参数信息,再控制d s p 进行解算,并将解算的结 果通过c a n 总线传送到上位机或l c d 液晶屏,同时仿真计算机还将实时仿真计算 结果输出到以t m s 3 2 0 l f 2 4 0 7 芯片为核心的交流电机控制系统,控制电机跟随仿真 得出的转速,达到用电机模拟推进系统的主机的目的。上位机和嵌入式仿真平台进 行实时通信,得到仿真对象的信息,以多媒体方式显示。 该实时仿真系统的开发分为几个步骤:首先建立数学模型;其次将数学模型通 过m a t l a b 中的模块r 1 1 w 转化为c 代码【36 】;最后将代码进行移植,使其在嵌入 式仿真平台上进行实时仿真。该实时仿真系统既有数学的建模和仿真软件演示界 面,又有半物理的实物动态仿真,具有实时性和可视性,而精确的数学模型和仿真设 备可提供高层次的仿真研究。运用仿真系统可预知设计好的推进系统的静态和动态 性能并可以调节参数来优化系统的性能。在推进系统故障的状态下,通过实时仿真 系统可迸行故障诊断并进行容错控制,以保证推进系统的可靠性。 嵌入式仿真平台的图形系统设计与研究 2 2 嵌入式仿真平台的硬件原理设计 嵌入式仿真平台的核心是采用双核芯片t m s 3 2 0 v c 5 4 7 0 的评估板,这一部分已 经完成。本课题将继续完善这一评估板使之成为一个完整的仿真系统。 图2 - 2 主电路系统印刷电路板 2 2 1a r m + d s p 双核处理器 a r m 是一种高性能、支持3 2 位a r m 指令和1 6 位t h u m b 指令双指令集的r i s c 处理器。d s p 就是针对数字信号处理需要而设计的单片机,采用改进的哈佛结构, 采用流水线操作和专用的硬件乘法器,极大地提高了运算速度,特别适于数字信号 处理的实现。a r m 在监视控制、人机接口方面功能强大,d s p 在数据处理方面的 能力强。因此嵌入式实时应用系统中采用了a r m + d s p 的结构组合,来充分发挥两 种处理器的优势,以获得更加高的性能。a r m 作为主处理器,负责任务管理、输 入输出接口,控制外部设备,运行嵌入式操作系统;d s p 作为从处理器,负责实时 数据运算处理。两个处理器核之间通过a p i 存储器进行交互。 t m s 3 2 0 v c 5 4 7 x 是t i 公司的集成了d s p 子系统和a r m 7 子系统的双核处理器。 选用t m s 3 2 0 v c 5 4 7 0 芯片实现a r m + d s p 嵌入式平台比使用独立的a r m 芯片和 d s p 芯片实现该系统有一定的优点。首先,简化了系统结构,使得a r m 和d s p 构 成一个整体。其次,提高了两处理器互联的协调性、可靠性和抗干扰性。再次,调 试时只需要一个仿真器,调试环境也只需要c c so m a p ,解决了a r m 与d s p 联调 的问题。所以,a r m + d s p 嵌入式平台采用了t m s 3 2 0 v c 5 4 7 0 芯片作为处理器。 嵌入式仿真平台的图形系统设计与研究 2 2 2 存储器的扩展 1 ) a r m 侧外部存储器的扩展 t m s 3 2 0 v c 5 4 7 0 的a r m 侧由存储器接口通过3 2 位数据总线连接内部和外部存 储器【1 8 j 。s r a m 的扩展由2 块i s s i 的2 5 6 k 1 6 位的1 s 6 1 l v 2 5 6 1 6 a l 构成。两块 s r a m 并联构成3 2 位器件。f l a s h 的扩展由2 块a m d 的2 m x l 6 位的 a m 2 9 l v 3 2 0 m b 构成。该f l a s h 有8 位和1 6 位两种模式,这里采用1 6 位模式, 两块f l a s h 并联构成3 2 位器件。见图2 3 。 图2 3a r m 侧外部存储器的扩展 2 ) d s p 侧外部存储器的扩展 t m s 3 2 0 v c 5 4 7 0 的d s p 侧在其外部的程序空间和数据空间分别扩展了s r a m 。 选用的是2 块i c c 的6 4 k x l 6 4 , 2 1 0 n s 的i c 6 1 l v 6 4 1 6s r a m ,分别用d s p 卿o 的程序空间 片选引脚和数据空间片选引脚连接两块s r a m 的片选信号端,使它们一块映射到程 序存储空间,另一块映射到数据存储空间【j 。见图2 4 。 图2 4d s p 测p b 部存储器的扩展 6 嵌入式仿真平台的图形系统设计与研究 2 2 3人机交互接口设计 1 ) l c d 模块 本课题选用带有驱动控制芯片s e e d l 3 3 5 的t f t 型l c d 模块。s e e d l 3 3 5 控制 器主要是将a r m 侧的图像信息传送至j j l c d 驱动器中。它可以支持图形和文本方式混 合显示,l c d 分辨率为3 2 0 x 2 4 0 。见图2 。5 。 图2 5l c d 模块 2 ) 键盘模块 键盘可用来输入数字型数据或者选择控制设备的操作模式。t m s 3 2 0 v c 5 4 7 0 的评估板提供了键盘接口,只要将5 5 键盘矩阵直接与接口相连,然后用软件实 现键盘扫描即可。见图2 6 。 2 2 4 外围电路设计 剀2 6 键盘模块 1 ) a d 、d a 模块 本系统所采用的a d 转换芯片是a d i 公司的a d 7 8 8 8 ,d a 转换芯片是该公司 的a d 7 5 6 4 。它们均采用s p i 串行总线接口方式与处理器相连。见图2 7 。 嵌入式仿真平台的图形系统设计与研究 2 ) 电机控制驱动模块 图2 7a i d 、d a 模块 采用三意公司的m c k 2 4 0 7 v 4 0 评估板,见图2 _ 8 ,它是基于d s p 芯片2 4 0 7 专门开 发针对电机控制的评估板,主要由主控制器、功率驱动板、霍尔和g p i o 等部分组成。 图2 8m c k 2 4 0 7 v 4 0 评估板 嵌入式仿真平台的图形系统设计与研究 第三章嵌入式仿真平台的软件设计 3 1 嵌入式系统的总体结构 嵌入式仿真系统的总体结构见图3 1 ,大致分为硬件层、中间层、软件层、功能 层四个部分。 图3 - 1嵌入式仿真系统总体结构图 1 ) 硬件层 硬件层由嵌入式微处理器、存储器系统、通用设备接口和i o 接口组成。在嵌入 式微处理器基础上增加电源电路、时钟电路和存储器电路,就构成了嵌入式核心控 制模块。操作系统和应用程序都可固化到f l a s h 中。 2 1 中间层 硬件层与软件层之间为中间层,也称为板级支持包( b o a r ds u p p o r tp a c k a g e ,b s p ) 它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一 般应具有相关硬件的初始化、数据的输入输出操作和硬件设备的配置等功能。b s p 具有以下两个特点: 硬件相关性:因为嵌入式实时操作系统的硬件环境具有应用相关性,所以,作 为高层软件与硬件之间的接口,b s p 必须为操作系统提供操作和控制硬件的方法。 嵌入式仿真平台的图形系统设计与研究 操作系统相关性:不同的操作系统具有各自的软件层结构,因此,不同的操作 系统具有特定的硬件接口形式。 在实现上,b s p 是一个介于操作系统和底层硬件之问的软件层次,包括了系统 中大部分与硬件相关的软件模块。设计一个完整的b s p 需要完成两部分工作:嵌入 式系统初始化以及设计硬件相关的设备驱动。 3 1 软件层 软件层由实时多任务操作系统( r t o s ) 、文件系统、图形用户接口( g u i ) 、 通用组件模块组成。r t o s 是嵌入式应用软件的基础和开发平台。r t o s 实际上是一 段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的 其他应用程序都建立在r t o s 之上。r t o s 是个标准的内核,它将c p u 时钟、中断、 定时器、i o 等资源都封装起来,留给用户的是一个标准的a p i 函数接口。 4 1 功能层 功能层由基于r t o s 开发的应用程序组成,用于完成对被控对象的控制功能。功能 层是面向被控对象和用户的,为方便用户操作,需要友好的人机界面。 3 2 cl o s - i i 在t m s 3 2 0 v c 5 4 7 0 上的移植 3 2 1 嵌入式实对操作系统 - t c o s i i 简介 i _ t c o s - i i 是一个完整的、可移植、 l - t c o s i i 是用a n s i 的c 语言编写的, 构的微处理器使用。 可固化、可剪裁的占先式实时多任务内核。 包含- d , 部分汇编代码,使之可以供不同架 要使g c o s i i 正常运行,处理器必须满足以下要求: 处理器的c 编译器能产生可重入代码。 处理器支持中断,并且能产生定时中断。 用c 语言就可以打开和关闭中断。 处理器支持能够容纳一定数量( 可能是几千字节) 的数据硬件堆栈。 处理器有将堆栈指针和其它c p u 寄存器读出和存储到堆栈或内存中指令。 t m s 3 2 0 v c 5 4 7 0 是双核处理器,其主处理器核a r m 7 完全满足上述要求,将 d s p 核看成从处理器,可在a r m 侧移植i z c o s i i 。 3 2 2c c so m a p 编译开发环境 与硬件产品相对应,t i 公司提供了专用于开发这种双核处理器系统的集成开发 环境c o d ec o m p o s e rs t u d i of o ro m a p ( c c so m a p ) 2 1 1o 它集成了t m s 4 7 0 r l x 系列 0 嵌入式仿真平台的图形系统设计与研究 ( a r m 7m c u ) 开发工具和c 5 0 0 0d s p 开发工具。这个集成开发环境对双核处理器的 开发提供了方便的途径,在t m s 3 2 0 v c 5 4 7 0 上移植g c o s i i 就使用了该集成开发 环境进行编译、调试。这里所谓的移植,就是使一个实时操作系统内核能在特定的 微处理器或微控制器上运行。 3 2 3 cl o s i i 的移植 操作系统在主处理器核a r m 上运行,这样,i _ t c o s i i 在t m s 3 2 0 v c 5 4 7 0 上的 移植实质上是在a r m 7 处理器核上的移植【2 5 。本移植采用c c so m a p 开发环境, 在t m s 3 2 0 v c 5 4 7 x 的a r m 7 上完成的。图3 - 2 给出了i t c l o s i i 的结构以及它与硬 件的关系。 应用软件( 用户代码) u c o s i i ( 与处理器无关代码) c o s l i 配置 o sc o r e ,c ( 与虑用相关) 0 s f l a g c o s s e m c o sc f g h o s m b o x c o s j 凡s k c o s m e m c o s t i m e c o s m u t e x c u c o s 1 1 c o s0 c g c o s i i 移植( 与处理器相关代码) o s _ c p u ho s c p ua a s mo s c p u c c c p u 定时器 图3 - 2 i c o s - l i 硬件软件体系结构 1 ) 与编译器相关的数据类型 因为不同的微处理器有不同的字长,所以肛c o s i i 的移植包括了一系列数据类 型定义以确保其可移植性。 在c c so m a p 环境下对c 数据类型定义的程序如下; l y p e d e fu n s i g n e d c h a r b o o l e a n ; t y p e d e fu n s i g n e d c h a r 1 n t g u ;p8 位无符号整数+ , t y p e d e f s i g n e d c h a r i n t s s ; p8 位有符号整数 t y p e d e fu n s i g n e d s h o r ti n t l 6 u ;pl6 位无符号整数+ t y p e d c f s i g n e d s h o r t i n t l 6 s ; p1 6 位有符号整数。, t y p e d e fu n s i g n e d i n t i n 3 3 2 u ; p3 2 位无符号整数+ o y p e d e f s i g n e d i n t i n t 3 2 s ; p3 2 位有符号整数 4 t y p e d c f f l o a t f p 3 2 ; p 单精度浮点数 + , t y p e d e f d o u b l e f p 6 4 ; p 双精度浮点数 + a r m 7 的寄存器是3 2 位的,所以任务堆栈也为3 2 位。这样,将任务堆栈数据 o ss t k 声明为:t y p e d e f u n s i g n e d i n to ss t k ; 嵌入式仿真平台的图形系统设计与研究 如果使用o s _ c r i t t c a lm e t h o d 撑3 ,那么还须声明状态寄存器数据类型。 本移植就使用了这种方式,由于a r m 7 的状态寄存器c p s r 和s p s r 均为3 2 位, 所以要做声明:t y p e d e fu n s i g n e d i n t o s _ c p u _ s r : 2 ) o s e n t e rc r i t i c a l ( ) 和o s e x i t _ c r i t i c a l ( ) 与所有实时内核一样,g c o s i i 需要先关中断,再处理临界段代码,并在处理 完毕后重新开中断,这就使得p c o s i i 能够保护临界段代码免受多任务或中断服务 子程序的破坏。为了增加可移植性,i i t c o s i i 定义2 个宏来关开中断: o s _ e n t e r _ c r i t i c a l ( ) 和o s _ e x i t _ c r i t i c a l ( o 这两个宏可以使用3 种不同的 方式,主要取决于使用的处理器类型以及c 编译器的特性。本文的移植采用了第3 种,即0 sc r i t i c a lm e t h o d 群3 。 o s _ e n t e r _ c r i t i c a l ( ) 是用一个函数,将c p s r 的值保存到一个o s c p u 二s r 型的局部变量中,再把c p s r 的i 和f 位变为1 以关闭所有中断;宏 o s e x i t _ c r i t i c a l ( ) 则调用另一个函数,从这个局部变量中恢复c p s r 的值。两 个宏中所使用的函数分别为o sc p us a v e s r ( ) 和o sc p ur e s t o r e s r ( ) ,它们是在 汇编文件o s c p u _ a a s m 中定义的汇编函数。宏及函数的相关程序如下: # d e f i n e o s _ e n t e rc r i t i c a l ( ) ( c p u _ s r = o s c p u s a v e s r ( ) ) # d e f i n e o s _ e x l t _ c r i t i c a l ( ) ( o s c p u _ r e s t o r e s r ( c p u _ s r ) ) 一o s c p u s a v e s r : m r s r 0 ,c p s r;c p s r 值通过r 0 传递返回 o r r r 1 。r 0 ,0 x 0 0 c 0 m s r c p s r ,r 1 m o vp c ,l r o s c p u 。r e s t o r e s r : m s rc p s r ,r 0 ;r 0 作为形参传递实参,饿复c p s r m o vp rtr 3 ) 任务堆栈的方向 a r m 处理器核支持满递增、满递减、空递增和空递减4 种堆栈方式。在本移 植中使用满递减方式作为任务堆栈的方式,故堆栈方式的宏定义为: # d e f i n e o s s t k g r o w t h 1 p l 为递减,0 为递增 4 ) 编写与操作系统相关的函数 移植g c o s i i 要求编写1 0 个简单的c 函数。 o s t a s k s t k i n i t ( ) ;o s t a s k c r e a t e h o o k ( ) ;o s t a s k d e l h o o k ( ) ;o s t a s k s w h o o k ( ) : o s t a s k l d l e h o o k ( ) ;o s t a s k s t a t h o o k ( ) ;o s t i m e t i c k h o o k ( ) ;o s i n i t h o o k b e g i n 0 ; o s i n i t h o o k e n d ( ) ;0 s t c b i n i t h 0 0 k ( ) 。 嵌入式仿真平台的图形系统设计与研究 惟一必要的函数是o s t a s k s t k i n i t ( ) ,其它9 个函数必须声明,但不一定要包含 任何代码,即可为空函数。 o s t a s k c r e a t e ( ) 和o s t a s k c r e a t e e x t ( ) 通过调用o s t a s k s t k i n i t ( ) 初始化任务的堆 栈结构,任务堆栈就像刚发生中断一样,所有寄存器都保存在堆栈中。任务堆栈采用 满递减方式,保存r o r 1 2 ,r 1 4 ( l r ) * 1 1m s ( p c ) 要恢复的值。r 1 3 为s p 堆栈指针, 在相应的任务控制块( t c b ) 中保存,它指向这个任务堆栈的栈顶。址c o s i i 运行在 管理模式,c p s r 和s p s r 初始赋值为对应于管理模式且开i r q 和f i q 中断的值。 在函数调用时r o 用来传递参数,传递给任务的数据指针p d a t a 正是所传递的参数, 它应位于r o 中,故r o 赋值为p d a t a 。r 1 r 1 2 和r 1 4 在初始化时的值无关紧要,故 采用它们的标号值初始化,这样容易看清任务堆栈的结构。r 1 5 ( p c ) 的位置放的是 任务函数进入运行态时的运行地址。o s t a s k s t k i n i t ( ) 函数最后将栈顶指针返回,其 函数代码如下: # d e f i n e a r m s v c m o d e ( 0 x 0 0 0 0 0 0 1 3l ) o s s t k + o s t a s k s t k i n i t ( v o i d ( + t a s k ) ( v o i d + p d ) ,v o i d + p d a t a ,o s s t k + p t o s ,i n t l 6 uo p l ) ( o s s t k + s t k ; s t k = p t o s ; ,牛初始栈顶+ + r s 【k ) _ ( o ss t k ) t a s k ; 产任务函数的入口+ , ( - - s t k ) 2 ( i n t 3 2 u ) 0 x 1 4 1 4 1 4 1 4 l ; + r 1 44 , + ( - - s t k ) = ( i n t 3 2 u ) 0 x 1 2 1 2 1 2 1 2 l ; 。r 1 2 , + ( 一- s t k ) = ( i n t 3 2 u ) 0 x 1 1 1 1 1 1 1 1 l , + r l i + ,s t k ) ( i n t 3 2 u ) 0 x 1 0 1 0 1 0 1 0 l ;+ r 1 0 + + ( - - s t k ) = ( i n t 3 2 u ) 0 x 0 9 0 9 0 9 0 9 l ; + r 9 + + ( - - s l k l2 ( i n t 3 2 u ) 0 x 0 8 0 8 0 8 0 8 l ; + r 8 + + f s t k ) ( i n t 3 2 u ) 0 x 0 7 0 7 0 7 0 7 l ;+ r 7 + , + ( - s t k ) 2 ( i n t 3 2 u 0 x 0 6 0 6 0 6 0 6 l ; + r 6 + 7 + ( - - s t k ) = ( i n t 3 2 u ) 0 x 0 5 0 5 0 5 0 5 l ; + r 5 + 7 + ( - - s t k ) = ( i n t 3 2 u ) 0 x 0 4 0 4 0 4 0 4 l ; + r 4 + + ( - - s t k ) 2 ( i n t 3 2 u ) 0 x 0 3 0 3 0 3 0 3 1 ,: + r 3 。 + ( - - s t k ) = ( i n t 3 2 u ) 0 x 0 2 0 2 0 2 0 2 l ; 4r 2 + + ( - - s t k ) = ( i n t 3 2 u ) 0 x 0 1 0 1 0 1 0 1 l : r 1 + 4 f s t k ) ( i n t 3 2 u ) p d a t a ; pr 0 ,传递的参数。 + ( - - s t k ) = ( i n t 3 2 u ) a r ms v cm o d e ; + c p s r + 4 ( - - s t k ) 2 ( i n t 3 2 u ) a r ms v cm o d e ; 7 + s p s r + 7 r e t u m ( s t k ) ; ) 5 ) 编写与处理器相关的函数 移植扯c o s i i 要求编写4 个汇编语言函数:0 s s t a r t h i 曲r d y ( ) ;o s c t x s w ( ) ; o s i n t c t x s w ( ) ;o s t i c k l s r ( ) 。 其中o s t i c k i s r ( ) 时钟节拍中断服务子程序。由于要通过堆栈操作保护现场, 故一般o s t i c k l s r f ) 用汇编语音编写,但c c s 扩展了c 语言功能,使得中断服务程 序可以用c 语言编写。所以,本移植没有使用汇编语言编写o s t i c k i s r ( ) ,而是使 用了c 语言。这样,o s t i c k l s r ( ) 就没在o sc p ua a s m 中,而是在c 文件中。 嵌入式仿真平台的图形系统设计与研究 在o s c p u a s m 中编写其它3 个函数即可。 o s s t a r t h i g h r d y ( 1 o s s t a r t h i g h r d y ( ) 由o s s t a r t ( ) 函数来调用使就绪态任务中优先级最高的任务开 始运行,这个函数要涉及到对c p u 内部寄存器的出栈操作,其程序流程如3 3 。 函数入口 t 调用0 s t a s k s w h o o k 0 t 0 s r u n n i n g = t r u e 获得要恢复的运行任务的堆栈指针: s p = o s t c b h i g h r d y o s t c b s t k p t r t 从新任务堆栈中恢复处理器的所有寄存器 t 执行中断返回指令 图3 - 3o s s t a r t h i g h r d y ( ) 流程图 o s c t x s w ( 1 任务级的切换是靠o s c t x s w ( ) 函数来最终实现的,该函数实质上在o s s c h e d ( ) 中被调用。在系统服务的最后,i x c o s i i 会调用o s s c h e d ( ) 判断是否需要进行任务 调度。如果需要,它就找到已经处于就绪态的最高优先级任务的任务控制块o st c b 的地址,并将该地址复制给全局变量o s t c b h i g h r d y ,然后通过某种方式调用 o s c t x s w ( ) 来进行任务的调度。上文提到,许多其它的处理器,为了实现程序计数 器p c 的压栈,必须通过执行软中断等指令,并把对应的软中断处理入口向量指向 o s c t x s w ( ) ,来完成

温馨提示

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

评论

0/150

提交评论