Hi all gurus,
I having a very weird problem that at first I thought is stack overflow but later on found out it isn't. F28027, MotorWare v14.
Finally I tracked down that each time EST_run() is called, some memory in region 0x000620~0x000800 (in RAM M1) are changed.
This region is not allocated in linker cmd file:
PRAML0 : origin = 0x008000, length = 0x000B80 /* on-chip RAM block L0 */
DRAML0 : origin = 0x008B80, length = 0x000480 /* on-chip RAM block L0 */
RAMM0_M1 : origin = 0x000000, length = 0x0007FF /* on-chip RAM block M0 + M1 */
/* Allocate uninitalized data sections: */
.stack : > RAMM0_M1 PAGE = 1
.ebss : > DRAML0 PAGE = 1 //RAMM0_M1 PAGE = 1
.esysmem : > RAMM0_M1 PAGE = 1
DRAM was originally in RAMM0_M1 but the memory change causes program to go in PIE_IllegalISR(), now putting DRAM in L0 as workaround.
As below: addressed in red are the ones get changed when EST_run() is called.
Thanks.