Part Number: TMS320F28P550SJ
Other Parts Discussed in Thread: C2000WARE
Tool/software:
Hi champs,
The user needs to initialize RAM like M0/M1 before main().
They used to code on F28003x like this and it works.
// By default RAM is only initialized to zero by power-on reset, but not by warm reset
// _system_pre_init() is to initialize RAM to zero on all reset including warm reset. TI RTS library will call _system_pre_init() before main().
int _system_pre_init(void)
{
EALLOW;
*(volatile int *)(MEMCFG_BASE + MEMCFG_O_DXINIT) = 0x0003; // RAM INIT FOR M0/M1 Memory
while(!(*(volatile int *) (MEMCFG_BASE + MEMCFG_O_DXINITDONE) == 0x3)); // Wait for InitDone Status
EDIS;
return 1;
}
But now it fails on F28P550SJ9x after power-on reset (POR) (powering on for the first time).
"Fail" means it cannot run to main() after POR.
Note that we also confirmed it works if the user
1. only initializes LSx RAM and GSx RAM after POR or reset by nXRS.
2. only initializes M0/M1 RAM after reset by nXRS.
That is, it fails only if the user initializes M0/M1 after powering-on for the first time.
Is it possible this is related to ROM boot code for POR on F28P55x?
This issue is not observed on F280039C because the user uses the same code here.
Therefore, would you please support us how to deal with it?
The goal is to initialize RAM before main() no matter it's POR or reset by nXRS.
BTW, I am not able to reproduce this on CCS and can only see it in standalone running from flash after powering on for the first time. Is it possible to use CCS to emulate flash boot after POR?
