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.
如官方例程那样,我在SDRAM里定义了一个256M的数组,DSP上电之后总是将这个数组初始化为零,这就需要很长一段时间才能进入main函数,怎么才能不让他初始化?
这是按照官方例程定义的数组 : __attribute__((far)) volatile uint32_t extSDRAMBuf[134217728];
这是官方的CMD字段:
emif_cs0_nonfar : > EMIF1_CS0_CS2n
.farbss : > EMIF1_CS0n
// .SDRAM : > EMIF1_CS0n
.farconst : > EMIF1_CS0n
.em1_cs0 : > EMIF1_CS0n
我尝试了用NOINIT定义:
第一次定义:
//#pragma NOINIT (extSDRAMBuf)
__attribute__((far)) volatile uint32_t extSDRAMBuf[500000];
第二次定义:
//#pragma NOINIT (extSDRAMBuf)
volatile uint32_t extSDRAMBuf[500000];
这两次尝试程序单步调试没有问题,但是连续跑,程序就跑飞
另外我现在又把程序恢复成没用NOINIT 状态,发现单步调试数据正确,连续跑写数据不正确,读数据正确,但是程序不会跑飞