ARM编辑、编译工具

手动编译

编译器问题,肯定是GNU的大名鼎鼎的GCC了,与此相关的什么连接器,汇编器也都包含在内了。

针对arm的GCC,当然就是arm-linux-gcc了,我所用的版本就是友善之臂光盘自带arm-linux-gcc 4.4.3。也有资料说也可以用arm-elf-gcc,这个与arm-linux-gcc带的c库不同,是uclibc,更精简更适合嵌入式。

手动编译需要我们自己写Makefile文件,涉及到编译过程的依赖等细节问题。在我们实际开发中,可以不通过这种方式,但是需要了解这个过程。

自动编译

1ADS1.2

ADS是ARM公司的集成开发环境软件,ADS包括了四个模块分别是:SIMULATORC 编译器;实时调试器;应用函数库

特点:

√C编译器效率极高;支持C以及C++,使工程师可以很方便的使用C语言进行开发;

提供软件模拟仿真功能,使没有Emulators的学习者也能够熟悉ARM的指令系统;

(直接就可以在IDE环境下,通过运行自己编写的汇编或C语言,查看ARM系统中寄存器的情况)

√配合FFT-ICE使用,ADS1.2提供强大的实时调试跟踪功能,片内运行情况尽在掌握;

√ADS1.2需要硬件支持才能发挥强大功能,目前支持的硬件调试器有Multi-ICE以及兼容Multi-ICE的调试工具如FFT-ICE等;

√简易下载电缆不能支持ADS1.2。

 2ARM REALVIEW DEVELOPER SUITE

RealView Developer Suite工具是ARM公司是推出的新一代ARM集成开发工具,支持所有ARM系列核,并与众多第三方实时操作系统及工具商合作简化开发流程。

开发工具包含以下组件:

· 完全优化的ISO C/C++编译器;

· C++ 标准模板库;

· 强大的宏编译器;

· 支持代码和数据复杂存储器布局的连接器;

· 可选 GUI调试器

· 基于命令行的符号调试器(armsd)

· 指令集仿真器;

· 生成无格式二进制工具、Intel 32位和Motorola 32位ROM映像代码的指令集模拟工具;

· 库创建工具.

3IAR EWARM

Embedded Workbench for ARM 是IAR Systems公司为ARM微处理器开发的一个集成开发环境(下面简称IAR EWARM)。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。

IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.30。EWARM 中包含一个全软件的模拟程序(simulator),用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM的功能和使用方法。

IAR EWARM的主要特点如下:

* 高度优化的IAR ARM C/C++ Compiler

* IAR ARM Assembler

*   一个通用的IAR XLINK Linker

4KEIL ARM-MDKARM

Keil uVision调试器可以帮助用户准确地调试ARM器件的片内外围功能(I2C、CAN、UART、SPI、中断、I/O口、A/D转换器、D/A转换器和PWM模块等功能)。ULINK USB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。通过使用Keil uVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。

主要特点:

* Project/Target/Group/File的重叠管理模式,并可逐级设置;

* 支持编辑状态的断点设置,并在仿真状态下有效;

* 高速ARM指令/外设模拟器;

* 软件模拟进程中允许建立外部输入信号

* 支持C调试描述语言,可建立与实际硬件高度吻合的仿真平台;

* 支持简单/条件/逻辑表达式/存储区读写/地址范围等断点。

* 多种流行编译工具选择

* Keil高效率C编译器;

* ARM公司的ADS/RealView 编译器

* GNU GCC 编译器

ARM调试工具

目前,主流的调试工具可以分为软件调试工具和硬件调试工具,二者一般是结合使用。

软件调试

所谓软件调试,是指运行在PC端的程序,需要对ARM开发板进行调试时,需要打开这个上位机程序,然后通过J-Link等硬件进行程序的调试。

1H-JTAG

H-JTAG是一个免费的ARM调试代理,程序没有任何限制

0) 支持ARM7/ARM9,支持自动检测和手动指定内核

1) 使用RDI接口,支持SDT,ADS,REALVIEWIAR

2) 支持ADS1.2和SDT2.51和RREAL VIEW

3) 支持个硬件断点或者数量不限的软件断点

4) 支持ARM/THUMB模式

5) 支持LITTLEENDIAN & BIGENDIAN

6) 支持SEMIHOSTING

7) 支持WIGGLER SDTJTAG和自定义接口

2FlashMagic

与其说是调试软件,不如说是下载工具,可以直接下载hex、bin文件到开发板上。

3LPC2000系列ISP工具

可经由Philips官方网站下载。

4Macraigor Systems Wiggler 调试工具

硬件调试

1J-Link

J-Link是最著名的ARM开发调试工具,J-Link由SEGGER公司生产。提供对市面上几乎所有ARM内核芯片的支持。目前最新版本的J-Link产品为V8,支持JTAGSWD模式。并且对主要的IDE环境如KEILIAR都有良好的支持。优点很多,因此也是首选的调试工具。

SEGGER的J-link版本众多,超过1百种。正版的通用型J-link价格贵,国内大部分在使用的是克隆版的J-link。克隆版目前价格低於¥70。因为克隆太多,SEGGER公司最新版本的驱动对克隆版本已经不再提供支持,这是一个问题。

主要特征:

1)支持所有ARM7和ARM9

2)下载速度高达600KB/sec

3)无需电源供电,可直接通过USB取电

4)JTAG速度是8MHz

5)自动辨速

6)监控所有的JTAG管脚信号,测量电压

7)20pin标准JTAG连接器

8)配带USB口和20pin插槽

9)支持Windows 2000 和Windows XP

10)带J-Link TCP/IP server,允许通过TCP/ IP 网络使用J-Link

2ULINK

通用的ARM JTAG工具ULINK。

ULINK是ARM官方的调试工具,KEIL出品。ULINK也可以支持大多数的ARM芯片,对KEIL的支持非常好,是KEIL的默认调试工具。缺点是因为不支持IAR,影响了ULINK的推广。

ULINK官方提供电路图等资料,属於半开放的,可以自做。目前山寨版的价格比J-Link略高。也低於¥100。

3OpenJTAG

OpenJTAG为开源的JTAG调试工具,功能强大,并且配合其他的开源软件工具可用於在Linux对ARM芯片进行调试,因此在一些社群中使用较多。因为采用FTDI+FPGA双芯片的架构,成本相对较高。要低於¥100,需要自己制作。

4、低成本的并口JTAG

并口JTAG的电路网上很多,目前因为电脑没有了并口的关系,处于淘汰阶段。但从成本上来说是最便宜的。较流行的一种名为wigger,要注意20PIN的接线,其中RTCK的接法。

ARM调试器汇总

通用的ARM调试主要为上述几种,其他的ARM调试工具还有RDI、早期采用并口的ARM调试工具目前因为PC不带并口已经淘汰。从实现的方式来说,使用FTDI的USB驱动芯片以及采用MCU来进行协议转换的是主要的两类。一般来说采用FTDI芯片的ARM调试工具在一般被用来支持某家公司芯片,而不能支持其他公司的ARM芯片,因此往往是不通用的。

H-JTAGJ-Link的区别

你调试arm,总要遵循arm的调试接口协议,jtag就是其中的一种吧。当仿真时,iar,keil,ads等等都有一个公共的调试接口,RDI就是其中的一咱,那么我们如何完成RDI-->arm调试协议(JTAG)的转换呢?如是乎就有两种做法:

  1. 在电脑上写一个服务程序,把keil,ads,iar中的RDI命令解析成相关的JTAG协议,然后通后一个物理转换接口(注意,这个转换只是电气物理层上的转换,就像RS232那样的作用)发送你的的目标板。 h-jtag就是这样的。 h-jtag的硬件就仅是一个物理电平的转换接口,所以很简单。而电脑中装的h-jtag软件就是前面说到的服务程序,负责协议转换的。

2.另一种做法,就是做一个板,用此板直接接收来自keil,ads,iar等软件的调试命令,由此板做rdi->jtag协议的转换。然后与目标板通信,这就是jlink的工作原理。

由上可以看出 h-jtag由于是软件作协议转换的,所以速度较慢,但是硬件简单。而第二种方法的jlink一般带一个强劲的CPU,作硬件协议转换,把以硬件复杂,但速度快。

JTAG,J-LinkOpenJTAG的比较

1. JTAG

JTAG(Joint Test Action Group) 是IEEE1149.1 (Standard Access Port and Boundary-Scan Architecture)标准.它最初用来以边界扫描的方式测试印刷电路板,当然它现在仍然这一方面广泛使用。

JTag的用途:

1. 边界扫描测试

2. Flash烧写程序和数据: 可以烧写Nor Falsh Nand Falsh

3. 调试ARM裸机程序,不能调试嵌入式Linux程序

JTag的接口:

JTag接口并没有统一的标准。ARM处理器通常使用2*10针(部分使用2*7针)的JTag接口。

JTag连接Host的一端通常为并口。一般笔记本及台式机都很少有并口接口,而且市面上买到的USB转并口并不能用于JTag,USB转并口主要是给老式打印机使用的。这就使得我们很难使用JTag以及笔记本进行烧写。另外的一个缺点是并口JTag的速率非常低。

JTag的替代品:

Serial Wire Debug(SWD)。

2.JLink

JLink是Segger的产品,http://www.segger.com/jlink.html。它是USB接口转到JTag接口的适配器(adaptor),并不是真正意义上的仿真器。它采用标准的14针或者20针的Jtag接口与开发板相连。它支持多种CPU内核(ARM7, ARM9,Cortex etc.)。对ARM而言,它可能是最受欢迎的适配器。

JLink的功能:

1. Flash烧写程序:不支持烧写NAND Flash

2. 支持Windows, Linux以及Mac: 但是Linux及Mac仅支持JLink Commander, Command Line GdbServer, 以及shared library。

3. 支持多种调试协议: 如GDB, RDI 等

4. USB转串口功能

JLink的接口:

USB接口,JLink的价格也比较低(当然是山寨的)。

3.OpenJTAG

OpenJTag是一个开源项目(包含软件和硬件),采用GNU GPL license: http://www.openjtag.org/。同样它也是一个USB接口转JTag接口的适配器,同样不是真正意义上的仿真器

OpenJTag的功能:

1. Flash烧写程序: 支持NOR Flash NAND Flash

2. 支持Windows以及Linux

3. 能够用在支持GDB调试协议的工具上: IAR Eclipse, 但不能用在支持RDI调试协议的工具上: 如ADS

4. USB转串口功能

OpenJtag的接口:

USB接口,但是他的价格要比JLink高一些。

代码存放位置

启动代码一般下载到NorFlash之中,其余的应用程序一般下载到NandFlash、SDRAM(内存)上,当然在实际运行的时候,NandFlash中的代码需要搬移到SDRAM上运行。

支持烧写到NorFlash之中的软件有:OpenJTAG、J-Link、JTAG

支持烧写到NandFalsh之中的软件有:OpenJTAG、JTAG

支持烧写到SDRAM之中的软件有:

时间: 2024-07-31 20:56:34

ARM编辑、编译工具的相关文章

最强反编译工具 ida pro 6.6 x86 arm x64 f5全插件原始安装文件泄露版 + sdk_utils

最强反编译工具 ida pro 6.6 x86 arm x64 f5全插件原始安装文件泄露版 + sdk_utils 完整安装包+6.6最新sdk工具包 国内某团购群泄露的的版本 x86 arm x64 f5插件为2.0的版本 正版价值人民币3-5万 6.6更新的内容 IDA: What's new in 6.6 x64 Decompiler It was tough and it required even more research than was planned but finally

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gneabihf-gcc等. 前言 这里有一个专门的说法: “arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使

APK Multi-Tool强大的APK反编译工具终极教程

一.APK Multi-Tool介绍    APK Multi-Tool 是APK Manager的升级版,是一个强大的APK反编译工具,集多种功能于一身,是居家必备.做ROM必选的工具!    这是一个比较方便的适合非开发者的小工具,可以对一些APK程序做自己喜欢的修改!    目前官方最新版是APK Multi-Tool 1.0.3 ,官方网站是:http://apkmultitool.com 二.汉化说明    此版本基于官方 APK Multi-Tool 1.0.3 (05/17/201

arm嵌入式交叉编译工具链

1.arm-linux-gcc 常用的参数:-o[制定输出文件名] -c[只到编译停止,不连接] -g[键入调试信息] -xO[优化级别] -w/W(警告等级) arm-linux-gcc -o dest source,直接编译出可执行文件elf格式 arm-linux-gcc -o dest source -c 只编译不连接,生成.o格式的库文件,用来提供给连接器连接成elf 其他的参数可以在GCC的手册中了解所有信息. 2.arm-linux-ld 如果GCC中使用的-c,需要arm-lin

【腾讯开源】前端预处理器语言图形编译工具 Koala使用指南

摘要:Koala是一款预处理器语言图形编译工具,支持Less.Sass.CoffeeScript.Compass框架的即时编译.无需手动输入命令去编译,后台监听文件是否有改变,如有修改会自动进行编译,能够大大提升Web开发中的工作效率. 近期,我们对腾讯Koala团队进行了专访 ,一款预处理器语言图形编译工具,支持Less.Sass.CoffeeScript.Compass框架的即时编译.本篇文章为大家着重介绍Koala工具的使用进行讲解,以供参考. Koala代码托管地址: https://c

Java 反编译工具几枚(class转java)

1.Java Decompiler Yet another fast Java decompiler. 下载地址:http://jd.benow.ca/#jd-gui-download 一款非常简洁的反编译工具,支持windows.linux和Mac.对应Eclipse插件: Name:JD-Eclipse Update Site Location:http://jd.benow.ca/jd-eclipse/update 2.DJ Java Decompiler With DJ Java Dec

Eclipse反编译工具Jad及插件JadClipse配置

Jad是一个Java的一个反编译工 具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不太方便.不过幸好有一个eclipse的 插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 1  下载Eclipse反编译工具Jad. 下载路径:  http://pan.baidu.com/s/1tOSO2 2 把下载包中的 net.sf.jadclipse_3.3.0.jar放入到 eclipse的安装目录下,..

myeclipse安装jadclipse(反编译工具)

我是myeclipse5.5 的IDE工具.为了能反编译class文件,上网搜索了很多资料,终于找到一下的一段资料: 1.将jad.exe 复制到myeclipse安装目录的jre/bin目录下, 如:C:/Program Files/MyEclipse 5.5.1 GA/jre/bin/jad.exe : 2.然后将net.sf.jadclipse_3.2.4.jar复制到myeclipse安装目录下的eclipse/plugins目录下, 如:C:/Program Files/MyEclip

Java 反编译工具下载

反编译,通俗来讲,就是将.java 文件经过编译生成的 .class 文件还原.注意这里的还原不等于 .java 文件.因为Java编译器在编译.java 文件的时候,会对代码进行一些处理. 那么接下来介绍几款 Java 反编译工具: 1.jad 这是一款使用很广泛的 Java 反编译工具,对 Java 底层代码的还原比较彻底.ps:个人比较喜欢这款 官网:https://varaneckas.com/jad/ 个人百度云下载地址:链接:http://pan.baidu.com/s/1jHNLx