注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

瘋人院

lunatic asylum

 
 
 

日志

 
 

ReaIView MDK与ADS比较  

2011-04-27 23:37:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
RealView MDK与ADS相比较,从外观、仿真流程以及内部二进制编译链接工具上都有了不少改进,用法稍有不同,主要表现在如下几个方面:
1.工具结构的改进
作为ARM的新一代微控制器开发工具,RealView MDK不但包含ARM的最新版本编译链接工具,即RVDS3.0的编译链接工具,而且根据微控制器调试开发的特点采用了与ADS、RVDS完全不同的调试、仿真环境,μVision debugger与simulator。因此,MDK与ADS在工具架构组成上有一些不同,包括了不同的工程管理器,不同版本的ARM编译器(compi ler),不同的调试器(debugger),不同的仿真器(simulator),以及不同的硬件调试单元。

2.POSIX格式
MDK集成了RVDS的编译工具RVCT,与ADS相比除去编译、链接工具的可执行二进制文件不同之外,两个不同版本编译器的很多编译链接选项也有所不同。RVCT采用了POSIX格式的编译链接选项,所有的多字符选项前必须使用双下划线。例如:ADS的编译選项-cpu,在MDK中需要改写成- -cpu,否则用户在MDK中直接使用ADS的makefile时,工具会产生一个如下警告: Warning:L3910W:Old syntax,please use ‘--cpu’。 

3.ARM ABI的变化
ARM ABI是Application Binary Inter face for the ARM Architecture的简称,是一系列ARM体系架构标准的集合,囊括了ARM二进制代码交互、开发工具以及操作系统等方面。对目标文件进行链接之前,MDK工具的链接器会严格检查各个目标文件(objects),判断它们是否符合ARM体系结构的ABI标准。而MDK与ADS编译链接工具所遵循的ARM ABI是不同版本的。使用者可以通过简单修改代码并重新编译链接,或者使用特殊的编译选项来解决。

4.分散加载注意事项
MDK同样支持ADS的分散加载文件,但是当分散加载文件中涉及到必须被放置在ROOT Region中的C库函数时,有时使用者需要作少量修改。ROOT Region的load address与execution address相同,所以这部分代码在系统初始化时无须进行搬移操作,很多库函数,如__scatter*.o或者__dc*.o,必须被放置在Root Region中。

5.C库函数的差异
ADS中的__r t_*库函数被替换为__ae abi_*。如果使用者的ADS工程中曾经重定义(retarget)过这些库函数,那么在移植到MDK时,需要重新实现这些函数,以满足新ABI的要求。
  评论这张
 
阅读(819)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017