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.
您好!
在28377的初始化代码中看到有将定义在内存中的数据段从flash拷贝到ram中的操作,那么具体在程序设计时,需要将哪些程序和数据定义在RAM中,在读取的速度上,内部RAM和Flash具体差多少。
一般我们建议将实时性要求比较高的代码,和FLASH初始化相关的代码,比如中断程序,放在RAM上运行。
在F2837xD/37xS/07x系列芯片里,它们使用的Flash是最新的65nm工艺(相比之前的是180nm),其Flash运算速度和执行效率已经大幅提高,等待周期也可以减少,因此会非常接近RAM上的速度,根据不同的代码,你可以参考下面的相关数据(请注意,Flash wait states是根据工艺强制要求的,比如F28335运行150MHz主频时,必须至少要5个,而F2837x则只需要2个 ):
Devices |
Code Running From |
FLASH Wait States |
Device MHz |
Floating-Point Math Code (near linear code with little branching, most instructions 32-bits) |
Control Code (lot’s of branching, mixture of 16-bit and 32-bit instructions, most instructions 16-bits) |
All Devices |
RAM |
- |
- |
100% efficient (reference) |
100% efficient (reference) |
F2812/F28335 |
FLASH (180nm) 64-bit wide pre-fetch |
5-wait |
150 |
~58MHz equivalent performance from Flash |
~87MHz equivalent performance from Flash |
F2837x/F2807x |
FLASH (65nm) 144-bit wide pre-fetch |
2-wait |
150 |
~143MHz equivalent performance from Flash |
~135MHz equivalent performance from Flash |
F2837x/F2807x |
FLASH (65nm) 144-bit wide pre-fetch |
3-wait |
200 |
~184MHz equivalent performance from Flash |
~174MHz equivalent performance from Flash |