OS_Init

構文

#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 初版