AKI-H8/3048foneのCクロスコンパイラ環境でのはじめてのプログラミング
TNCTマザーボード
hitachiコンパイラVer2利用版

Copyright(C)12Nov004
coskx

1.はじめに
この文書 は,Windows2000/XPパソコンにAKI-H8/300hのC言語クロスコンパイル環境での,コンパイル作業のための方法を記述しています。あ らかじめ指導者あるいはパソコン管理者が構築したC言語クロスコンパイラ環境(秋月のセットで配布されている日立の評価コンパイラを利用します。)で,C 言語によるH8プログラミングを学ぼうとする方がプログラミングを行ない,AKI-H8/3048foneでプログラムが動作するまでを解説します。C言 語のプログラミングについては別の文書で学んでください。



図1.1 TNCTマザーボードとAKI-H8/3048F-ONE

2.本文書で記述してある作業の特徴
Cプログラムソースファイルが出来上がったら,ドラッグアンドドロップを1回行なうだけです。他に何もすることはありません。簡単コマンドを用いるので,作業が効率的です。

サンプルファイルのダウンロード

DownLoad

前提
(1)「トランジスタ技術2002年3月号付録CDROM」より入手した,アセンブラ,Cコンパイラ関係ファイルおよびインクルードファイル,ライブラリファイルは,すべて「C:\Program Files\h8V2」( 「参考2」参照 )に入っているものとします。
(2)スタートアップルーチン「start3048fone.OBJ」も適当なフォルダ( 「参考3」参照 )に入っているものとします。
(3)コンパイル用コマンド「h8_3048fone.cmd」は「各作業ファイル」に入っているものとします。
(4)転送ソフト「h8w.exe」を利用します。h8w.exeの入っているフォルダ「H8W」は「C:\Program Files\h8v2\WRITER\H8W」を想定しています。

転送ソフト「h8w.exe」はyamasan氏のオープンツールです。次の場所から入手できます。
http://ym3.plala.jp/yamasan/

注意
この文書で扱っているh8_3048fone.cmdはWindows2000,WindowsXP,WindowsVista,Windows7で使用可能です。

3.プログラムの作成から実行まで
シング ルボードマイコンAKI-H8/3048fone内で動作するプログラムはパソコン上で開発され、シングルボードマイコンAKI-H8/3048fone のフラッシュメモリに書き込まれます。パソコンで開発されるソースプログラムはC言語で記述され、クロスコンパイラにより、オブジェクトプログラムに変換 され、最後はフラッシュメモリ書き込み形式(XXXX.MOT)になります。
シングルボードマイコンAKI-H8/3048foneを動作させるまでの大きな流れは以下のようになります。
(1)パソコン上で作業用のフォルダの用意
(2)パソコン上でCソースプログラムの作成
(3) パソコン上でダウンロード形式ファイル(実行プログラム)の作成(クロスコンパイル、コード変換)
(4)パソコン上の転送ソフトによる,ダウンロード形式ファイル(実行プログラム)のAKI-H8/3048foneへの書き込み操作
これら四つの作業によりシングルボードマイコン内で動作させることが出来ます。

ACアダプタ,シリアルケーブル結線上の注意

4.テンプレートフォルダの実行
(1)図3.1に示すテンプレートフォルダでの実行の様子を確かめてみよう。テンプレートフォルダは ここ に含まれています。


図3.1 小坂のテンプレートフォルダ

(2)テンプレートフォルダがダウンロードできたら,解凍し,「xxxxxx.c」の内容をエディタで確かめてみてください。
プログラムは,AKI-H8/3048foneマザーボード上のLEDを点滅させるものです。プログラムの内容には深入りしないことにしましょう。

リスト プログラムソースファイル"xxxxxx.c"

/*  マザーボード上のLEDの1秒ごとのON-OFFを行う  */

#include <3048fone.h>
void waitmsec(int msec)
/*mesc間なにもしない時間稼ぎ関数*/
{
    int i,j;
    for (i=0;i<msec;i++) {
        for (j=0;j<4190;j++);    /*4190は実測によって求めた値 25MHz駆動*/
    }
}

main()
{
    /*P5の下位4ビットを出力に設定*/
    /* P5のDDRの下位4ビットに1を与えるとこの設定になる*/
    /*DDRとはDataDirectionRegister(データ方向設定レジスタ)*/
    P5.DDR =  0x0f;     /*0xc0 = 11000000(二進数)*/
    while(1) {/*これは無限ループ*/
        /*LED0をONにする  P5のDRの第0ビットを1にする*/
        /*DRとはDataRegister(データレジスタ)*/
        P5.DR.BIT.B0=1;
        /*LED1をOFFにする  P5のDRの第1ビットを0にする*/
        P5.DR.BIT.B1=0;
        /*LED2をONにする   P5のDRの第2ビットを1にする*/
        P5.DR.BIT.B2=1;
        /*LED2をOFFにする  P5のDRの第3ビットを0にする*/
        P5.DR.BIT.B3=0;
        waitmsec(1000);/*1000msecの間なにもしない*/
        /*LED0をOFFにする  P5のDRの第0ビットを0にする*/
        P5.DR.BIT.B0=0;
        /*LED1をONにする   P5のDRの第1ビットを1にする*/
        P5.DR.BIT.B1=1;
        /*LED2をOFFにする  P5のDRの第2ビットを0にする*/
        P5.DR.BIT.B2=0;
        /*LED3をONにする   P5のDRの第3ビットを1にする*/
        P5.DR.BIT.B3=1;
        waitmsec(1000);
    }
}


(3)この後の作業は次のようになります。
ただし,図3.1のテンプレートフォルダは「デスクトップ」あるいは「マイドキュメント」の中にあるとします。

表3.1 フラッシュメモリ書き込み形式ファイルの作成とROMライター書き込み操作から実行までの手順

 

パソコン側

マイコンH8側

(1)  

H8/3048F-oneのTNCTマザーボード上のモードスイッチを「Prog」側に倒してから電源スイッチをONにします。
電源LEDが点灯します。

重要 電源をONしてからモードスイッチを切り替えるという逆手順では動作しません。


奥側が「Prog」,手前側が「Run」

(2)

ソースファイル(xxxxxx.c)のアイコンを「h8_3048fone.cmd」のアイコン上にドラッグアンドドロップします。
「コンパイル」—「リンク」—「コンバート」が行なわれた後に,H8のフラッシュメモリへ,実行プログラムの書き込みが行なわれます。

コンパイルの時の画面例(Windowsxp)

Compile, link and convert command for H8 C-programing with V2 ver1.00
Copyright(c) 23Jan2004 coskx
Copyright(c) 28Jun2002 coskx

H8S,H8/300 SERIES C Compiler Ver. 2.0D Evaluation software
Copyright (C) 1994,1996 Hitachi,Ltd.
Licensed Material of Hitachi,Ltd.
Licensed Material of Hitachi Engineering Co.,Ltd.

H8S,H8/300 SERIES CROSS ASSEMBLER Ver. 2.0A Evaluation software
Copyright (C) Hitachi, Ltd. 1994,1998
Copyright (C) HITACHI MICROCOMPUTER SYSTEM LTD. 1994,1998
Licensed Material of Hitachi, Ltd.
  *****TOTAL ERRORS       0
  *****TOTAL WARNINGS     0
H SERIES LINKAGE EDITOR Ver. 5.3B Evaluation software
Copyright (C) Hitachi, Ltd.1989,1998
Copyright (C) HITACHI MICROCOMPUTER SYSTEM LTD. 1990,1998
Licensed Material of Hitachi, Ltd.

: ROM (D,X)
:
: ;ROMエリア=00000-07fff
: ;RAMエリア=fef10-fff0f
: START P,C,D(100),X,B(0FFEF10)
: EXIT

LINKAGE EDITOR COMPLETED

H SERIES SYSROF STYPE OBJECT CONVERTER Ver. 1.5B Evaluation software
Copyright (C) Hitachi, Ltd. 1988,1997
Copyright (C) HITACHI MICROCOMPUTER SYSTEM LTD. 1988,1997
Licensed Material of Hitachi, Ltd.


OBJECT CONVERTER COMPLETED

h8w.exe
MOT file writing completed
Pushing any key leads the exit.

 
(3)  

<1>転送が終了したら、TNCTマザーボード上の電源スイッチをOFFにします。
<2>モードスイッチをラン(Run)にしてから電源スイッチをONにします。
電源LEDが点灯します。

重要 電源をONしてからモードスイッチを切り替えるという逆手順では動作しません。

(4)ここまでの作業が順調に出来ていたら,AKI-H8/3048foneマザーボード上の2つのLEDが点滅して動作が確認できるはずです。

5.新規プログラムの開発手順

新規マイコンプログラムの開発手順の概要は次のようになる
(1)
パソコン上で作業用のフォルダの用意(PCでの作業)
(2)マイコン上で動作するプログラムの作成
(PCでの作業)
(3)転送
形式実行可能ファイルの作成(PCでの作業)
(4)
転送形式実行可能ファイルの,マイコンへ書き込み
(5)マイコンでの実行(マイコンでの作業)

5.1 パソコン上で作業用のフォルダの用意
作業準備は作業用フォルダを適当な場所に作る作業です。
作業用のフォルダを用意します。ここではled00という名前のフォルダを使用することにします。
その中には以下のファイルを用意しておきます。
(1)h8_3048fone.cmd 小坂作成
(2)h8_3048fone.h 小坂作成
(3)h8_3048.sub 小坂作成
これ以外に
(4)to_H8.ht ハイパーターミナル設定ファイル
     (RS232C設定が終わっているもの 38400baud, Async, 8bit , NoParity, stop1)
が入っていると便利です。
これ以降の作業はすべてこのフォルダ内で行われます。

テンプレートフォルダの複製を作ってフォルダ名をled00としてもよいでしょう)

5.2 マイコン上で動作するプログラムの作成
Windowsマシン上のエディタ上で、C言語で記述されているソースプログラムを作成します。
例えばled00.cを作るという仮定で以下の説明にはいります。リストにあるファイルを作成してください。
このリストをコピー&ペーストするとよいでしょう。

リスト プログラムソースファイル"led00.c"

/*  マザーボード上のLEDの1秒ごとのON-OFFを行う  */

#include <3048fone.h>
void waitmsec(int msec)
/*mesc間なにもしない時間稼ぎ関数*/
{
    int i,j;
    for (i=0;i<msec;i++) {
        for (j=0;j<4190;j++);    /*4190は実測によって求めた値 25MHz駆動*/
    }
}

main()
{
    /*P5の下位4ビットを出力に設定*/
    /* P5のDDRの下位4ビットに1を与えるとこの設定になる*/
    /*DDRとはDataDirectionRegister(データ方向設定レジスタ)*/
    P5.DDR =  0x0f;     /*0xc0 = 11000000(二進数)*/
    while(1) {/*これは無限ループ*/
        /*LED0をONにする  P5のDRの第0ビットを1にする*/
        /*DRとはDataRegister(データレジスタ)*/
        P5.DR.BIT.B0=1;
        /*LED1をOFFにする  P5のDRの第1ビットを0にする*/
        P5.DR.BIT.B1=0;
        /*LED2をONにする   P5のDRの第2ビットを1にする*/
        P5.DR.BIT.B2=1;
        /*LED2をOFFにする  P5のDRの第3ビットを0にする*/
        P5.DR.BIT.B3=0;
        waitmsec(1000);/*1000msecの間なにもしない*/
        /*LED0をOFFにする  P5のDRの第0ビットを0にする*/
        P5.DR.BIT.B0=0;
        /*LED1をONにする   P5のDRの第1ビットを1にする*/
        P5.DR.BIT.B1=1;
        /*LED2をOFFにする  P5のDRの第2ビットを0にする*/
        P5.DR.BIT.B2=0;
        /*LED3をONにする   P5のDRの第3ビットを1にする*/
        P5.DR.BIT.B3=1;
        waitmsec(1000);
    }
}

ここまでの作業でフォルダled00の中には

(1)h8_3048fone.cmd
(2)h8_3048fone.h
(3)to_H8.ht ハイパーターミナル設定ファイル
(4)h8_3048.sub 小坂作成
(5)led00.c

ができているはずです。

5.3 転送形式実行可能ファイルの作成とマイコンへの書き込み
Cプログラムソースファイル「led00.c」が出来ましたら,次の手順で実行してください。

表4.1 フラッシュメモリ書き込み形式ファイルの作成とROMライター書き込み操作から実行までの手順

 

パソコン側

マイコンH8側

(1) もしハイパーターミナルなどCOMポートを使用しているソフトがパソコン上で動作している時はそれらのソフトを中止します。  
(2)  

H8/3048F-oneのTNCTマザーボード上のモードスイッチを「Prog」側に倒してから電源スイッチをONにします。
電源LEDが点灯します。

重要 電源をONしてからモードスイッチを切り替えるという逆手順では動作しません。


奥側が「Prog」,手前側が「Run」

(3)

出来上がったソースファイル(led00.c)のアイコンを「h83048fone.cmd」のアイコン上にドラッグアンドドロップします。
「コンパイル」—「リンク」—「コンバート」が行なわれた後に,H8/3048foneのフラッシュメモリへ,実行プログラムの書き込みが行なわれます。

 
(4)  

転送が終了したら、TNCTマザーボード上の電源スイッチをOFFにします。

(5) 必要ならパソコン側で「to_H8.ht」をダブルクリックしてターミナルアプリケーション「ハイパーターミナル」を立ち上げます。  
(6)  

モードスイッチをラン(Run)にしてから電源スイッチをONにします。電源LEDが点灯します。

重要 電源をONしてからモードスイッチを切り替えるという逆手順では動作しません。

注意(1) ネットワーク上のフォルダを利用する場合はネットワークドライブを割り当ててから実行する。ただし,動作が遅いので勧めません。自分のHD上で作業しましょう。
注意(2) もしマルチソースファイルでのプログラミングの時は必要なソースファイルすべてを同時にドラッグアンドドロップしてください。5個まで対応しています。

このWebページの最後の参考リスト1にh8_3048fone.cmdのソースを示します。自分の環境に合うように設定を変えても結構です。

ここまでの作業でフォルダled00の中には

(1)h8_3048fone.cmd
(2)h8_3048fone.h
(3)to_H8.ht    ハイパーターミナル設定ファイル
(4)h8_3048.sub
(5)led00.c
(6)led00.MOT  フラッシュメモリ書き込み形式ファイル(実行プログラム)
ができているはずです。

なお「コンパイル−リンク−コンバート−転送」作業における失敗時の画面例を以下に示します。

失敗例1 Cソースプログラムで文法エラーがあった時
(led01.cの20行目に宣言されていない変数iがある)
(エラーメッセージでファイル名の次はエラー行番号!)

Compile, link and convert command for H8 C-programing with V2 ver1.00
Copyright(c) 23Jan2004 coskx
Copyright(c) 28Jun2002 coskx

H8S,H8/300 SERIES C Compiler Ver. 2.0D Evaluation software
Copyright (C) 1994,1996 Hitachi,Ltd.
Licensed Material of Hitachi,Ltd.
Licensed Material of Hitachi Engineering Co.,Ltd.

led01.c(20) : 2225 (E) UNDECLARED NAME: "i"
led01.c(20) : 2220 (E) MODIFIABLE LVALUE REQUIRED
*** error *** コンパイルエラーがありました。
Pushing any key leads the exit.

失敗例2 リンクエラーがあった時
関数名「SCIA_printf」が見つからない(関数名のミスタイプのことが多い)

Compile, link and convert command for H8 C-programing with V2 ver1.00
Copyright(c) 23Jan2004 coskx
Copyright(c) 28Jun2002 coskx

H8S,H8/300 SERIES C Compiler Ver. 2.0D Evaluation software
Copyright (C) 1994,1996 Hitachi,Ltd.
Licensed Material of Hitachi,Ltd.
Licensed Material of Hitachi Engineering Co.,Ltd.

H8S,H8/300 SERIES CROSS ASSEMBLER Ver. 2.0A Evaluation software
Copyright (C) Hitachi, Ltd. 1994,1998
Copyright (C) HITACHI MICROCOMPUTER SYSTEM LTD. 1994,1998
Licensed Material of Hitachi, Ltd.
  *****TOTAL ERRORS       0
  *****TOTAL WARNINGS     0
H SERIES LINKAGE EDITOR Ver. 5.3B Evaluation software
Copyright (C) Hitachi, Ltd.1989,1998
Copyright (C) HITACHI MICROCOMPUTER SYSTEM LTD. 1990,1998
Licensed Material of Hitachi, Ltd.

: ROM (D,X)
:
: ;ROMエリア=00000-07fff
: ;RAMエリア=fdf10-fff0f
: START P,C,D(100),X,B(0FFEF10)
: EXIT
** 105 UNDEFINED EXTERNAL SYMBOL(axxxxxx._SCIA_printf)

LINKAGE EDITOR COMPLETED

*** error *** リンクエラーです。
Pushing any key leads the exit.

失敗例3 AKI-H8/3048foneのフラッシュメモリ書き込み受け入れ態勢が完全でない時
(AKI-H8/3048foneの電源が入っていない時)
(ライタモードになっていない時)

失敗例4 「ハイパーターミナル」などのシリアルポートを
利用しているソフトが動いていてフラッシュメモリ書き込みソフトが
シリアルポート(COMポート)を取得できない時

.


5.4 プログラムの実行

「led00.MOT」がマイコンにフラッシュメモリ書き込みされて,実行します。正常に作業が終えていれば,マザーボード上の2つのLEDが点滅します。




参考1 h8_3048fone.cmdの内容

h8_3048fone.cmdの内容を参考リスト1に示します。

参考リスト1 motファイル作成用のコマンドファイル「h8_3048fone.cmd」

@echo off
rem 汎用コンパイルコマンド 複数のソースファイルからMOTファイルを作り,
rem マイクロコンピュータに転送します
rem H8用日立評価版コンパイラver2のセットに対応しています。
rem MOTファイルの転送には,h8w.exe(yamasan氏)を使います。
rem
rem Cのソースファイル(.c),asmソースファイル(.src),objファイル(.obj)
rem およびlibファイル(.lib)を個数無関係にドラッグ&ドロップできます。
rem
rem 選択されているファイルのうちドロップされたファイル(コマンドライン
rem では先頭のファイル)でフラッシュメモリ書き込み形式ファイル(.mot)
rem の名前が決まります。
rem もしMOTファイルをこのcmdにドラッグ&ドロップするとすぐフラッシュメ
rem モリ書き込みが始まる。
rem 別のcmdファイルから,このcmdをファイルリスト付で呼び出すと便利です。
rem 例 h8_3048fone.cmd aaa.c bbb.c ccc.c ddd.src eee.src fff.obj ggg.lib

if %1 NEQ MAKEOBJ goto PP3
if not exist %~n2.src goto PP1
if exist %~n2.obj del %~n2.obj
goto PP2
:PP1
if not exist %~n2.c goto :EOF
if exist %~n2.obj del %~n2.obj
find "#pragma asm" %~n2.c >nul
if errorlevel 1 goto NOASMCCODE
echo on
ch38 -cpu=300ha -include=%h8inc% -OUTCODE=SJIS -CODE=ASMCODE %~n2.c
@echo off
if not exist %~n2.src goto COMPILE_ERROR
:PP2
echo on
asm38 %~n2.src
@echo off
if not exist %~n2.obj goto COMPILE_ERROR
del %~n2.lst
if exist %~n2.c del %~n2.src
goto :EOF
:NOASMCCODE
echo on
ch38 -cpu=300ha -include=%h8inc% -OUTCODE=SJIS %~n2.c
@echo off
if not exist %~n2.obj goto COMPILE_ERROR
del %~n2.lst
goto :EOF
:PP3

if %1 NEQ MAKELLIST goto PP4
if exist %~n2.obj set inputs=%inputs% %~n2
goto :EOF
:PP4

if %1 NEQ MAKELIBLIST goto PP5
if exist %~n2.lib set liblist=%liblist% %~n2%~x2
goto :EOF
:PP5

if %1 NEQ CLEAROBJ goto PP6
if exist %~n2.c if exist %~n2.obj del %~n2.obj
if exist %~n2.src if exist %~n2.obj del %~n2.obj
goto :EOF
:PP6

echo Compile, link and convert command for H8 C-programing with V2 ver2.00
echo Copyright(c) 24Nov2011 coskx
echo Copyright(c) 28Jun2002 coskx TNCT

rem *************** カスタマイズ領域 begin *******************
rem ★コンパイル作業に必要なパスの追加を行います。
 set mypath=%HOMEDRIVE%\Program Files\h8v2\bin
rem ★スタートアップルーチンを記述します。
 set startuproutine=%HOMEDRIVE%\Progra~1\h8v2\lib\start3048.obj
rem ★H8のライブラリを指定します。
 set h8library=%HOMEDRIVE%\Progra~1\h8v2\lib\c38ha.lib
rem ★リンカスクリプト.subを指定します。
 set linksub=h8_3048fone.sub
rem ★フラッシュメモリ書き込み直前に書き込みするかどうか問い合わせします
rem YES:問い合わせる NO:問い合わせない
 set downloadready=NO
rem ★フラッシュメモリ書き込みライタh8w.exeのパスを設定します。
 set h8wpath=%HOMEDRIVE%\Program Files\h8v2\WRITER\H8W
rem ★フラッシュメモリ書き込みライタh8w.exeの書き込みツールを設定します。
 set h8wtool=3048B_F25M_P384.MOT
rem ★フラッシュメモリ書き込みのためのCOMポート番号を設定します
 set ComPortNumber=1
rem ★正常にフラッシュメモリ書き込みが終了した場合はそのまま終了する
rem YES:そのまま終了する NO:そのまま終了せず停止
 set downloadquit=NO
rem *************** カスタマイズ領域  end  *******************

rem ----------------------------------------------------------------------------
rem カレントドライブ・カレントディレクトリへ移動
%~d1
cd %~p1

rem コンパイラのパスの設定
path=%path%;%mypath%
set h8inc=%HOMEDRIVE%\Progra~1\h8v2\include
set h8lib=%HOMEDRIVE%\Progra~1\h8v2\lib

rem もしMOTファイルがドラッグ&ドロップされたら,フラッシュメモリ書き込みだけ行なう
if %~x1==.mot goto DOWNLOAD
if %~x1==.MOT goto DOWNLOAD

rem 誤ったファイルがドロップされたか,単なるダブルクリックで起動した場合は何もしない
if exist %~n1.c goto COMPILE
if not exist %~n1.src goto NO_SOURCE_ERROR

:COMPILE
rem ----------------------------------------------------------------------------
rem コンパイル 〜.objの作成
for %%p in (%*) do call %~n0%~x0 MAKEOBJ %%p

:LINK
rem リンク 〜.absリストの作成
set inputs=
for %%p in (%*) do call %~n0%~x0 MAKELLIST %%p

rem リンク 〜.libリストの作成
set liblist=
for %%p in (%*) do call %~n0%~x0 MAKELIBLIST %%p

echo INPUT %startuproutine% %inputs% >tmp8523.sub
echo LIB %h8library% %liblist%>>tmp8523.sub
echo OUTPUT %~n1 >>tmp8523.sub
echo PRINT %~n1 >>tmp8523.sub
type %linksub% >>tmp8523.sub

echo on
lnk -subcommand=tmp8523.sub >q9j2h5c4k6b1.txt
@echo off
for %%p in (%*) do call %0 CLEAROBJ %%p
del tmp8523.sub
type q9j2h5c4k6b1.txt
find "**" q9j2h5c4k6b1.txt >nul
echo;
if errorlevel 1 goto CONVERT
del q9j2h5c4k6b1.txt
del %~n1.abs
goto LINK_ERROR

:CONVERT
del q9j2h5c4k6b1.txt
rem ----------------------------------------------------------------------------
rem Sフォーマットに変換 〜.motの作成
cnvs %~n1.abs
del %~n1.abs
echo;

rem motファイルの転送
if %downloadready%==NO goto DOWNLOAD
echo Please set AKI-H8 ready and hit any key / push 'Ctrl+C' if you want
pause >nul
:DOWNLOAD
echo h8w.exe
echo [AutoPgm] >myAutoPgm.ini
echo AutoStart=1 >>myAutoPgm.ini
echo AutoExit=1 >>myAutoPgm.ini
echo CtrlProgam=%h8wtool% >>myAutoPgm.ini
echo ComPortNo=%ComPortNumber% >>myAutoPgm.ini
echo UserMotPath=%~n1.mot >>myAutoPgm.ini
"%h8wpath%\h8w.exe" -GO .\myAutoPgm.ini
if %ERRORLEVEL%==0 echo succeeded in MOT file writing
if not %ERRORLEVEL%==0 echo failed in writing
del myAutoPgm.ini
rem if exist %~n1.map del %~n1.map
if %downloadquit%==YES exit
goto TERMINAL

:COMPILE_ERROR
echo *** error *** コンパイル/アセンブルエラーです。
goto TERMINAL

:NO_SOURCE_ERROR
echo *** error *** Cのソースファイルが指定されていません。
goto TERMINAL

:LINK_ERROR
echo *** error *** リンクエラーです。
goto TERMINAL

:TERMINAL
echo Pushing any key leads the exit.
pause >nul
exit


補足1 フラッシュメモリ書き込み形式ファイル(.MOTファイル)をドラッグ&ドロップすると直ちに転送が始まります
補足2 「〜.c」のみでなく「〜.obj」も同時にドラッグ&ドロップが可能です

参考2 「%HOMEDRIVE%\Program Files\h8v2」の内容

Cコンパイラのあるフォルダは「c:\Program Files\h8v2」であり,内容は次のとおりです。フォルダ名,ファイルの配置が異なる場合は「h83048fone.cmd」中の必要なところを直してください。

C:\PROGRA~1\H8V2
├─BIN
│      ASM38.EXE
│      C38ASM.EXE
│      C38CGN.EXE
│      C38FRNT.EXE
│      C38MID.EXE
│      C38PEP.EXE
│      CH38.EXE
│      CNVS.EXE
│      LNK.EXE
│      OPT38.EXE
│      OPTLNK38.EXE
│     
├─INCLUDE
│      3048F.H
│      3048FONE.H      名無しのビットフィールド変数にダミー名をつけたもの
│      3048FONE_org.H
│      3048S.H
│      3048fone.h
│      3069S.H
│      3052F.H
│      3664S.H
│      ASSERT.H
│      CTYPE.H
│      ERRNO.H
│      FLOAT.H
│      INDIRECT.H
│      LIMITS.H
│      MACHINE.H
│      MATH.H
│      NO_FLOAT.H
│      SETJMP.H
│      STDARG.H
│      STDDEF.H
│      STDIO.H
│      STDLIB.H
│      STRING.H
│     
├─LIB
│      C38HA.LIB
│      C38HAS.LIB
│      C38HN.LIB
│      C38HNS.LIB
│      C38REG.LIB
│      C38REGS.LIB
│      C8S26A.LIB
│      C8S26AS.LIB
│      C8S26N.LIB
│      C8S26NS.LIB
│      start3048.OBJ 小坂追加
│         
└─WRITER
    └─H8W
         この内容はダウンロードしたフォルダそのままなので省略

 

参考3 「start3048.obj」の利用の利点

 

(1)初期化されたグローバル変数,および関数内の初期化されたstatic変数はRAM領域で使えるようにします。const修飾子を持つ初 期化されたグローバル変数,およびconst修飾子を持つ関数内の初期化されたstatic変数はROM領域に割り当てられるようにします。

ファイルstart3048.src,start3048.objのダウンロード

DownLoad

参考4 「h8_3048fone.h」の利用の利点

(1)マザーボード上のスイッチ・LEDの制御関数をインクルードファイルで提供します。

(2)プログラムをフラッシュメモリ書き込みに用いた通信回線とWindowsマシンのハイパーターミナルを用いた表示環境を提供し,printf()に似た整数変数出力ルーチン,整数入力ルーチンをインクルードファイルで提供します。

(3)LCDへの出力関数を提供します。