マツドサイエンティスト・研究日誌 保存版
SH-TINY その3 リアルタイム OS

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

ちょっと間が開いたが、SH-TINY にリアルタイム OS の HOS-V4 を載せる話題だ。
実は私よりも先に、 適当電子工作研究所SH/TinyにHOS-V4を載せよう と言うコンテンツで、SH-TINY に HOS-V4 を載せる話が公開されている。このコンテンツの場合、アルファプロジェクトのSH/Tiny基板に、ルネサス純正のコンパイラの SHC 体験版を使って、HOS-V4 を入れる方法が書いてある。(コンパイラについては推測)
今回、私は、秋月の SH-TINY チップを使った自作マイコンに gcc を使って HOS-V4 をインストールしたのだが、適当電子工作研究所のコンテンツが大変参考になった。このコンテンツが無かったら、今ごろ、泥沼に陥っていたかも知れない。「適当電子工作研究所」の hamayan さんに感謝、感謝である。

さて、何がそんなに参考になったかと言うと、SH-TINY の CPU 部分は、SH-2 と全く同じでは無く、微妙に違う部分がある。具体的に言うと、「スロット不当命令例外処理に関する注意事項」である。正直、当初これは全く把握していなかった。HOS-V4 では、タスク切替えに、この機能を使っているので、気が付かなかったら、混乱していたと思う。
その他、 例外処理ベクタが増えていたり、メモリーや周辺機器のアドレスが変更になっている。

この中で、「スロット不当命令例外処理」と「例外処理ベクタ」の変更部分は、HOS-V4 のカーネル自体に変更が必要にある。以前の私の コンテンツ を参考にした人も居るかもしれないが、ここでは改めて、最初から、SH-TINY 用に HOS-V4 をインストールする方法を示そう。

HOSのダウンロードと解凍及びコンフィギュレーターとライブラリの構築
HOS から、h4_101a.tgzをダウンロード
sh2gcc.tgz をダウンロード

$ cd ~/
$ tar zxvf h4_101a.tgz
$ cd hos-v4/config/
$ make -f gcc.mak
# cp hos4cfg /usr/cross/bin/
$ cd ../src/sh
$ rm -rf sh2gcc
$ tar zxvf sh2gcc.tgz
$ 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


サンプルプログラムのROM 化
sh7125test.tgz をダウンロード

$ cd ~/hos-v4/sample/
$ tar zxvf sh7125test.tgz
$ cd sh7125test/
$ make -f gcc.mak


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