ghostvip 发表于 2011-8-18 13:09

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

小弟正在使用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题
页: [1]
查看完整版本: DSP2808中程序烧到flash运行有这么慢吗?