Ofweek 电子工程网
ARM 高效 C 语言编程
引言
ARM 处理器以其高性能、低功耗、低成本等优势被广泛应用于各种成功的 32
位嵌入式系统中。提高执行速度和减小代码尺寸是嵌入式软件设计的关键需求。
尽管大多数的 ARM 编译器和调试器都带有性能优化工具,但是为了保证其正确性,
编译器必须是稳妥和安全的,而且它还受到处理器自身结构的限制。因此,编程
人员必须在理解编译器工作特点的基础上来实现代码优化。代码的优化方法较多,
本文针对函数优化方法进行阐述。
1 函数局部变量的数据类型
局部变量包括函数内局部变量、函数参数、函数返回值。由于 ARM 数据操作
都是 32 位,即使数据本身只需要 8 位或 16 位,对于这三类局部变量也应尽可能
使用 32 位的数据类型 int 或 long,以提高代码执行效率。下面以简单求和函数
为例进行分析。
函数 add1 计算包含 10 个字的数组 array 的累加和,add2 与 add1 功能相同,
只是将函数 add1 的参数 array 类型改为 16 位的 short,函数内局部变量 i 类型
改为 8 位的 char,sum 改为 16 位的 short。add1、add2 的 C 源代码如下:
int add1(int *array){
unsigned int i;
int sum=0;
for(i=0;i<10;i++)
sum=sum+array[i];
return sum;
}
short add2(short *array){
char i;
short sum=0;
for(i=0;i<10;i++)
sum= sum+array[i];