ARM的三大工具链

前言

    学习linux的过程中,看到过多很多程序并且编译过,使用过很多嵌入式集成开发平台,如IAR,Keil MDK-ARM,DS-5等。有时候会遇到很奇怪的现象:对于同一种功能的代码,不同的平台下程序的框架大致相同,但是程序指令会不一样;对源文件的编译,连接等操作的指令也出出现不同;对于段section的含义表述相同呢,但是在编写是语法不同;对于分散加载文件的含义表述相同,但是在编写是语法不同;如上的等等问题都是因为:ARM的开发工具链的差异。

1. ARM现在主流的三大工具链

  • ARM RealView(armcc):ARM公司研发的一套包含编译、调试和模拟的开发工具,需结合具体的开发平台如uvision、eclipse或者CodeWarrior,形成集成开发环境来使用。uvision与 RealView 编译工具的结合即成为REALVIEW MDK;Eclipse / Codewarrior与 RealView 编译工具的结合即成为RVDS;
 

ADS

REALVIEW MDK

RVDS

公司

ARM

Keil(后被ARM收购)

ARM

版本

被RVDS取代

 持续更新

持续更新

 

   

破解情况

 有

工程管理

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)

  • IAR EWARM:Embedded Workbench for ARM 是IARSystems 公司为ARM 微处理器开发的一个集成开发环境。

其编译器为IAR ARM C/C++ Compiler;汇编器为IAR ARM Assembler;连接器为IAR XLINK Linker。

  • GNU Compiler Collection(缩写为GCC):GNU编译器套件是GNU项目开发的编程语言编译器。GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件。GCC是一个编译器套件,里面包含很多具体的工具,如GNU汇编器(as),GNU编译器(cc等),GNU连接器(ld)等等,这些统称为GUN工具链。使用GCC我认为有2种方法:第一种是直接在linux开发环境下(如Ubuntu。Fedora等)安装GCC等工具套件,然后直接使用;第二种是在windo平台下,安装相关开发平台如Eclipse,然后其支持GCC等多种编译器 。

[1] 关于GCC更加详细的介请请参考:https://blog.csdn.net/oneqinglong/article/details/71108402和https://blog.csdn.net/ramacess/article/details/722662

[2] 在进行linux开发时,对文件进行编译等操作用的都是arm-liux-gcc/ld等工具,那么gcc与arm-linux-gcc的交叉编译请参见:https://blog.csdn.net/yz_cfm/article/details/76998958和https://www.cnblogs.com/zengkefu/p/6372282.html?utm_source=itdadao&utm_medium=referral(这个非常好)。

2.简单小结

    根据上面的介绍,进行嵌入式工程设计开发时,会遇到如上的问题,这取决于我们采用什么样的嵌入式开发平台;比如我们实验室用的就有IAR和GCC两种,其中IAR是用来编译调试STM32程序的(一个大型的while(1)裸机程序),IAR可以与STM32芯片通过JTAG进行在线调试,比较方便;GCC是在linux系统下安装完成后直接使用的,并没有安装大型的开发平台,这带来了很多弊端:可以对uboot,kernel等文件编译生成可执行映像文件,但是在调试时很麻烦,只能把映像文件烧写ARM板卡后,在板卡启动时通过串口打印消息开看uboot和kernel文件是否正常。这种调试手段确实很落后,所以建议大家在尽心开发时,还是需要了解好相关的开发工具,工欲善其事,必先利其器。

    由于自身能力有限,本文章存在相关表述问题,希望大家能够批评指正,相互交流,共同进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值