ARM 与RealView
 
ARM RealView工具的嵌入式调试

随着嵌入式应用的深入和发展,特别是在数字通信领域和网络领域中的应用,对处理器的性能提出了更高的要求。为适应这种情况,现在已经出现非常多的多内核结构处理器,例如两个或多个ARM,或者再加入DSP。同时,各种用户对不同应用的需求,使得软件的复杂度极大提高。为了提高应用软件的运行效率和性能,操作系统的使用已经成为必然。再者,为了适应不同的用户需求,ARM芯片加入了很多客户需求的复杂外设。

为了满足客户对复杂ARM SoC调试的挑战,实现快速、高效的软件开发,ARM公司开发了RealView系列ARM开发工具,可以实现:

◆ SoC的技术开发调试

◆ 基于SoC的产品开发调试

◆ 应用和软件的开发调试

ARM RealView系列开发工具主要包括:

◆ 编译器、调试器:RVDS(RealView Developer Suite)

◆ JTAG仿真器:RVI(RealView ICE);Multi-ICE

◆ 硬件跟踪器:RVT(RealView Trace);Multi-Trace

指令集模拟器

指令集模拟器RealView ARMulator ISS是RVDS软件中的一部分,ARMulator ISS可以提供对ARM/Thumb指令集的精确仿真,支持包括从ARM7到ARM11的内核处理器,可以使开发人员能够在硬件完成之前就开始软件的开发和验证调试。

ARMulator ISS包含了一系列模拟基于ARM核的软件模型,最基本的模型是ARM处理器内核模型和存储器模型,另外也可以定义其他的模型,例如外设、协处理器等。

ARMulator ISS不仅可以进行程序的逻辑和功能验证,同时可以进行性能分析,例如ARMulator可以通过执行应用程序来计算 程序的运行周期,可以产生 Sequential周期、Non-sequential周期、Coprocessor周期等信息,通过这些数据来分析程序内存的使用效率(图1)。

对于ARMulator,我们同时也可以定义处理器的类型、处理器内核的时钟频率以及与处理器连接的内存信息,例如地址、宽度、速度等,来得到程序的运行时间统计等。

JTAG仿真器调试方案

现在所有的ARM芯片都支持JTAG调试。JTAG是IEEE的一个标准,即IEEE1149.1。通过这个标准,可以对具有JTAG接口芯片的硬件电路进行边界扫描和故障检测。JTAG仿真器是通过ARM芯片的JTAG口进行设备调试的。JTAG仿真器连接比较方便,不占用片上的资源,仿真非常接近于目标硬件系统。使用主机调试器配合JTAG仿真器进行开发是目前使用最多的一种ARM调试方式。

ARM内核有个EmbeddedICE逻辑模块,用于采集CPU的总线信号,对于EmbeddedICE和CPU执行单元的通信则是通过扫描链进行的,而这些扫描链则是受测试访问端口TAP(Test Access Port)控制器控制的,并通过ARM芯片的JTAG接口引出,然后通过JTAG仿真器(RVI或Multi-ICE),便可以和主机平台上的调试器(RVD)进行通讯,从而实现对ARM硬件平台的调试。

对于有的ARM应用程序,当用户使用JTAG仿真器对程序 进行单步调试时可能一切都是好的,但当全速运行时则会出现问题。对于这种问题,则可以通过ARM的硬件跟踪器(RVT或Multi-Trace)来查找问题。

硬件跟踪器是通过ARM芯片内部的嵌入式跟踪宏单元ETM(Embedded Trace Macrocell)来实现对程序跟踪的,可以对执行代码进行无干扰的高速实时跟踪,捕获出所有的程序执行过程,帮助工程师迅速地定位疑难故障,从而缩短开发周期,降低开发成本,请参看图2。

RealView调试器 —— RVD

RVD是ARM系统调试方案的核心部分,该调试器可以为不同用户提供最为合适的调试功效。RealView调试器包括:高度集成的项目管理和编译控制工具的IDE;功能强大的调试器,使开发者可以快速方便地实现对软件的调试。RVD调试器不仅包含基本的调试功能,例如汇编语言和C/C++的原代码调试;单步、全速运行;断点、观察点和跟踪点设置;寄存器、内存和堆栈察看等;还可以实现很多高级的功能,例如多内核调试支持(Multi-Core Debug);操作系统明了化(OS Awareness);DSP明了化(DSP Awareness);扩展的目标可见性(Extended Visibility)。下面就分别对这几种功能做一个简单说明:

◆ 多内核调试支持

随着客户应用需求的增加,很多应用已经不能由单个ARM内核来实现。针对这种需求,ARM对RVD的功能进行了扩展,可以支持多个内核,例如:多个ARM内核;ARM内核+DSP内核;多个ARM内核+多个DSP内核。调试工具通过JTAG扫描链来自动检测硬件系统的内核,用户可以根据需要来显示多个连接的内核,同时可以为每个内核开一个窗口,因此可以使用多个窗口显示多个连接的内核。用户可以通过配置来对各个被调试的内核进行异步控制,例如单独控制每个内核;也可以通过配置来对各个被调试的内核进行同步控制,例如同时启动、停止和步进等。

◆ 操作系统明了化

可以使用户在更高的抽象层次上调试整个系统,而不用专注于每一条代码,这样可以隐藏不必要的细节信息,从而关注于整个应用的开发,提高调试的效率,缩短开发的时间。现在RVD可以支持大部分操作系统的OS Awareness,通过OS Awareness可对系统的资源进行观察,例如进程(Thread)、信号量(Semaphores)、邮箱(Mailboxes)、队列(Queues)等,如图3。RVD对OS Awareness的支持主要有两种:停止系统调试HSD(Halted System Debug) 和运行系统调试RSD(Running System Debug)。HSD调试时需要暂停整个系统,这是可以观察和分析整个系统的一些资源情况。RSD可以在系统运行的情况下对用户指定的线程进行调试,例如设置断点、中断、改变线程优先级等。RSD调试非常适合于一些无法停止运行的系统,例如硬盘等。

◆ DSP明了化

可以使用户在不需要DSP调试工具的情况下对系统的DSP进行调试,与ARM的调试有统一的调试环境,使用户更加方便地熟悉调试环境和节省开发成本。该调试增加了DSP 开发的透明度,使用户可以方便地实现DSP软件的开发。

◆ 扩展的目标可见性

通过这个功能,用户不仅仅可以看到ARM和DSP的内核寄存器等,而且可以定义一些自己关心的内存映射寄存器和外围设备寄存器等,并可定义有意义的显示格式,例如寄存器名字、位定义和设置值等,在调试过程中还可以方便地改变该数值用户可以方便地通过配置BCD(Board/Chip Definition)文件来印证对扩展目标的可见性。

RealView JTAG仿真器

ARM的RealView JTAG仿真器是高性能的开发工具,通过该仿真器并配合RealView调试器,便可以实现对ARM硬件平台的仿真调试。

RVI(RealView ICE)支持本地连接和网络连接,可以通过USB1.1/2.0和主机相连,也可以通过Ethernet 10/100baseT和主机相连。代码通过JTAG下载速度可以达600KB/s,并且新的差分信号线可以满足高达50MHz的JTAG时钟频率和更长的连接距离。RVI仿真器支持所有ARM7系列、ARM9系列、ARM9E系列、ARM10系列和ARM11系列芯片的调试仿真。同时,用户可以通过在线固件(Firmware)升级,来支持以后出的ARM新内核。RVI是一个可调整的、模块化的结构,用户可以根据需要在其上面叠加硬件跟踪器RVT(RealView Trace)来实现对ARM内核的跟踪和分析,如图4。

RealView系列为先进调试解决方案

嵌入式系统变得越来越复杂,从单内核系统到越来越多的多内核系统,从单任务软件到使用操作系统的多任务软件,系统的调试也变得越来越困难。如何选择恰当的调试开发工具,对整个产品的开发起着至关重要的作用。ARM完整的RealView系列开发调试工具对各种系统提供了整体的解决方案。ARM的RealView调试器(RVD)结合JTAG仿真器RealView ICE与硬件跟踪器RealView Trace,提供了高效、快速的调试、跟踪解决方案,成为基于ARM嵌入式系统中最为先进的调试方案

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/levisophia/archive/2008/01/30/2073379.aspx

转:ARM 与RealView相关推荐

  1. 基于ARM的RealView MDK开发环境

    RealView MDK可以对各种嵌入式处理器的软件开发工具.这么高端,着实很吸引我,ADS12还不知道怎么搞,居然还有这么高端的,但是还是得了解一下唉.洗这个自动配 置启动代码,集成Flash烧写模 ...

  2. ARM指令寻址方式及RealView MDK开发环境ARM汇编程序实践

    内容简介 本文根据作者在CSDN发表的树莓派ARM汇编语言编程十讲(第3讲) (CSDN链接https://blog.csdn.net/yuanzywhu/article/details/104975 ...

  3. ARM通用NEON多媒体处理SIMD引擎

    一.NEON 1.简介  NEON是适用于ARM Cortex-A系列处理器的一种128位SIMD(Single Instruction, Multiple Data,单指令.多数据)扩展结构.ARM ...

  4. MDK编译过程及ARM编译工具链

    欢迎加入[Linux C/C++/Python社区]一起探讨和分享Linux C/C++/Python/Shell编程.机器人技术.机器学习.机器视觉.嵌入式AI相关领域的知识和技术. MDK编译过程 ...

  5. 【转】Keil、uVision、RealView、MDK、Keil C51之间的区别比较

    [转]Keil.uVision.RealView.MDK.Keil C51之间的区别比较 keil C51 ARM 我们要区别的概念:KEIL uVision,KEIL MDK,KEIL For AR ...

  6. Keil、uVision、RealView、MDK、Keil C51之间的区别

    Keil.uVision.RealView.MDK.Keil C51之间的区别 我们要区别的概念:KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEI ...

  7. KEIL、uVision、RealView、MDK、KEIL C51区别比较

    [导读]KEIL uVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251从接触MCS-51单片机开始,我们就知道 ...

  8. i.MX arm 3.12.28 Kernel Configuration

    #make menucofig画面 General setup  --->                                                 通用选项设置 │ │ ...

  9. Keil、uVision、RealView、MDK、Keil C51之间的区别比较

    我们要区别的概念:KEIL UVision,KEIL MDK,KEIL For ARM,RealView MDK,KEIL C51,KEIL C166,KEIL C251 从接触MCS-51单片机开始 ...

最新文章

  1. python shell背景颜色改变_科学网—Python Shell Background Color - 李旭的博文
  2. python绘制散点图
  3. Cannot assign a device for operation
  4. 使用Installshield制作asp,asp.net应用的安装程序
  5. 为什么我的vc6.0建立工程时显示不能访问类查文件类信息,类查看信息不可用
  6. Mads Torgersen介绍C# 7及后续版本新特性
  7. avcodec_decode_video2()解码视频后丢帧的问题解决
  8. 小波变换原理_小波变换的知识,转载的
  9. egg 编码规范_从 Egg.js 到 NestJS,爱码客后端选型之路
  10. 常用Linux 服务器命令--各种性能指标命令
  11. 大会预告 | 第一届中国情感计算大会
  12. tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)
  13. RRT算法三维避障的MATLAB实现
  14. 嵌入式BI助力ISV厂商决胜大数据时代
  15. hexo入门学习(六):文章图片存储到七牛云
  16. bh1750采集流程图_基于BH1750的光照度检测)报告方案.doc
  17. 初学者之蚂蚁蜜蜂分类报错记录
  18. G1D38-Evaluation Metrics
  19. 用友系统服务器,用友财务系统需要什么云服务器
  20. 解决captcha验证码无法显示的问题

热门文章

  1. 关于C语言二级指针正确使用总结
  2. 多元线性回归公式推导及R语言实现
  3. 几个简单的论文下载方法
  4. 一个 Command 键的两年辛酸史
  5. java判断excel格式_Java 设置Excel数据验证
  6. 关于Ubuntu18.04双系统安装后无法连接WiFi问题解决方法
  7. WIN7截图工具灵活使用
  8. OpenCV学习篇2:viz模块简单用法
  9. 实验吧WEB CTF 猫抓老鼠 全网最简单易懂的解题方法
  10. 视频、图形图像处理之Opencv技术记录(四)、OpenCV教程概述