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.

TMS320F28388D: 使用了外扩SDRAM后程序进入main函数十分慢是什么原因?

Part Number: TMS320F28388D

(1)使用了23888D的EMIF2 CS0接口外扩了一片16M×16 大小的SDRAM;

(2)在SDRAM中定义了一个使用了整片SDRAM内存大小的数组,该数组无初始化,放于.farbsss段中;

(3)在定时器以两秒的周期翻转一个LED;

(4)出现问题:程序在FLASH中运行时,运行到main函数需要近27秒时间,判断依据就是LED要间隔27秒才开始闪烁;

(5)问题定位:定义在该SDRAM的数组大小变小时,运行到main函数时间也会变小,并且呈正相关关系,所以判断是该SDRAM数组的问题;

(6)具体代码如下:

C文件

#define SDRAMSize 8388608U
__attribute__((far)) volatile uint32_t SDRAMBuf[SDRAMSize];

CMD文件

EMIF2_CS0n      : origin = 0x90000000, length = 0x01000000

.farbss          : > EMIF2_CS0n

(7)补充说明:程序中未对SDRAMBuf有任何初始化操作;