From documentation I understand that the boot order is as follows:
device reset -> c_int00 -> BIOS_init -> main -> BIOS_start
Where does the "user init function" in the DSP/BIOS Config (System->Global Settings) get called in the above? Specifically, is it called after the BIOS_init or before? I cannot find a reference in the documentation to cover this point.
I'm having a problem whereby a C++ class instance object that uses CSL to access McBSP/SPI appears to cause problems if its instance is used in the "user init function": The software will not stop immediately but will some time later call SYS_abort which calls UTL_abort. I overrode the latter and put an infinite loop in order to halt from CCS and look at the call stack to see what is causing the abort but could not: Call stack only showed SYS_abort and my override function for UTL_abort.
My user init function sets up the PLL, powers up the domains, sets up DDR2 and then creates the C++ class instance in that order. If BIOS_init is called before the "user init function" then there should be no problem because I have just set up DDR2: The DSP/BIOS Config has been set up for malloc/new to use DDR2 and all other objects to use on chip memory.
I'm using a C6457 under CCS 3.3, DSP/BIOS 5.33.06