マツドサイエンティスト・研究日誌 保存版
SH-2 Linux上でのリアルタイム OS 開発環境 (その5 HOSのバージョンをV4にする編)

初出:2006年10月13日 元々のブログ・コンテンツへのリンク
カテゴリーのインデックス: パソコン・インターネット
シリーズのインデックス: SH-2・リアルタイム OS Linux

既に述べてあるが、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 ボードに書き込むと、ハードウェアを操作するプログラムを実行する。
inserted by FC2 system