Linux 環境での brickOS アプリケーションの開発


1. Linux での brickOS アプリケーション開発環境

Linux 環境の legOS/brickOS 開発環境は、現在(2004年1月)は、brickOS Ver 0.2.6.10 が標準になっています。 ここでは、Linux 上の brickOS 0.2.6.10 の使用方法、プログラム開発方法を示します。

これにより、RCX 間の通信などの機能が使えるようになりました。ただし、 使用法およびコーディングに若干に変更が必要になります。その詳細を 以下に示します。

なお、Linux 版 brickOS 0.2.6.10 ではサウンド機能を使うと OS がハングアッ プします RCX 間通信機能とサウンド機能の両方を使いたい方は、 Windows 環境での brickOS アプリケーションの開 発 したがって、Windows 環境の brickOS を利用して下さい。

2. ファームウェアの再インストール

以下のようにして、ファームウェアを新しいものに変更して下さい。
  1. RCX の古いファームウェアを以下の方法で、消去します。(電池を抜く必要 はありません。)

    1. RCX の電源を入れる。
    2. On-Off ボタンを押しながら、Prgm ボタンを押す。
      (これによって電源が落ちます。)
    3. 再度、RCX の電源をいれる。このとき「ピ、ピ」とい音がなれば OK です。

  2. ファームウェアのアップロード

    1. USBタワーのパソコンの USB ポートに接続します。接続した際に、「ピッ」という音がして、 USBタワーの緑色のランプが2秒程度点灯します。

      もし、音もせずランプも点灯しないようなら、再度付け直してみて、それでもダメなら、USBタワーを付けた状態で、 PCを再起動して下さい。それでもダメなら、担当者に連絡して下さい。

    2. 次のコマンドをタイプして、RCXにファームウェアをアップロードします。

      $ /usr/brickOS/util/firmdl3 --tty=/dev/usb/lego0 -s /usr/brickOS/boot/brickOS.srec

3. デモプログラム(helloworld)の実行

3.1 Makefile とデモプラグラムのコピー

ホームディレクトリ直下に brickOS というディレクトリを作成し、そこに必要な ファイルを置くこととします。そこにデモプログラムと Makefile をコピーしま す。
$ cd ~
$ mkdir brickOS
$ cd brickOS
$ cp /usr/brickOS/demo/Makefile ./
$ cp /usr/brickOS/demo/helloworld.c ./

3.2 Makefileの編集 (2005年10月からこの作業は必要なくなりました。)

コピーした Makefile のPROGRAMS 行を、コンパイルしたいファイル名に置き換 えます。
vi Makefile
変更前変更後
-- prefix_dir=/usr/brickOS
KERNEL=../boot/brickOS KERNEL=$(prefix_dir)/boot/brickOS
PROGRAMS=helloworld.lx rover.lx linetrack.lx robots.lx c++.lx sound.lx PROGRAMS=helloworld.lx
include ../Makefile.common
include ../Makefile.user
include $(prefix_dir)/Makefile.common
include $(prefix_dir)/Makefile.user
all clean realclean depend::
$(MAKE) -C c++ $@>
#all clean realclean depend::
# $(MAKE) -C c++ $@>

3.3 ソースコードのコンパイル

make コマンドで実行ファイルを作成します。RCX 用実行ファイルの拡張子は lx です。
$ make

3.4 ファイルのアップロード

次のようにしてファイルのコンパイルしたファイル(*.lx)を USB タワーを介して RCX にアップロードします。
$ /usr/brickOS/util/dll --tty=/dev/usb/lego0 helloworld.lx

3.5 実行

Run ボタンを押すと、RCXの液晶パネルに Hello World と表示されます。 ただし、パネル表示の限界から、H と W は正しく表示されませんし、大文字 小文字は適当に変換されます。

4. 環境設定

毎回、 フルパスの dll コマンドを打つのは面倒な ので、シェルの環境設定変更ファイルに、以下の行を加えておきます。

これで次回以降、例えば、helloworld.lx をアップロードする場合は、
$ dll helloworld.lx
ファームウェアを再アップロードする場合は、
$ firmdl3
とタイプすればよいことになります。

なお、変更した~/.cshrc や ~/.bashrcの設定が有効になるのは、再度ログインした後か、 新しく開いた端末(コマンド入力)画面に対してです。

5. タスク型の変更

BrickOS のタスク型は tid_t です。 LegOS では pid_t となっており、いくつかのサンプルやデモプログラムでは pid_t となっている場合がありますので、注意して下さい。 (その場合は、pid_t を tid_t というように、ソースコードを変更して下さい。)

6. ソースコードの再コンパイル

ソースコードを再コンパイルする場合は以下のようにします。
$ make clean
$ make