ADS&RVCT

来源:互联网 发布:淘宝生e经怎么没有了 编辑:程序博客网 时间:2024/04/29 19:41

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

原创粉丝点击