hi,
Memory_alloc() call in my program cause the following issue -
A0=0x8 A1=0x0 A2=0x1 A3=0xa013a198 A4=0xd7e7438d A5=0x1 A6=0x8 A7=0x0 A8=0x0 A9=0x8df763 A10=0x1 A11=0xd7e7438d A12=0xd7e7438d A13=0xa0137268 A14=0x0 A15=0x0 A16=0xa0002fe0 A17=0x0 A18=0xa0002fd8 A19=0x0 A20=0x0 A21=0x0 A22=0x0 A23=0x0 A24=0x0 A25=0x0 A26=0x0 A27=0x2005000 A28=0x0 A29=0x0 A30=0x80000 A31=0x8 B0=0xd7e7438d B1=0x0 B2=0x0 B3=0x8bdaa4 B4=0x1 B5=0xffffffff B6=0xa0137268 B7=0xa013b698 B8=0x0 B9=0x0 B10=0x0 B11=0x0 B12=0x0 B13=0x0 B14=0xc0dd000 B15=0xa0002fc0 B16=0x0 B17=0x4578b849 B18=0x0 B19=0x0 B20=0x0 B21=0x2e1 B22=0x2e10000 B23=0x0 B24=0x0 B25=0x3000 B26=0x3000 B27=0x0 B28=0x0 B29=0x2 B30=0x0 B31=0x0 NTSR=0x1000f ITSR=0xf IRP=0x8a2d3a SSR=0x0 AMR=0x0 RILC=0x0 ILC=0x0 Exception at 0xfffffffe EFR=0x2 NRP=0xfffffffe Internal exception: IERR=0x3 Instruction fetch exception Fetch packet exception ti.sysbios.family.c64p.Exception: line 255: E_exceptionMin: pc = 0xfffffffe, sp = 0xa0002fc0. To see more exception detail, use ROV or set 'ti.sysbios.family.c64p.Exception.enablePrint = true;' xdc.runtime.Error.raise: terminating execution
I have tried increasing my heapsize and also checked my stack limit using ROV . It looks fine.
When i comment my GIGE initialization function - code runs fine .
gige_Initialization function-
{
Int32 i;
UInt32 coreNum;
volatile UInt32 testComplete=FALSE;
/* Get the core number. */
coreNum = CSL_chipReadReg(CSL_CHIP_DNUM);
System_printf ("************************************************\n");
System_printf ("*** GiGE Intialization Started on Core %d ***\n",coreNum);
System_printf ("************************************************\n");
/* Init internal cycle counter */
TSCL = 1;
/* Disable L1 and L2 Cache */
CACHE_wbAllL1d (CACHE_WAIT);
CACHE_setL1DSize(CACHE_L1_0KCACHE);
CACHE_setL1PSize(CACHE_L1_0KCACHE);
#ifndef L2_CACHE
CACHE_setL2Size(CACHE_0KCACHE);
#endif
/* Core 0 does the global initialization */
if(!coreNum)
{
/* Enable PASS power domain */
passPowerUp();
/* Initialize the components required to run the example:
* (1) QMSS
* (2) CPPI
* (3) Ethernet switch subsystem + MDIO + SGMII
*/
/* Initialize QMSS */
if (Init_Qmss () != 0)
{
System_printf ("QMSS Global init failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("QMSS successfully initialized \n");
}
// /* Initialize CPPI */
if (Init_Cppi () != 0)
{
System_printf ("CPPI init failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("CPPI successfully initialized \n");
}
/* Init PA LLD */
if (Init_PASS () != 0)
{
System_printf ("PASS init failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("PASS successfully initialized \n");
}
/* Initialize the CPSW switch */
if (Init_Cpsw () != 0)
{
System_printf ("Ethernet subsystem init failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("Ethernet subsystem successfully initialized \n");
}
/* Setup Tx */
if (Setup_Tx () != 0)
{
System_printf ("Tx setup failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("Tx setup successfully done \n");
}
/* Setup Rx */
if (Setup_Rx () != 0)
{
System_printf ("Rx setup failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("Rx setup successfully done \n");
}
/* Setup PA */
if (Setup_PASS () != 0)
{
System_printf ("PASS setup failed \n");
BIOS_exit (-1);
}
else
{
System_printf ("PASS setup successfully done \n");
}
globalCfgDone=TRUE;
}
System_printf ("Global Config_Done..Waiting for attached cores...\n");
while(globalCfgDone == TRUE)
SYS_CACHE_INV ((void *) &globalCfgDone, 128, CACHE_WAIT);
System_printf ("GIGE INTIALIZATION IN ALL CORES COMPLETED\n");
}
The QMSS initialization & IPC module uses the SHARED_REGION0 !! Is it due to which the conflict occurs ?
regards ,
vinodh