arm 开发工具比较(ADS vs RealviewMDK vs RVDS)

 

ADS

REALVIEW MDK

RVDS

公司

ARM

Keil(后被ARM收购)

ARM

版本

最新1.2 ,被RVDS取代

 

最新4.0

是否免费

 

 

 

破解情况

 

工程管理

CodeWarrior IDE

nVision IDE

Eclipse/ CodeWarrior IDE

编译器

ARM C compiler for ADS

ARM C/C++ Compiler (RVCT)

ARM C/C++ Compiler (RVCT)

调试器

ARM Extention Degugger(AXD)

NVision Degger

REALVIEW Degugger(RVD)

仿真器

ARMulator

nVision CPU & Peripheral Simulation

REALVIEW  ISS

硬件调试单元

Multi-ICE/wiggler

uLink /jlink

Realview ICE(RVI)/ Multi-ICE(3.1版本后不支持Multi-ICE)

支持调试协议

RDI

??

RDDI/RDI(3.1版本后不支持RDI)

 

参考:

1.http://blog.csdn.net/lius1984/archive/2008/06/03 /2506299.aspx(REALVIW MDK RVDS 比较)

2.http://mcuol.com/download/upfile/P48-51-fromADStoRealView_MDK.pdf (ADS REALVIEW MDK 比较)

3.http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4227.html




ARM 调试工具比较(RealView ICE - Multi-ICE 比较)


FeatureMulti-ICE®RealView® ICE
   
General
Host ConnectionParallel Port10/100 Ethernet and USB 2.0
JTAG Connection to Target20-pin (0.1")
 
20-pin (0.1")
 + LVDS (10 & 20-pin 0.05" 2Q 08)
ARM® Core Support
ARM7TM, ARM9TM, ARM10TMYesYes
ARM11TMNoYes
CortexTM-M, -R, -ANoYes
Debug Support
ARM DebuggerRVDS 2.x to 3.0, ADS 1.2RVDS 2.x to 3.1
CoreSightTM DebugNoDAP, SWD, ETM, ETB, ECT, TPIU, SWV for DK9, DK11, DK-R4 & DK-A8
Debug InterfaceRDIRDDI
Other interfacesTAPOp, eXDISVF, eXDI2, gdb, Virtual Ethernet
Classic Trace supportMulti Trace
(Obsolete)
RealView Trace
RealView Trace2
Real-Time ProfilingNoRealView Trace2
Performance
JTAG Clock10MHz20MHz and 50MHz using LVDS connector 
Code download speed130 Kbps1,300 Kbps
Step rate50 per Second100 per Second
Status
Production statusDiscontinuedAvailable
   



ARM仿真调试技术


在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。在ARM的开发过程中,一种最简单和原始的开发流程是:编写程序,然后烧写到芯片上验证功能,这种方法对于简单的小系统是可以对付的,但在大系统中使用这种方法则是完全不可能的。所以很多时候我们需要在不烧写代码的情况下调试程序,这就是仿真调试技术。

现代调试技术可以分为软件仿真调试和硬件仿真调试两种:

一.软件仿真(指令集仿真):

概念:

用数据结构描述目标机CPU中各个寄存器和其他资源(内存等),通过软件模拟,可以逐条指令解释执行目标机可执行映象中的程序。

应用场合:

●  当嵌入式软件开发在目标硬件平台不存在的情况下进行,就要使用这种软件来模拟目标CPU,以验证代码逻辑。
        ●  是学习嵌入式开发有效地工具,可以让学习者从底层具体硬件细节中解脱出来,专注于软件,尤其是与具体硬件无关的系统软件(TCP/IP协议栈)。

几个不错的硬件模拟平台:

●  Skyeye:清华大学计算机系博士后陈渝发起,开源项目,主要模拟ARM内核CPU。
        ●  ARMulator:ARM公司推出,ARM指令集模拟器(ADS,Realview MDK上就用这个)。
        ●  ZIX:一个快捷高效、功能强大、易于配置的嵌入式Linux开发环境。

软件仿真的缺点:

无法完全仿真与硬件相关的部分,最终还要通过硬件仿真来完成最终的设计。

二.硬件仿真调试:

以前的芯片没有JTAG调试逻辑,要向仿真它就必须要有专门的仿真器,这种仿真器成本较高,而且每种芯片都不一样,现在这种仿真器已经不存在了。

现在的芯片一般都内置了JTAG调试逻辑,并不需要CPU仿真器,需要的只是一个JTAG协议转接器(现在还称其为仿真器,其实叫做调试器比较合适)。所以下面主要介绍JTAG及其仿真技术。

JTAG简介

JTAG是Joint Test Action Group的简称,该组织致力于统一芯片的测试标准,它们最初向IEEE提出了IEEE1149.1标准,后来经过IEEE批准并且标准化,所以IEEE1149.1标准又叫JTAG标准,它是一套芯片测试接口和标准,现在几乎所有的CPU核里面都会实现JTAG逻辑单元。JTAG原本是用来测试芯片设计是否正确,其基本原理就是在芯片的各个管脚上放置锁存器,然后串联起来构成移位寄存器,可以监控芯片管脚的输入和输出。后来大家发现用JTAG在线调试芯片非常方便(其实就是利用JTAG控制CPU内核),还不需要设计专门的仿真芯片,因此就出现了用JTAG调试风行的局面。

边界扫描技术(Boundary-Scan):

JTAG调试主要就是基于这种边界扫描技术。

边界扫描技术的基本思想是在靠近芯片的输入输出管脚上增加一个移位寄存器单元。因为这些移位寄存器单元都分布在芯片的边界上,所以被称为边界扫描寄存器 (Boundary-Scan Register Cell) 。当芯片处于调试状态的时候,这些边界扫描寄存器可以将芯片和外围的输入输出隔离开来。通过这些边界扫描寄存器单元,可以实现对芯片输入输出信号的观察和控制。

JTAG的主要作用:

●    检测芯片是否良好
                ■这是JTAG最初设计的目标

●    镜像文件的烧写功能
                ■可以烧写编译出来的二进制或者十六进制可执行文件到目标板的Flahs芯片上
                ■当开发板为裸板(没有固化任何程序)的时候,通常需要通过JTAG接口下载bootloader
                ■调试功能
                ■JTAG接口为宿主机和目标系统之间的通信、控制提供了方便的途径

ARM7TDMI调试架构:

一个调试系统通常包含三个部分:

●    调试主机
                ■是一台运行调试软件(ADS,Keil等)的计算机
                ■可以发出一些高层的调试命令,设置断点,访问内存等

●    协议转换器
                ■将调试主机发出的高层调试命令转换为底层的ARM JTAG调试命令
                ■调试目标
                ■基于目标芯片的开发板

ARM7TDMI典型的调试架构如下图所示:

经过协议转换器进行命令解释,主机上运行的调试软件就可以通过JTAG接口直接和目标芯片对话了。

为了支持底层的调试,ARM7TDMI提供了硬件上的调试扩展,包括:

●  停止程序的运行
        ●  检查和修改ARM7TDMI的内核状态
        ●  观察和修改内存
        ●  恢复程序的运行

常见ARM调试工具:

●    BDI1000/2000/3000
                ■非常好的调试工具,可以调试ARM、MIPS、PowerPC、Xscale等多种架构处理器
                ■JTAG下载速度可以上兆,以太网接口
                ■性能优越但是价格不菲,可以调试Linux内核这种复杂的代码

●    U-Link
                ■U-Link是Keil公司做的用于ARM和某些增强型8051单片机调试的工具
                ■由于Keil公司做的时候没有加密,导致现在盗版满天飞
                ■U-link仅仅支持Keil,JTAG下载速度20K~30K
U-Link下载程序不是简单通过JTAG,而是先用JTAG下载一段固件程序到目标板,然后再用这个固件程序和JTAG把用户代码写入Flash以提高速度

●    J-Link
                ■J-Link是IAR公司为ARM芯片开发的调试工具
                ■支持RDI协议的调试工具,如Keil、ADS、IAR等
                ■J-Link不支持ARM10以上的内核
                ■JTAG下载速度400K~500K

●    Multi-ICE
                ■ARM公司原创调试工具,支持全系列ARM芯片
                ■JTAG下载速度130K左右

●    Wiggler电缆
                ■Wiggler是世界上最泛滥的一种调试工具
                ■结构非常简单:一片74HC244 + 一个9013 + 几个电阻
                ■性能一般,但是价格非常便宜
                ■后人又在Wiggler的硬件基础上开发了很多的调试工具,例如大名鼎鼎的H-Jtag


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决macOS Catalina(10.15)解决阻止程序运行“macOS无法验证此App不包含恶意软件”

在终端里面输入如下命令 sudo spctl --master-disable 下面图片对比执行命令前后,安全性与隐私 界面上显示的差异:使用命令之后,界面变了

MAC版 的最新Docker 2.2版本配置国内代理的解决办法

点击Docker图标,选择Preference选项,进行国内代理的问题 输入内容如下 {"experimental": false,"debug": true,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.…

《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀

摘要:王晓华是一位热衷于算法研究的程序员,他是CSDN算法专栏的超人气博主,也是《算法的乐趣》一书的作者。近日,笔者采访了王晓华,请他分享算法的经验之道。 王晓华是一位热衷于算法研究的程序员,他是CSDN…

基于Mac环境搭建以太坊私有区块链进行挖矿模拟

第一步:相关软件的安装 go-ethereum客户端安装Go-ethereum客户端通常被称为Geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用(比如Windows、Linux、Mac)。Geth是以太坊…

vs2015 支持Android arm neon Introducing Visual Studio’s Emulator for Android

visual studio 2015支持Android开发了。 Microsoft released Visual Studio 2015 Preview this week and with it you now have options for Android development. When choosing one of those Android development options, Visual Studio will also install the brand new Vi…

FFmpeg示例程序合集-批量编译脚本

此前做了一系列有关FFmpeg的示例程序,组成了《 最简单的FFmpeg示例程序合集》,其中包含了如下项目:simplest ffmpeg player: 最简单的基于FFmpeg的视频播放器simplest ffmpeg audio player: 最简单的基于FFmpeg的音频…

基于Ubuntu环境使用docker搭建对于中文识别的chineseocr_lite项目

光学字符识别(OCR) 光学字符识别(OCR)目前已经有了很广泛的应用,很多开源项目都会嵌入OCR 来扩展原有的能力,例如身份证识别、出入停车场的车牌识别、拍照翻译等等本文介绍的开源的中文 OCR 项目&#xff…

Ubuntu环境使用conda安装轻量级中文ocr开源项目chineseocr_lite,最简单的方式

问题 接使用docker的方式来创建项目所报的错误选中文件之后,界面不停的绕圈,显示不了对于图片的识别结果,并且监控界面上出现错误提示如下ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory&a…

基于Ubuntu使用docker的方式来搭建基于Yolo3+crnn的Chineseocr识别

Docker Docker简单易用,具体的安装和配置可以看我的或者其他人的博客 安装完之后,输入以下命令安装chineseocr并且开启服务 docker pull zergmk2/chineseocr docker run -d -p 8080:8080 zergmk2/chineseocr 在浏览器输入http://127.0.0.1:8080/ocr网…

c/c++ 内存使用指南 和实践指导

如果你完全理解如下内容, 请联系我:szu030606163.com, 讨论更深层次合作 。 1. 大内高手—内存模型 单线程模型 多线程模型 2. 大内高手—栈/堆 backtrace的实现 alloca的实现 可变参数的实现。 malloc/free系列函数简介 new…

mininet 应用实践

教学目的与学时建议 能够运用 mininet 可视化工具创建计算机网络拓扑结构能够运用 mininet 交互界面创建拓扑结构能够运用 python 脚本构建计算机网络拓扑结构建议:2 学时 实验环境 下载并安装虚拟机 VMware workstation;下载虚拟机镜像( S…

实现基于darknet框架实现CTPN版本自然场景文字检测 与CNN+CTCOCR文字识别的ChineseOCR搭建

Github地址 Github源码地址 支持系统:mac/ubuntu python3.6 实现功能 文字检测; 文字识别; 支持GPU/CPU,CPU优化(opencv dnn) docker镜像服务(CPU优化版本) 下载镜像 链接:https://pan.baidu…

在服务器上搭建基于yolo3 与crnn 实现中文自然场景文字检测及识别,GPU版本

Github地址 参考地址作者大人,十分热心,对于我的问题,提供了大量的帮助,使我少走了很多的弯路,在此表示由衷的感谢 注意事项 使用nvidia-smi命令查看cuda的版本,必须是10.1或者10.0,10.2是万万…

算法入门篇 一 时间复杂度

时间复杂度 要求:只要高阶项,不要低阶项常数操作:操作花费的时间和数据量无关,比如数组寻址,直接利用偏移量找到对应元素的位置;非常数操作:比如list(链表);查找元素需要遍历链表&a…

算法入门篇二 认识O(NlogN)的排序

递归 例子引出 使用递归的方法求出数组中的最大值(利用的是栈)求中点的方法改进 mid (left right) / 2 //但是如果left和right的数很大,相加会造成内容溢出 改进为 mid left (right - left) / 2 //(right - left)得到整个的长度&…

算法入门篇三 详解桶排序和整理排序知识 堆的相关操作 补充 不完整

归并排序不使用递归 使用一个变量,使其按照1、2、4、8递增,控制左右两边1个元素、2个元素、4个元素等元素的合并 完全二叉树 完全二叉树 要不全是满的,要不叶子节点出现在最后一层,只要出现了叶子节点,后面的都是叶子…

2023年12月24日学习总结

今日to do list: 做kaggle上面的流量预测项目☠️ 学习时不刷手机🤡 okkkkkkkkkkkkkk 开始👍🍎 0、我在干什么? 我在预测一个名字叫做elborn基站的下行链路流量,用过去29天的数据预测未来10天的数据 1、…

Mac/Linux系统连接远端服务器以及相同IP地址的服务器账号密码重置,ssh失败问题

连接远端服务器 ssh 账号IP地址 输入完成之后会提示输入密码,密码输入正确后,就可以连接成功了 重置ssh密钥 如果连接的服务器除了IP地址没有改变,其余的账号、密码、系统等都变了的话,因为曾经连接过的历史数据会保存到本地&a…

Linux操作系统监视NVIDIA的GPU使用情况

对于GPU相关参数介绍 使用命令周期性查看GPU运行情况最常用的参数是 -n, 后面指定是每多少秒来执行一次命令。监视显存:设置为每 1s 显示一次显存的情况:使用命令ctrlz退出 watch -n 1 nvidia-smi 参数介绍 Fan:显示风扇转速&am…

算法入门篇四 桶排序

桶排序 计数排序(基于统计) 要求数据是有限的,和数据状况有关,比如对于200个人统计他们的年龄分布,这个时候需要申请200个桶,因此对于输入数据的规模有限制,如果输入规模是不定的,…