如何选择嵌入式软件开发平台

如何选择嵌入式软件开发平台
如何选择嵌入式软件开发平台

久前,市场研究机构Embedded Market Forecasters (EMF)发布了一份报告指出:与嵌入式Linux平台相比,基于Microsoft Windows Embedded操作系统平台进行嵌入式系统开发,速度快43%,开发成本低68%.得出这个结论所采用的是TCD (Total Cost of Development,开发总成本)。

这个结论一经发布,可谓一石激起千层浪,热衷于嵌入式Linux的人们纷纷出来辩论,对其提出质疑。人们首先要怀疑这份报告的公正性,因为报告作者——EMF分析师Jerry Krasner博士公开承认,微软为他做出这份研究报告向他支付了费用。

在包括嵌入式软件在内的大多数软件领域,微软的地位无疑是非常重要的。Linux不仅因为继承了Unix的技术特色,更因为开放源代码而在商业机制上与一贯封闭的微软相对垒,赢得了众多口碑。不过,我们不应该忘记,在嵌入式软件开发领域并不是两军对垒,而是三足鼎立。这里还有一个非常重要的阵营——商业嵌入式软件开发工具提供商,例如Wind River的VxWorks.在激烈竞争的商业环境中,谁都希望以更低的成本、更快的速度推出满足市场需求、具有独特竞争力的产品呢。那么,嵌入式软件开发平台究竟应该采用什么样的衡量标准呢?哪一种嵌入式软件开发平台更能有效地帮助电子产品开发商降低产品成本、加快上市速度呢?为了对这些问题有一个全面的认识,让我们对来自微软、嵌入式Linux和商业嵌入式软件开发商的声音做一个全面的了解。

争执,从衡量尺度开始

衡量任何事情,都必须先有一个标准的尺度。为了说明什么样的嵌入式开发平台最经济有效,首先必须形成一套衡量标准。在这个关键问题上,的确是公说公有理、婆说婆有理。究竟谁的对,我们不妨来个“兼听则明”。

受微软公司的委托,EMF研究机构Krasner博士所提出的报告标题是《TCD:嵌入式开发平台的成本评估框架》,其中首先针对如何评估一个嵌入式软件开发平台提出了一套方法。Krasner博士说:“TCD( Total Cost of Development)评估框架可以帮助嵌入式设备制造厂商评估他们花在软件设计中的总体成本,从而便于他们提高开发设计质量,控制开发设计成本。”

Krasner博士在报告中提出了这样一个模型:

TCD=TTM x NOE x CPMM其中:TTM(Time to Market)为产品从开发工作开始到上市所用的时间,以“月”为单位;NOE(Number of Engineers used)为开发该产品所需的工程师数量;CPMM(Cost per Man-Month)为每个工程师每个月所需的费用。

Krasner的调查结果认为:Windows Embedded平台的平均TTM为8.1个月,而嵌入式Linux平台的平均TTM为14.3个月,前者比后者快了43%;从对软件工程师的需求来看,Windows Embedded 平台中每开发一个产品所需的平均工程师数量为7.9人,而嵌入式Linux平台需要14.2人,前者比后者节省44%.不管是在哪一种平台之中,调查报告把每个嵌入式软件工程师的平均月成本都假定为

7500美元,从而得出结论:Windows Embedded平台中,每个项目的TCD为48

万美元,而嵌入式Linux的TCD为150万美元,前者大约只是后者的四分之一。

Krasner博士对如此之大的差别所作的解释是:Windows CE .NET和Windows XP Embedded更为成熟,功能更加丰富,采用基于构件的设计方法,具有集成化的工具集,支持并行开发工作流程。

然而,热衷于嵌入式Linux的人们对这样的结论非常不以为然,并且提出了强有力的反击。

Jerry Epplin是一家名为EmbeddedSpace的嵌入式系统咨询公司的首席咨询师。他尖锐地指出:嵌入式开发平台的评估方法应该准确地衡量开发工作中的全部因素,TTM和TCD的确是很重要的因素,但是,除此之外还有很多不可忽视的因素。例如:。产品差别化:采用廉价方法开发的产品并不一定能够在市场上获得独特的竞争力;。产品成本:采用能够运行在较廉价的硬件平台上的嵌入式操作系统,将会使产品成本大幅度降低,从而在市场上具有更强的竞争力;。工具的延续性:如果嵌入式软件开发者长期采用同一个平台,并且积累了大量的工具软件和开发经验,必将在产品功能、性能和成本方面占据更大的优势。

另外还有其他许多因素都应当纳入嵌入式软件开发平台的评估体系之中。如果只是拿出来一两个指标来衡量,其结果一定是片面的……

真正应该关注的是TCP

Krasner博士提出的嵌入式开发平台TCD评估方法不仅非常简单,而且完全站在了微软的立场上,当然是树大招风,而且由于过于简单而显得非常脆弱,很容易受到攻击。反过来,对于简单而直截了当的结论,最有效的攻击方法莫过于让事情复杂化,即使自己提不出任何明确的结论,至少能够让对方的论断受到怀疑。这就是Jerry Epplin所采用的办法。

在Window Embedded和嵌入式Linux争执不下的时候,我们不妨听听另外一方面的说法,相信有助于我们明辨是非。

不论是微软还是Linux,实际上都是嵌入式系统的后来者。在这个领域,本来就有一些长期获得认同的开发平台,比如Wind River的VxWorks. Wind River 中国区总经理韩青指出:“Krasner博士和Jerry Epplin先生是从不同层面得出的不同结论,他们所说的都有道理,对于搞清楚如何选择嵌入式软件开发平台都是有帮助的。Wind River在嵌入式软件开发领域已经有20多年的经验,对此也有自己的认识。”

韩青先生认为:选择和采用一种开发平台,对于一个电子产品厂商来说就是一笔投资。现在人们都开始认识到“Total Cost”,而不是只看最初的一次性投资。总的来看,对于嵌入式软件开发工具的投资,人们的认识水平可以分为以下几个层面:第一层面:只看到购买开发工具时所花的费用。在这个层面上,Open

Source的Linux无疑是最吸引人的,因为它是免费的,而其他商用嵌入式软件开发工具和商业化的Linux都需要支付一定的费用。

第二层面:不仅看到购买开发工具软件是所花的费用,而且看到在一个产品开发过程中所花的费用,主要是产品License和产品生产成本。微软及Krasner 博士的报告对于人们认识到开发过程中的隐形费用很有帮助,只是他们提出的TCD模型过于简单了。Jerry Epplin则提出了一些同样值得重视的因素。

第三层面:从一个产品整个生命周期的范围内来看待不同嵌入式软件开发平台对成本的影响,所以我们要关注TCP(Total Cost of Product,产品总成本)。因为,企业开发和销售一个产品,最终要关注的是获利能力,所以就必须关注TCP.其实,关于嵌入式软件开发平台的投入产出分析还可以在更高的层面——整个企业的高度来进行。经过多年发展和积淀,成熟的嵌入式软件开发平台支持基于构件(Components)的开发方法,从而让不同产品、不同开发项目之间实现大范围的软件构件重复使用,从而加快开发速度,降低开发成本。另外,在工具与平台的维护以及工程师的培训方面都可以节省更多的成本。

特别是对于消费电子产品是嵌入式软件的新兴市场,由于这类产品主要是批量生产销售,所以对成本极为敏感。软件对于消费电子产品成本的影响主要体现在四个方面:一是对CPU的要求越高,成本越高;二是对Flash存储器容量要求越高,成本越高;三是产品软件License的费用直接影响产品成本;四是系统稳定性、可靠性越好,产品售后服务费用就越低。

不同嵌入式软件平台的TCP分析比较

对于一个产品从开发到批量上市,其中的费用大致由三个方面构成:开发工具License、产品生产的License和相关成本以及开发与生产中的隐性费用。其中,隐形费用往往的不到应有的重视,这是因为开发工具与平台的选择常常有技术开发人员做出,而由此对产品开发整体成本(TCP)却远远超出了技术问题本身。

目前广泛采用的嵌入式软件开发工具,从商业模式上可以分为两类:

In-House(由各生产厂商自行研发和维护)和商业化的嵌入式开发工具;从沿革历史上也可以分为两类:传统嵌入式平台和由桌面操作系统经过裁剪而来的平台。

对于嵌入式Linux要区别看待。如果是完全免费的,那么必然要求开发者自行修改和维护,最终形成各自不同的版本,这样就和In-House的嵌入式开发工具没有什么区别了。

抛开桌面操作系统和嵌入式系统所用的RTOS(实时操作系统)在技术上的区别,仅仅从经济性上来看,我们可以Wind River 的VxWorks为代表,在传统商用嵌入式软件工具、免费的嵌入式Linux和Windows Embedded等不同工具之间作一下比较。

开发工具与平台的License费用:开发者可以选用免费的Linux.VxWorks、Windows Embedded和商业化的Linux的入门费大体在一个水平上。

产品License费用及生产成本:表面上看,Linux是Royalty Free(免收使用许可费)。VxWorks和Windows是要收取使用许可费(Royalty)的。产品license 费用对于价格敏感的设备,如消费电子类设备,是非常重要的。基于VxWorks 所开发的产品对于CPU和存储Flash的需求更低,因此可为客户节省硬件成本。据风河公司中国区总经理韩青先生透露“风河公司在消费电子类产品上产品license的订价很低,采用VxWorks为用户节省的硬件成本足以补偿使用许可费”。Windows和Linux原本都是桌面操作系统,即使经过裁剪,其成品软件在节省CPU和内存方面仍然远远不及VxWorks.隐形费用:微软及Krasner博士的报告对于强调开发过程中的隐性成本具有非常大的积极作用,但是没有考虑到产品生产中的隐性成本,而且对开发阶段隐形费用所做的分析也过于简单化。

实际上,开发一个产品的成本究竟怎样,与开发者已有的资源密切相关。具体产品开发者熟悉哪一种工具,目标产品的参考设计基于哪一种平台,这些都是非常关键的因素。所以要具体情况具体分析。从现实情况看,传统上熟悉VxWorks 平台的开发者很多,对于他们来说,当然是选用VxWorks平台成本最低。Linux 和Windows都吸引了不少新加入的开发者。

嵌入式软件平台的选择对产品上市后隐形费用的影响不可忽视,这主要是体现在产品售后服务与维修方面。如果产品稳定可靠、故障率低,售后服务与支持费用自然就低,通别是对消费电子产品更是如此。VxWorks的可靠性和行为的确定性为开发者设计出精简、实用、可靠的嵌入式软件奠定了基础,这是它最独特的优势。

微软及Krasner博士的报告虽然引发了许多争议,但是这种争议对于全面认识嵌入式软件开发的整体成本还是有很重要的积极作用。总的看来,从只关心入门费到认识到后续的产品生产成本和隐形费用,这是嵌入式软件平台选择准则的一大进步。希望由此开始,广大开发者乃至企业的经营决策者都更加关注嵌入式软件开发平台对产品总成本的影响。

嵌入式软件工程师应该知道的16个问题

嵌入式软件工程师应知道的0x10个基本问题(经典收藏版) C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。如果上述任何问题的答案是"是"的话,那么我知道我得认真考虑我是否应该去做这份工作。 从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借口呢,还是表现出对问题的真正的好奇心,把这看成学习的机会呢?我发现这些信息与他们的测试成绩一样有用。 有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助。这些问题都是我这些年实际碰到的。其中有些题很难,但它们应该都能给你一点启迪。 这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意思分配分数。 预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B) ((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1) 标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

软件开发平台在企业中的应用

软件开发平台在企业中的应用 对于刚毕业的大学生来讲,从事软件开发行业等于是踏上了IT业的头等舱,很多计算机系相关专业的学生都在纷纷面试软件开发及维护的相关岗位。IT企业在招聘的时候会给面试者设置沟通考核,上机测试等重重关卡,不但要求应聘者具有扎实的理论背景、优秀的动手能力,还要有恰当的表现力。这些条件对于缺乏实践训练的大学生来说很难达到。还有一年的时间我们07级的学生就要毕业走向社会了,面临日益激烈的竞争,我们如何在竞争中脱颖而出? 面对推陈出新的技术,我们如何跟上时代的步伐?为此,我们根据软件工程师的必备素质,给有志成为软件精英的学生们提出一些建议。 首先,要了解软件开发的具体流程。实际的软件项目开发过程,它是遵循一定的软件开发流程的。这个流程基本上应该是标准化的。一个软件项目的形成,它分为前期的项目搜寻阶段,这个阶段的主要任务是收集一些市场信息,跟踪用户的需求等。再就是项目立项,提出立项的建议,提供合适的资金和资源,使项目建议成为正式项目。然后就是项目的售前工作,合同的生成以及合同的执行。具体到工作岗位,比如说需求分析员,根据客户的说明,发现软件需求并最终写成《软件需求说明书》;软件设计员,根据《软件需求说明书》的要求,设计软件方案,写成《软件设计说明书》;程序员根据《软件设计说明书》的要求编写程序代码;测试员根据《软件需求说明书》的要求,检查软件产品是否符合设计的要求。这只是大致的流程,实际情况要比这还复杂。 其次,要了解当今的主流开发平台都有哪些,主流开发技术都有哪些。J2EE 和.net都是当前web应用系统开发的主流平台。Web应用系统就是利用各种动态Web技术开发的基于B/S(浏览器/服务器)模式的事务处理系统。用户直接面对的是客户端浏览器,使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过浏览器的方式返回给用户。比如:ERP系统、CRM系统以及常见的网站系统(如电子政务网站、企业网站等)都是Web应用系统。不同的软件开发平台,所应用的技术也不一样。以J2EE为例,J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition)的缩写。它是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,

嵌入式系统开发基础——基于ARM9微处理器C语言程序设计各章习题

第一章习题 1。嵌入某种微处理器或单片机的测试和控制系统称为嵌入式控制系统(Embedded Control System)。 在应用上大致分为两个层次,以MCS-51为代表的8位单片机和以ARM技术为基础的32位精减指令系统单片机 2。目标机上安装某种嵌入式操作系统和不安装嵌入式操作系统, 以MCS-51为代表的8位单片机不安装嵌入式操作系统。 3。32位、16位和8位 5。32位、16位 6。在大端格式中,字数据的高字节存储在低字节单元中,而字数据的低字节则存放在高地址单元中。 在小端存储格式中,低地址单元存放的是字数据的低字节,高地址单元中,存放的是数据的高字节。 第二章习题 (略) 第三章习题 1。 (1)寄存器大约有17类,每个的定义都是寄存器名字前面加一个小写”r” (2)在56个中断源中,有32个中断源提供中断控制器,其中,外部中断EINT4~EINT7通过“或”的形式提供一个中断源送至中断控制器,EINT8~EINT23也通过“或”的形式提供一个中断源送至中断控制器。 第四章习题 1,56个中断源,有32个中断源提供中断控制器 2,两种中断模式,即FIQ模式(快速模式)和IRQ模式(通用模式)。通过中断模式控制寄存器设置。 3,常用的有5个,它们是中断模式控制寄存器,控制中断模式;中断屏蔽寄存器,控制中断允许和禁止;中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的;中断优先级寄存器,它和中断仲裁器配合,决定中断优先级。

4,中断源挂起寄存器,反映哪个中断源向CPU申请了中断;中断挂起寄存器,反映CPU正在响应的中断是哪个中断源申请的。中断源向CPU申请了中断如果该中断源没被屏蔽并且没有和它同级或高级的中断源申请中断,才能被响应。系统中可以有多个中断源向CPU申请中断,但同一时刻CPU只能响应一个最高级的中断源中断请求。中断源挂起寄存器和中断挂起寄存器反映了中断系统不同时段的状态。 5,进入中断服务程序先清中断源挂起寄存器和中断挂起寄存器;中断结束,将该中断源屏蔽。 6,将该中断源屏蔽取消;将该中断源屏蔽。 第五章习题 1,S3C2410芯片上共有117个多功能的输人/输出引脚,它们是。 ?1个23位的输出端口(端口A); 。1个11位的输入/输出端口(端口B); 。1个16位输入/输出端口(端口C); ?1个16位输入/输出端口(端口D); ?1个16位输入/输出端口(端口E); ?1个8位输人/输出端口(端口F); ?1个16位输入/输出端口(端口G); 。1个11位的输入/输出端口(端口H)。 2,S3C2410 I/O口的控制寄存器、数据寄存器、上拉电阻允许寄存器的作用? 端口控制寄存器定义了每个引脚的功能;与I/O口进行数据操作,不管是输入还是输出,都是通过该口的数据寄存器进行的,如果该端口定义为输出端口,那么可以向GPnDA T的相应位写数据。如果该端口定义为输人端端口,那么可以从GPnDAT的相应位读出数据。 端口上拉寄存器控制每个端口组上拉电阻的使能/禁止。如果上拉寄存器某一位为0,则相应的端口上拉电阻被使能,该位做基本输入/输出使用,即第1功能;如果上拉寄存器某一位是1,则相应的端口上拉电阻被禁止,该位做第2功能使用。 5, rGPBCON=rGPBCON& 0xFFFFFC∣1; //蜂鸣器配置,PB1口接蜂鸣器,输出delay(1000); rGPBDAT & = 0xFFFFFE; //蜂鸣器响,低电平有效 rGPBDAT∣=1; // 蜂鸣器停 第六章习题 3,S3C2410 UART波特率如何确定?

嵌入式底层软件开发方法

嵌入式底层软件开发方法 自从20世纪70年代单片机出现以来,嵌入式系统已获得了较为深入的研究, 提出了一些嵌入式软件的开发方法,但嵌入式系统仍处于发展阶段,嵌入式系统 已经显示出广阔的应用前景。 1.嵌入式系统的定义 嵌入式系统又称为嵌入式计算机系统,是指嵌入到对象体系中的专用计算机系统。对象系统则是指嵌入式系统所嵌入的宿主系统,嵌入性、专用性与计算机系统 是嵌入式系统的三个基本要素。嵌入式系统通常被描述为:以应用为中心,以计 算机技术为基础,软硬件可剪裁,适应于应用系统对功能、可靠性、成本、体积和 功耗有严格要求的专业计算机系统。 2.嵌入式系统的发展历程 嵌入式系统是在硬件和软件交替发展的支撑下逐渐趋于稳定和成熟的,它有着 悠久的历史。从20世纪70年代单片机的出现到现在各种嵌入式微处理器、微控制 器的大规模应用,嵌入式系统己经有了30多年的发展历史。纵观嵌入式技术的发展,大致经历了以下几个发展阶段。 (1)无操作系统阶段:主要是以功能简单的专用计算机或单片机为核心的可编 程控制器形式存在的系统,具有监测、伺服、设备指示等功能,一般没有操作系统 的支持,通过汇编语言编程对系统进行直接控制。主要特点是:系统结构和功能都 相对单一,处理效率较低,存储容量较小,几乎没有用户接口,比较适合于各类专 用领域。 (2)以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统:主要特点是出现 了高可靠、低功耗的嵌入式处理器,嵌入式操作系统能运行于各种不同类型的微处 理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;片上系统(System On Chip,SOC)使得嵌入系统越来越小,具有大量的应用程序接口,开发应用程序简单,应用软件丰富。 3.嵌入式系统的构成及其特点 1)嵌入式系统的组成 嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件 系统等组成,具有专用性、可嵌入性、实时性、可移植性和分布式等特点。其中, 嵌入式微处理器是嵌入式硬件系统的核心部分,它担负着控制、协调系统工作的重 要任务,通常具有实时多任务处理能力、中断处理能力、存储器保护能力和低功耗 能力;支撑硬件主要包括存储介质、通信部件和显示部件等;支撑硬件的驱动程 序、操作系统、应用软件等一起构成嵌入式软件。

软件开发平台的概念

软件开发平台的概念 1 软件开发框架的概念 在企业应用软件开发领域,往往存在两种选 择,那就是SUN 公司的SUN ONE 框架平台 和.NET Framework(一般业内简称.Net 框架平台)。 J2EE 只是SUN ONE 平台下的一个概念性的 开发应用平台而已。跟.NET 框架平台不是一个 级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。 一般来说,Windows .NET Framework 是Microsoft 的Windows 系统中经过精心定义的技

术框架,微软所有开发系统产品的多年的整合,而J2EE 则是一个书面的协议,只是一个技术要 领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。

2 .NET 框架平台和J2EE 介绍 2.1 .NET 框架平台介绍 .NET 全称Windows .NET Framework 来自于 微软,是一套全能的框架平台,支持C++ 、C#、J++、VB、ASP 等语言,能够解决C/S、B/S 和单机等结构的软件开发需求。.NET 平台将这些语言编译成CLR 语言,使它们可以无差别的运行 在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET 框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。 .NET 框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。 2.2 J2EE 介绍 J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE 架构的企业级应用组件功能。

几种常见软件开发方法的研究与比较

几种常见软件开发方法的研究与比较 摘要:本文介绍四种常见软件开发方法的过程、特点、优缺点及如何对软件开发方法进行评价与选择。 关键词:软件软件开发 1 引言 在软件开发的过程中,软件开发方法是关系到软件开发成败的重要因素。软件开发方法就是软件开发所遵循的办法和步骤,以保证所得到的运行系统和支持的文档满足质量要求。在软件开发实践中,有很多方法可供软件开发人员选择。 2 常见的软件开发方法 2.1 结构化开发方法 结构指系统内各组成要素之间的相互联系、相互作用的框架。结构化开发方法强调系统结构的合理性以及所开发的软件的结构的合理性,主要是面向数据流的,因此也被称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化技术包括结构化分析、结构化设计和结构化程序设计三方面内容。 2.1.1 结构化分析的步骤 结构化分析是一种模型的确立活动,就是使用独有的符号,来确立描绘信息(数据和控制)流和内容的模型,划分系统的功能和行为,以及其他为确立模型不可缺少的描述。其基本步骤是:(1)构造数据流模型:根据用户当前需求,在创建实体—关系图的基础上,依据数据流图构造数据流模型。(2)构建控制流模型:一些应用系统除了要求用数据流建模外,通过构造控制流图(CFD),构建控制流模型。(3)生成数据字典:对所有数据元素的输入、输出、存储结构,甚至是中间计算结果进行有组织的列表。目前一般采用CASE的“结构化分析和设计工具”来完成。(4)生成可选方案,建立需求规约:确定各种方案的成本和风险等级,据此对各种方案进行分析,然后从中选择一种方案,建立完整的需求规约。 2.1.2 结构化设计步骤 结构化设计是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术,目的在于提出满足系统需求的最佳软件的结构,完成软件层次图或软件结构图。其基本步骤如下:

!嵌入式系统开发资料(入门必备)

获取更多权威电子书请登录https://www.360docs.net/doc/2b12966820.html, ARM嵌入式系统开发综述ARM开发工程师入门宝典

获取更多权威电子书请登录https://www.360docs.net/doc/2b12966820.html, 前言 嵌入式系统通常是以具体应用为中心,以处理器为核心且面向实际应用的软硬件系统,其硬件是整个嵌入式系统运行的基础和平台,提供了软件运行所需的物理平台和通信接口;而嵌入式系统的软件一般包括操作系统和应用软件,它们是整个系统的控制核心,提供人机交互的信息等。所以,嵌入式系统的开发通常包括硬件和软件两部分的开发,硬件部分主要包括选择合适的MCU或者SOC 器件、存储器类型、通讯接口及I/O、电源及其他的辅助设备等;软件部分主要涉及OS porting和应用程序的开发等,与此同时,软件中断调试和实时调试、代码的优化、可移植性/可重用以及软件固化等也是嵌入式软件开发的关键。 嵌入式系统开发的每一个环节都可以独立地展开进行详细的阐述,而本文的出发点主要是为嵌入式开发的初学者者提供一个流程参考。因为对于初学者在面对一个嵌入式开发项目的时候,往往面临着诸多困难,如选择什么样的开发平台?什么样的器件类型?在进行编译时怎样实现代码优化?开发工具该如何选择和使用?在进行程序调试时应该注意那些问题以及选择什么样的嵌入式OS 等等。希望通过本文,能帮助初学者了解有关ARM嵌入式系统开发流程。

获取更多权威电子书请登录https://www.360docs.net/doc/2b12966820.html, 目录 前言 (2) 1 嵌入式开发平台 (4) 1.1 ARM的开发平台: (4) 1.2 器件选型 (7) 2 工具选择 (11) 3 编译和连接 (13) 3.1 RVCT的优化级别与优化方向 (16) 3.2 Multifile compilation (21) 3.3调试 (22) 4 操作系统 (23) 4.1 哪里可以得到os 软件包 (Open Source and Linux Kernel) (25) 4.2 安装镜像 (26) 4.3 交叉编译 (26) 总结 (27)

嵌入式系统

第一章绪论 1.嵌入式系统的定义、特点和分类 2.嵌入式操作系统 3.嵌入式系统的选型 4.嵌入式系统的发展趋势 5.嵌入式系统的关键技术 6.嵌入式系统的应用 思考与练习 1.什么是嵌入式系统?嵌入式系统的特点是什么? 2.请说出嵌入式系统与其它商用计算机系统的区别。 3.嵌入式系统的关键技术有哪些? 4.请说明嵌入式系统技术发展及开发应用的趋势。 5.你知道嵌入式系统在我们日常生活中哪些设备中应用?说明其采用的处理器是什么?采用的哪一个嵌入式操作系统? 6.开发嵌入式系统的计算机语言主要有哪几种?分别用在什么场合?7. 嵌入式系统和专用集成电路的关系是什么? 第二章嵌入式系统设计方法 1. 需求分析与系统分析法 2.软硬件协同设计方法 3.嵌入式硬件开发方法 4.嵌入式软件开发方法 5.构件式开发方法 6.软件调试与软件测试方法 思考与练习 1.请说出嵌入式系统设计的主要方法及设计流程。在嵌入式系统开发的总体设计中,需要进行哪几方面的工作? 2.嵌入式硬件调试的主要方法及技术手段有哪些? 3.什么是构件式开发方法?说明该方法对嵌入式系统开发具有什么意义,并举例说明。4.需求分析阶段分为哪几个步骤?每个步骤完成什么工作? 5.在进行系统设计时,概要设计和详细设计的工作内容有什么不同? 6.在嵌入式系统实现阶段,需要选择开发平台,通常开发平台的选择包括哪些内容?7.在当今IT 时代,为了使产品尽快进入市场,就产品开发阶段,你认为有哪些方法可以加快产品的开发速度? 8.什么是“黑盒”测试?什么是“白盒”测试?什么是“灰盒”测试? 9.嵌入式系统开发中,使用软件组件技术有什么好处? 10.什么是知识产权核(Intellectual Property Core,简称IP Core)?指出“软知识产权核(Soft IP Core)”、“硬知识产权核(Hard IP Core)”、“固知识产权核(Firm IP Core)”的意义和差别。 11.根据嵌入式软件开发的不同阶段,嵌入式开发工具有哪些种类? 12.从底层硬件到上层应用,嵌入式软件的开发可以分为哪几种? 13.什么是交叉开发环境? 14.什么是OCD 调试方法?指出OCD 的主要形式JTAG 和BDM 的特点和区别? 15.嵌入式软件的调试运行环境和固化运行环境主要区别是什么?

快速开发平台简介

POBA 公司文档 Copyright 1999-2013poba Software 1 普巴快速开发平台简介 1 平台简介 随着WEB 应用开发技术的发展,应用软件开发平台得到了极大的进步,大多数的软件公司都会开发自己的架构,搭建自己的应用平台,来适应软件企业所在的行业应用,同时将行业的若干通用化的应用做成构件或组件,增强软件的重用性,降低软件开发的风险。 普巴快速开发平台,是业界领先的基于SOA 架构的JavaEE 快速应用开发平台,被业界誉为“软件开发推进器”。它采用先进的“配置化”、“组件化”设计理念和高级封装技术,并积累了大量成熟而实用的应用组件,绝大多数开发与应用无需编码,开发人员无需懂JAVA 即可进行“所见即所得”式的开发,使开发效率提高了一个数量级,并且应用可立即部署,大大缩短了应用开发的调试期,降低了用户的开发成本。为企业、软件开发厂商提供了一套快速开发的工具,同时为用户提供了一套智慧的管控一体化的信息支撑平台。 快速开发平台结构图

POBA 公司文档 2 Copyright 1999-2013poba Software 2 平台使用对象 ISV 独立软件开发商 SI 系统集成商 大中型企业和政府IT 部门 3 平台解决问题 用户在软件开发过程中常遭遇如下难题: 技术难度大,开发成本居高不下 开发、部署效率低 不断变化的企业需求,企业疲于应付 技术骨干流动频繁,重复开发现象严重 多种模式下缺乏统一规范和标准 系统可维护性差,维护成本高 大型项目开发周期长,难以和实际需求匹配 针对上述使用对象面临的问题,普巴快速开发平台革新了软件开发模式,以组件构建的方式实现软件开发,大多数应用无需编写代码,对于复杂应用,也只需编写少量脚本,就可以实现复杂的应用。同时引入了大量的构件,开发人员可直接通过开发工具进行设置,降低了对开发人员技术水平的要求,普通开发人员经过学习就可上岗,解决了技术骨干流动给项目带来的重复开发现象。 通过系统内置的设计工具,基于浏览器进行模板设计、模块设计以及流程设置,能够大幅度地减少开发工作量,提高了开发效率,比传统软件开发节省一半左右的时间。对于项目管理人员,可以将主要精力集中在项目的需求工程、应用设计,降低了项目的风险。 由于在开发实现过程中,压缩了编码的工作量,应用跟踪调试的时间也相应减少,整个应用实现的时间也相应减少,提高了应用的可维护性和软件的稳定性。 4 平台优势和价值 极大地提高了开发效率,缩短应用实现时间80% 以上,大大地缩短了应用

软件系统开发技术答案

软件系统开发技术试题(一) 一、单项选择题(本大题共10小题,每小题1分,共10分) 1. 设计软件结构一般不.确定(D ) A. 模块之间的接口 B.模块间的调用关系 C.模块的功能 D.模块内的局部数据 2. 软件结构化设计中,好的软件结构应该力求做到(B ) A. 顶层扇出较少,中间扇出较高,底层模块低扇入 B. 顶层扇出较高,中间扇出较少,底层模块高扇入 C. 顶层扇入较少,中间扇出较高,底层模块高扇入 D. 顶层扇入较少,中间扇入较高,底层模块低扇入 3. 两个模块都使用同一张数据表,模块间的这种耦合称为(A ) A. 公共耦合 B.内容耦合 C.数据耦合 D.控制耦合 4. 划分模块时,下列说法正确的是(A ) A. 作用范围应在其控制范围之内 B. 控制范围应在其作用范围之内 C. 作用范围与控制范围互不包含 D. 作用范围与控制范围不受限制 5. 重用率高的模块在软件结构图中的特征是(B ) A.扇出数大 B.扇入数大 C.扇出数小 D.内聚性高 6. 面向对象建模得到的三个模型,其中核心的模型是(A ) A.对象模型 B.功能模型 C.逻辑模型 D.动态模型 7. 从结构化的瀑布模型看,在软件生存周期的几个阶段中,对软件的影响最大是(C ) A.详细设计阶段 B.概要设计阶段 C.需求分析阶段 D.测试和运行阶段 &对UML的叙述不正确的是(D ) A. UML统一了Booch方法、OMT方法、OOSE方法的表示方法。 B. UML是—种定义良好、易于表达、功能强大且普遍适用的建模语言。 C. UML融入了软件工程领域的新思想、新方法和新技术。 D. UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。 9?以下哪个软件生存周期模型是一种风险驱动的模型( C ) A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型 10.以下哪一项对模块耦合性没有..影响(D ) A. 模块间接口的复杂程度 B. 调用模块的方式 C. 通过接口的信息 D. 模块内部各个元素彼此之间的紧密结合程度 二、填空题(本大题共10小题,每空2分,共20分)

嵌入式软件开发入门教程

C语言是嵌入式软件开发人员必须熟练掌握的编程语言。作为C语言的初学者重点掌握基本数据类型、复合数据类型、流程控制、数组、指针、函数这几方面的基本知识。本人建议通过观看视频教学的方式进行学习,这样既快速又通俗易懂,当然前提是必须找到优质的教学视频资源。此外,可以配合入门书籍谭浩强的《C语言程序设计》进行学习。如果想深入的学习可以参考美国人写的人民邮电出版社出版的《C Primer Plus》。 方法/步骤2: C语言的磨炼 掌握了基本的C语言语法以后并不代表我们就学会了C语言,关键是如何灵活的去运用。我们可以练习编写C语言学习书籍的课后习题或者在网站上搜索C语言笔试题库进行练习。也可以百度寻找经典的C 语言编程案例进行学习。总之,就是将C语言运用的越熟练越好。至于开发环境可以选择VC++ 6.0 或者linux。 方法/步骤3: 硬件电路基础

嵌入式软件工程师还必须懂一些硬件电路的基本知识。当然,对于刚入门的软件开发人员没必要非常精通电路技术,熟悉基本的电子元器件的功能即可。例如,电阻、电容、电感的作用以及符号,三极管、MOS管导通截止的条件,微处理器、晶振的基本概念等。至于,以上这些基本知识我们可以通过童诗白的第四版《模拟电子技术基础》和网上查阅的资料进行学习。 方法/步骤4: 如何看懂原理图 作为嵌入式软件开发人员我们经常会和硬件打交道,我们的程序最终会被烧录到微处理器内部运行。所以,我们必须要会看硬件原理图,看懂之后才知道如何写程序。首先,我们要知道嵌入式硬件最小系统的组成部分,包括电源电路、晶振、微处理器、复位电路。然后以微处理器为中心向四周查看,主要看我们可以操纵的外设资源。以上知识的学习我们不妨经常浏览一下某些知名IT网站其他人上传的经典原理图。 方法/步骤5: 基本外设知识

流行的软件开发工具有哪些

不同的领域需要不同的图软件开发工具,这需要根据大家的需求不懂来决定。下面来跟大家介绍一些流行的软件开发工具。 1. 桌面程序:Java、C++、C#、VB、C均可。 2. 网站服务器端开发:JSP(Java语法)、PHP、ASP(C#语法)、Web App 框架等 3. 网站客户端:HTML、CSS、Javascript、Flash等等 4. 智能手机程序:安卓使用Java,iPhone使用Objective-C 5. 底层、工具开发:C、C++ 6. 多功能脚本程序:Python、Perl、Ruby等等 7. 人工智能:Prolog、PDDL 8. 工业控制:C、PLC、汇编 9. 通用应用层数据交换处理技术:标记语言XML/XPATH/XSLT、JSON、YAML等等

软件开发平台包括基础开发平台和快速开发平台,基础开发平台是从0开始写代码,而快速开发平台一般是做好了一些现成中间件,节省一定代码量。也有完全不用写代码的,直接通过配置开发软件的快速开发平台。 1、.NET底层的:天纵开发平台 2、JAVA底层的:普元开发平台、起步开发平台 3、EXCEL表格类:勤哲、云表 黑帽科技是一家集软件定制开发、软件外包、智慧信息化建设的软件开发服务商,黑帽科技拥有成熟的APP定制开发、小程序定制开发、软件项目外包开发平台。是专业的互联网产品解决方案提供商,可提供互联网产品咨询、网站设计、网站开发、手机应用开发、移动应用开发。黑帽科技为政府、企业以及团体提供行业解决方案和产品工程解决方案以及相关软件产品、平台及服务。我们通过规范的软件服务管理流程、精确的需求响应、迅捷的软件交付能力,全面构造公司的核心竞争力,并打造一支专业的技术服务团队,成功服务于数百家用户,赢得了广大客户的尊重和认可。 想要了解更多详情内容请拨打联系电话或登录浙江黑帽科技有限公司官网

软件开发技术的选择

软件开发技术的选择 一、前言 作为的研发部,担负本公司产品所有软硬件核心技术的维护、创新与发展的重任,也是本公司的发展壮大的力量源泉。软件研发技术的选择,与我们部门当前与未来的技术发展紧密相关,或者说,与我们的战略规划密不可分。 现阶段,我们部门的战略规划是建立有强大创新能力的高效团队,立足彩票行业,不断拓展新的业务领域。 –短期目标(未来一年):以公司市场为导向,配合市场活动,扩大市场份额;同时加强管理,进行相关的技术储备和技术研究,调整和优化自己的组织架构,为公司未来的发展方向打好基础。 –中期目标(未来1-3年):建立良好的管理制度和合理的组织架构后,并结合自己的技术储备开始全面拓展彩票业务,同时公司盈利结构开始发生调整,向软件、系统集成、增值业务开始倾斜,同时开始重点强调业务领先的思路。 –长期目标(未来3-5年):在形成了彩票行业全面的产品结构后,部门重心开始向行业顾问倾斜,服务和业务将成为核心竞争力 那么,我们研发部的软件技术研发方向是什么?我个人认为我们的发展方向:面向网络(或者说Internet)、面向对象。 二、当前的主流软件研发方向 1、为什么不是C++? C++作为最主要的工业语言标准之一,特别是近几年来,C++语言出现了蓬勃的发展,各种新技术和新概念层出不穷,世界范围内的C++社群也是蒸蒸日上。但是,勿庸讳言的是,C++的地位确实受到了来自Java/C#的有力挑战。在应用领域、特别是在高端的应用领域中,Java正在逐渐取代C++成为主流。

导致这种情况的原因是多样的,但最主要的原因有两个。 一个是C++的标准推出太晚,直到1998年ISO C++标准才正式推出,在此之前,各种风格的C++版本把时间浪费在内耗上,将大片的市场拱手让给了Java。 另一个更重要的原因是,虽然ISO C++标准的制定统一了C++的语言,但是却没有统一C++的framework。虽然C++标榜自己是平台无关的语言(它的确也是),但是对于同一个问题,在不同的平台下有各种不同的解决方案。 C++自己的标准库只是一个语言的framework,而不是一个应用的framework:在I/O,多线程,Socket,GUI,数据对象模型等等常见的问题上,开发者们不得不要么自己封装特定平台的API,要么寻找难以保证质量的第三方类库。没有统一framework的C++,就象没有VCL的Delphi,没有JFC的Java,没有.NET framework的C#。因此,除了在某些底层的开发中C/C++仍然具有不可替代的地位,C++在应用领域无法与Java/C#抗衡,而逐渐退守到底层编程。 对于我们来说,如果确实有必要搞搞C++,可以考虑Borland C++BuilderX。因为Microsoft公司已经下定决心,将操作系统从Win32全面转向.NET,.NET将是Microsoft公司解决方案中的统一的编程模型。Borland C++BuilderX并没有向.NET靠拢,而是坚持走原生开发工具的道路,并且扩展到了多个平台、多个编译器。 Borland C++BuilderX现在的framework,完全使用标准C++整个重新写成,而且支持跨平台和交叉编译(Cross Compilation,即在一个平台下编译生成另一个平台下的可执行代码),同时也对某些专业领域,例如嵌入式开发,提供了专门的支持。另外,它还能够方便地挂接ACE、Loki、Boost等第三方的C++库。 2、DOTNET与J2EE的比较 1)群力所致的J2EE Java于1996年由Sun公司推出,当时它的主要用途是制作产生动态网页的Applet。后来,人们发现Java的“一次开发,多次运行”、纯面向对象的特性、垃圾回收机制和内置的安全特别适合于开发企业应用系统。于是,企业应用开发商纷纷在Java标准版的基础上各自扩展出许多企业应用API,其结果导致基于Java的企业应用呈爆炸式增长。但是各企业系统API之间又不能相互兼容,破坏了Java的平台独立性。鉴于此,Sun公司联合IBM、

嵌入式系统软件开发和设计流程复习课程

* 本文由hquwgz贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 嵌入式系统及应用 第九章嵌入式系统软件的开发 主要内容 嵌入式软件开发工具嵌入式系统开发模式实时软件分析设计方法 第一节嵌入式软件开发工具 嵌入式软件开发工具的分类嵌入式软件的交叉开发环境嵌入式软件实现阶段的开发过程嵌入式软件开发工具的发展趋势 / 嵌入式软件开发工具 “工欲善其事,必先利其器”嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。 嵌入式软件开发工具的分类 嵌入式软件开发阶段 嵌入式软件开发工具的分类 根据不同的阶段,嵌入式软件开发工具可以分为: 需求分析工具(Requirement Analysis Tools)软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等 Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST … Phases Requirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品 嵌入式软件开发工具的分类 嵌入式软件的开发可以分为以下几种: 编写简单的板级测试软件,主要是辅助硬件的调试开发基本的驱动程序开发特定嵌入式操作系统的驱动程序(板级支持包)开发嵌入式系统软件,如:嵌入式操作系统等开发应用软件 嵌入式软件开发工具的分类 从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为: 与嵌入式OS相关的开发工具,用于开发: ` 基于嵌入式OS的应用部分驱动程序等 与嵌入式OS无关的开发工具,用于开发: 基本的驱动程序辅助硬件调试程序系统软件等 嵌入式软件的交叉开发环境 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: 文本编辑器交叉编译器交叉调试器仿真器下载器等 交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 运行平台Target ]

应用软件开发技术(作业1附答案)

《https://www.360docs.net/doc/2b12966820.html,程序设计》 一、单项选择题 1.不论何种控件,共同具有的是___D_______属性。 A.Text B.Image C.Caption D.Name 2.在代码窗口,代码下方有兰色波浪线表示_____B_____。 A.对代码设置了格式B.语法错误C.逻辑错误D.运行时错误3.若要使命令按钮不可操作,要对______A____ 属性设置。 A.Enabled B.Visible C.BackColor D.Text 4.要使文本框输入的字符显示为*,则需要设置____C_____。 A.Text属性值为* B.PasswordChar属性值为空 C.PasswordChar属性值为* D.Name属性值为* 5.对于窗体,下面_____B_____属性可改变窗体的边框性质。 A.MaxButton B.FormBorderStyle C.Name D.Left 6.下列数值中,______C____ 不可能通过表达式Rnd * 20 + 10 产生。 A.10 B.20 C.30 D.12.5 7.对于语句If x = 1 Then y = 2,下列说法正确的是______c____。 A.x = 1 和y = 2 都是赋值语句B.x = 1 和y = 2 均为关系表达式 C.x = 1 为关系表达式,y = 2 为赋值语句 D.x = 1 为赋值语句,y = 2 为关系表达式8.表达式Len("VB.NET程序设计")的值是_____A_____。 A.10 B.14 C.7 D.12 9.能够获得一个文本框中被选取文本内容的属性是_____C_____。 A.Text B.SelectionLength C.SelectedText D.SelectionStart 10.使用https://www.360docs.net/doc/2b12966820.html,开发环境的目的是_____B____ 。 A.图像处理B.开发Windows和Web应用程序 C.制作W A V文件D.文字处理 11.下列控件中,既可用于输入文本,又可用于显示文本的是____B_____。 A.Label 控件B.TextBox 控件C.Timer 控件D.Button 控件12.下列语句正确的是___B______。 A .If x≥0 Then MsgBox(“x不小于0”)B.If x>=0 Then MsgBox( “x不小于0”) C.If x≥0 Then MsgBox( “x不小于0”) End If D.If x>=0 Then MsgBox( “x不小于0”)End If 13.计算今天离2009年1月1日还要多少天的表达式为______D____。 A.DateAdd(Now , #1/1/2009# ) B.DateDiff(Now , #1/1/2009# ) C.DateAdd("d", Now , #1/1/2009# ) D.DateDiff("d", Now , #1/1/2009# ) 14.按变量名的定义规则,______C___是错误定义的变量名。

嵌入式软件开发流程

.嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。本书在4.1.5节对各种不同的嵌入式操作系统进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

相关文档
最新文档