#include <nitro/os.h>
void OS_Init( void );
None.
None.
Initializes the system.
Specifically, the following actions are performed. Items with the NITRO logo ( ) show the behavior in NITRO mode, and items with the TWL logo (
) show the behavior in TWL mode.
ARM9
Performs initialization for displaying necessary debug messages.(
OS_InitPrintServer
)
Initializes the inter-processor communication system.(
PXI_Init
)
Initializes the arena.(
OS_InitArena
)
Initializes the lock system.(
OS_InitLock
)
Makes initial settings for the extended main memory arena.(
OS_InitArenaEx
)
Initializes the IRQ interrupt table.(
OS_InitIrqTable
)
Embeds IRQ stack check data.(
OS_SetIrqStackChecker
)
Initializes the exception display system.(
OS_InitException
)
Performs MI-related initialization.(
MI_Init
)
Initializes the V count alarm system.(
OS_InitVAlarm
)
Initializes the VRAM exclusion system.(
OSi_InitVramExclusive
)
Initializes the thread system.(
OS_InitThread
)
Initializes the software reset system.(
OS_InitReset
)
Initializes the cartridge library if other than TWL LIMITED.(
CTRDG_Init
)
Initializes the card library.(
CARD_Init
)
Initializes WRAM-A/B/C for TWL builds.(
MI_InitWramManager
)
Initializes the system configuration if in TWL mode.(
SCFG_Init
)
Initializes the power control system.(
PM_Init
)
Waits for the V-Count to reach 0.
Configures application jump settings if in TWL mode.(
OSi_InitPrevTitleId
)
ARM7
Initializes the inter-processor communication system.(
PXI_Init
)
Initializes the arena.(
OS_InitArena
)
Initializes the lock system.(
OS_InitLock
)
Initializes the IRQ interrupt table.(
OS_InitIrqTable
)
Initializes the exception display system.(
OS_InitException
)
Initializes MI for TWL builds.(
MI_Init
)
Initializes the check system.(
OS_InitTick
)
Initializes the alarm system.(
OS_InitAlarm
)
Initializes the thread system.(
OS_InitThread
)
Initializes the reset system.(
OS_InitReset
)
Initializes the cartridge library.(
CTRDG_Init
)
Initializes WRAM-A/B/C for TWL builds.(
MI_InitWramManager
)
Initializes the system configuration if in TWL mode.(
SCFG_Init
)
For both NITRO and TWL, after control has moved to the user's NitroMain
or TwlMain
function, call the OS_Init
function first. The functions called in OS_Init
are required for proper behavior and cannot be used in a different order.
We have provided a way to reduce the memory footprint of the cartridge library when you know that it will not be used to access data. See CTRDG_Init
and CTRDG_DummyInit
for details.
Tick system initialization and alarm system initialization are not performed on the ARM9's OS_Init
function. If necessary, call the OS_InitTick
and OS_InitAlarm
functions (in that order) after the OS_Init
function.
OS_InitThread
OS_InitArena
OS_InitIrqTable
OS_InitTick
OS_InitVAlarm
OS_InitException
OS_InitLock
MI_Init
PM_Init
OS_InitReset
CTRDG_Init
CARD_Init
OS_InitTick
OS_InitAlarm
OS_SetIrqStackChecker
2009/07/01 Revised reference for CTRDG.
2009/06/18 Added descriptions for TwlMain
.
2009/04/13 Removed the phrase "if necessary" as it related to ARM9 thread initialization. Added a note on decreasing the memory footprint with the CTRDG_Init
function.
2008/07/11 Added descriptions regarding initialization in TWL mode.
2005/07/19 Added the OS_SetIrqStackChecker
function.
2005/03/14 Fixed broken links.
2005/02/09 Added the MI_Init
function and added a link to the OS_InitLock
function.
2004/12/08 Explained that OS_Init
is the first function that should be called.
2004/09/27 Added the CARD_Init
function.
2004/09/15 Made revisions.
2004/08/09 Made revisions.
2004/02/19 Made revisions.
2003/12/24 Initial version.
CONFIDENTIAL