(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf_第1页
(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf_第2页
(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf_第3页
(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf_第4页
(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(信息与通信工程专业论文)基于arm的编译器选优技术研究与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院:l :程硕士学僚论文 摘要 随着时代的发展和科技的进步,嵌入式系统已成为当今最热门的概念之一。 在嵌入式系统迅猛发展的今天,广泛的应用和需求使嵌入式系统开发不再局限于 只能由相关寂用领域的高水平专家来完成。正是由予各种优秀的集成开发环境i d e ( i n t e g r a t i o nd e v e l o pe n v i r o n m e n t ) 的出现,为广大嵌入式开发人员提供了强大的 工具,使得嵌入式系统开发变得相对简单。 本文苁应用角度出发,针对目前i d e 种类繁多,编译器性能差异明显的现状, 提斑了种基于a r m 的编译器选优技术,并通过文件格式转换实现多编译器跨平 台工作。 本文的主要工作包括以下几点: l 、研究了嵌入式软件开发的般方法,分析了使用i d e 开发嵌入式软件的优 势,并对目前广泛使用的多种i d e 进行了研究。 2 、深入分析了编译器的工作原理,重点研究了编译器的各种优化策略,并对 五种基予a r m 的编译器进行了比较,提出了编译器生成代码性能的两个重要指 一 杯 3 、基于a r m 9 2 0 t 设计了套软、硬件测试方法,对五种嵌入式编译器生成 代码进行了全面测试,通过分析比较测试结果,针对应用背景选出了性能最优编 译器。 4 、针对i d e 环境下编译、链接输出的三种文件格式进行了研究,采用c 语言 编程实现了最优编译器生成代码的跨平台应用。 本文立足予实际应用,研究了编译器选优和跨平台工作技术,蠢前,相关的 研究比较少,本文在这方面进行了初步探索,还有待于进一步地研究。 主题词:编译器性能测试文件转换 第i 页 囡防科学技术大学研究生院:f :矬硕士学位论文 a b s t r a c t a l o n gw i ms o c i a lp r o g r e s sa n dt h ed e v e l o p m e n to ft e c h n o l o g y ,t h ee m b e d d e d s y s t e mh a sb e e no n eo ft h eh o t t e s ti d e a s f o ri t se x t e n s i v ea p p l i c a t i o na n dr e q u i r e m e n t , n o wt h ee m b e d d e ds y s t e mi sd e v e l o p e dn o to n l yb ye x p e r t si nt h er e l a t e df i e l d s b a s e d o nt h ea p p e a r a n c eo fv a r i o u s9 0 0 di d e ( i n t e g r a t i o nd e v e l o pe n v i r o n m e n t ) ,w h i c hc a l l p r o v i d ep o w e r f u lt o o l s ,t h ed e v e l o p m e n to ft h ee m b e d d e ds y s t e mi ss i m p l e rf o rm o s t d e v e l o p e r s a i m i n ga tv a r i o u si d ea n dd i f f e r e n tp e r f o r m a n c e so fc o m p i l e r s ,t h i sp a p e r p r o p o s e sa s e l e c t tm e t h o db a s e do na r mt oi m p l e m e n tc o o r d i n a t e dw o r ko fm a n y c o m p i l e r sv i at h ef i l ef o r m a tt r a n s f o r m a t i o n t h em a i nw o r ko ft h i sp a p e ri s : 1 ) s t u d yt h eg e n e r a ld e v e l o p i n gm e t h o do fe m b e d d e ds o f t w a r e ;a n a l y z et h e a d v a n t a g eo fu s i n gi d ea sd e v e l o p i n gt o o l sa n dt h a nc a r r yo nar e s e a r c hf o rv a r i o u s i d e su s e de x t e n s i v e l ya tp r e s e n t 2 ) a n a l y z et h ep r i n c i p l eo fc o m p i l e rt h o r o u g h l y ,e m p h a s i si nv a r i o u so p t i m i z i n g s t r a t e g i e s ;t h e nc o m p a r ef i v ek i n d so fa r mc o m p i l e ra n dp u tf o r w a r dt w oi m p o r t a n t i n d e x e sf o rp e r f o r m a n c eo fc o m p i l e rc o d ec r e a t i n g 。 3 ) b u i l tu pas e to fi n t e g r i 哆o fs o ra n dh a r dt e s t i n gm e t h o db a s eo na r m 9 2 0 t , a n dt e s tt h r e ek i n d so ft h ec r e a t e dc o d e so fe m b e d d e dc o m p i l e rc o m p l e t e l y a c c o r d i n g t oa n a l y z et h et e s t e dr e s u l t s ,v o t eo u tt h es u p e r i o rc o m p i l e ro np e r f o r m a n c e 4 ) a i m i n g a tt h r e ek i n d so fd o c u m e n tf o r m a t so u t p u tf r o mt h ec o m p i l e ra n dl i n k e r o fi d e ,c a r r yo l lar e s e a r c ha n da d o p tt h ec l a n g u a g ep r o g r a m m i n gt oc a r r yo u tc r e a t e d c o d eo ft h ec o m p i l e ra p p l i e dc r o s s - p l a t f o r m , w h i c hi m p l e m e n t sc o o r d i n a t e dw o r ko f m a n yc o m p i l e r sv i a t h ef i l ef o r m a tt r a n s f o r m a t i o n a c c o r d i n gt ot h ea p p l i c a t i o ni np r a c t i c e , t h i sp a p e rs t u d i e st h ec o m p i l e rs e l e c t m e t h o d a tp r e s e n tt h er e l a t e dr e s e a r c hi sj u s tal i t t l ea n dt h i sp a p e r sr e s e a r c hi sp i l o t s t u d ya n ds h o u l db ef u r t h e r k e yw o r d s :c o m p i l e rp e r f o r m a n c e t e s t i n g f i l ef o r m a tt r a n s f o r m a t i o n 第i i 页 匡防科学技术犬学研究生院:l :程硕士学位论文 表目录 表2 1 编译器各编译阶段任务表1 3 表3 1 三种编译器生成的代码尺寸比较表2 6 表3 。2a d s l 2 下的a x d 调试器对三个c 程序运行时辩测试表2 7 表3 3w d t 和t i m e 4 计时器时间测试范围和精度对比3 6 表3 4w d t 和t i m “计时器时间测试范围和精度设置3 6 表3 5 硬件运行时闻测试结果表4 2 表4 1r v d s 与g u n 汇编规则对比表5 0 表4 2r v d s 与i a r e w 汇编规则对比表5 l 第l l l 页 国防科学技术大学研究生院:翻鼙硕士学位论文 图1 1 图1 2 阉l 。3 图2 1 圈2 2 圈2 3 图2 。4 图3 1 圈3 2 图3 。3 圈3 4 图3 5 圈3 6 圈3 7 图3 8 图3 9 图3 1 0 图3 1l 图3 1 2 圈3 。董3 图4 1 圈4 2 图4 3 图4 。4 图目录 嵌入式系统组成示意图2 嵌入式软件开发流程图6 l d e 开发嵌入式软件流程图9 编译器前后端结构示意图1 3 编译系统工作流程图1 4 代码优化器的遣位和结构示意图l5 g c c 结构示意图:l7 编译器优化选项设置2 4 软件测试流程图2 5 a d s l 2 开发环境下编译输出的代码尺寸2 6 a x d 界面上的d e b u g g e ri n t e r n a l s 选项2 7 硬件测试流程图2 8 阳初$ 3 c 2 4 1 0 开发板实物照片2 9 看门狗定时器工作原理图3 l t i m e r 4 的工作原理图3 3 利用中断扩展计时流程图3 7 链接生成可执行二进割文件时链接器的设置4 l 使用d n w 软件通过u s b 口下载运行可执行程序。4l 代码尺寸比较图4 3 三种算法程序软硬件测试结栗对比图私 e l f 文件结构图:。4 7 a r m 9 2 0 t 指令格式4 9 使用i d ap r o 工具进行反汇编4 9 汇编文件格式转换程序流程图。5 2 第l v 页 独创性声明 本人声姨所呈交昀学位论文是我本人在导癖指导下避行昀研究工作爱取得姆 研究成果尽我所知,除了文中特别加以标注和致谢的地方夕卜,论文中不包含其 他入已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教 育机构酶学位或证书面使震遗酶材j | 毒每我一同工律戆闻志对本研究所做曲任何 贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目: 一 基至查塑煎缉亟器量焦蕉盎堑塞主塞趣一一 学位论文作者签名:蔓蕴整 日期:砷每,月,岁霹 学位论文版权使用授权书 本入党全了解国防科学技术大学有关保留、使用学位论文的规定本人授权圆 防科学技拳大学可l ;之保留并向国家有关部门或机构送交论文的复帮件和电子文 档,允许论文被查阕和借阕;可以将学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书) 学位论文作者签名:莽牲 魄砷年,月7 多日 作者指导教师签名:一堑薹皇 e l 期:舢7 年,月哆同 国防科学技术大学研究生院:l :挫硕士学位论文 第一章绪论 1 1 引言 当今社会,已步入信息时代,人们生活的每个焦落都有嵌入式产品的身影, 这些产品已经成为我们生活的重要组成部分,正在不断地改变着我们的生活、工 作和娱乐方式。 嵌入式系统研究与开发已经成为当前发展最迅猛的一个应用领域,嵌入式系 统正在主导着社会进入一个新的时代一一后p c 时代。 1 2 嵌入式系统概述 西莆,对嵌入式系统的定义多种多样。i e e e ( 营际电气和电子工程师携会) 对嵌 入式的定义为【i i t 嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置( d v i c e su s e d t oc o n t r o l , m o n i t o ro ra s s i s tt h eo p e r a t i o no fe q u i p m e n t , m a c h i n e r y0 1 p l a n t s ) 。 但嵌入式研究人员认力,下面的两种定义能更加确切地阐述嵌入式系统的准 确内涵: 嵌入式系统是为以应用为中心、以计算机技术为基础、软件硬件可裁剪、 适应对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的 计算机系统。 在缓上两种定义中的术语“嵌入式一反映了这些系统“嵌入特性,这意味 着这些系统本身与其所控制和管理的系统融为一体,作为整个系统中的一个组成 部分和基本构造单元而存在,并发挥着其实时控制和管理的作用。 嵌入式系统涉及的范围缀广,如移动电话、个人数字助理? d a ) 、通信设备、 网络设备、工业控制装置、家用电器等,小到电予计算器、摄像头,大到飞机、 轮船,从民用的汽车到军用的坦克,都包含有嵌入式系统,并在其中发挥着信息 处理、自动控制的核心作用 1 2 1 嵌入式系统的发展历史和现状 嵌入式系统发展到今天,已有三十多年的历史。综观嵌入式技术的发展,大 致经历了以下几个阶段【4 j : 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、 第1 页 蓬防科学技术大学研究生院:l :群硬| :譬侥论文 伺服、指示设备相配合的功能。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。 第三除段是以嵌入式搡作系统为标志的嵌入式系统。 第四个阶段是以因特网为标志的嵌入式系统。 目前,嵌入式系统技术日益完善,3 2 位微处理器在该系统中占主导地位,嵌 入式操作系统已经从简单趋向成熟。特别是进入9 0 年代后,多媒体技术与i n t e m e t 的应餍迅速普及,消费电予、计算机、通信( 3 e ) 一体化趋势日趋明髭,以计算 机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、 交通、通信等相关行业,丽且深入到家电、娱乐、艺术、娃会文纯等各个领域, 掀起了一场数字化技术革命。嵌入式计算机系统己被广泛地应用于航空航天、武 器装备、机器人、避信设备、工业控制、汽车、船舶誊至个人电子等广涡的领域, 形成了巨大的产业规模。不断增加的市场需求推动了嵌入式系统向更高的技术水 平发展,形成了相对独立的研究领域,并在向更深层次探索。 1 2 2 嵌入式系统的体系结构及特征 嵌入式系统是专焉的计算枫应髑系统,它其有一般计算机结构的共性,露时 又其有嵌入式系统的特点。 从体系结构上看,嵌入式系统主要由嵌入式系统平台、嵌入式操侔系统和嵌 入式系统应用 嵌入式嵌入式嵌入式 系统平台操作系统系统应用 豳1 1 嵌入式系统缀成示慈隧 嵌入式系统平台中熬嵌入式处理器和外围设备是嵌入式系统软件环境运行麴 基础,它提供了嵌入式系统软件运行的物理平台和通信接口;而嵌入式操作系统 和嵌入式系统应用则是整个系统的控制核心,控制着系统的运行,提供人祝交互 的信息等。 嵌入式系统兵有有别予遗用计算机的一些特征,主要表现在以下几个方露f l s l : ( 1 ) 采用专用的嵌入式微处理器。 0 ) 专鲻性和算法的唯一性。 3 ) 嵌入式系统是多种技术的结合体,是将先进的计算枧技术、半导体技术秘 电子技术结合后的产物。 秘) 硬件与软件的相互依赖性强。 ) 势了提高执行速度和系统可靠性,嵌入式系统中的软侔般都固化在存储 第2 页 黧防科学技零犬学职究生浣:l :群硕士学僚论文 器芯片或单片机本身中,而不是存贮于磁盘等载体中。 ( 6 ) 嵌入式系统本身不具备自举开发能力,帮使设计完成以后耀户遥鬻也是不 能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。 以上6 个方蕊概括了嵌入式系统的三大要素:嵌入性、专用性与计算枫系统。 嵌入式系统发展到今天,硬件技术已经非常成熟,而且核心处理器都是由各 大厂商来提供,一般开发人员已经不需要在硬件上下功夫,因此,现阶段大部分 的嵌入式开发人员都是针对具体项甚和需要实现的系统功能,选择菜一款微处理 器,简单配置外围器件搭建平台或选择某一款硬件开发板进行系统移植和应用软 件盼开发。 1 2 。3a r m 微处理器 出予平台通用性考虑,本文所作的编译器研究都是基于a r m 的,在测试中也 选用了基于a r m 9 2 0 t 微处理器的$ 3 c 2 4 1 0 硬件开发板,所以在此对趟湖微处理 器进行介绍。 a r m ( a d v a n c e dr i s cm a c h i n e s ) ,既可以认爻是一个公司酶名字,也可以 认为是对一类微处瑗器的通称,还可以认为是一种技术的名字。霹前,采焉删 技术知识产权( i p ) 核的微处理器,郎我们通常所说的a r m 微处理器,已遍及工 业控制、消费类电子产晶、通信系统、网络系统、无线系统等各类产品市场,基 于a r m 技术的微处理器应用约占据了3 2 位r i s c 微处理器7 5 以上的市场份额, a r m 技术正在逐步渗入到我们生活的各个方面。 。 a r m 构架的徽处理和通用p c 计算视使用的x 8 6 架构c p u 是不弱的,c i s c ( 复杂指令系统计算机) 体系的典型代表是各种x 8 6 的各静c p u ,a r m 则是 r i s c ( 麓简指令系统诗算机) 体系最常觅的处理器。因此,a r m 和x 8 6 架构的发 展也在一定程度上代表了r s c 和c i s c 的发展趋势。 x 8 6 的c p u ,篙要鬻桥和= 敬桥来扩展内存控制器、p c i 控到器、a g p 控制器、 a 1 a 控制器、u s b 控制器等,这样系统结构复杂,但是扩展性很好,不适合专用 设备,但是很适合通用设备,因此在p c 和服务器中得到了广泛的应用。 a r m 处理器更接近于s o t ( s y s t e mo ne 嫩p ) ,帮一颗芯片主有一个系统,事实 上正是如此,譬如专门的手持设备的a r m ,就是一个a r mc o r n ,然后集成s d r a m c o n t r o l l e r 、f a s hc o n t r o l l e r 、k dc o n t r o l l e r 和u a r t 等,然后集成以太隧m a c 或者专门的n e t w o r ke n g i n e ,甚至还会集成专门的a c 9 7 、m m x 等迎合不同的应 用需要。采用a r m 处理器的硬件结构非常篱单,我们可以筒单地把a r m 平台的 嵌入式系统认为是:c p u + s d r a m + f l a s h + i o + p o w e rs u p p l y 就行了圈。 采用砸s c 架构的a r m 微处理器一般具有如下特点: 第3 页 蘑蒴科学技术大学研究生院:l :器硕士学位论文 l 、体积小、低功耗、低成本、嵩性能;。 2 、支持t h u m b ( 1 6 -a r m ( 3 2 位) 双指令集,戆锻好的兼容8 经1 6 位 器件; 3 、大量使用寄存器,指令执行速度更快; 4 、大多数数掘操作都在寄存器中完成; 5 、寻址方式灵活简单,执行效率高: 6 、撬令长度固定; a r m 9 系列微处理器采用a r m v 4 t ( h a r v a r d ) 结构设计,处理速度为 l 。1 m i p s m h z ,平均功耗0 7 m w m h z ,时钟隽1 0 0 m h z - - 2 6 6 m h z ,在麓性能和 彳氐功耗特性方面提供最佳的性能秘| 。其有以下特点: 一5 级整数流水线,指令执行效率更高。 一提供1 1 m i p s m h z 的哈佛结构。 一支持3 2 位a r m 指令集和1 6 位t h u m b 指令集。 一支持3 2 位的高速a m b a 总线接叠。 一全性能的m m u ,支持w i n d o w sc e 、l i n u x 、p a l mo s 等多种主流嵌入式 操作系统。 m p u 支持实时操作系统。 ,一支持数据c a c h e 和指令c a c h e ,- 具有受离的指令和数据处理能力。 a r m 9 2 0 t 微处理器是a r m 9 系列中非常通用的一款微处理,它比a r m 7 系 列微处理器增加了m m u ( 内存管理单元) ,可以支持主流的实时操作系统。因此, 我们在测试中选用了基于a r m 9 2 0 t 的$ 3 c 2 4 1 0 徽缝理器靛开发板,以求硬件测 试平台在高性能和低功耗特性方面都能满足对性能的簧求【2 1 1 。 l 。3 嵌入式软俘开发和集成开发环境i d e 1 。3 。1 嵌入式应用软搏开发 嵌入式应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬件平台 的,并畿满足用户霈要的时间和精度要求,完成用户预期任务的计算机软件。嵌 入式应用软件是实现系统各种功能的关键,好的应用软件使得同样的硬件平台更 好、更高效地完成系统功能,使系统具有更大麓经济价值。用户的任务有时闯、 精度的要求,同时嵌入式系统对于实现成本十分敏感,因此在满足系统功能的前 提下,就要最大限度地降低系统成本,除精简每个硬件单元的成本外,还应尽可 施地减少嵌入式应用软件的代码量。遮就要求嵌入式应用软件不但要保证准确性、 安全性、稳定性以满足应用要求,还要尽可能地优化。 第4 页 国防科学技术t 犬譬研究生院j 程硕士学靛论文 在嵌入式应用软件开发时,需要嵌入式操作系统支持的是高性能、复杂的嵌 入式应用软件,但对于简单应用功能的开发就不需要专门的操作系统i 舯。 1 3 1 1 嵌入式应用软件开发的特点 嵌入式软件开发与通翔软件不丽,嵌入式软件开发高度依赖予软件应用的软 硬件环境,必须关注其霹移植性和可重用性。因此,要多用高缓语言( 如c 怒+ + 语言) ,少用或者不用汇编语言,从技术上讲,现在的编译技术使得编译器产生 的代码与汇编器产生的代码在执行效率和代码量上相差不大,这样做不仅可以减 少工作量,还可以提高软件酶酉移獯性。 嵌入式软件开发具有以下特点【2 l : ( 1 ) 需要软硬件开发环境和工具: ( 2 ) 软硬件协同设计; ( 3 需要新的任务设计; ( 4 ) 须固化代码: ( 5 ) 技术要求高。 嵌入式系统对实时牲的要求缀离,软件并发者必须在系统设诗藕应用软徉开 发中充分考虑系统的实时性能,同时,还有功耗、体积、性能、软件稳定性、系 统可靠性、+ 抗干扰、开发成本、系统构建时间、系统生命周期、升级与维护、长 期运行起可靠性等因素。这些都要在软件开发中充分考虑和体现。通常在考虑优 化某种蹬素的同时会影峨到其他方蕊,就必须要将众多设计要点综合考虑,系统 设计。 1 3 1 2 嵌入式应用软件开发的基本流程 嵌入式系统是一令资源受限的系统,因此不能够在嵌入式硬件系统上直接编 程,在嵌入式软件开发过程中,通常的做法是先在宿主机( h o s t ) 上编程,宿主桃 一般都是x 8 6 架构的通用p c 机,利用机上的率富的资源,完成程序的编写工作, 透过交叉编译和链接,生成在精标梳上可以运行的二迸制机器代码,将代码通过 接疆下载到曩标枧( t a r g e t ) 上的特定位置,出嚣标机上的启动代码弓| 导运行此代 码,从而实现嵌入式系统功能。 基予交叉开发环境的嵌入式应用软件开发主要分如下5 个基本阶段例: ( 1 ) 开发环境酶选择和建立; ( 2 ) 源文件编辑; ( 3 ) 编译; ( 4 ) 链接; ( 5 ) 下载朔调试。 下图显示了嵌入式软件开发的基本流程: 第5 页 翻防科学技术火学研究生院:l :群硕士学位论文 图1 2 嵌入式软件开发滚程图 1 3 1 3 嵌入式应用软件开发的要求 要开发出一款优秀的嵌入式系统,不但要求设计者在硬件的选型、操作系统 的选择上充分考虑嵌入式系统的特点,更要在应用软件的开发中,注重凡个方面: ( 1 ) 软件执行效率 软件执行效率是决定系统优劣的最重要因素,在实现相同功能的情况下,代 码量越精练,对寄存器使用越合理,则执行效率越高,代码性能越好。 2 ) 代码量 r i s c 结构由于指令定长,指令简单,代码密度相比c i s c 要低。为了解决这 个问题,业界采用了很多办法。a r m 系列处理器引入t h u m b 扩展指令集,它将 3 2 位a r m 指令集的一个子集重编码为1 6 位,片上逻辑负责实时地解压缩操作码。 还有一_ j 中方法是采用变长的指令格式 1 6 1 ,例如长度可选1 6 ,3 2 ,4 8 位。除了硬件上 的改进,代码量的减少还需要依赖于编译器的优化。 第6 页 国防科学技术火学研究生貌:l :程硕士学位论文 = = = 拦= = = = = = = = 拳= = = = = = = = = = = = = 拳= = = = 黑= = = = = = = = = = = = = 拳= = = = 篇= = = = i i i i i = = = = 鬣= = = = = = = = = 篙= = ( 3 ) 内存耗费 嵌入式系统的内存有限,所以要求内存分配合理。合理地使用内存会在很大 程度上减少系统负担,提高嵌入式系统运行速度。 ( 毒) 功耗闻题 近年来,诗算机系统功耗问题日益突出,一直是业界研究的重要问题,在使 用电池能量的移动计算以及手持设备应用中,功耗直接决定着电池的使用寿命、 容量和重量。除了硬件上降低电压和采用可变工作模式的解决办法外,+ 还可以通 过软件实现降低功耗的目的,比如将接豳暴露给软件,让操作系统或者编译器负 责调整。编译器具有能够分析整个应用程序行为的能力,它可以对应用程序的整 体结构按照给定的优化目标进行重新构造。因此,利用编译器对应用程序进行降 低能量消耗的优化和程序变换对降低系统能量消耗有重要的作用。 ( 5 ) 实时性 嵌入式系统对实时性的要求非常严格。嵌入式系统的实时性保证涉及硬件平 台、系统软件和应用软件多方面窭素囝。在硬件平台和系统软件选定之后,实时性 主要取决于应用软件的设计。多任务的划分方法、任务中所使用的算法和任务调 度算法的选择对实时性的影响十分重要。 ( 6 ) 可移植性和可重用性 嵌入式软件追求实时性、有效性,徒往存在高级语言与汇编语言混髑的情况, 对于微处理器相关的代码一般会使用编译效率高、针对硬件特性的汇编语言,这 就导致应用软件的可移植性和可重用性变差。在注重正确性和实时性的前提下, 也必须要关注软件的可移植性和可重用性。 1 。3 2 集成开发环境i d e 嵌入式系统的特殊产品特征决定了它对软件有特殊的要求,自然就对相应的 软件开发工具有更高的要求。由于大多数嵌入式系统本身不具备自举开发能力, 必须有交叉编译开发工具和开发环境才能进行开发。一个高效、可靠、可扩展的 集成开发环境显得越来越重要。正是由于各种优秀的集成开发环境的出现,使得 嵌入式系统并发交得相对简单,铁面对广大工程开发人员降低了门槛【l 】,广泛的应 用和需求使嵌入式系统的开发不再局限于只能由相关应用领域的专家来完成。 目前,有很多工程人员正在用各种开发平台从事嵌入式系统开发。从删公 司的s d t 到a d s ,再到r v d s ,以及风河公司的t o r n a d o 和其悒公司提供的各种 专用开发工具,为嵌入式系统开发提供了丰富的平台和可资借助的工具。 嵌入式系统的更新变化越来越快,嵌入式系统设计开发面临着强烈的市场需 求以及日益错综复杂的设计挑战,对开发时间要求比较紧,尤其是做消费类产品, 第7 页 匿防科学技本犬学研究生院+ l :糕硕七学位论文 更是要求快速| 丌发、生产、上市。正确选择一套先进的、功能强大的,同时又使 用方便,赛面友好的开发王其就显得至关重要。 1 3 2 1 集成开发环境的优势 早期的嵌入式系统开发方式主要是使用文本编辑器编写程序,然舞遥过编译 器编译c i c + + 程序,然后辩用调试王具进行调试,编写m a k e f i l o 文件管理整个要 程,最后用c v s 予以版本管理,整个开发过程显得极为繁琐。特别对予嵌入式系 统来说,环境变量配嚣复杂,所需的库没有懿好的支持,导致在开发过程中经常 如现库链接错误。对于追求高速度、高效率、良好的鲁棒性和扩展性的商业软件 来说,开发人员就曼需要霹视化集成开发环境( i d e ) 集成的一系列灵活弼先进的工 具。 在集成开发环境中,鼷户可以设计程序代礴、运行程序、进行程序错误的调 试等,可视化的开发方法降低了应用程序开发的难度。集成开发环境髓提供开发 所需的编译器,用户可通过i d e 快速编写各种类型的应用程序,如动态链接库 ( d l l ) 、c o n 或c o r b a 对象,c g i i s a p i 程序,以及嵌入式应用程序。其友好的 集成开发赛蕊、可视化的双囊开发模式、良好的开发库支持、高效的程序开发和 程序运行,无异予为商垃软件的开发提供了骞力的保障。从软件工程凫度来说, 采用i d e 的思想,将各类工具集成在可视化开发平台中具有如下优点f 2 4 i : 1 、降低开发成本; 2 、加快开发周期; 3 、集成化的平台; 4 、提离效率; 5 、通过标准降低风险; 6 、降低协作管理复杂度。 i d e 上述的诸多优点可以从裉本上改善嵌入式应用程序的开发工作,只要选择 一款适合的集成开发环境,就可以使歼发工作交褥轻松,产生事半功倍盼效果。 1 3 。2 2 集成开发环境m e 开发嵌入式软件滋程 集威开发环境i d e 一般都是由命令靠开发工具( 编译器、汇编器、链接器) 、 徽处理器运行时库、g u i 开发环境( 文件管理嚣、调试器) 、实用程序、b s p ( 板级支 持包_ ) 和支持软件组成。有了这些部件撩工具,开发者就可以编写和调试自己的嵌 入式应用程序了。 集成开发环境i d e 开发嵌入式软件般遵循图2 2 中的开发流程: 第8 页 国防辩学技术犬学研究生院j l :程矮士学能论文 图1 3i d e 开发嵌入式软件流程图 1 3 2 3 几种广泛使用的集成开发环境 在嵌入式行业高速发展的今天,集成开发环境i d e 作为嵌入式开发者必备的 高效工具,可以说种类繁多,层出不穷,以下是尽前使用较为广泛豹几种i d e : l 、a d s a d s 的全称为a r md e v e l o p e rs u i t e ,是a r i v i 公司推出的a r m 系列处理器集 成开发工具,a r m 公司用它来替代s d t ,放推出至今使用都菲常广泛,露前最高 版本是1 2 ,使用a r m 公司自己开发的a r m c c 编译器。 2 、敝v d s r v d s 的全称为r e a l v i e wd e v e l o p e rs u i t e ,是a r m 公司继s d t 和a d s 后主 推的新一代开发环境,鐾在取代a d s ,露前最高版本为3 。l ,编译器是a r m 公司 新推出的r v c t 编译器【1 4 1 。 3 、& 洲i e w m d k 德国k e i l 公司与a r m 公司最新合作推出了针对各种嵌入式处理器的软侔开 发工具r e a l v i e wm d k 。r e a l v i e wm d k 集成了业内领先的技术,包括t t v i s i o n 3 集成开发环境与r e a l v i e w 编译器。支持a r m 7 、a r m 9 和最新的c o r t e x - m 3 核处 理器,自动配置启动代码,集成f l a s h 烧写模块,强大的s i m u l a t i o n 设备模拟,性 能分析等功能。 4 、t o r n a d o t o r n a d o 是w 砌r i v e rs y s t e m s ( 风河公司) 的老牌开发工具旧,目前常用版本 为2 2 ,主要使用d i a b 编译器和g n u ( 开放软件联盟) 的g e e 编译器,其中g e e 第9 页 豳防科学技术入学移 究生院:l :程硕士譬佼论文 编译器的通用性更好,尤其是在l i n u x 环境下,g c c 是最佳选择1 2 3 j 。 5 、e m b e s ti d e e m b e s ti d e 的英文全称是e m b e d si n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t ,是由 深圳市英碧特信息技术有限公司开发,应用于嵌入式软件舞发的集成开发环境。 它提供高效明晰的图形化嵌入式应用软件开发平台,包括一整套完备的面向嵌入 式系统的开发和调试工具,该i d e 采用插件方式支持g n u 编译器,同时也可支持 a 戳迭公司的编译器。 6 、i a r e w a r m 瑞典i a r 公司推出的i a re m b e d d e dw o r k b e n c hf o ra r m 嵌入式集成开发环境 简称i a re w a r m ,是一种增强型一体化嵌入式集成开发环境,其中完全集成了 开发嵌入式系统所需要工具,具有统一界面,必用户提供了一个易学易用的开发 平台,体现了其“不同架构、惟一解决方案”的理念【1 6 l 。i a re w a r m 目前最高 版本为4 4 0 a 。 1 4 研究背景与论文主要工作 1 4 1 课题研究背景 信息化时代的到来对嵌入式应用的需求量越来越大,嵌入式系统的开发周期 越来越短,使用可视化的集成开发环境进行嵌入式软件开发是加快开发周期的最 好途径。爵前,世界上有数十家公司提供了针对不同类型的微处理器和不同操作 系统的集成开发环境( i d e ) 。a r m 系列微处理器作为使耀最广泛的嵌入式微处 理器之一,很多i d e 都提供对a r m 微处理器的支持。这些i d e 各具特色、种类 繁多,往往使入无从选择。国内基于a r m 开发广泛使用的有a r m 公司自己的多 款薹d e 以及英蓓特、w i n d r i v e t 、i a r 、琢t o o l 、髓等公司的i d e 。各种杂志、书 籍和互联网上对这些i d e 的介绍却比较少,更多的是很多公司对自己产品的大力 推荐,真正让大家关心的i d e 软件开发效能却没有横向对比,使人不能真正了解 这些i d e 及决定i d e 效能的编译器的优劣。 嵌入式集成开发环境中集成了各种工具,有文件管理器、编译器、汇编器、 调试器,但对i d e 效能影响最大的因素就是编译器的性能,主要是因为:在这些 程序开发设计环境中,编译器起着中心的作用,链接程序、调试程序、程序管理 等工具的工作直接依赖于编译器所产生蠹冬结果,而且其它工具的构造也常常要用 到编译的原理、方法和技术,因此编译器的性能是决定i d e 开发效能主要因素。 很多开发人员长期使用某一种i d e ,对其使用方法非常熟悉,习惯于在一种 i d e 上开发、调试嵌入式软件,要转而使用另一种编译器性能更好的i d e ,需要重 第l o 页 国防科学技术- 人学研究生院jl :程硕七学位论文 新学习熟悉,要达到原来的水平,往往要花费相当长的一段时间,同时,以前工 作要转到新的平台上也有大量工作要做,因此很多开发人员都在更新、更好的i d e 面前止步。 实际的开发工作中会出现这样的情况:需求方要求嵌入式系统采用v x w o r k s 操作系统,因为它的实时性最好,这样也就决定开发环境要使用t o r n a d o ,而 t o r n a d o 中的g c c 和d i a b 编译器性能未必是最好的,这就需要一种编译器选优技 术,能够在不换i d e 平台的情况下,使用其它性能更好的编译器的编译结采,达 到编译结果跨平台工作的耳的。 本文针对使用a r m 实现算法时,既强调代码执行速度,又注重代码量的特点, 在项目应用背景下基于a r m 9 2 0 t 实现了针对算法程序的编译器选优和代码转换。 我们针对输入的待编译c 代码算法模块,用不同的编译器编译,测试其输出代码 性能,然后选择最佳编译结果,作为我们最终使用的模块,通过文件格式转换把 最佳编译结果移植到选定的i d e 上。 1 4 2 论文主要工作 本文从应用角度出发,立足于使用a r m 实现算法时对编译器性能的要求,基 于a r m 9 2 0 t 微处理器对编译器输出代码的性能进行了测试,实现了多编译器选优 和编译结果的跨平台应用。论文主要工作描述; l 、讨论了嵌入式系统嵌入式软件开发的一般方法和使用可视化集成开发环境 i d e 开发嵌入式的优势。通过基于命令行开发和使用可视化i d e 开发两种方法的 对比,突出了集成汗发环境i d e 的优势所在,并对西前几种广泛使用的i d e 进行 了表述。 2 、研究了编译器原理,结合开放源代码的c 配c 编译器,深入分析了编译器 的各种优化策略。比较了当前各种基于a r m 的编译器,选择五种具有代表性、通 用性的c 编译器作为研究对象,提出了褥量编译器性麓的两个重要参数指标 3 、针对算法程序设计了一套测试嵌入式编译器性能的方法,对五种有代表性 的嵌入式编译器进行了软、硬件测试,通过综合衡量,选出了针对三个算法程序 的性能最优编译器。 4 、对i d e 编译、链接输出的三种文件格式进行了分析研究,使用c 语言编程 进行了支件格式转换,实现了编译器输出代码的跨平台应用。 1 4 3 论文的组织 第一章绪论,对嵌入式系统的历史发展和结构特征进行了概述,介绍了a r m 处理器。研究了嵌入式应用软件开发的特点、要求和基本流程,表述了当前广泛 第1 1 页 国防科学技术人学研究生院:l :程硕士学位论文 使用的几种集成开发环境i d e 。在最后一节对课题背景和全文工作进行了介绍。 第二章编译器研究,介绍了编译器的原理,结合开放源代码的g c c 编译器 着重分析了编译器的优化策略,提出了编译器性能测试指标。 第三章嵌入式i d e 编译器性能软、硬件测试及选优,结合算法程序对五种编 译器输出代码进行了软、硬件仿真测试,选定了对算法程序编译性能好编译器。 第四章文件格式转换,分析了e l f 文件、二进制可执行文件和汇编文件三种 文件格式,用c 语言编程完成了文件格式转换,实现了编译器输出代码的跨平台 应用。 最后在结束语中对本文工作进行了总结,并提出了进一步研究的方向。 其中第三章和第四章是论文的主要部分。 第1 2 页 国防科学技术大学磺究生院:l ! 程硕士学位论文 第二章编译器研究 编译器是将一种语言编译成为另种语言的计算机程序,该程序以源语言编 写的程序作为输入,翻译生成等价的露标语言程序 6 1 。 2 1 编译器组成与工作流程 编译器可分成只依赖于源语言的编译器前端( f r o n de n d ) 和只依赖于目标语言 的编译器后端( b a c ke n d ) 两大部分。前端主要对源代码进行扫描、语法分析和语 义分析,生成中阀代码,丽后端主要由优化器和代码生成器组成,完成代码选择、 寄存器分配、指令调度等工作并生成二进制输出代码。这一结构对于编译器的结 构灵活性和可移植性十分重要。流程编译器前后端结构如图2 。l 所示: 图2 1 编译器翦后端结构示意豳 编译器内部包括了五个编译阶段( p h a s e ) ,它们执行不同的逻辑操作,这些 阶段在实际应用中是组合成体的,僵它们也是相对独立的步骤。如表2 。l 所示: 表2 1 编译器各编译阶段任务袭 阶段名称主要任务 输入源稷序,对构成源程序的字符串进行扫描和分 第一阶段词法分析 解,识别出一个个的单词和符号。 在词法分析的基础上根据语言的语法规剥,把单词符 第二阶段语法分析 号串分解成各类语法单位( 语法范畴) 。 语义分析与对语法分析所识别的各类语法范畴,分析其含义,并 第三阶段 中间代码产生进行初步翻译( 产生中问代码) 。 对前段产生的中间代码进行加工变换,以期在最后阶 第四阶段优化 段能产生出更为离效的( 省时间和空闻) 的霸标代码。 第1 3 页 国防科学技术火学研究生院:i :程硕士学位论文 把中问代码( 或经优化处理之后) 变换成特定机器上 第五阶段目标代码生成的低级语言代码,它的工作主要有赖于硬件

温馨提示

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

评论

0/150

提交评论