1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <meta http-equiv="Content-Style-Type" content="text/css" /> 6 <link rel="stylesheet" href="../css/manpage.css" type="text/css" /> 7 <style type="text/css"><!-- 8 span.static_style 9 { 10 font-size : 8pt; 11 color : white; 12 font-weight : bold; 13 background : #44f; 14 border-left : solid 1px #aaf; 15 border-top : solid 1px #aaf; 16 border-right : solid 1px #00c; 17 border-bottom : solid 1px #00c; 18 padding-left : 2px; 19 padding-right : 2px; 20 } 21 22 span.virtual_style 23 { 24 font-size : 8pt; 25 color : white; 26 font-weight : bold; 27 background : #0a0; 28 border-left : solid 1px #0f0; 29 border-top : solid 1px #0f0; 30 border-right : solid 1px #060; 31 border-bottom : solid 1px #060; 32 padding-left : 2px; 33 padding-right : 2px; 34 } 35 36 span.protected_style 37 { 38 font-size : 8pt; 39 color : white; 40 font-weight : bold; 41 background : #444; 42 border-left : solid 1px #ccc; 43 border-top : solid 1px #ccc; 44 border-right : solid 1px #222; 45 border-bottom : solid 1px #222; 46 padding-left : 2px; 47 padding-right : 2px; 48 } 49 --></style> 50<title>About the <CODE>StartUp</CODE> API</title> 51 </head> 52 <body> 53<h1>About the <CODE>StartUp</CODE> API</h1> 54<h2>Description</h2> 55 <div class="section"> 56<p>This API is used to start up applications.</p><p>The application startup process is described below.</p><p><itemizedlist><listitem><para>Initialize BSS region.<br /></para></listitem><listitem><para>Call <CODE>nninitSystem</CODE>.<br /></para></listitem><listitem><para>Call <CODE>nninitStartUp</CODE>.<br /></para></listitem><listitem><para>Call static initializer.<br /></para></listitem><listitem><para>Call <CODE>nninitSetup</CODE>.<br /></para></listitem><listitem><para>Run <CODE>nnMain</CODE>.<br /><br /> The <CODE>nninitStartUp</CODE> function is compiled with weak symbols so it can be overridden with developers' own definitions. </para></listitem></itemizedlist>These functions are called before the C++ static initializer is called, so it is not possible to use instances within the static data of classes that don't have clear constructors. As a result, there are significant restrictions on the functions that can be called. Among the library's functions, only the ones shown below can be called before the static initializer.</p><p><itemizedlist><listitem><para><a href="../nn/init/InitializeAllocator.html">nn::init::InitializeAllocator</a><br /></para></listitem><listitem><para><a href="../nn/os/InitializeDeviceMemory.html">nn::os::InitializeDeviceMemory</a><br /></para></listitem></itemizedlist> Operation is not guaranteed if any other functions are called. Sufficient care should be taken when coding your own version of these operations.</p><!-- write here --></div> 57<h2>Revision History</h2> 58 <div class="section"> 59 <dl class="history"> 60 <dt>2010/01/07</dt> 61<dd>Initial version.<br /> 62 </dd> 63 </dl> 64 </div> 65 <hr><p>CONFIDENTIAL</p></body> 66</html>