hello.c プログラムを実行するには(もちろんですが、rtlinux のブート後にです)、 以下の手順を行わなければなりません:
include rtl.mk all: hello.o clean: rm -f *.o hello.o: hello.c $(CC) ${INCLUDE} ${CFLAGS} -c hello.c
$ make
$ rtlinux start hello
これで hello.o プログラムがメッセージを毎秒出力するのを確認できるはずです。 マシンの設定によっては、コンソールで直接見ることができるはずですが、 そうでなければ以下のコマンドを入力すれば見ることができます:
$ dmesg
プログラムを停止するには、これをカーネルから削除する必要があります。 それを行うには、以下のコマンドを入力してください:
$ rtlinux stop hello
モジュールの組みこみ、削除を行う別のやり方として、それぞれ insmod と rmmod を利用するというのもあります。
ここまでは例となるプログラムが簡単過ぎました。これまで見てきたものと違い、 実際には一つのプログラム中に複数のスレッドが存在するかもしれません。 優先度をスレッド作成時に設定したり、それを後で修正することが可能です。 また、しかるべきスケジューリングアルゴリズムを選択することも可能です。 実は、独自のスケジューリングアルゴリズムを書くことも可能なんです!
我々の例では、thread_code() 関数の先頭に以下の3行を挿入することで、 スレッドの優先度を1に設定し、FIFO スケジューリングを選択できます。
struct sched_param p; p . sched_priority = 1; pthread_setschedparam (pthread_self(), SCHED_FIFO, &p);