APIのプロトタイプ宣言を下記に示す。
/* Queueの初期化 割込禁止 */ void init_os( void ); /* メインルーチン */ void task_main( void ); /* TCB生成 割込禁止 */ tcb_type *create_tcb( void (*task)( byte state )); /* メールボックス生成 割込禁止 */ mbx_type *create_mbx( char *msg_buff, byte size ); /* イベントフラグ生成 割込禁止 */ flag_type *create_flag( void ); /* セマフォ生成 */ sem_type *create_sem( byte size ); /* タスク起床 */ void start_task( tcb_type *tcb ); /* タスク起床 割込禁止 */ void start_task_i( tcb_type *tcb ); /* タスク終了とTCB解放 */ void exit_task( tcb_type *tcb ); /* タスク終了とTCB解放 割込禁止 */ void exit_task_i( tcb_type *tcb ); /* 起床事由の取得 */ byte get_trg( tcb_type *tcb ); /* 遅延遷移 */ void delay_task( tcb_type *tcb, word time ); /* タイムアウト設定 */ void set_timeout( tcb_type *tcb, word time ); /* タイムアウト解除 */ void clear_timeout( tcb_type *tcb ); /* 1msタイマ割込み 割込禁止 */ void timer_1ms_int( void ); /* メールボックスにメッセージ登録 */ byte send_msg( char *msg, byte len, mbx_type *mbx ); /* メールボックスにメッセージ登録 割込禁止 */ byte send_msg_i( char *msg, byte len, mbx_type *mbx ); /* メールボックスからメッセージ待ち */ void wait_msg( mbx_type *mbx, tcb_type *tcb ); /* メールボックスからメッセージポインタ取得 */ char *get_msg( mbx_type *mbx ); /* メールボックスからメッセージ長さ取得 */ byte get_msglen( mbx_type *mbx ); /* イベントフラグをセット */ void set_flag( flag_type *flag ); /* イベントフラグをセット 割込禁止 */ void set_flag_i( flag_type *flag ); /* メールボックスクリア */ void clear_msg( mbx_type *mbx ); /* イベントフラグをクリア */ void clear_flag( flag_type *flag ); /* イベントフラグをクリア 割込禁止 */ void clear_flag_i( flag_type *flag ); /* イベントフラグ待ち */ void wait_flag( flag_type *flag, tcb_type *tcb ); /* セマフォひとつ解放 */ void signal_sem( sem_type *sem ); /* セマフォで空き待ち */ void wait_sem( sem_type *sem, tcb_type *tcb ); /* タスクをスライスして継続実行 */ void slice_task( tcb_type *tcb ); /* 遷移時の状態変数を変更 */ void set_next_state( tcb_type *tcb, byte next_state );Posted by やんもす at 2007年07月13日 00:19
RTF-OS ですか。ちょっとかっこいいですね^^
私も30日でOSを作るとかいう本を読んで勉強してますが、睡眠薬代わりになってて、ちっとも頭に入りません。リアルタイム風ですらはるか彼方です。
見ました「30日でできる!OS自作入門」700ページ!
内容が濃そうですね。
もう何ヶ月も前に買ったのに、まだ4分の1しか読んでません。途中で、「はじめて読む486」が読みたくなって脱線したのもありますが、、、
就寝前に読んでると1日分が何日にもなってお得です^^
リアルタイムふうOSのコンテンツに下記セクションを追加。
8.時間管理