マツド・サイエンス研究所

SH-2 Linux上でのリアルタイム OS 開発環境 (その5 HOSのバージョンをV4にする編)

既に述べてあるが、V4a だと周期ハンドラが無かったり、割込み処理でハングアップしたりと不安定な事が判った。同様のプログラムを、V4 で動かしたところ、全く問題なく安定して動作した。

どうも、V4a は開発途中で不安定なようだ。

と言うわけで、今回は、HOS のバージョンを V4 にする話だ。

HOSのダウンロードと解凍及びコンフィギュレーターとライブラリの構築

HOSから、h4_101a.tgzをダウンロード

$ cd ~/
$ tar zxvf h4_101a.tgz
$ cd hos-v4/config/
$ make -f gcc.mak
# cp hos4cfg /usr/cross/bin/
$ cd ../lib/sh/sh2gcc/

ここで、h4sh2.makの中の

sh-hms-gccをsh-elf-gccに
sh-hms-arをsh-elf-arに
sh-hms-ranlibをsh-elf-ranlibに変更する。

$ make -f h4sh2.mak

SH7045用のサンプルプログラムを構築

$ cd ~/hos-v4/sample/sh2gcc/

ここで、gcc.makの中の

sh-hms-gccをsh-elf-gccに
sh-hms-arをsh-elf-arに
sh-hms-objcopyをsh-elf-objcopyに変更する。

また、sample.x に次の行を追加する。

<<< 最初略 >>>
.text :
{
_TEXT_START = . ;
*(.vector)
*(.text)
*(.strings)
*(.rodata)
*(.rodata.*) << この行を追加。
_TEXT_END = . ;
} > rom
<<< 最後略 >>>

$ make -f gcc.mak

なお、私は、SH7045 を持っていないので、上でコンパイルしたプログラムが動作するか確認していない。

ROM 化

「sh7144rom01.tar.gz」をダウンロード

$ cd ~/hos-v4/sample/
$ tar zxvf sh7144rom01.tar.gz
$ cd sh7144rom01/
$ make -f make -f gcc.mak

できた sampleRom.mot を SH-2 ボードに書き込むと、「いわゆる哲学者の食事の問題」を実行する。

ハードウェア操作

「sh7144hw01.tar.gz」をダウンロード

$ cd ~/hos-v4/sample/
$ tar zxvf sh7144hw01.tar.gz
$ cd sh7144hw01/
$ make -f make -f gcc.mak

できた sampleRom.mot を SH-2 ボードに書き込むと、ハードウェアを操作するプログラムを実行する。

注意

ブログのコンテンツの内、「告知」など時期よって情報価値が無くなるのは除いてある。また、コンテンツに付いたコメントは書き込み者に著作権があるものと判断し、ここに持ってきていないので、コメントを見るときは、元々のブログコンテンツを参照してもらいたい。

その他、ブログ発表後、コメントなどの内容を反映するなど、内容を変更しているものもあるので、注意してほしい。