共2条
1/1 1 跳转至页
2210 2210跳转比较多时执行速度怎么提高?

问
我用的是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执行?
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 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 |