ADS&RVCT

ADS---ARM Developer Suite

RVCT---Real View Compilation Tool----为RVDS(Real View Development Suite)的部分元件.

 

ARM公司自己推出的工具,最早的版本(大概2002前),叫 SDT

接着推出的工具叫ADS,因为SDT界面难看,所以使用的是CodeWarrior集成环境,ADS和SDT换汤不换药,ADS 1.2版本和SDT 2.5版本编译器基本一样,调试器也是一样的

CodeWarrior最早是独立工具公司,2000年前就被motorola收购,现在Freescale旗下。

ADS只使用了CodeWarrior的集成环境界面,CW根本没提供什么ARM编译器。

ADS之后,ARM公司推出的工具叫RVDS,编译器叫RVCT,统一使用品牌RealView(RV),RVDS的集成环境换成了开源的Eclipse

从SDT到ADS再到RVDS,编译器都是ARM自己写的,很早以前,ARM提供的编译器效率已超出gcc等free编译器。


Arm收购Keil,是为了Arm的Corex M3和M0市场,因为Keil在8位单片机工具有很大影响,M3和M0就是针对8位单片机市场设计的低成本高性能MCU内核

Keil在收购之前,曾经使用gcc编译器和自己开发的编译器,收购之后,放弃了自己的编译器和gcc, 用的是Arm的编译器,目前使用的就是rvct,不过限制了对高端内核如arm11和a8的支持

收购keil后,keil针对m3/m0的工具叫 realview mdk. arm自己的工具叫realview development studio(rvds)


用rvds和rvct是迟早的事,因为到了arm a8/a9,没有任何其他工具支持。

至于mtk的芯片,arm9以下,用rvds和ads一回事,编译器升级做的那些工作,你基本上是碰不到的
本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/bbs/Dispbbs.asp?BoardID=63&ID=203187

 

 

MTK 10A之后的版本都弃用了ADS编译改用RVCT编译器:

基于以下动机:

1.ARM不再维护ADS 1.2.

2.ADS1.2不支持新的处理器, 如Cortex-R4等.

3.Footprint的优化并不理想.

4.不支持ISO C++98如

     Namespaces及Templates语法

     Classes如vector, basic_string, map, multimap

 

以上RVCT都支持.

 

除了以上优势, RVCT同时有较快的build time

rebuild all相比ADS节省50%时间

link节省80%时间

 

且RVCT3.1几乎不影响应用程序的执行时间.

 

注意事项:

1. ADS和RVCT编译出来的obj是完全不兼容的. 所有原代码都必须用RVCT编译, 且第三方的obj和lib也必须是RVCT3.1编译出来的.

2. 所有ARM工具只保证向后兼容性,并无向前兼容.  即要保证RVCT2.x及RVCT3.x产生的obj及lib是兼容的, 前提必须是使用RVCT3.x C/C++ libraries及RVCT 3.x linker.

3.ADS和RVCT可以共存于一台PC中.  须保证环境设定必须设置正确.

4.8-byte alignment

5.因为积极优化导致的软件变更

如void test()

{

    kal_bool b;

    b=KAL_FALSE;

    ...

   while(B_is_True()!=KAL_TRUE)---->形成while(1)

}

kal_bool B_is_True()

{

return b;

}

 

解决方法,  将b修饰为volatile kal_bool b;

 

RVCT license

1. Node Lock license---限单人单机

2. Floating license-----可incredibuild

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值