- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
A R M 系列处理器是R I S C(R e d u c d e d I n s t r u c t i o n S e tComputing)处理器。很多基于ARM的高效代码的程序设计策略都源于RIS C处理器。和很多R I S C处理器一样,A R M系列处理器的内存访问,也要求数据对齐,即存取“字(Wo rd)”数据时要求四字节对齐,地址的b i t s[1:0]==0b00;存取“半字(Half words)”时要求两字节对齐,地址的bit[0]==0b0;存取“字节Byte)”数据时要求该数据按其自然尺寸边界(Natural Size Boundary)定位。
A R M编译程序通常将全局变量对齐到自然尺寸边界上,以便通过使用L D R和S T R指令有效地存取这些变量。这种内存访问方式与多数C I S C(C o m p l e xInstruction Set Computing)体系结构不同,在CISC体系结构下,指令直接存取未对齐的数据。因而,当需要将代码从CISC体系结构向 A R M 处理器移植时,内存访问的地址对齐问题必须予以注意。在R I S C体系结构下,存取未对齐数据无论在代码尺寸或是程序执行效率上,都将付出非常大的代价。
本文将从以下几个方面讨论在A R M体系结构下的程序设计问题。
查看全文:ARM嵌入式软件编程经验谈 |
|