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 &lt;nitro/os.h&gt;</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"> Performs necessary thread system initialization.( <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"> Initializes the settings for application jumps 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.( <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> )</BLOCKQUOTE>
32<P><BR>For both NITRO and TWL, after control has moved to the user's <CODE>NitroMain</CODE> function, we recommend that calling the <CODE>OS_Init</CODE> function first.</P>
33<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>
34<H2>See Also</H2>
35<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>
36<H2>Revision History</H2>
37<P>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 Corrected mistake in link target.<BR> 2005/02/09 Added the <CODE>MI_Init</CODE> function and added 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>
38<hr><p>CONFIDENTIAL</p></body>
39</HTML>