微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM的嵌入式系统程序开发要点(五)--ARM/Thumb的交互工作

基于ARM的嵌入式系统程序开发要点(五)--ARM/Thumb的交互工作

时间:04-05 来源:互联网 点击:
4  交互程序之间的兼容性

因为在指定交互选项后,编译及链接后的输出代码跟在无交互情况下不同,所以当多个源文件如果使用了不同的设置进行编译,相互之间的调用可能产生兼容性问题。图5说明了这些关系。



在一个使用交互工作的项目工程管理中,对此要加以仔细考虑。

5  V5架构的扩展

ARM在V5版本的架构中,对ARM/Thumb的交互增加了新的支持。针对前面第3节中提到的函数调用和返回问题,V5版本中专门对指令做了扩展。
①  增加了新指令BLX,解决了原来BX和BL指令各自的欠缺。使交互的函数调用可以由一条指令实现,省去了跳转代码的开销。
②  扩展了以PC为目标地址的数据传输指令功能。PC加载值的最低位将被自动送到状态寄存器CPSR的T状态位。也就是说,通过给PC赋值的方法也能实现状态的切换,这样就使习惯的函数返回方法——从堆栈中恢复寄存器,也能实现交互调用函数的正确返回了。

所以,V5架构以后的代码,不再需要额外的链接代码,缩小了代码长度,提高了状态切换时的执行效率。当然,在V5及以后的架构中,继续保持了对以前代码的良好兼容性。

6  Thumb-2

ARM和Thumb因为其各自的优势,都得到了极为广泛的应用。在一个应用程序中,用户要根据系统的具体情况灵活分配,使用不同的编译器,把不同的代码编译成ARM或Thumb,以希望得到最优的代码长度和性能平衡。这样做能够达到系统优化的目的,但是也给设计人员带来了额外的交互处理工作。最近,ARM公司公布了一项新的发明——Thumb-2指令集,该指令集同时包含32位和16位指令,在代码长度和性能之间作了最佳的平衡。这样,以后用户就可以用一个统一的Thumb-2编译器来解决现在面临的很多问题了。

如图6所示,是Thumb-2指令集跟ARM和Thumb之间的比较。



引证文献

   1. 杨志强 嵌入式系统设计与发展 [期刊论文] -青海师范大学学报(自然科学版)2005(03)
   2. 刘志勇 基于ARM的无线视频传输硬件系统的初步研究与开发 [学位论文] 硕士2005
   3. 李晶 基于 LINUX的无线局域网芯片驱动程序的设计与开发 [学位论文] 硕士2005

作 者:ARM中国 费浙平  
来 源:单片机与嵌入式系统应用 2003(12)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top