示例#1
0
/*
 *  カーネルの起動
 */
void
sta_ker(void)
{
	/*
	 *  TECSの初期化
	 */
#ifndef TOPPERS_OMIT_TECS
	initialize_tecs();
#endif /* TOPPERS_OMIT_TECS */

	/*
	 *  ターゲット依存の初期化
	 */
	target_initialize();

	/*
	 *  各モジュールの初期化
	 *
	 *  タイムイベント管理モジュールは他のモジュールより先に初期化
	 *  する必要がある.
	 */
	initialize_kmm();
	initialize_tmevt();								/*[ASPD1061]*/
	initialize_object();

	/*
	 *  初期化ルーチンの実行
	 */ 
	call_inirtn();

	/*
	 *  高分解能タイマの設定
	 */
	current_hrtcnt = target_hrt_get_current();		/*[ASPD1063]*/
	set_hrt_event();								/*[ASPD1064]*/

	/*
	 *  カーネル動作の開始
	 */
	kerflg = true;
	LOG_KER_ENTER();
	start_dispatch();
	assert(0);
}
/*
 *  カーネルの起動
 *    NMIを除く全ての割込みがマスクされた状態(全割込みロック状態に相当)で呼び出される.
 */
void
sta_ker(void)
{
	target_initialize();
	
	initialize_object();
	
	call_inirtn();
	
	/*
	 *  カーネルの動作を開始する.
	 */	
	kerflg = true;
	
	/* ディスパッチャを起動し,タスクの動作を開始する */
	LOG_KER_ENTER();
	start_dispatch();
	assert(false);
}