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.

Jump to Loader_exit() when using SYS/BIOS on OMAP L138

Other Parts Discussed in Thread: OMAPL138, SYSBIOS

Hi,

I am developing SYS/BIOS on OMAPL138.

After adding NAND flash source code (referencing from OMAPL138 startware), SYS/BIOS always jump to loader_exit() functions.

This is console screen:

R0 = 0x00000000 R8 = 0xffffffff
R1 = 0x00000000 R9 = 0xffffffff
R2 = 0x00000001 R10 = 0xffffffff
R3 = 0x00000001 R11 = 0xffffffff
R4 = 0xc33031c4 R12 = 0xc330a249
R5 = 0xc32f2d4c SP(R13) = 0xc32f2928
R6 = 0x00000000 LR(R14) = 0xc32e83dc
R7 = 0xc32dcc98 PC(R15) = 0xc32f2928
PSR = 0x00000000
DFSR = 0x000000f9 IFSR = 0x00000008
DFAR = 0x47c25391
ti.sysbios.family.arm.exc.Exception: line 209: E_undefinedInstruction: pc = 0xc32f2928, lr = 0xc32e83dc.
xdc.runtime.Error.raise: terminating execution

Anyone have a solution for this error?

Thanks

  • Which version of SYSBIOS are you on?

    Section 4 in the following FAQ gives some information on how to decode an exception. Could you please give that a try to characterize the problem a bit more. Like where is the exception happening.

    processors.wiki.ti.com/.../BIOS_FAQs

    Judah
  • Thanks for your feedback.


    I am using SYS/BIOS 6.45.1.29
    I tried following the instruction in section 4 but I can not copy SP and LR register into the corresponding registers in the CCS register view, i really do not know why.
    I also can not get my data memory into one or more COFF/.out files, It always be fail after about 40%.
    My Project is add external NAND flash functions into a SYS/BIOS.
    I used example code nand_armv5_omapL138_lcdkOMAPL130 (I almost did not change anything) like a task of SYS/BIOS.
    It occured a exception sometime, other times it is still in running state but it actually did not do anything. 
    I set many breakpoints to find out where is the problem, and I realized that the program never escape after doing  this function (in nandlib.c):
    retVal = (nandInfo->hNandDmaInfo->DMAXfer)(nandInfo, (unsigned char*)txData,NAND_BYTES_PER_TRNFS,NAND_DMA_DIR_WRITE);
    Could you please give me some advises to pass this issue?

    Thanks,

    Quy

  • Hi,

    I am familiar with SYSBIOS but not that DMA transfer function.  My only suggestion would be if you can single step into that function and figure out whats going on.

    Since you are getting an exception and you are able to connect to the cpu, I don't understand why you cannot modify the SP and LP through the debugger.  Its probably the easiest way to try to figure out, where your program went wrong.

    Judah

  • Hi Judah,

    Thank for answering me.

    I tried with new project from examples of SYSBIOS. Then add uart + dma code function to a task. The program is still dumped when it is running.

    I realized that it is always dumped after calling enable transfer DMA function EDMA3EnableTransfer().

    Can you help me to review this code, because dma is a essential function of my project so i have to use this funtion.

    Quy,

    3007.SYSBIOS_DUMP.zip

  • Quy,

    Where did you get this EDMA Transfer function? Are you sure this was made for your hardware?
    I'm not familiar with the EDMA or code for it. If that's really the issue, I'm gong to recommend moving this to an OMAPL138 type forum and hope someone there can help you out.

    Judah