リアルタイムふうOS 全体の構成とAPI

全体の構成とAPI

リアルタイムOSの勉強のために作成したフレームワークです。タスクが移り行く様はなかなかおもしろかった。

Over view

全体の構成図を下記に示す。1つのモジュールは1つの初期化ルーチンと1つ以上のタスクを持つ。各タスクの同期はOSが仲介する。

Block diagram

API

  1. タスク制御と時間管理に関するAPI
名称 処理内容
init_os OSの初期化
task_main メインルーチン無限ループ
create_tcb ユーザタスクを登録するTCBを作成
start_task タスクを実行待ちリストに登録する
start_task_i 割込みルーチン用のstart_task処理
exit_task タスクを終了するTCBを解放
exit_task_i 割込みルーチン用のexit_task処理
get_trg 状態遷移した理由を取得
delay_task 実行を指定時間だけ中断する
set_timeout 実行を指定時間だけ中断する(delay_taskと同じ)
clear_timeout 中断後の再開をキャンセルする
timer_1ms_int 1ms周期タイマ割込みで行う処理(タイムアウト判定)
slice_task 実行を中断しCPUを解放する
set_next_state 次の状態遷移変数値を設定
  1. イベントフラグに関するAPI
名称 処理内容
create_flag イベントフラグFLAGを作成
set_flag イベントが発生する(フラグがTRUE)まで待つ
set_flag_i イベントを発生(フラグをTRUEに設定)
clear_flag 割込みルーチン用のset_flag処理
clear_flag_i イベントを消去(フラグをFALSEに設定)
wait_flag 割込みルーチン用のclear_flag処理
  1. セマフォに関するAPI
名称 処理内容
create_sem セマフォSEMを作成
signal_sem セマフォwait動作(リソースが空くまで待つ)
wait_sem セマフォにsignal動作(リソースを1つ解放する)
  1. メールボックスに関するAPI
名称 処理内容
create_mbx メールボックスMBXを作成
send_msg メールボックスにメッセージが受信されるまで待つ
send_msg_i メールボックスにメッセージを送信
wait_msg 割込みルーチン用のsend_msg処理
get_msg メッセージを取得
get_msglen メッセージの長さを取得

コメントを残す

メールアドレスが公開されることはありません。