这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2210 2210跳转比较多时执行速度怎么提高?

共2条 1/1 1 跳转至

2210 2210跳转比较多时执行速度怎么提高?

院士
2006-09-17 18:14:16     打赏
2210 2210跳转比较多时执行速度怎么提高?



关键词: 跳转     比较     多时     执行     速度     怎么     提高    

院士
2006-12-22 22:43:00     打赏
2楼
问 我用的是easyram2200 自己做了个PACK板子,想从上面高速存取数据,测试了一下性能:

   volatile uint16 *packadd;

    while(1){*packadd = 0x0000;
        *packadd = 0xffff;
    }

编译完:
0x80000358  [0xe1c040b0]   strh     r4,[r0,#0]
0x8000035c  [0xe1c010b0]   strh     r1,[r0,#0]
0x80000360  [0xeafffffc]   b        0x80000358  ; (main + 0x2c)

测试了一下CS0和CS2,80%左右的时间是在读RAM,PACK上的CS2有效时间很少。请问各位大侠怎么加速啊?




2  还有个菜问题,没有缓存的话是不是指令都应该直接从FLASH里读进来,怎么是RAM的CS有效呢?(是不是可以把程序影射到RAM里执行?我是用书上的例子修改的)
1: 2210跳转比较多时执行速度怎么提高1、while(1){*packadd = 0x0000;
        *packadd = 0xffff;
    }
可能被优化,不是很好的测试方式,可以试试块拷贝,并用定时器的方式测试拷贝完成时间。

2、无CASH时,CPU从程序存储器直接取指。程序所存放的位置,看分散加载文件。
2: 如何加速执行速度?重新写了个汇编函数在C环境里调用:
while(1){
function();
}


function中使用下面3行重复多次,发现ldrh执行60ns,但两次ldrh间隔将近500ns,我怀疑是easyARM2200是16位总线比较慢的原因,是这样吗

function里重复多次的3行:
   ldrh     r2,[r1],#2
   tst      r2,#0x8000
   strneh     r2,[r0],#2



如果想加速的话具体怎么把程序加载到内部RAM执行?



共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]