Knowledge | ||||||
KPIT HEW3+GCCでシリアル通信(H8/3664)
2005/02/02 |
HEW3+GCCでH8/3664プログラミング まずはプロジェクトの作成だ! 起動すると、こんなダイアログボックスが表示されます。今回は、新しいプログラムを作りたいので、「Create a new project workspace」(デフォルト)を選択して「OK」を押します。 すると、こんなダイアログが表示され、どのような名前のものを作るかを聞いてきます。「Workspace Name」と「Project Name」がありますが、まずは作りたいフォルダの場所を「Directory」で設定しておき、「Workspace」の方へ、ワークスペース名称(プロジェクト名称兼用)を入力し、「OK」を押します。 こんなんでますが、「KPITは技術サポートしますよ〜」というありがたい表示なので、感謝の気持ちをこめて「Next」を押します。 ここは重要です。「H8/300H Normal Mode (H8 Tiny)」を選択してください。H8/3664でプログラムを作成する時は必須の操作です。そして「Next」を押します。 このダイアログは、よく意味がわかっていませんが、「Next」を押します。 生成するファイルをリスト表示してきますが、特に編集するものもありませんので、「Finish」を押します。 これまたいろいろ表示されますが、今まで設定した内容の確認です。でも、まあ、意味がよくわからないので、これも「OK」を押します。 はい、これでWorkspaceとProjectの作成完了です。いろいろとファイルが自動生成されています。簡単ですね! シリアル通信プログラムのビルド それでは、さくさくっと削除してしまいましょう(ここで削除をしても、Workspaceから削除されるだけで、実際のファイルが削除されるわけではありません)。まずは「Project」-「Remove Files...」を選択します。 後は、要らないファイルを選択して「Remove」を押すだけです。 はい、これで表示がすっきりしました。 さてプログラムを…の前に、もう1つやっておくことがあります。それは、Linkerの設定です。デフォルトでは、「なんとか.x」というファイルが最終的に出力されますが、このファイルはROMに書き込むことができません。そこで、Sフォーマットと呼ばれる、ROMに書き込む形式のファイルを出力できるようにします。 まずは「Optons」から「Linker...」を選びます。 ここで、「Linker Options」というダイアログボックスが表示されますので、「Output」とうタブを選択して、「Output format」を、「S-Record」に変更します。これで、ビルドした時にMOTファイルという、Sフォーマットのファイルが出力されるようになります。 それではソースコードを編集します。左のウィンドウで、「main.c」をぶちぶちっとクリックし、中身をさくさくっと編集します。ここでは、次のようなコードを使ってます。それぞれの意味については、H8/3664のハードウェアマニュアルなどをみて調べてみて下さい。ここでは、KPIT HEW3+GCCでの開発方法の説明がメインなので、詳細説明は省きます。 #include "ioh83664s.h" void RSCinit( void ) { // RS232C関連レジスタ初期化 IO.PMR1.BIT.TXD = 1; // P22をTXD端子として使う設定 SCI3.SCR3.BYTE = 0; SCI3.SMR.BYTE = 0; SCI3.BRR = 8; // ボーレート設定(57600bps) SCI3.SCR3.BIT.RIE = 0; // 受信割り込み禁止 SCI3.SCR3.BIT.TE = 1; // 送信許可 SCI3.SCR3.BIT.RE = 1; // 受信許可 SCI3.SSR.BYTE &= 0x80; // ステータスクリア } void RSCsend( unsigned char bData ) { while (SCI3.SSR.BIT.TDRE == 0) ; SCI3.TDR = bData; } unsigned char RSCrecv( void ) { unsigned char bData; while (!SCI3.SSR.BIT.RDRF); SCI3.SSR.BYTE &= ~0x38; // 手抜きですが、エラー無視。 bData = SCI3.RDR; // データ取り出し SCI3.SSR.BIT.RDRF = 0; // 受信フラグクリア return bData; } int main (void) { RSCinit(); while( 1 ){ RSCsend( RSCrecv()); } return (0); } 中身は、シリアル通信で受信したデータを、そのまま送信(エコーバック)するだけの簡単なものです。それではさっそくビルドしてみましょう。「Build」−「Build」と選んで、心の中で 「ぶぃるど〜!」 と叫びます。きっと、デバッグしまくるようになると、この気持ち、わかってもらえると思います。 はい、ばっちり、すべてOK!です。
FDT3でROM書き さらに、FDT3をインストールすると、「Flash Development Toolkit 3.3 Basic」と「Flash Development Toolkit 3.3」の2つの項目が出てきますが、必ず「Flash Development Toolkit 3.3」の方を起動してください。メニューはこんな感じです。 さて、これを起動すると、例によってプロジェクトの生成ダイアログが表示されます。もおいい〜と思ってしまいますが、このツールのコンセプトのようなので、「統一感があってよろしい」ぐらいの寛大な気持ちで新プロジェクトを生成しましょう。 ここでは適当に「H8TINY」という名前で作っていますが、別になんでもいいです。 それではウィザードに従って、プロジェクトを作ります。 これはこのまま「次へ」をします。 さて、ここですが、ここでは、それぞれの環境でのCOMポートを設定してください。もし、この時点で、「USBシリアル変換器」等を差し忘れていた場合、「Select port」から選択することができません。この場合、また、新規作成まで戻ってシリアル変換器をセットし、ウィザードを実行しなおしてください。 そして、この次が重要です。ここでは、ターゲットのクロックを設定します。AKI-H8/3664の場合、16MHzのクロックがじっそうされていますので、「16」を入力します。 後はデフォルトのまま、「次へ」を押していけばOKです。 ここもデフォルトのままです。 はい、これで完了です。画面は、下のピクチャーのようになったと思います。 んでは、ダウンロードする(ROM書きする)ファイルを選択して、プロジェクトに加えましょう。 「Project」−「Add Files...」と操作して、ファイル選択のダイアログを表示させます。 先ほど気づいた方もいらっしゃるかもしれませんが、実は、先のHEW3のビルドのモードはデバッグになったままでやっています。そのため、「SerialTest.mot」は、「Debug」というフォルダの下にあります。 それではいよいよROM書きです。まずは、H8/3664の方をROM書きモードにしてください。そして、「SerialTest.mot」を選択し、右クリックでメニューを呼び出します。そして、「Download File」を選択します。 後は、メッセージがいろいろでてきて「Image successfully written to device」というメッセージが下のウィンドウに表示されればOKです。最後は、Disconnect(切断)しておきましょう。このFDT3というツール、この操作をするまで、COMポートを使用しっぱなしになるようです。そのため、この操作をしてやらないと、他のアプリケーションでCOMポートを使用することができません。 そうそう、後、このまま再度プログラムの書き込みを行いたい場合も、一度、「Disconnect」してからDownload操作をしてください。 では、最後に、機能を確認してみましょう。H8/3664を通常のモードにして電源を入れなおします。そして、シリアル端末ソフト(いつもTera Termを使っています)を起動して、COMポートに接続します。何かキー入力をしてみてください。入力した文字が表示されると思います。 普通にパソコン使っていると「入力した文字が表示されるのはあたりまえジャン」なんて思ったりしますが、実は、このプログラムのように、入力された文字を送信しないと表示されないんですよ。 はい、これであなたもKPIT HEW3+GCCの仲間入りです。
|
SISO-LAB Knowledge