嵌入式编程与优化问题。

[复制链接]
2435|3
 楼主| JadeTang 发表于 2008-3-7 18:03 | 显示全部楼层 |阅读模式
最近的一个项目中以LPC2292为CPU做的一个控制板。程序是用C写的,OS是UCOSII,软件用的是ADS1.2<br />程序里面有很多数组复制的操作。用的是for循环,但是在看了《ARM嵌入式系统开发:软件设计与优化》这本书以后发现在循环的部分程序可以大大优化,于是想更加优化一点,又看了《C与指针》这本书。里面有一个例子是如下<br />函数1.<br />void&nbsp;try1()<br />{&nbsp;&nbsp;for(i=0;i&ltSIZE;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=y;<br />}<br />函数2(用的是寄存器类型的指针)<br />void&nbsp;try2()<br />{&nbsp;&nbsp;register&nbsp;int*p1,*p2;<br />&nbsp;&nbsp;&nbsp;for(p1=x,p2=y;p1&lt&x[SIZE];)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*p1++=*p2++;<br />}<br />函数2比函数1编成汇编代码以后,代码数少了1半不止,是不是意味着程序运行的时候就会快了一倍不止?还有《c与指针》书上提到的提高效率的方法是不是能够直接照般到ARM上?还是需要改动?
zgl7903 发表于 2008-3-7 18:10 | 显示全部楼层

这种最好用内置函数库 一般都支持 memcpy的

跟编译器和支持的硬件有很大的相关性
 楼主| JadeTang 发表于 2008-3-7 18:37 | 显示全部楼层

os中的库函数要是和我用的差不多怎么办?

而且我不知道我定义的数组在函数中的位置可以用吗?
xwj 发表于 2008-3-7 19:56 | 显示全部楼层

Re:

os中的库函数要是和我用的差不多怎么办?&nbsp;<br />--差不多的话说明你的代码写的不错或者编译器自带库优化就没到位&nbsp;&nbsp;<br /><br />而且我不知道我定义的数组在函数中的位置可以用吗?&nbsp;<br />--怎么会不知道呢???<br />&nbsp;<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

108

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部