基于ARM的嵌入式系统程序开发要点(六)——开发高效程序的技...
上传用户:zhuanjifen
上传日期:2013-09-22
文件类型:PDF
文件大小:267.32K
资料积分:0分 积分不够怎么办?
基于ARM的嵌入式系统程序开发要点(六)——开发高效程序的技巧产业技术与信息
I ND US TR Y TE CH &I NF O
基于 ARM 的嵌入式系统程序开发要点(六)
― ―开发高效程序的技巧
■ ARM 中国 费浙平
开发高效率的程序涉及很多方面, 包括编程风格、 算法实现、 针对目标的特殊优化等。 这部分主要从 A R M 的体系结构特点出发, 介绍几个程序开发中的注 意点。
在 3 2 位的寄存器中进行符号扩展,其中带符号的变量, 要用逻辑左移(L S L ) 接算术右移(A S R ) 两条指令才 能完成符号扩展 ; 无符号的变量, 要使用一条逻辑与 (A N D) 指令对符号位进行清零。 所以, 使用 32 位的 i n t 或 unsigned int局部变量最有效率。
int wordinc (int a) { return a + 1; } short shortinc (short a) { return a + 1; } wordinc ADD a1,a1,#1 MOV PC,LR shortinc ADD a1,a1,#1 MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 MOV PC,LR
1
变量定义
变量定义虽然很简单, 但是也有很多值得注意的地
方。 先看下面一个例子:
char short char int a; b; c; d; char char short int a; c; b; d;
这里定义的 4 个变量形式都一样, 只是次序不同, 却 导致了在最终映像中不同的数据布局, 如图 1 所示。显 然, 第二种方式节约了更多的存储器空间。
char charinc (char a) { return a + 1; }
charinc ADD a1,a1,#1 AND a1,a1,#&ff MOV PC,LR
I ND US TR Y TE CH &I NF O
基于 ARM 的嵌入式系统程序开发要点(六)
― ―开发高效程序的技巧
■ ARM 中国 费浙平
开发高效率的程序涉及很多方面, 包括编程风格、 算法实现、 针对目标的特殊优化等。 这部分主要从 A R M 的体系结构特点出发, 介绍几个程序开发中的注 意点。
在 3 2 位的寄存器中进行符号扩展,其中带符号的变量, 要用逻辑左移(L S L ) 接算术右移(A S R ) 两条指令才 能完成符号扩展 ; 无符号的变量, 要使用一条逻辑与 (A N D) 指令对符号位进行清零。 所以, 使用 32 位的 i n t 或 unsigned int局部变量最有效率。
int wordinc (int a) { return a + 1; } short shortinc (short a) { return a + 1; } wordinc ADD a1,a1,#1 MOV PC,LR shortinc ADD a1,a1,#1 MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 MOV PC,LR
1
变量定义
变量定义虽然很简单, 但是也有很多值得注意的地
方。 先看下面一个例子:
char short char int a; b; c; d; char char short int a; c; b; d;
这里定义的 4 个变量形式都一样, 只是次序不同, 却 导致了在最终映像中不同的数据布局, 如图 1 所示。显 然, 第二种方式节约了更多的存储器空间。
char charinc (char a) { return a + 1; }
charinc ADD a1,a1,#1 AND a1,a1,#&ff MOV PC,LR
关键词: 基于 的嵌 入式 系统 程序 开发 要点 高效 的技

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码