Other Parts Discussed in Thread: C2000WARE, DRV8312
Tool/software: TI C/C++ Compiler
Hi Expert,
I use the example code from the below link, define a big array as below:
C:\ti\c2000\C2000Ware_MotorControl_SDK_F28002x_3_00_00_01\solutions\drv8312_c2_kit\f28002x\ccs\sensorless_foc
uint16_t array[4096];
and initialize the array after the function HAL_enableDebugInt();//
// enable debug interrupts
//
HAL_enableDebugInt(halHandle);
for(i=0;i<4096;i++)
{
array[i] =i;
}
After run the code, there will have a strange issue, that is the code will run to abort() function as below showed, but the code also can run to
mainISR interrupt.
void abort(void)
{
/*-------------------------------------------------------------------*/
/* SET C$$EXIT LABEL SO THE DEBUGGER KNOWS WHEN THE C++ PROGRAM HAS */
/* COMPLETED. THIS CAN BE REMOVED IF THE DEBUGGER IS NOT USED. */
/*-------------------------------------------------------------------*/
__asm(" .global C$$EXIT");
__asm("C$$EXIT: nop");
for (;;); /* SPINS FOREVER */
}
If I modify the code below, then everything is ok.
for(i=0;i<100;i++)
{
array[i] =i;
}
I compare the memory map between the changed code and original code, it seems there are the same.
I post the code attached so that the issue can be reproduced, could you help take a look at what is the reason?