{RT-Linuxの API}
2000年9月24日時点での RTLinux Man Pages で紹介されている API です。
- gethrtime.3
-
システムが起動してからカウントを始めるリセットや調整が不可能な時間を返してくる関数
周波数は 1193180 Hz によって管理している。
- clock_gethrtime.3
-
時間を返してくる関数
周波数は 1193180 Hz で時間を管理している gethrtime だと多少誤差がでてくるため他の方法で行っている。
以下の方法で時間を管理できる。
- CLOCK_REALTIME
-
The standard POSIX clock
- CLOCK_8254
-
The clock that is used on non-SMP x86 systems
- CLOCK_APIC
-
The local APIC clock on SMP x86 systems.
- pthread_attr_getcpu_np.3
-
RT-Linux ではどのスレッドがどのCPUで実行されているのか調べてくれません。また,スレッドはそのスレッドを呼び出したCPUで実行されます。しかし RT-Linux はそのスレッドがどこで実行されているかを聞いてきます。
そこでこの関数を用いて pthread の属性を調べます。
- pthread_attr_setcpu_np.3
-
pthread の属性を変更します。
- pthread_delete_np.3
-
リアルタイムスレッドを消去します。
- pthread_setfp_np.3
-
浮動小数点数の利用の可,不可を決定します。
0 で不可, それ以外で可となります。
- pthread_suspend_np.3
-
pthread_wakeup_np を呼び出すまでスレッドをサスペンドさせます。
- pthread_wakeup_np.3
-
pthread_suspend_np によってサスペンドさせたスレッドを復帰させます。
- pthread_make_periodic_np.3
-
周期的なスレッドを作成します。
- pthread_wait_np.3
-
pthread_make_periodic_np によって指定された次の開始時間までスレッドを終了させます。
- rt_com.3
-
RT-Linux 用のシリアルポートドライバです。
- rt_com_read.3
-
シリアルポートからデータを読み込みます。
- rt_com_setup.3
-
シリアルポートに関するパラメータを変更します。
- rt_com_table.3
-
シリアルポート1つにつき1つ作られるテーブルです。
- rt_com_write.3
-
シリアルポートへデータを送ります。
- rtf.4
-
RT-FIFO 用のキャラクタ型デバイスのこと
メジャーナンバ 150 , マイナーナンバ 0-63
デバイスファイルは "/dev/rtf" になります。
- rtf_create.3
-
RT-FIFO を作ります。
その際,名前とサイズを決定します。
- rtf_create_handler.3
-
RT-FIFO 用のハンドラをインストールします。
ハンドラは Linux のプロセスが RT-FIFO にアクセスする度に呼び出されます。
- rtf_destroy.3
-
rtf_create によって作られた RT-FIFO の削除。
- rtf_get.3
-
RT-FIFO からデータを読み込みます。
- rtf_put.3
-
RT-FIFO へデータを書き込みます。
- rtl_request_irq.3
-
IRQ への割り込みを行うリアルタイムハンドラのインストール。
- rtl_free_irq.3
-
IRQ への割り込みを行うリアルタイムハンドラの開放。
- rtl_get_soft_irq.3
-
ソフトウェアハンドラのインストール。
- rtl_free_soft_irq.3
-
ソフトウェアハンドラの開放。
- rtl_getcpuid.3
-
現在スレッドの実行されている CPU の ID を調べる。
- rtl_getschedclock.3
-
リアルタイムスケジューラの利用しているクロックの ID を返してきます。
- rtl_global_pend_irq.3
-
Linux への割り込みを行う IRQ のスケジュールを決める。
- rtl_hard_disable_irq.3
-
IRQ を使用不可にする
- rtl_hard_enable_irq.3
-
IRQ を使用可にする。
- rtl_allow_interrupts.3
-
cpu への割り込み処理の許可。
- rtl_no_interrupts.3
-
割り込みに関するパラメータを保存してから割り込みの中止。
- rtl_restore_interrupts.3
-
rtl_no_interrupts によって保存されたパラメータを読み込んでから割り込み可能にする。
- rtl_stop_interrupts.3
-
cpu への割り込み処理の中止。
- rtl_setclockmode.3
-
クロックモードの設定。
- sigaction.2
-
RT-Linux の POSIX 信号の操作用関数
- rtl_v1.3
-
以下の API はRT-Linux Ver.1.x で使用され,Ver.3 でも利用できます。
今後プログラムを作成するときには,POSIX ベースの Ver.2.0 以降の API を利用することを推奨する。
- free_RTirq(unsigned int irq)
-
割り込みハンドラの開放
- request_RTirq(unsigned int irq, void (*handler)(void))
-
割り込みハンドラのインストール
- rt_get_time(void)
-
時間を返してくる関数
バグがあるらしいので gethrtime を今後使用する。
- rt_task_init(RT_TASK *task, void (*fn)(int data), int data, int stack_size, int priority)\index{rt_task_init@rt_task_init}
-
リアルタイムタスクの作成をします。
- rt_task_delete(RT_TASK *task)
-
rt_task_init で作成されたリアルタイムタスクの削除をします。
- rt_task_make_periodic(RT_TASK *task, RTIME start_time, RTIME period)
-
この関数により指定された間隔でタスクを実行さるため,マークをつけます。
- rt_task_suspend(RT_TASK *task)
-
タスクをサスペンドします。
- rt_task_wait(void)
-
rt_task_make_periodic で指定された時間までタスクを終了します。
- rt_task_wakeup(RT_TASK *task)
-
rt_task_wait でサスペンドしたタスクを復帰させます。
- rt_use_fp(int allow)
-
浮動小数点数の使用の可、不可を決定します。
0 で不可,それ以外で可となります。
- rtf_create(unsigned int fifo, int size)
- rtf_create_handler(unsigned int fifo, int (* handler)(unsigned int fifo))
- rtf_destroy(unsigned int fifo)
- rtf_get(unsigned int fifo, char *buf, int count)
- rtf_put(unsigned int fifo, char *buf, int count)
- rtf_resize(unsigned int fifo, int size)