This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TMDXLCDK6748: Internal exception: IERR=0x1 Instruction fetch exception ti.sysbios.family.c64p.Exception: line 256

Part Number: TMDXLCDK6748

Tool/software: TI-RTOS

Recently my program often die with "ti.sysbios.family.c64p.Exception: line 256: E_exceptionMax: pc = 0xc0112df4, sp = 0xc0115110." when it run for a long time.

I have check the hwi stack size and task stack size. Both are free space available. 

I have no experience debug this sort of error. Can someone help me out? thx

  • Hi,

    Please share which SDK version are yo using?
    Under what circumstances did you get this error? Which SDK driver were you utilizing?
    Best Regards,
    Yordan
  • Sorry for mention that, Yordan Kovachev. I am using Process SDK RTOS OMAPL138 LCDK 4.00.00.04 on my custom C6746 board.

    Recently I add system stack size in my app.cfg

    The problem occur more often. Even when i start my app application.

    I guess this is caused by memory issue. this is piece of my app.cfg

    /*
    ** Create a Heap. 
    */
    var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
    var heapMemParams = new HeapMem.Params();
    heapMemParams.size = 0x20000;
    heapMemParams.sectionName = "systemHeap";
    Program.global.heap0 = HeapMem.create(heapMemParams);
    
    var heapMem0Params = new HeapMem.Params();
    heapMem0Params.instance.name = "MyHeap";
    heapMem0Params.size = 91392;
    heapMem0Params.align = 8;
    heapMem0Params.sectionName = "MyHeap";
    Program.global.MyHeap = HeapMem.create(heapMem0Params);
    
    var heapMem1Params = new HeapMem.Params();
    heapMem1Params.instance.name = "TcpHeap";
    heapMem1Params.size = 15232;
    heapMem1Params.sectionName = "TcpHeap";
    Program.global.TcpHeap = HeapMem.create(heapMem1Params);
    
    
    /* This is the default memory heap. */
    Memory.defaultHeapInstance  =   Program.global.heap0;
    Program.sectMap["sharedL2"] = "DDR"; 
    Program.sectMap["systemHeap"] = "DDR";
    Program.sectMap["MyHeap"] = "DDR";
    Program.sectMap["TcpHeap"] = "DDR";
    Program.sectMap[".sysmem"]  = "DDR";
    Program.sectMap[".args"]    = "DDR";
    Program.sectMap[".cio"]     = "DDR";
    Program.sectMap[".far"] 	= 	"DDR";
    Program.sectMap[".rodata"] 	= 	"DDR";
    Program.sectMap[".neardata"] 	= 	"DDR";
    Program.sectMap[".cppi"] 	= 	"DDR";
    Program.sectMap[".init_array"] 	= 	"DDR";
    Program.sectMap[".qmss"] 	= 	"DDR";
    Program.sectMap[".cinit"] 	= 	"DDR";
    Program.sectMap[".bss"]		=	"DDR";
    Program.sectMap[".const"]	=	"DDR";
    Program.sectMap[".text"]	=	"DDR";
    Program.sectMap[".code"]	=	"DDR";
    Program.sectMap[".switch"]	=	"DDR";
    Program.sectMap[".data"]	=	"DDR";
    Program.sectMap[".fardata"] = 	"DDR";
    Program.sectMap[".args"] 	= 	"DDR";
    Program.sectMap[".cio"] 	= 	"DDR";
    Program.sectMap[".vecs"] 	= 	"DDR";
    
    Program.sectMap["emacComm"]          = "DDR"
    
    
    Program.sectMap[".far:taskStackSection"] = "DDR";
    Program.sectMap[".stack"]	=	"DDR";
    Program.sectMap[".far:IMAGEDATA"] = {loadSegment: "DDR", loadAlign: 8};
    Program.sectMap[".far:NDK_OBJMEM"] = {loadSegment: "DDR", loadAlign: 8};
    Program.sectMap[".far:NDK_PACKETMEM"] = {loadSegment: "DDR", loadAlign: 128};
    Program.stack = 0x4000;
    

    I am not familar with low level memory issue.

    Can someone help me?

  • I found i didn't call I2c_init() before i called other i2c interface. After i fixed this bug. The error doesn't occur till now. I suggest it as the answer of this question. Thank u anyway for replying my question.