

#include <nitro/os.h>
void OS_Init( void );
なし
なし。
システムを初期化します。
具体的には以下のことを行なっています。NITROマーク(
) の付いているものは、NITRO モードでの動作で、TWL マーク(
) の付いているものは、TWL モードでの動作となります。
ARM9
必要ならデバッグ文字列表示用の初期化を行います。 (
OS_InitPrintServer())
プロセッサ間通信システムの初期化を行ないます。 (
PXI_Init())
アリーナの初期化を行ないます。(
OS_InitArena())
ロックシステムの初期化を行ないます。(
OS_InitLock())
拡張メインメモリアリーナの初期設定を行ないます。 (
OS_InitArenaEx())
IRQ 割り込みテーブルの初期化を行ないます。(
OS_InitIrqTable())
IRQ スタックのチェックデータを埋め込みます。(
OS_SetIrqStackChecker())
例外表示システムの初期化を行ないます。(
OS_InitException())
MI 関連の初期化を行ないます。 (
MI_Init())
Vカウントアラームシステムの初期化を行ないます。 (
OS_InitVAlarm())
VRAM の排他処理システムの初期化を行ないます。 (
OSi_InitVramExclusive())
スレッドシステムの初期化を行ないます。 (
OS_InitThread())
ソフトウェアリセットシステムの初期化を行ないます。(
OS_InitReset())
TWL LIMITED でなければカートリッジライブラリの初期化を行ないます。(
CTRDG_Init())
カードライブラリの初期化を行ないます。(
CARD_Init())
TWL ビルドの場合、WRAM-A/B/C の初期化を行います。 (
MI_InitWramManager())
TWLモードならシステム設定の初期化を行います。 (
SCFG_Init())
パワー制御システムの初期化を行ないます。 (
PM_Init())
Vカウント が 0 になるのを待ちます。
TWLモードならアプリジャンプ用の設定を行います。 (
OSi_InitPrevTitleId())
ARM7
プロセッサ間通信システムの初期化を行ないます。(
PXI_Init())
アリーナの初期化を行ないます。(
OS_InitArena())
ロックシステムの初期化を行ないます。(
OS_InitLock())
IRQ割り込みテーブルの初期化を行ないます。(
OS_InitIrqTable())
例外表示システムの初期化を行ないます。(
OS_InitException())
TWLビルドの場合、MI の初期化を行います。(
MI_Init())
チックシステムの初期化を行ないます。(
OS_InitTick())
アラームシステムの初期化を行ないます。(
OS_InitAlarm())
スレッドシステムの初期化を行ないます。(
OS_InitThread())
リセットシステムの初期化を行ないます。(
OS_InitReset())
カートリッジライブラリの初期化を行ないます。(
CTRDG_Init())
TWLビルドなら、WRAM-A/B/C の初期化を行います。(
MI_InitWramManager())
TWLモードならシステム設定の初期化を行います。(
SCFG_Init())
NITRO、TWL ともにユーザの NitroMain() あるいは TwlMain() に制御が移った後は、最初に OS_Init() を呼び出してください。OS_Init() 内で呼ばれている関数は動作に必須なものであり、順序を変更することは出来ません。
CTRDG に関しては、アクセスしないことが判っている場合には、メモリ占有量を減らす方法が提供されています。CTRDG_Init() 、 CTRDG_DummyInit() を参照してください。
ARM9 側の OS_Init() では、チックシステムの初期化やアラームシステムの初期化は行なっていません。必要ならば、OS_Init() の後に OS_InitTick() 、OS_InitAlarm() を (この順で) 呼び出してください。
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 CTRDG に関する参照先を修正
2009/06/18 TwlMain() について追記
2009/04/13 ARM9側のスレッド初期化について「必要なら」を削除。CTRDG_Init() のメモリ占有量低減について追記
2008/07/11 TWL モードの初期化について記述
2005/07/19 OS_SetIrqStackChecker() を追加
2005/03/14 リンク先のミスを訂正
2005/02/09 MI_Init() 追加、OS_InitLock() へのリンクを追加
2004/12/08 OS_Init() が最初に呼ばれるべき関数であると記述
2004/09/27 CARD_Init() 追加
2004/09/15 修正
2004/08/09 修正
2004/02/19 修正
2003/12/24 初版