计算机实验室实习报告 第3页

计算机实验室实习报告 第3页
集成开发环境,含源代码调试器(SpOTLIGHT),C/C++ 编译器 (e g Diab),汇编器,连接器,C/C++ 开发环境 (SNiFF+),嵌入式系统监视工具 (Esp),CORBA等。而Tornado/VxWorkx支持的工具有:远程源级调试器;浏览器;WindSh 命令行接口;模块载入器;目标工具;WindConfig 板基支持包配置;大约90个第三方嵌入式开发工具和扩展。
(2) 操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题。它是关系到整个系统能否按期完工的一个关键因素。因此我们要选择那些可移植性程度高的操作系统。从而避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。
(3) 操作系统的内存要求。均衡考虑是否需要额外花钱去购买RAM或EEPROM来迎合操作系统对内存的较大要求。有些操作系统对内存的要求是target dependent。如Tornado/VxWorkx,开发人员能按照应用需求分配所需的资源,而不是为操作系统分配资源。从需要几K字节存储区的嵌入设计到需求更多的操作系统功能的复杂的高端实时应用, 开发人员可任意选择多达80种不同的配置。
(4)    开发人员是否熟悉此操作系统及其提供的API。
(5)    操作系统是否有提供硬件的驱动程序,如网卡等。
(6) 操作系统是否具有可剪裁性,即能否根据实际需要进行系统功能的剪裁。有些操作系统具有较强的可剪裁性,如嵌入式Linux、Tornado/VxWorks等等。
(7) 操作系统的实时性。实时性分为:软实时和硬实时。有些嵌入式操作系统只能提供软实时,如WindowsCE。作为微软大名鼎鼎的“维那斯”,Microsoft Windows CE 2.0 是32位,,Windows兼容,小内核,可伸缩实时操作系统,满足大部分嵌入式和非嵌入式应用的需要。但不够实时,属于软实时嵌入式操作系统。
2.2 编程语言的选择
(1) 通用性。随着微处理器技术的不断发展,其功能越来越具体,种类越来越多,但不同种类的微处理器都有自己专用的汇编语言。这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现,而高级语言一般和具体机器的硬件结构联系较少,比较流行的高级语言对多数微处理器都有良好的支持,通用性较好
(2) 可移植性程度。由于汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,因此,移植性差;而高级语言对所有微处理器都是通用的,因此,程序可以在不同的微处理器上运行,可移植性较好。这是实现软件重用的基础。
(3) 执行效率。一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢。但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此存在一个开发时间和运行性能间的权衡。
(4) 可维护性。低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。因此,当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。另外,模块化设计也便于系统功能的扩充和升级。
(5) 基本性能。在嵌入式系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有:Ada、C/C++、Modula-2和JAVA等。Ada语言定义严格,易读易懂,有较丰富的库程序支持,目前在国防、航空、航天等相关领域应用比较广泛,未来仍将在这些领域占有重要地位。C语言具有广泛的库程序支持,目前在嵌入式系统中是应用最广泛的编程语言,在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。C++是一种面向对象的编程语言,目前在嵌入式系统设计也得到了广泛的应用,如GNU C++。Visual C++,是一种集成开发环境,支持可视化编程,广泛应用于GUI程序开发。但C与C++相比,C++的目标代码往往比较庞大和复杂,在嵌入式系统应用中应充分考虑这一因素。Modula-2定义清晰,支持丰富,具有较好的模块化结构,在教学科研方面有较广泛的应用。虽然该语言的开发应用一直比较平缓,但近两年在欧洲有所复苏。Java语言相对年轻,但有很强的跨平台特性,目前发展势头较为强劲。它的"一次编程,到处可用"的特性使得它在很多领域倍受欢迎。随着网络技术和嵌入式技术的不断发展,Java及嵌入式Java的应用也将越来越广泛[2]。
2.3 开发工具的选择
(1) 系统调试器的功能。系统调试特别是远程调试是一个重要的功能。
(2) 支持库函数。许多开发系统提供大量使用的库函数和模板代码。如大家比较熟悉的C++编译器就带有标准的模板库,它提供了一套用于定义各种有用的集装、存储、搜寻、排序对象。
(3) 编译器开发商是否持续升级编译器。
(4) 连接程序是否支持所有的文件格式和符号格式。
2.4 硬件调试工具的选择
好的软件调试程序可以有效的发现大多数的错误。但是如果再选择一个好的硬件调试就会达到事半功倍的效果。常用的硬件调试工具有以下几种。
(1) 实时在线仿真器(ICE)。用户从仿真插头向ICE看,ICE应是一个可被控制的MCU。ICE是通过一根短电缆连接到目标系统上的,该电缆的一端有一个插件,插到处理器的插座上,而处理器则插到这个插件上。ICE支持常规的调试操作,如单步运行、断点、反汇编、内存检查、源程序级的调试等等。
(2) 逻辑分析仪。逻辑分析仪最常用于硬件调试,但也可用于软件调试。它是一种无源器件,主要用于监视系统总线的事件.
(3) ROM仿真器。ROM仿真器用于插入目标上的ROM插座中的器件,用于仿真ROM芯片。可以将程序下载到ROM仿真器中,然后调试目标上的程序,就好象程序烧结在PROM中一样,从而避免了每次修改程序后直接烧结的麻烦。
(4) 源程序模拟器。
2.5 软件组件的选择
有些软件组件是免费的,有些软件组件是授权的。授权软件组件的费用一般都很高。但授权组件大都经过严格的测试,从而可靠性高,调试时间短。但现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发成员在选择的时候要加以权衡,确定那种方案更好。
3 总结
本文就嵌入式系统设计中硬件和软件的选择问题,进行了分析,提出了软硬件选择应该考虑的主要因素。由于嵌入式系统的设计包含了硬件和软件的设计,因此在进行系统分析、系统设计时要权衡各方面的因素,找到一种适合于你所从事的项目的软件和硬件的开发平台。虽然这是一个很难把握的问题,但“磨刀不误坎柴工”,如果这个问题解决的很好,就会使整个项目的开发进展顺利,避免不必要的人力、物力、财力的浪费
七、实习体会
通过这次实习,我对学院的各类实验室环境有了更加深入的认识,尤其是嵌入式实验室,无论是硬件资源,还是软件资源,我都学到了很多。虽然这是一个具有挑战性的学习过程,但我受益匪浅。我们可以充分利用完备的实验室资源增强我们的实践动手能力和创新能力,在我们走向社会之前积累更多的知识和经验。从实习中我准确的定位了自己,知道了我能做什么,我要做什么。比如我,我就想找一个JAVA的软件开发工作,这样目标明确了,就不会太盲然了。我看有些同学,什么工作都想做,但又不知道自己真的想做什么,这样就会有些被动,显得是工作在找你。 因为自己缺乏经验,很多问题而不能分清主次,还有些培训或是学习不能找到重点,随着实习工作的进行,我想我会逐渐积累经验的。
我坚信通过这一段时间的实习,从中获得的实践经验使我终身受益,并会在我毕业后的实际工作中不断地得到印证,我会持续地理解和体会实习中所学到的知识,期望在未来的工作中把学到的理论知识和实践经验不断的应用到实际工作中来,充分展示我的个人价值和人生价值,为实现自我的理想和光明的前程而努力

上一页  [1] [2] [3] 

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有