- ベストアンサー
マイコンの開発環境について
秋月のH8開発キットに付属していたDOSアプリを使用してプログラム開発をしています。 今までは離れに有るデスクトップPC(232装備)で開発していましたが、近くに有るノートPC(232未装備)で触りたいと思いまして先日USB→RS232に変換するコンバータを購入しました。 いざ使ってみたらハイパーターミナル(付属のコマンドプロンプト上で動作する物)が正常に動作しませんでした。(注意書きをよく読んでなかったのがまずかったです…) ノートPCで開発する良い方法は無い物か知恵を貸していただけませんか? 何卒よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2 = Interest です。お使いのキットは AKI-3664でしたか。 > 「HTERM.EXE」と言う物 別物ですね。私の予想では、Hitachi Terminalの略でHTERMなのではないかと。ほら、H8つくってるRenesusはもともとHitachiでしょ。 Windowsのハイパーターミナルは、[スタート] -> [アクセサリ] -> [通信] -> [ハイパーターミナル」 で立ち上がる通信プログラムです。 確認事項をいくつか挙げますので、順に確認しましょうか。 1. USB-232C変換ケーブルは正しく動作しているか? 先ほどでてきたWindows付属のハイパーターミナルを使って確認します。具体的には、シリアルケーブルのTX(送信) と RX(受信) の2つのピンを直結してハイパーターミナルから何か送信してみて、送信したものと同じものを受信できれば通信ケーブルが正しく動作していると確認できます。 http://whzat.minidns.net/shoko3/USB-Serial_Bridge/index.html の下のほうにある、「自己診断プラグ」の写真のようなものを作っておくと、今後使い回しが利いて便利です。 2. 操作手順は正しいか、H8のチップは正しく動作しているか? 電源が入っていないとか、ケーブルが抜けていたとか、チップが死んでしまったとか、いろいろなケースが考えられます。これはデスクトップからもう一度H8にプログラムを書き込んでみれば分かりますね。 HTERM.exeは非常に使いづらいので、GUIからフラッシュROMへの書き込みが出来たほうがうれしいですよね。 http://www.geocities.jp/mimiin/tips/lbc/index.html の「プログラムの書き込み」で、秋月で売っている http://akizukidenshi.com/catalog/items2.php?c=h83052&s=popularity&p=1&r=1&page=#S-00033 を使ってH8/3664Fにプログラムの転送を行う例が載っていますので、参考にしてみてください。
その他の回答 (5)
- Interest
- ベストアンサー率31% (207/659)
> やはりCの方が汎用性の面や大規模化の事を考えると良いのでしょうか? 適材適所で、本当に処理速度が必要な部分だけアセンブラで作ると言う話は聞いたことがあります。SHなどのRISCになってしまうと、ご存知のとおりCPUのアーキテクチャ自体がC/C++でコンパイル・リンクされたプログラムを想定して作られているので、下手にアセンブラで組むよりC/C++コンパイラの最適化のほうが処理速度が速いそうです。<パイプラインの動作まで考えてアセンブラで書くのは無理でしょうから。 ソフトウェアの設計を行うときには処理系依存部と非依存部に分けて設計すると思いますが、私は処理系非依存部の中でも重要かつ複雑なロジックの部分はPC上で十分動作を検証してからマイコン用のソースに移すようにしています。これは、C/C++じゃないと厳しいのではないかと思います。 しかし、CPU上で本当に低レベルで動作を追うときや、メモリ操作の結果を確認するときなどは、C/C++の知識だけでは追いきれない問題もあります。こういうときはアセンブラの知識が無駄じゃなかったと感じます。 (昨年あった例) short で確保した変数のビット演算を行ったが、期待した結果とまったく異なる結果となった。アセンブル結果と並べてみたところ、16bitのつもりで確保した変数がコンパイラにより32bitに拡張されていたため、ビット操作が狙いと違う動きをしていた。<unsigned を使うのが定石らしいです。 3664などのH8Tinyのようなメモリの小さなCPUを使う場合はそれほど大きなプログラムにならないでしょうから、アセンブラでもいいのかもしれませんね。(私はそんなことお構い無しにCを使いますが。)
補足
>PC上で十分動作を検証してからマイコン用のソースに移すようにしています。これは、C/C++じゃないと厳しいのではないかと思います。 なるほど!! マイコン固有のポートとかは変数とかに置き換えないといけないのでしょうけれど、わざわざエミュレータ上で動作されるような小難しい事せずともCなら確かにそのまま走らせる事もできますね!! >下手にアセンブラで組むよりC/C++コンパイラの最適化のほうが処理速度が速い 命令の数もかなり多いと聞きますし、ジャンプ命令や分岐命令も考えて使わないといけない訳ですね。 なるほど。 今後はCに移行する方針で行きます。 何度もご回答頂き有難うございました。
- Interest
- ベストアンサー率31% (207/659)
無事動いたようですね、おめでとうございます。 ルネサスのフラッシュ書き込みツールとハイパーターミナルがあれば、もうHTERM.exeに戻る必要はないと思いますが、原因が何だったのかちょっとだけ気になります。 私のマイコン開発環境ですが、一番最初にさわったのはDELEDさんと同じ(H8/3048Fですが)秋月の付属CD-ROMのツールです。(中身は日立の評価版だといううわさですが。) 仕事では(当時の)日立の純正コンパイラと統合開発環境(HEW2)をちょっとだけ。趣味での今の主力は YellowSoft社のCコンパイラと統合開発環境を使用しています。 http://www.yellowsoft.com/index.shtml 主力でないもので手元にあるのは、ベストテクノロジー http://www.besttechnology.co.jp/ でCPUボードを買ったときについてきた GCC Developer Lite など。 これはあまりにも簡単に使えてしまうのですが、ソースコードを全部ひとつのファイルに書く必要があるなど、数千行のコードを書くのには適さないので、私は使っていません。 最近はC++を使いたいので、H8/SH用のGCC(g++)とルネサスのHEW3の組み合わせに手を出しつつあります。どちらも無償で使えます。
補足
やはりCの方が汎用性の面や大規模化の事を考えると良いのでしょうか? 他のマイコンにプラットフォームを移した時、即座に対応するに当たってアセンブラでの開発に疑問を感じます。 H8からSHに移る場合にCを対象に書かれている記事は見た事有りますがアセンブラはあまり見た事無いですし…
- Interest
- ベストアンサー率31% (207/659)
ちょっと脱線。 >「H8」の「H」ってやっぱり日立の「H」なのでしょうか? > (昔H16とかH32とか見た事有りますがこれも同じなのでしょうか?) ザイログ社のZ80、三菱電機のM32、東芝のTXなど、大体どこのマイコンを見ても頭文字が会社の頭文字と一致しているので、H8は日立の8bitなのだと類推しています。もっとも、今のH8シリーズは8bitじゃなくて、16bitCPUですが。 H16, H32 は存じませんが、日立(ルネサス)の32bitCPUはいまはSH一本に絞られていると思います。 > プログラムの転送以外にも秋月のキット付属のモニタ「MONITOR.ABS」を操作したりする機能も付属しているのでしょうか? モニタはハイパーターミナルでも何でもシリアル通信できるものなら問題なかったような気がします。<曖昧な記憶ですみません
補足
実験してみました。 まずWindows標準のハイパーターミナルでループバックテストしてみました結果、正常に応答しました。 次にフラッシュの書き込みですが、ルネサスの書き込みソフト使った所正常に書き込みできました。 ついでにモニタをハイパーターミナルで使えるか実験してみた所使用出来ました!! >日立の8bitなのだと類推しています。 なるほど。 厚かましいようですが、もう一つ質問させて頂けませんか? Interest様のはどのような環境でマイコン開発されているのでしょうか? 使用ツールや使用言語でけで良いので是非参考にさせて頂けませんか?
- Interest
- ベストアンサー率31% (207/659)
秋月のH8/3664F、H8/3052Fなどを買って、ノートPCでプログラム作ってます。もちろん、UBS-232C変換ケーブル使ってます。 > ハイパーターミナル(付属のコマンドプロンプト上で動作する物)が正常に動作しませんでした。 この説明が納得いきません。まず、Windowsに付属しているハイパーターミナルはDOSやコマンドプロンプト関係ありませんよね。続いて、「正常に動作しなかった」というのは具体的にどうなったのですか? 否定形ではなく、「こうなった」という形で書いてください。 フラッシュ書き込みソフトはフリーでいろんなのありますし、ルネサスから無償提供されているものもあるので、書き込みについてはそちらを使うという手もあるでしょう。
補足
説明不足で申し訳ありません。 ハイパーターミナルと記載したのは秋月のキットに付属する「HTERM.EXE」と言う物(「Tereminal Program for Monitor Ver.5.0」と表示されていました。)の事です。 もしかしてはーパーターミナルとは別物なのでしょうか? そして症状としては、マイコンを接続して電源を入れた後に適当なキーを叩く所の「Set Boot Mode and Hit Any Key.」と言う文字列が表示され、適当なキーを叩くとそこから動かなくなってしまいます。 他にはマイコン(モニタプログラムを既に書き込んでおいた物です)を起動した時に本来なら H8/3664 Serise Normal Mode Monitor Ver.xxx 等と応答が有るのですが応答しないのです。
- saru_1234
- ベストアンサー率33% (452/1341)
> いざ使ってみたらハイパーターミナル(付属のコマンドプロンプト上で > 動作する物)が正常に動作しませんでした。 その開発キットのことは知りませんが、 USB-シリアルコンバータについては、よほど変な通信でもしてない限りHyper Terminal で通信できますけどね。 USB経由でシリアルデバイスを検出したとき、COMポートの空き番号に 割り当てられるのが普通だと思いますが、何番に割り当てられたか 確認できますか? よく理解できてませんが、過去に使った番号を記憶していてそれを避けて さらに高い番号を割当てることもあるようですので... また、Hyper Terminal はデフォルトでは COM4 までしか対応してないようなので、 これ以降のCOMポート番号に割り当てられると Hyper Terminarl で扱うことができません。 この時は、ini ファイルだったか、の内容を書き換えて対応可能です。
お礼
早期回答有難う御座います。 COMは1に割り当てています。
補足
度々回答有難うございます。 >別物ですね。私の予想では、Hitachi Terminalの略でHTERMなのではないかと。 なるほど、てっきりハイパーターミナルの略だと思ってました。 予断なのですが「H8」の「H」ってやっぱり日立の「H」なのでしょうか?(昔H16とかH32とか見た事有りますがこれも同じなのでしょうか?) >確認事項をいくつか挙げますので、順に確認しましょうか。 明日各チェック項目をテストしてみます!! >転送を行う例 プログラムの転送以外にも秋月のキット付属のモニタ「MONITOR.ABS」を操作したりする機能も付属しているのでしょうか? 参考URLを参照してみましたが、直接実行されているようでしたので…