アクセスカウンタ
Now loading...
最近のエントリー
アーカイブ
検索


リンク
Powered by
Movable Type3.35

2007年07月13日

リアルタイムふうOS

5月の連休の時、小規模な電子工作で使うリアルタイムふうなOSを作成した。 備忘録代わりに右にまとめた。「リアルタイムふうOS
いくつかの装置に利用したが今のところもくろみ通りに動作している。かといって細かいデバッグはしていない。

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を作るとかいう本を読んで勉強してますが、睡眠薬代わりになってて、ちっとも頭に入りません。リアルタイム風ですらはるか彼方です。

投稿者: ken : 2007年07月13日 00:38

見ました「30日でできる!OS自作入門」700ページ!
内容が濃そうですね。

投稿者: やんもす : 2007年07月13日 21:13

もう何ヶ月も前に買ったのに、まだ4分の1しか読んでません。途中で、「はじめて読む486」が読みたくなって脱線したのもありますが、、、
就寝前に読んでると1日分が何日にもなってお得です^^

投稿者: ken : 2007年07月16日 22:31

リアルタイムふうOSのコンテンツに下記セクションを追加。
8.時間管理

投稿者: やんもす : 2007年09月02日 23:02
コメントを投稿する


(非公開です。無記入でも可)

(公開されます。無記入でも可)

左の情報をクッキーに保存しますか?