• 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之中的软件有:

  • 相关阅读:
    @Transactional 什么情况下会失效?
    如何主持一场专业的面试?
    MIT-HIB 心率数据库及相关
    hadoop中Writable类
    XXX.jar has no source attachment
    Win10Eclipse配置个人本地hadoop
    js去除两个数组中重复的元素
    JS找出两个数组中不相同的元素
    flex中order控制元素的排列顺序
    flex中align-self设置侧轴的某元素的对其方式
  • 原文地址:https://www.cnblogs.com/yedushusheng/p/5525954.html
Copyright © 2020-2023  润新知