Part Number:TMS320F28388D
如官方例程那样,我在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
Susan Yang:
您可以尝试使用NOINIT
https://www.ti.com/lit/ug/spru514r/spru514r.pdf
,
mingdong li:
我尝试了用NOINIT定义:
第一次定义:
//#pragma NOINIT (extSDRAMBuf)__attribute__((far)) volatile uint32_t extSDRAMBuf[500000];
第二次定义:
//#pragma NOINIT (extSDRAMBuf)volatile uint32_t extSDRAMBuf[500000];
这两次尝试程序单步调试没有问题,但是连续跑,程序就跑飞
另外我现在又把程序恢复成没用NOINIT 状态,发现单步调试数据正确,连续跑写数据不正确,读数据正确,但是程序不会跑飞
,
Susan Yang:
请问您现在情况如何了?我这边没有测试过NOINIT 在EMIF下的读写