AICHI HEIYA presents

H8 3052Fの使い方メモ

ホームページをいくつか見、これなら使えると思い衝動買い。
世の中そんなに甘くはなかった。
普段はワードやエクセルだけのwindowsユーザーには、あまたのホームページの丁寧な説明も、ちと敷居が高い。
それにしてもCYGWINやら、パソコン関連の用語はどう発音するのか、わからぬのが多く、ここで躓くは我のみや?

以下は最新を上位に記す。下位の誤りを正すときあり。


NO.4  不見識を恥ず

H8/OS使いしにあたり、すばらしきソフト既に在りし。
我知らず、不見識を恥ず。
H8DEV なるソフトにて、下記に存す。
http://will2.homeip.net/h8os/h8dev/h8devf.htm

しかるにH8/3052F、未だ対応せざるが、作者より快諾を得し、
我、心より感謝するものなり。

他にも、あまたの情報満載なる。
http://will2.homeip.net/h8os/index.htm
必覧のページなり。

H8DEV 3052F対応なるまで、他事いそしむことにす。
具体には、PENTIUMU166 活用を予定すなり。
 


NO.3 
H8/OS の RAM/ROM 作成を GCC Developer Lite にて実現せり。環境は、ほぼ整えり。

具体には、以下の手順なり。

PLUS3052.motを書き込むなり。
  GCC Developer Lite の外部ツールにH8WriteTurboを登録し、
 オプションにPLUS3052.motをフルパスにて記述せし手もありしが、
  登録制限数もあるなり。各自の手はずにて整えられよ。

▲宗璽垢鮟颪なり。
    #include <h8/reg3048.h>
    #include <h8/syscall.h>
    #include <h8/printf.h>
  よりはじめよ。
  (geocities のホームページ作成ツールを使いし。しばし不等号をタグと見誤られん。
  h8/reg3048.h h8/syscall.h h8/printf.h を設定せし。)
  includeフォルダーの設定を忘るるな。
    h8/reg3048.hを拡張・代替せしは、各自の手はずなり。

コンパイルするなり。
  アセンブラ ramcrt0.S
  リンカ ram3052.x
  オプション -mint32

  エラーありしは、正すなり。

PUT.exe にて転送するなり。
    外部ツールに -e オプションとともに"($PGENE)"を設定せし、便利なり。

これにて、RAM動作するものなり。

 支障なかりせば、ROM化するなり。

.丱奪船侫.ぅ襪鰺儖佞擦掘2罎c:\H8OS なるフォルダーにH8/OSソースを展開せり。
 GCC Developer Lite 外部ツールに 本バッチを登録 オプションに ($SRC) を設定せり。

 簡略にバッチの機能を説明す。

' H8ソースのフォルダーへ移動
 cd c:\h8os
' GCC Developer Liteへパスを設定
 SET PATH=C:\Program Files\BestTech\GCC Developer Lite\GCC\H8\bin
' kern3052をコンパイル
h8300-coff-gcc -O -mh -g -mint32 -DH8_3048 -DH8_300H -DREGTYPE=char -T sys3052.x -nostartfiles crt/30xxcrt0.S -o kern3052.coff main.c init.c misc.c sio.c lcd.c ne2000.c timer.c ip.c arp.c udp.c tcp.c ata.c int_h8.c ps2.c keyboard.c i2c.c eeprom.c rtc.c print.c system.c -lc
 ' kern3052をmotへ変換
h8300-coff-objcopy -O srec kern3052.coff kern3052.mot
 ' com3052.x 3052F用リンカをcommandフォルダーへコピー
copy com3052.x command\com3052.x
 ' バッチファイルのオプションで指定したファイルをcommandフォルダーへtarget.cと名づけてコピー
copy %1 command\target.c
 ' commandフォルダーへ移動
cd command
 ' target.cをkernelと連結するための準備用にコンパイル
h8300-coff-gcc -O -mh -g -mint32 -DH8_300H -DFREQ=25 -T com3052.x -nostartfiles ../crt/30xxcrt0.S -o pretarget.coff target.c -lc
 ' 準備用ターゲットをmotに変換
h8300-coff-objcopy -O srec pretarget.coff pretarget.mot
 ' フォルダーを上位へ(戻る)
 cd ..
' kernelと準備用ターゲットを連結(完成)
 copy /b kern3052.mot + command\pretarget.mot target.mot
' 完成したmotを書き込むためにh8wt.exeを使用。パスをセット
SET PATH=C:\Program Files\H8WriteTurbo
' 完成したmotをh8wt.exeで書き込む
h8wt.exe target.mot
' 終了
pause

以上なり。


(上位にて誤り訂正、補足せしことあり。注意されよ。) 

NO.2
 ROM化を試みる。

まずは、誤り、不足を正すことから始めるなり。

  1. GCC Developer Liteにて、-mint32 の設定を怠ることなし。
    ツール⇒GCCオプション⇒etc に記すべし。
  2. 先だってつくりし、3052_h8.h なるの int を short int に置き換えるべし。
    ただし、long int はそのままにおくべし。

 H8/OSのページに在りし、kernel3052.motなると自らつくりしmotなるを連結せれど、
我が3052Fの沈黙せしこと、石の如し。
されば、kernel3052.mot+com3052.mot よりなる plus3052.mot の動きは麗しく、
command.c なるファイルに代え、我がソースを同名にて置き、
plus3052.motを作るや、我が想いかなうなり。
しかるに、次なるバッチファイルを作成せり。
 @ECHO On
cd c:\h8os
SET PATH=C:\Program Files\BestTech\GCC Developer Lite\GCC\H8\bin
h8300-coff-gcc -O -mh -g -mint32 -DH8_3048 -DH8_300H -DREGTYPE=char -T sys3052.x -nostartfiles crt/30xxcrt0.S -o kern3052.coff main.c init.c misc.c sio.c lcd.c ne2000.c timer.c ip.c arp.c udp.c tcp.c ata.c int_h8.c ps2.c keyboard.c i2c.c eeprom.c rtc.c print.c system.c -lc
h8300-coff-objcopy -O srec kern3052.coff kern3052.mot
copy com3052.x command\com3052.x
copy %1 command\target.c
cd command
h8300-coff-gcc -O -mh -g -mint32 -DH8_300H -DFREQ=25 -T com3052.x -nostartfiles ../crt/30xxcrt0.S -o pretarget.coff target.c -lc
h8300-coff-objcopy -O srec pretarget.coff pretarget.mot
cd ..
copy /b kern3052.mot + command\pretarget.mot target.mot
SET PATH=C:\Program Files\H8WriteTurbo
h8wt.exe target.mot
pause

    各々の環境にてpath、cd先などは書き換えられるべきものなり。

   また、本バッチ、GCC Developer Lite 外部ツールより使いしことが前提なり。
   
($SRC)をオプションに記すなり。

見目麗しきこと、この上なし。
plus3052.mot なるを入れたる3052fにて、RAM設定によりテストし、
しかるのち、
上記バッチを外部ツールボタンより起動しROM化したmotなるが自動に入りしば、
心なしや、動きも軽やかなり。

されど、100回とありし制限や、知らぬうちに伸びしとのこと。RAM必然のことわりは今やなし。
H8/OSなる機能をいかに使いこなすかが、次なる課題となりぬ。 

H8/OSにて補足なり。
○syscall.pd にてシリアル通信速度設定の命令なる sio_speed にて HZ とあるは、MHZなると思料。
○tech3048.pdf にて exec fff600 とありしは、exec fff040 なると思料。

しかるに、その機能の素晴らしきこと、一切曇ることなし。


(上位にて誤り訂正、補足せしことあり。注意されよ。)

NO.1
準備
A ソフトのインストール

  1. 付属のCYGWINとやらをインストール
    キット付属のCDからインストール。
    次へ次への単純ボタン押しに慣らされた身には、初期設定を変えるなど思いもよらず。
    CDのHTMLファイルはよく読むべし。
    また、H8 WRITER TURBOも忘れずインストール。motファイルに関連づけせよ。

  2. 統合ソフトをインストール
    上のソフトでは、なにやらわからず、統合ソフトを探す。

    GCC Developer Lite なる ソフトをインストール。
    こちらのページのダウンロードより探されよ。
     
    http://www.besttechnology.co.jp/
    インストール時は、3052Fのみとせり。使用時に迷わずよろし。

    とても便利なるソフトにて、感謝の言、本欄では書ききれず。
    HELPにありし、BestTechnology ロボティクスチームの

     「GCCでコンパイルするための情報を自動的に作り出せれば開発は楽になりますが、それだけではWindowsというOS上で動作するメリットは半減してしまいます。GCC Developerはそれらにエディタ機能・コンパイル作業実行・簡易デバッグ情報表示を付加することで、組み込みシステム向けの統合環境として作られました」

    をはじめ、その真摯な姿勢には、いたく感銘せり。

B 100回のみではちと困る

    書き込みの保証は100回までとあり。
    LCDへHELLO表示まで、十数回は試みた。これでは、ちと困る。

  1.  RAM上で開発できるソフトがあるとホームページで知り、H8/OSをダウンロード。
     http://www.linet.gr.jp/~mituiwa/h8/index-j.html

    まずはドキュメントをプリントするなり、よく読むべし。
    次に勧めるは、ソースのダウンロード。
    我が見し時は、 h8-os-sources-3.51a.tar.bz2 があり。
    解凍は、CYGWINも可なるが、Lhaca デラックス版 1.18 などのが楽なりと思料。

  2. 解凍後できた、includeフォルダーの中身をGCC Developer LiteにH8名のフォルダーを作りコピーすれば、
    後の作業は楽なり。具体には、
    BestTech\GCC Developer Lite\GCC\H8\h8300-coff\include 
    に h8 フォルダーを作成。そこにH8/OSのinclude フォルダーの中身をコピーせり。
     
  3. plus3052.motの手はず
    H8/OSのホームページのダウンロードより plus3052.mot をダウンロード。
    GCC Developer Liteによる作成(コンパイルと言うらしき)も可なり。
    具体には、H8/OSをダウンロードせしフォルダーに、次の内容のバッチファイルを作成し実行すべし。
    但し、2行目のパスは各自環境により書き換えよ。
    内容はcygwinがmake plus3052で吐き出すものとほぼ同じなり。

    @ECHO OFF
    SET PATH=C:\Program Files\BestTech\GCC Developer Lite\GCC\H8\bin
    h8300-coff-gcc -O -mh -g -mint32 -DH8_3048 -DH8_300H -DREGTYPE=char -T sys3052.x -nostartfiles crt/30xxcrt0.S -o kern3052.coff main.c init.c misc.c sio.c lcd.c ne2000.c timer.c ip.c arp.c udp.c tcp.c ata.c int_h8.c ps2.c keyboard.c i2c.c eeprom.c rtc.c print.c system.c -lc
    h8300-coff-objcopy -O srec kern3052.coff kern3052.mot
    copy com3052.x command\com3052.x
    cd command
    h8300-coff-gcc -O -mh -g -mint32 -DH8_300H -DFREQ=25 -T com3052.x -nostartfiles ../crt/30xxcrt0.S -o com3052.coff command.c -lc
    h8300-coff-objcopy -O srec com3052.coff com3052.mot
    cd ..
    copy /b kern3052.mot + command\com3052.mot plus3052.mot
    pause

  4. put.exe の手はず
    RAM転送ツールなる、put.exeをH8/OSよりダウンロードせし。
    上記、3、4同一フォルダーが後に便利なり。
     
  5.  plus3052.mot をダブルクリックし書き込むべし。
     H8 WRITER TURBOが自動起動する筈。せねばインストールまたは、関連付けを疑うべし。

  6. GCC Developer Liteへ追加設定
     ツールのGCCオプションより
     アセンブラ、リンカともh8/osをダウンロードしたフォルダーから3052F関連を指定。
     アセンブラ⇒インストールフォルダー 
    \crt\ramcrt0.S
     リンカ⇒インストールフォルダー\ram3052.x
    追加インクルードパス BestTech\GCC Developer Lite\GCC\H8\h8300-coff\include
    この設定を(名前を付けて)保存すべし。
     
  7.  ヘッダーファイルの修正
    H8/OSのreg3048f.h には細かい設定がなく、GCC Developer Liteのヘッダーファイルを改良すべし。
     
    \BestTech\GCC Developer Lite\TARGET\3052F\3052.h
    をBestTech\GCC Developer Lite\GCC\H8\h8300-coff\include\h8 フォルダーにコピー
    間違いなきよう、名前変更を勧める。例: 3052_h8.h
    sleepなる設定ががぶつかる模様。
    3052_h8.hのファイルをノートパッドで編集し、sleepなる場を
    */ と */を付与し、除外せし。
    具体には、
    ⇒ /*  extern __inline__ void sleep (void) */ ←
    ⇒/* 
    __inline__ void sleep (void) __attribute__ ((always_inline));
    {
      asm ("sleep");
    }
    */ ←

  8. put.exeを外部ツールに登録せし
     -e "($PGENE)" をオプションに入れし、便利。
    ツールメニューへ登録へのチェックを怠るな。
     
  9. テスト
    #include <h8/reg3048.h>
        #include <h8/syscall.h>
        #include <h8/printf.h>

    int main(void)
    {
     printf("\n HELLO! \n");


     をGCC Developer Liteにて作成。
    上記6の設定にてコンパイル。
    plus3052.mot の書き込まれたH8−3052Fへ
    上記8のput.exeのボタンにて転送。
    パソコン画面にHELLOと出れば感謝なり。
     
  10. ROM化については、挑戦中


    H8/OSは多機能なり。
    全機能把握までは、ちと身に余る。
    されど、LCD表示なりはいたく便利なり。
    作者の知見の深さにはいたく感謝するものなり。

     

本稿以上なり。

貴見を残されよ 他見なり

ホームへ

Counter