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.

BIOS_start() goes off into the weeds

Other Parts Discussed in Thread: SYSBIOS

I have migrated a DSP/BIOS project to SYS/BIOS 6.34 and have gotten to to sucessfully run to main. after some initialization code completes, I can get to BIOS_start, and then things start going wrong. 

I get into the start routine.

and can step through it for the first few steps,

Then it jumps off into an unmapped area and gets stuck. 

My map doesn't look like anything is overlapping anywhere, so I'm not sure what else to look for.

  • Do you have any startupFunctions configured for the BIOS module?

    Can you please paste the code for the function ti_sysbios_BIOS_startFunc__I()?  This is a generated function  and you can find it in your application's "Debug" or "Release" directory (see below screen).

    Steve

  • Here is the content of startFunc__I

    Void ti_sysbios_BIOS_startFunc__I()
    {
        xdc_runtime_System_atexit(
            (xdc_runtime_System_AtexitHandler)ti_sysbios_BIOS_exitFunc__I);
        ti_sysbios_BIOS_registerRTSLock();
        ti_sysbios_hal_Hwi_startup();
        ti_sysbios_hal_Timer_startup();
        ti_sysbios_knl_Swi_startup();
        ti_sysbios_knl_Task_startup();
    }

    and I do have a few first and last functions configured:

    Startup.firstFxns[Startup.firstFxns.length++] = '&InitSysCtrl';
    Startup.firstFxns[Startup.firstFxns.length++] = '&InitGpio';
    Startup.firstFxns[Startup.firstFxns.length++] = '&InitPieCtrl';
    Startup.firstFxns[Startup.firstFxns.length++] = '&InitXint';
    Startup.firstFxns[Startup.firstFxns.length++] = '&InitFlash';
    Startup.firstFxns[Startup.firstFxns.length++] = '&InitSPI';
    Startup.lastFxns[Startup.lastFxns.length++] = '&LoadSavedVariables';
    Startup.lastFxns[Startup.lastFxns.length++] = '&InitCAN';
    Startup.lastFxns[Startup.lastFxns.length++] = '&InitPWM';
    Startup.lastFxns[Startup.lastFxns.length++] = '&InitWatchdog';

     I chose them based on the init routine the original code had. The LastFxns here were ran in a routine that was called as a semaphore in order to execute it at the task level.

     

  • Hi Justin,

    I wanted to check if this is still an issue for you.  It looks like you had posted another thread here, but I wasn't sure if that was for the same issue or not.

    Steve

  • I actually just figured it out yesterday.  I think it ended up being linked to the same problem.  Something was going on in L2 RAM and moving everything I could out of it fixed it.