所需E币: 5
时间: 2020-1-9 15:56
大小: 267.32KB
基于ARM的嵌入式系统程序开发要点(六)——开发高效程序的技巧产业技术与信息INDUSTRYTECH&INFO基于ARM的嵌入式系统程序开发要点(六)――开发高效程序的技巧■ARM中国费浙平开发高效率的程序涉及很多方面,包括编程风格、算法实现、针对目标的特殊优化等。这部分主要从ARM的体系结构特点出发,介绍几个程序开发中的注意点。在32位的寄存器中进行符号扩展,其中带符号的变量,要用逻辑左移(LSL)接算术右移(ASR)两条指令才能完成符号扩展;无符号的变量,要使用一条逻辑与(AND)指令对符号位进行清零。所以,使用32位的int或unsignedint局部变量最有效率。intwordinc(inta){returna+1;}shortshortinc(shorta){returna+1;}wordincADDa1,a1,#1MOVPC,LRshortincADDa1,a1,#1MOVa1,a1,LSL#16MOVa1,a1,ASR#16MOVPC,LR1变量定义变量定义虽然很简单,但是也有很多值得注意的地方。先看下面一个例子:charshortcharinta;b;c;d;charcharshortinta;c;b;d;这里定义的4个变量形式都一样,只是次序不同,却导致了在最终映像中不同的数据布局,如图1所示。显然,第二种方式节约了更多的存储器空间。charcharinc(chara){returna+1;}charincADDa1,a1,#1ANDa1,a1,#&ffMOVPC,LR……