DSP2808中程序烧到flash运行有这么慢吗?

[复制链接]
 楼主| ghostvip 发表于 2011-8-18 13:09 | 显示全部楼层 |阅读模式
小弟正在使用dsp208,对程序在flash中运行速度有点疑惑。将程序烧写flash中运行,对一些语句进行简单的测试,如下
void testfun(void)
{
    IO32_ON;
    x = 12;
    x = 13;
    x = 27;
    x = 35;
    x = 70;

    #if 1
    x = 13;
    x = 23;
    x = 34;
    x = 77;
    x = 32;
    #endif

    IO32_OFF;
    y = 12;
    y = 13;
    y = 27;
    y = 35;
    y = 70;

    y = 13;
    y = 23;
    y = 34;
    y = 77;
    y = 32;
}
测试得到的IO口高电平时间为2.1us,然后注释掉红色的那段代码,再编译之后烧入flash中,测得IO高电平时间为1.3us,那么一条赋值语句运行时间就是(2.1 - 1.3 ) / 5 = 160ns,而我们的总线时钟是倍频到100MHZ,所以有点怀疑,flash中运行的速度真有这么慢吗?
dqyubsh 发表于 2011-8-19 03:51 | 显示全部楼层
不了解哦28xx,我的理解是,应该有一个管脚输出PLL之后的某个频率,或者是CPU的频率,或者是外设的频率,用示波器监视这个管脚不就可以了?
bmw008 发表于 2011-8-19 04:51 | 显示全部楼层
应该不会吧!!!!!!!!
 楼主| ghostvip 发表于 2011-8-19 08:09 | 显示全部楼层
2# dqyubsh
 楼主| ghostvip 发表于 2011-8-19 08:30 | 显示全部楼层
#2
我已经使用PLL将总线倍频到100MHZ了,测试的时候是通过IO口产生脉冲,然后用示波器测IO口高电平的时间。
 楼主| ghostvip 发表于 2011-8-19 10:53 | 显示全部楼层
已经解决了,主要原因是未开启flash的pipeline,在初始化的时候加入InitFlash()就可以了.当然得注意一下InitFlash是在ram中运行的,要memcpy的
729144646 发表于 2011-8-20 00:37 | 显示全部楼层
s3130718317 发表于 2017-5-19 14:41 | 显示全部楼层
楼主,如何memcpy的啊,主要原因是未开启flash的pipeline,在初始化的时候加入InitFlash()就可以了.当然得注意一下InitFlash是在ram中运行的,要memcpy的,具体怎么弄啊遇到同样的问T题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

86

帖子

0

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