在某人的博客里看到介绍如何再复位后把程序从Flash里复制到RAM中,并说,如果要想程序跑得快,就要把程序放在RAM里。
如果程序很大的话,就只能把主要的好事的部分放在RAM里。
然则,如果把程序简单地放在Flash里,能够跑多快?
程序有的部分在RAM里,有的部分在FLASH里,如何估计它的速度,时序不会乱吗?
初学,谢谢指教。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在某人的博客里看到介绍如何再复位后把程序从Flash里复制到RAM中,并说,如果要想程序跑得快,就要把程序放在RAM里。
如果程序很大的话,就只能把主要的好事的部分放在RAM里。
然则,如果把程序简单地放在Flash里,能够跑多快?
程序有的部分在RAM里,有的部分在FLASH里,如何估计它的速度,时序不会乱吗?
初学,谢谢指教。
谢谢指教啊,Flash能跑100MHz也就不错了,Microchip的30F系列只能跑30MHz,33系列40MHz,新的33EP系列也才60/70MHz。
虽说“计算速度还是150Mhz”,但是程序跑起来要取指,所以真正跑起来也就只是100-120MHz吧?
另外虽说“计算速度还是150Mhz”,一般说DSP可以单周期做浮点乘加,看28系列的浮点扩展指令,浮点乘加有两个周期的延迟,虽然可以在这两个周期的延迟里取操作数,速度最快也就是50MHz吧?
用C编程的话,能够实现这样最高50MHz的乘加运算吗?
TI 有一个《C2833x/C2823x c/c++ Header Files and Peripheral Examples Quick Start》,这是一篇很有意思的文献,它的所有奇数页是V1.20的,而所有偶数页是V1.30的。
它的4.5节讲了在Flash中运行程序的问题。其中的第四步,需要调用InitFlash()来初始化flash的状态和使能flash的流水线模式。
这样说来,在flash中运行,可能主要就是取指,是需要加延迟的,那样应是到不了100-120MHz的吧?