ここではサポートが終了したH8、特にH8-3069F向け動作可能なMES2(エムイーエス)を、
作者のみついわゆきお(三岩幸夫)さんに許可を得て再配布しています。
個人で手軽に入手できるボード対応の開発環境があれば先に進める、という方々の
「ものづくり」のきっかけやホビーの一端を担えれば幸いです。
私自身は主にSH7084やSH7706ボードでMES2最新版を利用し、業務用途ではSH7084ボードを利用した製品を400台以上出荷しています。
当ページは2024/09/26現在の内容です。
MES2のライセンスはGPL2ですが、信頼性が保証できないという理由でH8向け環境の新規業務用途は推奨されていません。
自己責任となりますので、今後はホビー用途に限定して使用して下さい。
リリース済みの既存製品の保守にほ引き続き使用可能ですが、公開を中止された意図を踏まえた上で自己責任で利用して下さい。
MES2.xはもともとARM7/SuperH向けのシステムとして開発しましたが、当初、適当なボードがなかったので、暫定的にH8に移植し、 |
MES2の業務利用可能な最新版は、SH3/SH2/SH2A向けとして以下の公式ページで配布されています。
https://pctec.org/mes26/
当ページ記述時点の最新は以下の通りです。
・安定版 MES 2.5 r19
・挑戦版 MES 2.6 b14
最新版がリリースされると過去バージョンの公開は無くなります。
ボードの購入時期により公開より新しい開発版が入る事がありますが、上記ページで公開された物が公式版となります。
今までH8ボードを業務利用されていた方も、現行バージョンに移行しやすいようにみついわさん設計の代替ボードが用意されています。
共通技術推進センター https://pctec.org/
ボードコンピュータ販売 https://pctec.org/company/hardware/
・SH7084LAN / SH7084USB / SH7084LANUSBボード
SH7084(SH-2)を用いた安価なボード。MES2以外にTOPPERS/JSP 1.4.3が公式サポートされています。
MES2業務利用でのメインボードと位置付けられており、USB1.0周りにも力を入れているボードです。
なお、現在販売中のSH7084LANにはISP1362のパターンが有る物がありますが、
ISP1362はSL811HST搭載版のSH7084USB/SH7084LANUSBの在庫が無くなり次第の対応だそうです。
・SH7216LAN/USBボード
LAN機能を内蔵したSH7216(SH2A)とUSB2.0のISP1362対応のボード。電力制御や多軸モータ一括制御やFPUが必須な制御向けだそうです。
・SH7706LSR
SH7706(SH-3)を用いた高機能なボード。MES2以外にSH7706LSRではLinux2.6.39.4 / 2.6.28.10 / 2.6.12.6公式サポートされています。
このボードのみ株式会社ティーエーシーでの取り扱いとなります。
T-SH7706LSR
・AT91SAM9260
ARM特設ページ https://pctec.org/arm_top/
また対応ボードとして、旧製品であるInterface誌付録CQ7144A及びその製品版SH7144 リピート基板と、旧製品である業務向けSH7144LANボードがあります。
同じくInterface誌付録のFRK-SH2Aと業務向けSH7262LANについても試作が行われましたが、80MHz高速アクセスのSPI/ROMでも起動速度が遅く
対応中止となったそうです。
Project Standard APIとしてMES3.xでのLinux互換API標準化を推進されるようです。
最新情報は以下を参照ください。
共通技術推進センター スタッフブログ https://pctec.org/blog/
最新版のソースコードについては、みついわさんに直接リクエストして下さい。
正式版の過去リリースのソースコードやホームページ上で公開された配布物は、所持している物は再配布可能ですので
メールフォームから問い合わせ下さい。
ベータ版の物は正式ではないためGPL2適用外です。ソースコードは原則非公開で再配布も禁止されています。
販売元 | 対応ボード | ファイル |
---|---|---|
株式会社 秋月電子通商 |
通販コード:K-00168 AKI−H8/3069FフラッシュマイコンLANボード 通販コード:K-01271 H8/3069Fネット対応マイコンLANボード(完成品) 通販コード:K-02133 AKI−H8/3069Fマイコンボードキット完成品 ※要DRAM 通販コード:K-02298 AKI−H8/3069Fマイコンボードキット完成品[DRAM付] 通販コード:K-00209(販売終了品) H8/3069Fネット対応マイコンLANボード(ボードキット) |
25MHz動作: config.sys 20MHz動作: config.sys |
株式会社 秋月電子通商 |
通販コード:K-00654 H8/3069F USBホストボードキット(完成品) |
config.sys |
株式会社 ティーエーシー | T104-H8M | config.sys |
内容 | ファイル |
---|---|
shellソースコード | shell.c |
libmesソースコード | libmes.zip |
サンプルソースコード | sample.zip |
内容 | ファイル |
---|---|
WinGCC開発環境一式 | gcc23r17.exe |
USB無線LANドライバ | prism.exe |
カーネルソースコード | mes23r17.zip |
カーネルソースコード(修正版/mot同梱) | mes23r17_modify.zip |
ドライバモジュールソースコード(ダウンロード版) | module.zip |
ドライバモジュールソースコード(修正版/exe同梱) | module_modify.zip |
ドライバモジュールmmcソースコード(2.3r15〜) | mmc_23r15.c |
2017/02/14 ドライバモジュールrtcソースコード(修正版) | rtc.c |
2017/02/14 カーネルfatソースコード(修正版) | fat.c |
2017/02/14 カーネルscsiソースコード(修正版) | scsi.c |
内容 | ファイル |
---|---|
WinGCC開発環境一式 | gcc23r18.exe |
USB無線LANドライバ | prism.exe |
カーネルソースコード | mes23r18.zip |
カーネルソースコード(修正版/mot同梱) | mes23r18_modify.zip |
ドライバモジュールソースコード(ダウンロード版) | module.zip |
ドライバモジュールソースコード(修正版/exe同梱) | module_modify.zip |
2017/02/14 ドライバモジュールrtcソースコード(修正版) | rtc.c |
2017/02/14 カーネルfatソースコード(修正版) | fat.c |
2017/02/14 カーネルscsiソースコード(修正版) | scsi.c |
CBarでのコンパイルは、以下の組み合わせで行う。(H8-3069F向け)
種別 | 環境設定 | プロジェクト | 備考 |
---|---|---|---|
ユーザプログラム shell.cやサンプル 自作プログラム | User_H8.xml | 新規作成 | − |
ドライバモジュール | Device_H8.xml | module.zip内の各.cbaファイル | − |
カーネル ドライバ統合版 | MES_3069.xml | mes2.cba | − |
カーネル ドライバ分離版 | MES_3069.xml | core.cba | − |
libmes_h8eライブラリ ELFフォーマット | Library_H8.xml | libmes.cba | libmes.a→libmes_h8e.aにリネーム |
libmes_h8cライブラリ COFFフォーマット | Library_H8_coff.xml | libmes.cba | libmes.a→libmes_h8c.aにリネーム |
libdev_h8eライブラリ ELFフォーマット | Library_H8.xml | libdev.cba | libdev.a→libdev_h8e.aにリネーム |
libdev_h8cライブラリ COFFフォーマット | Library_H8_coff.xml | libdev.cba | libdev.a→libdev_h8c.aにリネーム |
「MES Ver〜上で動作するユーザープログラムとデバイスドライバは必ずgcc25〜.exe使って開発をしてください。」
MES2のダウンロードページでは、上記のように実行環境と開発環境のバージョンを必ず一致させるようにという旨の記述がある。
カーネル本体に注目しがちだが、環境設定,フォルダ構成,ヘッダ,ライブラリ,スタートアップルーチン,リンカスクリプト,ツール類が更新される事もある。
過去バージョンでコンパイルした実行モジュールが動作不可な時は、対応したWinGCC環境で再コンパイルを行うと動作する事が多い。
また随時不具合対応が行われているので(当ページのH8向け配布物は最終版)、過去バージョンで動作不審な時は最新版で一度検証した方が良い。
また、動作実績のある過去バージョンの開発環境は、開発したソースコードも含めて一式で残しておくと安全である。
CBarでのコンパイルは、プロジェクト名以外の実行モジュールが生成されたり、実行時の原因不明に思える不審な挙動を防ぐため、以下の手順で行う。
1)左のツリー部分の最上部に表示されているプロジェクト名を選択
2)実行→クリア
3)実行→コンパイル
実行モジュール名はファイル名から得たプロジェクト名ではなく、ツリービューから取得している。
ツリービューを最後に操作した箇所のファイル名を取得してしまう場合があるため、プロジェクト名を選択状態にしてからコンパイルを行う。
ソースコードで不具合が見つからないのにプログラムが正常動作しない状況では、更新したソースコード以外の中間ファイルが原因の場合がある。
クリアしてからコンパイルを行う事で中間ファイルを再作成して不具合を回避する。
CBarは環境設定ファイル内の「%AppPath%」記述を自身のパスに置き換え、Makefileを作成し、以下のコマンドラインを実行している。(H8-3069F向け)
以下は「C:\WinGCC」にインストールを行い、「D:¥MES_Projects¥shell」にshell.cのプロジェクト一式を置いた状態である。
バッチファイル | 引数1(%1) | 引数2(%2) | 引数3(%3) |
---|---|---|---|
CBarのパス¥kick.bat | 環境設定項目のパス内容 | プロジェクトのパス | CBarのドライブ |
C:¥WinGCC¥app¥kick.bat | %AppPath%..¥local¥bin | D:\MES_Projects\shell | C: |
kick.batでは以下の処理を行い、gccでコンパイル処理を実行する。(H8-3069F向け)
1)xcopyで「環境設定項目のパス¥tmp¥」に「プロジェクトのパス¥*.*」相当を丸ごとコピー
2)環境変数「PATH」内容を退避
3)環境変数「PATH」に環境設定項目のパスを設定
4)CBar自身のドライブにドライブを変更
5)プロジェクト内容をコピーしたフォルダに移動
6)makeを実行し標準出力や標準エラー出力内容はlog1.tmp,log2.tmpにリダイレクト
7)環境変数「PATH」内容を退避していた値に戻す
8)xcopyで.c,.h,.txt以外をプロジェクトのパスにコピー
9)プロジェクト内容をコピーした「環境設定項目のパス¥tmp¥」の全ファイルを削除
CBarに制御が戻ると、log1.tmp,log2.tmp内容を処理結果として表示する。
【参考】現行版MES2でCBarをコンパイル利用するには
MES2公式ページでダウンロード可能なtools.zipの中にCBarの2006年10月時点の旧ソースコードが含まれる。
現在のMES2ではは内部で呼び出しているkick.batと環境設定の仕様が変更されている為、そのままでは利用する事が出来ない。
自分でコンパイルしたCBarを最新版で利用するには、ソースコードのUMain.pasとkick.batを変更する必要がある。
CBarの環境設定にある「パス」の項目には、空白区切りで3個のパスが指定されている。
kick.batでは、1個目は既存の動作、2〜3個目はパスを通す為に環境変数「PATH」に追加している。
上記の表と比較し、受け渡し内容や並び順を合わせれば良い。
User_SH_coff.xmlでの例:
バッチファイル | 引数1(%1) | 引数2(%2) | 引数3(%3) | 引数4(%4) | 引数5(%5) |
---|---|---|---|---|---|
CBarのパス¥kick.bat | プロジェクトのパス | CBarのドライブ | 環境設定項目のパス内容(%3,%4,%5) | ||
C:¥WinGCC¥app¥kick.bat | D:¥MES_Projects¥shell | C: | %AppPath%..¥local¥sh-tools¥bin | %AppPath%..¥local¥sh-tools¥sh-coff¥bin | %AppPath%..¥local¥sh-tools¥libexec¥gcc¥sh-coff¥4.0.0 |
MES2をバージョン別のフォルダにインストールして共存させて手書きMakefileでなくCBarを使用する場合、
使用したいバージョンのフォルダにあるcbar.exeを起動し、設定ファイルは同じフォルダの物を使用する。
下記Disktoolの「System File」設定も必要。
WinGCCは「C:¥wingcc」にインストールする事を前提にしている。
但し、インストール先は選択可能であり、HDD事情やデュアルブート環境のため「C:」にインストールできなかったり、
複数バージョンを保持したいケースもある。
Disktoolの設定ファイルでは、ターゲット別のMES2カーネルイメージが「C:¥wingcc¥app」のパスで記述されている。
このパスはインストール時に更新されないため、「C:¥wingcc」以外にインストールする際は「System File」ボタンの操作が必須となる。
また、初回のみカーネルイメージを選択しておくとトラブルが少なくなる。
ターゲット別のMES2カーネルイメージの割り当て方
1)対象となるターゲットをコンボボックスで選択する。
2)「System File」ボタンを押すと、メッセージが表示される。
「The Disktool might not opration normally.」「May the Disktool rewrite the system file?」「Do really?」
「C:¥wingcc」にインストールする事を前提としているため、設定変更で動作しなくなるのを防ぐために、再三確認される。
3)各メッセージに順次「はい(Y)」と答える。
4)ファイル選択画面になるので、フォルダが正しい事を確認した上で「C:¥wingcc¥mes2.mot」相当のファイルを選択する。
コンボボックスで選択できるターゲットを増減させる場合はdisktool.iniをテキストエディタで直接編集する必要がある。
その結果うまく動作しなくなった場合は以下の手順を試みる。
1)Disktoolを終了
2)Disktool.iniの未編集な[ターゲット名]とmotファイルの組をコピー&ペースト
3)ターゲット名だけを変更してDisktool.iniを保存
4)Disktoolを起動
5)変更したターゲット名を選択して「System File」で正しいmotファイルを選択
1)「DiskLoad」で選択したフォルダの親(外側)に、[選択フォルダ名].motファイルを書き込みモードでオープンする。
2)選択ターゲットに対応するカーネルイメージの内容を、丸ごと[選択フォルダ名].motファイルに出力する。
3)カーネルイメージを読み、リンカスクリプトで埋め込んだマーカー"12345678"を検出、直前にあるuser領域の先頭アドレスを得る。
(参考:SH2も同様。SH3ではリンカスクリプトで埋め込まれ、リトルエンディアンで"78563412"となる。)
4)選択フォルダ内のファイルを検索し、順次S2レコードの書式で[選択フォルダ名].motに出力する。
(出力内容はファイル名,サイズ,ファイル内容で、アドレスはuser領域の先頭アドレス+出力済みサイズとなる。
5)[選択フォルダ名].motファイルを閉じる。
COMポートの無いPCでh8flushを使用する場合は、秋月電子通商の「USB・シリアル変換ケーブル」が推奨されている。
通販コード:M-00720, M-00721
USB・シリアル変換ケーブル[スケルトン]
通販コード:M-02746, M-02747
USB・シリアル変換ケーブル[グレー色]
当方では、ドライバは PL2303_Prolific_DriverInstaller_v1.7.0.zip (2012/08/01リリース) 使用
それ以降の最新版は試していません。
ダウンロード先:
http://www.prolific.com.tw/
Languageは「English」のままで、Account/Passwordともに「GUEST」と入力して「GO」
→「Click here for PL2303 USB to Serial Drivers」のリンクをクリック
ページ内で「PL2303_Prolific_DriverInstaller_」を検索してリンクをクリック(ブラウザでの検索操作はCtrl+Fなど)
Windows XP SP3 / Windows 7 32bit,64bitで確認。
当方使用中のケーブル:
・iBUFFALO Arvel USBシリアルケーブル SRC06-USB
・CableCreation CD0480