相对于传统的嵌入式系统设计方法,引入了软硬件“协同设计”概念的嵌入式系统设计方法能较好地弥补传统嵌入式系统设计方法的不足。如图11.1所示为一种典型的嵌入式系统协同设计方法。从图中可以看到,嵌入式系统的“协同设计”方法与传统的嵌入式系统的设计方法相比较而言,更重视总体设计下的系统级别的仿真建模和软件、硬件综合设计方法。......
2023-11-19
常用的ARM的开发环境有ADS1.2、RVDS(RealView Developer Suite)、MDK、IAR、DS-5和一些开源的开发环境。其中RVDS是ARM公司继SDT与ADS1.2之后主推的新一代开发工具。RVDS集成的RVCT是业内公认的能够支持所有ARM处理器,并提供最好的执行性能的编译器。RVD是ARM系统调试方案的核心部分,支持含嵌入式操作系统的单核和多核处理器软件开发,可以同时提供相关联的系统级模型构建功能和应用级软件开发功能,为不同用户提供最为合适的调试功效。目前全球基于ARM处理器的40亿个产品设备中,大部分的软件开发是基于RealView开发工具。RVDS向硬件设备的设计者提供多核调试、应用与所有ARM处理器的代码产生和Cortex CPU的配置等功能,并提供了到达第三方元器件的接口(如ARM ESL tools)。RVDS包含4个模块:IDE、RVCT、RVD和RVISS。下面详细介绍RVDS的一些组件、模拟器和处理器支持模型。
1.IDE
RVDS中的Workbench IDE是一种集成开发环境,它将软件开发与ARM RealView工具的编译和调试技术结合在一起。它可以用作项目管理器,为ARM目标创建、生成、调试、监视和管理项目。它使用一个称为“工作区"的文件夹来存储与特定项目相关的文件和文件夹。
Workbench IDE集成了下列ARM插件。
(1)RealView编译工具
通过此插件,可以在Workbench中使用RealView编译工具,为ARM目标生成项目。它提供了综合配置面板,用于修改项目和各文件的工具设置。
(2)ARM汇编器编辑器
此插件提供了一个编辑器,以便于阅读的可自定义代码格式,显示ARM编译器文件。它还为标签及其他导航辅助工具提供自动完成功能。
(3)属性编辑器
此插件为ARM汇编器和C/C++编辑器提供扩展。可以通过属性编辑器配置源代码,这样无需直接编辑代码即可修改变量或预定义。
(4)分散文件编辑器
此插件提供了一个编辑器,使用户可以轻松地创建和编辑分散加载描述文件。
(5)ELF内容编辑器
此插件创建表格式窗体和图形视图,用于显示映像文件、对象文件和库文件的内容。
(6)ARM Flash编程器
此插件提供了一个新的项目向导,用于为目标创建Flash算法和程序映像。它还提供相关的导出向导,实现与RealView Debugger的紧密集成。
2.RVCT
RVCT是业界最优秀的编译器,支持全系列的ARM和XSCALE架构,支持汇编、C和C++语言。RVCT支持二次编译和代码数据压缩技术,能够生成更小的可执行文件,节省ROM空间。从软件的角度来讲,一个代码的空间和时间是对立和矛盾的,RVCT支持根据应用的需要来选择优化的方向。比如,对实时性要求高的应用,可以选择时间的优化,对于ROM存储空间有限的应用,可以选择空间的优化。RVCT能够支持O3级别的优化,能够对循环进行整合和展开的优化,进而提高代码的执行效率。RVCT还能够根据ARM内核的流水线进行优化,让ARM的流水线全速运行,不会因为代码的原因而影响程序的执行效率。
RealView编译工具(RVCT)有以下组成部分:
●ARM和Thumb C和C++编译器(armcc)。
●ARM和Thumb汇编器(armasm)。
●ARM链接器(armlink)。
●ARM库管理程序(armar)。
●ARM映像转换实用程序(fromelf)。
●支持库。
3.RVD
RVD是RVDS中的调试软件,功能强大,支持Flash烧写和多核调试,支持多种调试手段,快速错误定位。具有以下ADS所不具备的重要功能:
(1)条件断点(www.chuimin.cn)
支持表达式和断点的关联,依据表达式的值产生断点。产生断点条件可以是表达式的真假和忽略的次数。
(2)数据断点
支持根据对指定地址的访问行为,例如读、写、读/写,可以产生数据断点,并且还可以根据指定地址的内容值产生更复杂的数据断点,例如位掩码、值的范围等。
在ADS1.2中,只能通过Memory来观察芯片外设的寄存器,而且还不能保存。这就意味着,每一调试都需要做重复的动作。在RVD中,可以通过文件的方式来描述外设寄存器。
(4)支持Flash烧写
RVD的Flash烧写更方便,提供有C语言接口,可以轻松实现。
(5)可以实现连续调试
目标板的程序运行后,再使用RVD连接调试,并且不干扰运行环境,保护运行现场,进而快捷地找到问题所在。
(6)多核调试
对于那些高实时性、低功耗、运算量大的应用,单核的芯片已经很难满足要求,因此,多核是今后嵌入式芯片设计的趋势。RVD能够支持多核的调试,每个核对应一个窗口,完全可以用单核的调试手段去调试多核中的每一个核。
4.RVISS
RVISS是指令集仿真器,支持外设虚拟,可以使软件开发和硬件开发同步进行,同时可以分析代码性能,加快软件开发速度。具体来说,RVISS是RVDS内部集成的一个功能模块,包含有ARM内核模型和外设模型,并且提供有与VC++的接口,可以实现LCD、触摸屏等复杂的虚拟外设。使用RVISS的外设模型虚拟系统的外设,可以做到和硬件设计同步,大大提高了软件开发的时间。例如,RVISS中的定时器虚拟外设,提供有通用的定时器功能,可以虚拟产生中断。
5.ARM Profiler
ARM Profiler是ARM Workbench IDE的一个插件。使用ARM Profiler可以通过以下两种方式查看代码在目标系统上的执行情况:使用RealView ICE和RealView Trace 2在目标硬件上观察代码,或是针对ARM实时系统模型(RTSM)测试代码。当应用程序停止执行时,ARM Profiler会生成一个分析文件,其中包含有关已执行代码的详细信息(如各种函数的调用序列、计时特征、周期计数和指令计数)。RealView Profiler基于硬件和快速实时系统模型,使直观的用户界面和软件性能分析相结合,从而使得性能分析成为每个嵌入式软件开发者日常工作的必需部分,大大降低项目风险,加快工程进度。
6.处理器支持
RVDS支持以下处理器:
●ARM7、ARM9、ARM10和ARM11处理器系列。
●ARM11 MPCore多核处理器。
●Cortex系列处理器。
●RealView Debugger中的SecurCore、SC100和SC200处理器。
●RVCT中的SecurCore SC300处理器。
●RealView Debugger中支持Faraday FA526、FA626和FA626TE处理器。
●Marvell Feroceon 88FR101和88FR111处理器。
7.模拟器支持
RVDS支持以下模拟器:
●RealView ARMulator指令集模拟器(RVISS)。●指令集系统模型(ISSM)。●RTSM。●SoC Designer。
相对于传统的嵌入式系统设计方法,引入了软硬件“协同设计”概念的嵌入式系统设计方法能较好地弥补传统嵌入式系统设计方法的不足。如图11.1所示为一种典型的嵌入式系统协同设计方法。从图中可以看到,嵌入式系统的“协同设计”方法与传统的嵌入式系统的设计方法相比较而言,更重视总体设计下的系统级别的仿真建模和软件、硬件综合设计方法。......
2023-11-19
在PDA类的设备中,系统在全速运行的时候远比空闲的时候少,所以可以通过设置,使CPU尽可能工作在空闲状态,然后通过相应的中断唤醒CPU,恢复到正常工作模式,处理响应的事件,然后再进入空闲模式。CPU空闲时,降低时钟频率;处于工作状态时,提高时钟频率以全速运行处理事务。......
2023-11-08
2.开发模式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。表1.2常用嵌入式开发工具......
2023-11-19
Linux软件开发一直在Internet环境下讲行。Linux开发工作经常是在Linux用户决定共同完成一个项目时开始的。由于这个活跃的开发环境,新的以Linux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。许多流行的Linux实用程序如C编译器、shell和编辑器都是GNU软件应用程序。Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。......
2023-11-19
Linux具有良好的网络支持,在上面建立Web服务器和设计动态Web网页是比较容易的事情。在开发板提供的examples目录中,包含已经移植过的boa和CGI程序。同样,提供的文件系统中,也添加了boa和CGI。group_id=78得到boa-0.94.36.2.tar.gz,解压到工作目录中$tar zxvf boa-0.94.36.2.tar.gz-C/opt/cvtech/配罝配罝boa:$cd/opt/cvtech/boa-0.94.36.2/src$./configure会在boa-0.94.36.2/src目录下生成Makefile文件,修改Makefile:$viMakefile在31,32行,指定交叉编译器,修改如下CC=/opt/cvtech/4.3.3/bin/arm-linux-gccCPP=/opt/cvtech/4.3.3/bin/arm-Iinux-g++-E修改src/boa.c文件:$vi src/boa.c注释掉225到行227的内容//if(setuid(O)!如果没有以/XXX开始,则表示从服务器的根路径开始。......
2023-11-19
具体来说,嵌入式系统是以应用为中心、计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。可以这样认为,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。表1.1对比了通用计算机系统与嵌入式系统。......
2023-11-19
互联网采用TCP/IP协议并不是ISO规定的标准协议,但是作为应用最广泛的协议已经成为大规模网络通信的事实标准。TCP/IP协议实际上是由一组协议组成的,通常也称作TCP/IP协议簇。图10.10IPv4协议头部从图中可以看出这是个复杂的结构,最常用字段是源地址和目的地址,用来寻址和查路由。如图10.9所示,TCP协议位于网络互联层后,是IP协议的上层协议。......
2023-11-19
每个GPIO端口至少需要两个寄存器,一个是用于控制的“通用I/O端口控制寄存器”,一个是存放数据的“通用I/O端口数据寄存器”。控制和数据寄存器的每一位和GPIO的硬件引脚相对应,由控制寄存器设置每一个引脚的数据流向,数据寄存器设置引脚输出的高低电平或读取引脚上的电平。S5PV210共有237个GPIO端口,分成15组。GPP1:低功率I2S、PCM。GPIO的15组引脚除了作为输入、输出引脚外,一般都还有其他功能,称为引脚复用。图4.6GPIO端口功能框图......
2023-11-19
相关推荐