免费智能真题库 > 历年试卷 > 系统架构设计师 > 2015年下半年 系统架构设计师 上午试卷 综合知识
  第50题      
  知识点:   编程语言   调试   集成开发环境   开发环境   硬件
  关键词:   编程语言   编译   集成开发环境   软件开发   硬件   开发   语言        章/节:   软件架构的风格       

 
某公司为其研发的硬件产品设计实现了一种特定的编程语言,为了方便开发者进行软件开发,公司拟开发一套针对该编程语言集成开发环境,包括代码编辑、语法高亮、代码编译、运行调试等功能。针对上述描述,该集成开发环境应采用( )架构风格最为合适。
 
 
  A.  管道-过滤器
 
  B.  数据仓库
 
  C.  主程序-子程序
 
  D.  解释器
 
 
 

 
  第49题    2017年下半年  
   38%
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的(48)特征。对于语音识别、知识推理等..
  第51题    2016年下半年  
   39%
某公司拟开发一个扫地机器人。机器人的控制者首先定义清洁流程和流程中任务之间的关系,机器人接受任务后,需要响应外界环境中触..
  第51题    2010年下半年  
   62%
某公司欲开发一个漫步者机器人,用来完成火星探测任务。机器人的控制者首先定义探测任务和任务之间的时序依赖性,机器人接受任务..
   知识点讲解    
   · 编程语言    · 调试    · 集成开发环境    · 开发环境    · 硬件
 
       编程语言
        尽管高级语言能够完成大部分的嵌入式软件开发工作,但汇编语言仍然不可替代。汇编语言可以直接对硬件进行操作,代码效率高,所以经常应用在系统移植以及直接控制硬件的场合。此外,良好的汇编基础也有助于程序的调试。
        越是高级的语言,其编译和运行的系统开销就越大,应用程序也越大,运行越慢。因此一般来说,编程人员都会首选汇编语言和C语言,然后才会考虑C++语言或Java语言。
 
       调试
        调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正。调试主要由程序开发人员来进行,谁开发的程序就由谁来进行调试。常用的调试方法有试探法、回溯法、对分查找法、归纳法和演绎法。
 
       集成开发环境
        嵌入式软件开发环境起初主要由专门开发工具的公司提供,这些公司根据不同操作系统和不同处理器版本进行专门定制,如美国Microtec公司的交叉开发工具曾经被VRTX、pSOS等定制采用。随着用户对开发工具套件的需求增加,一些著名的操作系统供应商开始发展本系列操作系统产品的开发工具套件,如WindRiver公司的Tornado、微软的Windows CE嵌入式开发工具包等。
        在国际上,嵌入式软件开发环境的另一支研发队伍是GNU。GNU在因特网上提供免费的相关研究和开发成果,成为自主开发嵌入式软件开发环境的重要资源。一些公司已在GNU软件的基础上,经过集成、优化和测试,推出更加成熟、稳定的商业化嵌入式软件开发环境。
        随着嵌入式系统的发展,嵌入式软件开发环境越来越重要,它直接影响到嵌入式软件的开发效率和质量。目前的开发环境已向开放性、集成化、可视化和智能化的方向发展,将各种类型且功能强大的软件工具,如编辑器、编译器、连接器、调试器、版本管理、用户界面等,有机地集成在一个统一的集成开发环境(Integrated Development Environment,IDE)中。
               Tornado
               Tornado是WindRiver公司推出的一个集成开发环境。它由三个高度集成的部分组成:运行在宿主机和目标机上的交叉开发工具和实用程序;运行在目标机上的实时操作系统VxWorks;用来连接宿主机和目标机的各种通信介质,如以太网、串口、在线仿真器ICE或ROM仿真器等。
               Tornado提供的交叉开发工具和实用工具主要有:源代码编辑工具、图形化的交叉调试工具、工程配置工具、集成仿真工具、诊断分析工具、C/C++编译工具、宿主机-目标机连接配置工具、目标机系统状态浏览工具、命令行执行工具、多语言浏览工具及图形化内核配置工具等。在Tornado中,宿主机上的工具与目标机之间的通信由目标服务器和目标代理共同完成。如下图所示,在形式上目标代理是VxWorks上的一个任务。调试命令通过宿主机上的目标服务器发送给目标代理。这些调试请求决定了目标代理应如何控制目标机上的其他任务。
               
               Tornado环境中宿主机与目标机之间的关系
               .图形化的交叉调试器CrossWind/WDB:支持任务级和系统级两种调试方式,支持混合源代码和汇编代码显示,支持多目标同时调试,具有良好的图形用户界面。
               .工程配置工具Project:用于对VxWorks操作系统及其组件进行自动配置,进行依赖性分析和代码容量计算,自动生成Makefile文件。
               .集成仿真工具VxSim:提供与真实目标机完全一致的调试和仿真运行环境。
               .诊断分析工具WindView:一个图形化的动态诊断和分析工具,主要是向开发者提供在目标机上运行的应用程序的许多详细情况。
               .C/C++编译工具:Tornado提供以下支持C语言和C++语言的工具和类库:Diab C/C++编译器、GNU C/C++编译器及iostreams类库。
               .宿主机-目标机连接配置工具Launcher:位于Tornado环境的最上层,开发者可以通过它来设置开发环境。
               .目标机系统状态浏览工具Browser:一个图形化工具,能随时提供目标系统的全面状态信息。
               .命令行执行工具WindSh:一个功能强大的命令行解释器,可以直接解释、执行C语言表达式,调用目标机上的C函数及访问已在系统符号表中定义的变量。
               .多语言浏览工具WindNavigator:浏览源程序代码,用图形化的方式显示函数调用关系,从而实现快速的代码定位。
               .图形化内核配置工具WindConfig:通过WindConfig提供的图形向导,用户可以方便地配置VxWorks内核及其组件的参数。
               Tornado的特点:
               (1)友好的开发环境。Tornado可以运行在不同的系统中,支持UNIX、Windows NT、Windows 98/95等。
               (2)适用于开发不同类型的目标机。针对不同的目标机,Tornado为开发者提供了一个一致的图形接口和人机界面。这样,当开发人员转向新的目标机时,不必再花费时间去学习或适应新的开发工具。事实上,Tornado的所有工具都驻留在开发平台上。
               (3)工具齐备,具有丰富的交叉开发工具和实用工具。
               (4)开放的、可扩展的开发环境。Tornado是一个完全开放的环境,开发人员或第三方厂商可以很容易地把自己的工具集成到Tornado框架下。
               Windows CE应用程序开发工具
               如下图所示,Windows CE应用程序开发工具包括:①Platform Builder;②eMbedded Visual Tools;③eMbedded Visual Basic;④eMbedded Visual C++。它们都是专门针对Windows CE操作系统的开发工具。
               
               Windows CE应用程序开发工具
               Microsoft Windows CE Platform Builder为开发商迅速创建一个嵌入式系统提供了全部相关工具。Platform Builder集成开发环境使开发者能够对新一代高度模块化的设计进行配置、创建与调试,以实现嵌入式系统的灵活性与可靠性,并与Windows和Web功能特性紧密结合。它的特点主要包括:
               .通过使用改进的目标-宿主集成与连接特性来提高工作效率,节省嵌入式系统的创建时间。这些特性包括:集成化连接与下载、集成化目标控制、状态监视器、灵活的创建选择、简化操作系统配置等。
               .通过使用先进的系统级调试功能来提高调试速度。Platform Builder的系统级调试器目前可为硬件辅助和系统级调试提供支持,从而大大扩展了调试功能的作用范围。具体包括:硬件辅助调试、源点级调试、新型的内核追踪器、远程系统信息、远程性能监视器、改进的调试器用户界面、调试区间等。
               .提供了一个新型扩展模型,可以帮助开发商将各类特性集成到开发环境当中。包括:微处理器控制单元、嵌入式开发工具控制单元等。
               Microsoft eMbedded Visual C++和eMbedded Visual Basic是开发下一代Windows CE通信、娱乐及信息访问等应用程序时的功能强大的工具。它们所提供的全面高速应用程序开发环境能够帮助开发者在各类不同设备上,迅速就相关的Windows CE应用程序进行创建、调试和部署,并且在不牺牲控制功能、性能表现及有关灵活性的前提下,提高Windows CE的开发效率。这两个产品的特点主要包括:
               .开发工作效率比较高。这两个集成开发环境与传统的Windows应用开发环境非常相似,因此开发人员无需额外的培训即可熟练掌握它们的使用方法。而编程时的在线提示辅助功能(如语句完成、参数信息和语法错误检查等),能够大大提高程序员的工作效率。另外,通过创建可重复使用的ActiveX组件,可以将软件开发的复杂程度降至最低水平。
               .开发过程与集成化调试得以简化。允许eMbedded Visual Tools在编译完成后,从移动设备或模拟器上的IDE中自动复制并启动相关的应用程序,从而实现应用程序的迅速测试和执行。在调试程序时,可以使用集成化调试器,当应用程序在Windows CE设备上(或模拟器内)运行的同时对其错误予以消除。另外,在测试时可以先在Windows CE设备模拟器上对应用程序进行测试,以避免高昂的硬件成本投资。
               .针对Windows CE平台的全面访问。包括TCP/IP通信机制、COM组件模型、ActiveX控件、设备的API接口函数等。
               .面向最新的Windows CE设备创建相应的解决方案。例如,Handheld PC Pro、Palm-size PC及Pocket PC等Windows CE设备。
               .迅速、灵活的数据访问。数据存储可通过相关连接来实现与远程数据源之间的同步。
               Linux环境下的集成开发环境
               在Linux环境下也有一些很好的集成开发环境,如Kdevelop、Eclipse和Anjuta等。
                      Kdevelop
                      Kdevelop是KDE小组开发的Linux/UNIX操作系统上的C/C++集成开发环境,为快速开发C/C++应用程序提供了强有力的开发工具。
                      Kdevelop的操作界面类似于微软的Visual Studio,提供编辑、编译、连接、除错、版本管理及计划管理等基本的IDE功能。此外它还内建了一个可以产生Qt图形界面的资源编辑程序。对于C++程序,它额外提供了类浏览器。此外其文件管理程序内建了所有有关KDE发展所需的文件,并提供搜寻的功能。
                      Eclipse
                      Eclipse是替代IBM Visual Age for Java(简称IVJ)的下一代IDE开发环境,但它未来的目标不仅仅是成为专门开发Java程序的IDE环境。根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。目前,Eclipse已经开始提供C语言开发的功能插件。而且它是一个开放源代码的项目,任何人都可以下载其源代码,并在此基础上开发自己的功能插件。
                      Anjuta
                      Anjuta是GNU/Linux平台下的C/C++集成开发环境,它主要是为了开发GTK/GNOME程序而设计的。Anjuta利用GLADE来生成优美的用户界面,加之以自己强大的源程序编辑功能,使之成为应用程序快速开发的集成开发环境。以前,人们使用GLADE做界面,用emacs或vi来编辑源程序,再用某种终端模拟器编辑开发项目。而现在使用Anjuta,所有这些繁杂零散的任务都可以在一个统一的、集成的、自然而然的环境下完成。
 
       开发环境
        下图是一个典型的CPD环境,通常包含三个高度集成的部分:
        (1)运行在宿主机和目标机上的强有力的交叉开发工具和实用程序。
        (2)运行在目标机上的高性能、可裁剪的RTOS。
        (3)连接宿主机和目标机的多种通信方式。例如,以太网、串口线、ICE(In-Circuit Emulator,在线仿真器)、ROM仿真器等。
        宿主机提供的基本开发工具有交叉编译器、交叉链接器和源代码调试器等,作为目标机的嵌入式系统则可能提供一个动态装载器、链接装载器、监视器和一个调试代理等。在目标机和宿主机之间有一组连接,通过这组连接程序代码,映像从宿主机下载到目标机,这组连接同时也用来传输宿主机和目标机调试代理之间的信息。
        
        典型交叉平台开发环境
        目前,嵌入式系统中常用的目标文件格式是COFF(Common Object File Format)和ELF(Executable Linking Format)。另外,一些系统还需要有一些专门工具将上述格式转换成二进制代码格式才可使用。典型地,一个目标文件包含:
        (1)关于目标文件的通用信息,如文件尺寸、启动地址、代码段和数据段等具体信息。
        (2)机器体系结构特定的二进制指令和数据。
        (3)符号表和重定位表。
        (4)调试信息。
 
       硬件
        硬件是计算机物理设备的总称,也称为硬件设备,通常是电子的、机械的、磁性的或光的元器件或装置,一般分为中央处理器、存储器和输入、输出设备。
   题号导航      2015年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第50题    在手机中做本题