诚信经营是公司制胜的法宝,与客户建立长期稳定共赢的合作关系是我们一直在努力的方向。
通过严格的质量控制,***的管理,技术,和低成本控制,我们给客户提供有竞争力的产品和优质的服务!
充足的库存,心动的价格等着您,欢迎来电详询!
我们不生产PLC,我们只做全新原装的搬运工!
ABB 3HAB8796-001 DSQC 266A
intwordinc(inta) wordinc
{ ADD a1,a1,#1
return a 1; MOV pc,lr
} shortinc
shortshortinc(shorta) ADD a1,a1,#1
{ MOV a1,a1,LSL #16
return a 1; MOV a1,a1,ASR #16
} MOV pc,lr
charcharinc(chara) charinc
{ ADD a1,a1,#1
return a 1; AND a1,a1,#&ff
} MOV pc,lr
可以看出, 操作3 2 位变量所需的指令要少于操作8位及16 位变量。
1.4 存储器相关的优化方法
(1)用查表代替计算
在处理器资源紧张而存储器资源相对富裕的情况下, 可以用牺牲存储空间换取运行速度的办法。例如需要频繁计算正弦或余弦函数值时,可预先将函数值计算出来置于内存中供以后查找。
(2)充分利用片内RAM
一些厂商出产的arm 芯片内集成有一定容量的RAM,如Atmel 公司的AT91R40807 内有128KB 的RAM,夏普公司的LH75400/LH75401 内有32KB 的RAM。处理器对片内RAM 的访问速度要快于对外部RAM 的访问,所以应尽可能将程序调入片内RAM 中运行。若因程序太大无法完全放入片内RAM ,可考虑将使用***频繁的数据或程序段调入片内RAM 以提高程序运行效率。
1.5 编译器相关的优化方法
多数编译器都支持对程序速度和程序大小的优化,有些编译器还允许用户选择可供优化的内容及优化的程度。相比前面的各种优化方法, 通过设置编译器选项对程序进行优化不失为一种简单有效的途径。
2 代码尺寸优化
精简指令集计算机的一个重要特点是指令长度固定, 这样做可以简化指令译码的过程,但却容易导致代码尺寸增加。为避免这个问题,可以考虑采取以下措施来缩减程序代码量。
2.1 使用多寄存器操作指令
arm 指令集中的多寄存器操作指令LDM/STM 可以加载/ 存储多个寄存器,这在保存/ ***寄存器组的状态及进行大块数据***时非常有效。例如要将寄存器R4~R12 及R14 的内容保存到堆栈中,若用STR 指令共需要10 条,而一条STMEA R13!, {R4 ?? R12, R14} 指令就能达到相同的目的,节省的指令存储空间相当可观。不过需要注意的是, 虽然一条LDM/STM 指令能代替多条LDR/STR 指令,但这并不意味着程序运行速度得到了提高。实际上处理器在执行LDM/STM 指令的时候还是将它拆分成多条单独的LDR/STR 指令来执行。
2.2 合理安排变量顺序
arm 7 处理器要求程序中的32 位/16 位变量必须按字/ 半字对齐,这意味着如果变量顺序安排不合理, 有可能会造成存储空间的浪费。例如:一个结构体中的4个32 位int 型变量i1 ~ i4 和4 个8 位char 型变量c1 ~ ***,若按照i1、c1、i2、c2、i3、c3、i4、*** 的顺序交错存放时, 由于整型变量的对齐会导致位于2 个整型变量中间的那个8 位char 型变量实际占用32 位的存储器,这样就造成了存储空间的浪费。为避免这种情况, 应将int 型变量和char 型变量按类似i1、i2、i3、i4、c1、c2、c3、*** 的顺序连续存放。
2.3 使用Thumb 指令
为了从根本上有效降低代码尺寸,ARM 公司开发了16 位的Thumb 指令集。Thumb 是ARM 体系结构的扩充。Thumb 指令集是大多数常用32 位ARM 指令压缩成16 位宽指令的集合。在执行时,16 位指令透明的实时解压成32 位ARM 指令并没有性能损失。而且程序在Thumb状态和ARM 状态之间切换是零开销的。与等价的32 位arm 代码相比,Thumb 代码节省的存储器空间可高达35% 以上。
结语
综上所述,优化的过程是在透彻了解软/ 硬件结构和特性的前提下,充分利用硬件资源,不断调整程序结构使之趋于合理的过程。其目的是***大程度发挥处理器效能,***大限度利用资源,尽可能提高程序在特定硬件平台上的性能。随着ARM 处理器在通信及消费电子等行业中的应用日趋广泛,优化技术将在基于arm 处理器的程序设计过程中发挥越来越重要的作用。
值得注意的是,程序的优化通常只是软件设计需要达到的诸多目标之一, 优化应在不影响程序正确性、健壮性、可移植性及可维护性的前提下进行。片面追求程序的优化往往会影响健壮性、可移植性等重要目标。