1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<HTML> 3<HEAD> 4<META http-equiv="Content-Type" content="text/html; charset=windows-1252"> 5<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 7.0.1.0 for Windows"> 6<META http-equiv="Content-Style-Type" content="text/css"> 7<TITLE>OS_Init</TITLE> 8<LINK rel="stylesheet" href="../../css/nitro.css" type="text/css"> 9</HEAD> 10<BODY> 11<H1 align="left">OS_Init <img src="../../image/NTR.gif" align="middle"><img src="../../image/TWL.gif" align="middle"></H1> 12<H2>Syntax</H2> 13<DL> 14 <DD> 15 <PRE><CODE>#include <nitro/os.h></CODE></PRE> 16 <PRE><CODE>void OS_Init( void ); 17 </CODE></PRE> 18</DL> 19<H2>Arguments</H2> 20<P> 21None. 22</P> 23 24<H2>Return Values</H2> 25<P>None.</P> 26 27<H2>Description</H2> 28<P>Initializes the system.</P> 29<P>Specifically, the following actions are performed. Items with the NITRO logo ( <IMG src="../../image/NTR.gif" align="middle"> ) show the behavior in NITRO mode, and items with the TWL logo ( <IMG src="../../image/TWL.gif" align="middle"> ) show the behavior in TWL mode.</P> 30<BLOCKQUOTE><B>ARM9</B><BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Performs initialization for displaying necessary debug messages.(<CODE>OS_InitPrintServer</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the inter-processor communication system.(<CODE>PXI_Init</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the arena.(<CODE><A href="../arena/OS_InitArena.html">OS_InitArena</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the lock system.(<CODE><A href="../spinLock/OS_InitLock.html">OS_InitLock</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Makes initial settings for the extended main memory arena.(<CODE>OS_InitArenaEx</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the IRQ interrupt table.(<CODE><A href="../irq/OS_InitIrqTable.html">OS_InitIrqTable</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Embeds IRQ stack check data.(<CODE><A href="../stack/OS_SetIrqStackChecker.html">OS_SetIrqStackChecker</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the exception display system.(<CODE><A href="../exception/OS_InitException.html">OS_InitException</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Performs MI-related initialization.(<CODE><A href="../../mi/init/MI_Init.html">MI_Init</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the V count alarm system.(<CODE><A href="../valarm/OS_InitVAlarm.html">OS_InitVAlarm</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the VRAM exclusion system.(<CODE>OSi_InitVramExclusive</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the thread system.(<CODE><A href="../thread/OS_InitThread.html">OS_InitThread</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the software reset system.(<CODE><A href="../reset/OS_InitReset.html">OS_InitReset</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/BPT.gif" align="middle"> Initializes the cartridge library if other than TWL LIMITED.(<CODE><A href="../../ctrdg/CTRDG_Init.html">CTRDG_Init</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the card library.(<CODE><A href="../../card/common/CARD_Init.html">CARD_Init</A></CODE>)<BR> <IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes WRAM-A/B/C for TWL builds.(<CODE><A href="../../card/common/CARD_Init.html">MI_InitWramManager</A></CODE>)<BR> <IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the system configuration if in TWL mode.(<CODE>SCFG_Init</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the power control system.(<CODE><A href="../../spi/pm/PM_Init.html">PM_Init</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Waits for the V-Count to reach 0.<BR><IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Configures application jump settings if in TWL mode.(<CODE>OSi_InitPrevTitleId</CODE>)</BLOCKQUOTE> 31<BLOCKQUOTE><B>ARM7</B><BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the inter-processor communication system.(<CODE>PXI_Init</CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the arena.(<CODE><A href="../arena/OS_InitArena.html">OS_InitArena</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the lock system.(<CODE><A href="../spinLock/OS_InitLock.html">OS_InitLock</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the IRQ interrupt table.(<CODE><A href="../irq/OS_InitIrqTable.html">OS_InitIrqTable</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the exception display system.(<CODE><A href="../exception/OS_InitException.html">OS_InitException</A></CODE>)<BR> <IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes MI for TWL builds.(<CODE><A href="../../mi/init/MI_Init.html">MI_Init</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the check system.(<CODE><A href="../time/OS_InitTick.html">OS_InitTick</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the alarm system.(<CODE><A href="../alarm/OS_InitAlarm.html">OS_InitAlarm</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the thread system.(<CODE><A href="../thread/OS_InitThread.html">OS_InitThread</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the reset system.(<CODE><A href="../reset/OS_InitReset.html">OS_InitReset</A></CODE>)<BR> <IMG src="../../image/NTR.gif" align="middle"><IMG src="../../image/BPT.gif" align="middle"> Initializes the cartridge library.(<CODE><A href="../../ctrdg/CTRDG_Init.html">CTRDG_Init</A></CODE>)<BR> <IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes WRAM-A/B/C for TWL builds.(<A href="../../card/common/CARD_Init.html"><CODE>MI_InitWramManager</CODE></A>)<BR> <IMG src="../../image/BPT.gif" align="middle"><IMG src="../../image/TWL.gif" align="middle"> Initializes the system configuration if in TWL mode.(<CODE>SCFG_Init</CODE>)</BLOCKQUOTE> 32<P><BR>For both NITRO and TWL, after control has moved to the user's <CODE>NitroMain</CODE> or <CODE>TwlMain</CODE> function, call the <CODE>OS_Init</CODE> function first. The functions called in <CODE>OS_Init</CODE> are required for proper behavior and cannot be used in a different order.</P> 33<P>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 <A href="../../ctrdg/CTRDG_Init.html"><CODE>CTRDG_Init</CODE></A> and <A href="../../ctrdg/CTRDG_DummyInit.html"><CODE>CTRDG_DummyInit</CODE></A> for details.</P> 34<P>Tick system initialization and alarm system initialization are not performed on the ARM9's <code>OS_Init</code> function. If necessary, call the <a href="../time/OS_InitTick.html"><code>OS_InitTick</code></a> and <a href="../alarm/OS_InitAlarm.html"><code>OS_InitAlarm</code></a> functions (in that order) after the <code>OS_Init</code> function.</P> 35<H2>See Also</H2> 36<P><A href="../thread/OS_InitThread.html"><CODE>OS_InitThread</CODE></A><BR> <A href="../arena/OS_InitArena.html"><CODE>OS_InitArena</CODE></A><BR> <A href="../irq/OS_InitIrqTable.html"><CODE>OS_InitIrqTable</CODE></A><BR> <A href="../time/OS_InitTick.html"><CODE>OS_InitTick</CODE></A><BR> <A href="../valarm/OS_InitVAlarm.html"><CODE>OS_InitVAlarm</CODE></A><BR> <A href="../exception/OS_InitException.html"><CODE>OS_InitException</CODE></A><BR> <A href="../spinLock/OS_InitLock.html"><CODE>OS_InitLock</CODE></A><BR> <A href="../../mi/init/MI_Init.html"><CODE>MI_Init</CODE></A><BR> <A href="../../spi/pm/PM_Init.html"><CODE>PM_Init</CODE></A><BR> <A href="../reset/OS_InitReset.html"><CODE>OS_InitReset</CODE></A><BR> <A href="../../ctrdg/CTRDG_Init.html"><CODE>CTRDG_Init</CODE></A><BR> <A href="../../card/common/CARD_Init.html"><CODE>CARD_Init</CODE></A><BR> <A href="../time/OS_InitTick.html"><CODE>OS_InitTick</CODE></A><BR> <A href="../alarm/OS_InitAlarm.html"><CODE>OS_InitAlarm</CODE></A><BR> <A href="../stack/OS_SetIrqStackChecker.html"><CODE>OS_SetIrqStackChecker</CODE></A></P> 37<H2>Revision History</H2> 38<P>2009/07/01 Revised reference for CTRDG.<BR> 2009/06/18 Added descriptions for <CODE>TwlMain</CODE>.<BR> 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 <A href="../../ctrdg/CTRDG_Init.html"><CODE>CTRDG_Init</CODE></A> function. <BR>2008/07/11 Added descriptions regarding initialization in TWL mode.<BR> 2005/07/19 Added the <CODE>OS_SetIrqStackChecker</CODE> function.<BR> 2005/03/14 Fixed broken links.<BR> 2005/02/09 Added the <CODE>MI_Init</CODE> function and added a link to the <CODE>OS_InitLock</CODE> function.<BR> 2004/12/08 Explained that <CODE>OS_Init</CODE> is the first function that should be called.<BR> 2004/09/27 Added the <CODE>CARD_Init</CODE> function.<BR> 2004/09/15 Made revisions.<BR> 2004/08/09 Made revisions.<BR> 2004/02/19 Made revisions.<BR> 2003/12/24 Initial version.</P> 39<hr><p>CONFIDENTIAL</p></body> 40</HTML>