SSブログ

Development with HEW and HTERM. [HEW & HTERM]


HEWやHTERMを使ったページ
http://hamayan.ddo.jp/~hamayan/so-net/hew.html
http://hamayan.ddo.jp/~hamayan/so-net/hterm.html
のサポートページです。
なーんか有ったらコメントに書き込んでください。




nice!(0)  コメント(24)  トラックバック(0) 

nice! 0

コメント 24

香川

はじめまして。
『ITORNプログラミング入門』に関してですが、よろしいでしょうか?

以前買ってちょっと動かしたままほったらかしていた秋月キット(3048F)をまた動かしはじめてます。
HEW(評価版)を使って学習しているのですが、お書きになられた本の内容(tutorial)は全てFLASHへ書き込んで動作させているのでしょうか?

書き込み回数の制限が怖くて、モニタのLコマンドでRAM上で動かしたいのですが、そのためには299ページあたりの『セクションの宣言』を理解して書き換えなければいけないのでしょうか?

RAM(HM628128)も増設してあり、16ページのSRAM接続を見てチップセレクトもCS6に変更しました。
これでモニタを『mon3048r16.mot』にすればいいのかなと推測して使ってみました。
FLASH上で動いたsample.motをLコマンドでロードしてみたのですが、Gコマンドで指定すべきアドレスがわからず、お手上げになってしまいました。

ヒントをいただければ嬉しいです。
by 香川 (2005-07-12 15:50) 

hamayan

御世話になっています。御購入有難うございます。

サンプルですが、全てROMに焼きこんで動作させています。しかもやり直しとか有りますし、HEW、GCC別々に焼きこんでいますので、結構な回数の書き換えを行っていますが、特に問題は出ていません。

”mon3048r16.mot”は、秋月のUSB開発キットの割付に合わせてありますので、CS6ではなくCS1です。紛らわしくてすいません。CS6で使うなら、デバックモニタを再構築する必要が有ります。

増設RAM上でのデバックですが、まずデバックモニタを起動し、コンソールから”?”を入力して”USER”がどのアドレスから割付になっているのかを調べ、HEWのセクション指定で”VECT”セクションをこのアドレスから割り付けます。
残りのセクションの”P,C,D,B,X”は、増設したRAMの先頭に割り付けます。
この設定変更をした上で、ビルドし、MAPファイルで割付を確認します。

無事成功していたら、デバックモニタにロードし、”G”コマンドだけで動作します。セクションを設定した”最適化リンカ”タブの”インプット”カテゴリで、”エントリポイント指定”にチェックを入れ、シンボル名を入れると、そのアドレスが開始アドレスである事を示す情報が、ロードモジュールに組み込まれます。ロード時にデバックモニタはその情報を見て、自動的にプログラムカウンタの値を書き換えていますので、”G”コマンドだけで起動する訳です。

または、MAPファイルで”_startup”のアドレスを確認してみて下さい。


上手く動作できたら、設定内容を保存し、別のプロジェクトで利用する事ができます。”セクション”カテゴリに”インポート”、”エクスポート”が有りますので、これを使って設定内容をファイル化できます。
by hamayan (2005-07-12 17:26) 

香川

早速のご回答、ありがとうございました。

CSの配線をCS1に戻して試してみました。

: ?
Monitor Vector 00000 - 000FF
Monitor ROM 00100 - 07E79
Monitor RAM FEF10 - FF02F
User Vector FF030 - FF12F

なので、VECTを0xFF130にしました。
P,C,D,B,Xは0x20000です。

RAM上で走り出したようですが、エラーがでてしまいました。
『HOS』だけ表示されたようです。

もう少し格闘してみますが、ひとつ教えていただけますか?

3048Fをモード5で使用しているのですが、この場合プロジェクトの設定(アドレス空間)は『1M byte』にするべきだったのでしょうか?
RAMを増設していない状態でモード7で使用し、『16M byte』のままでうまく動いたので、そのままにしてあります。
#ただしB,Xセクションは0x00FFEF10でなく、内蔵RAMの0x000FEF10に修正したかも知れません。

(以下、実行時のモニタコンソール)
: L
Top Address=20000
End Address=FF243
: R
PC=020000 CCR=80:I....... SP=00FFFF10
ER0=00000000 ER1=00000000 ER2=00000000 ER3=00000000
ER4=00000000 ER5=00000000 ER6=00000000 ER7=00FFFF10
: G
HOS
ITU0 IMIA Occur !!
PC=000000 CCR=80:I....... SP=00021BB6
ER0=00000000 ER1=00000036 ER2=00020452 ER3=0002044E
ER4=00000000 ER5=00000001 ER6=000211A2 ER7=00021BB6
:
by 香川 (2005-07-13 23:53) 

香川

連投です。
一風呂浴びたら閃き(?)ました。

外部RAM有り、無しともモード6という前提で書かれているのですね?
見落としてたらごめんなさい。

明日、実験してみます。
by 香川 (2005-07-14 01:18) 

hamayan

VECT=USERとして下さい。この場合は0xff030です。
B,Xセクションに割り付けた0xFEF10ですが、これはデバックモニタが使用する領域なので、もし内蔵RAMに割り当てるなら0xff130からにします。
by hamayan (2005-07-14 07:37) 

香川

昨日はサボってしまいました。
今日、セグメントの割付をVECT=0x000FF030とすることで無事にRAM上で走らせることができました。
(P,C,D,B,Xは0x00020000です。また、モード5で、CPU種別を16Mから1Mに変更しました。)

内容はこれから勉強しますが、これで安心して『マルチタスクライフ』に入れます(^^)

ありがとうございました。
by 香川 (2005-07-15 23:15) 

勝男 厚

はじめまして。、秋月の3052F-LANでITRONプログラミング入門を購入し、勉強しようと思い、付録.A5.2ROM/RAMダミーセクションの宣言のところで、Xセクションがメニューにありません。HEW4のバージョンを使用しまし、CPUタイプを3052Fと選んだことと関係があるのでしょうか?   明日3048Fを選び再確認しようと思いますが、
よろしくお願いします。
by 勝男 厚 (2005-11-18 22:25) 

hamayan

セクションがメニューから選択できない件ですが、自分でXと書けばOKです(’-’*) 。
メニューは標準として用意しているだけで、セクション名はユーザーが幾らでも勝手に付けられます。
by hamayan (2005-11-18 23:26) 

勝男

ありがとうございました。  
by 勝男 (2005-11-20 21:58) 

Hide

以前にHOSのプログラミング関係で色々ご教授を頂きありがとうございます。
今回はHOSではなくHEWがらみの質問なのですが、よろしいですか?
以前にHEW上でプログラムを作成しましたが、一つのCファイルに長々と記述してあり、保守が面倒である為いくつかのCファイルを作ってそこに関数をグループ分けして入れました。複数のCファイルにまたがって使用する大域変数に関しては「extern」を付けて記述してあります。
各Cファイルごとにコンパイルをした時はエラーは出ていませんが、ビルドをするとエラー「L2300 (E) Duplicate symbol "変数名" in "ファイル名.obj"」が出てしまいます。
変数名(シンボル?)が重複していると思い変数名を変えると、その変数名に関してはエラーが出なくなりますが、他の変数名で同様のエラーが出ます。
また変数名を変えて再度ビルドすると、最初に変えた変数名でまた同様のエラーが出るといった「いたちごっこ」の状態になっています。
いくつかのCファイルに関数を振り分ける前は、このようなエラーは出ていなかったのですが・・・。
出来る限り原因を調べて見ましたが、どうにも分からないので、なにかアドバイスを頂ければと助かります。
お手数をお掛けし申し訳ございませんが、よろしくお願い致します。
by Hide (2006-03-04 02:24) 

hamayan

HOSを含めて、ファイル分割してコンパイルを行っていますが、問題無くコンパイルできます。
もう一度HEWの編集メニューの「ファイルから検索」とか、GREP等のツールを使って、構成ファイルを全て検査し、宣言が二重に行われていないか調べてみて下さい。
また、過去の一つにまとめたファイルもビルド対象となっていないか、そこもポイントですね。
コンパイラ自身は、この様なバグは出ていないです。
by hamayan (2006-03-04 09:18) 

Hide

お返事ありがとうございます。
もう一度入念に調べて見たいと思います。
by Hide (2006-03-04 23:47) 

Hide

続報です。
二重で宣言をしていないかを調べていて、たまたまエラー「L2300 (E) Duplicate symbol "変数名" in "ファイル名.obj"」が出てしまう原因をみつけました。メインファイルと他のファイルで大域変数を以下のように宣言していたのが原因でした。
 ・メイン
  volatile inst v_flg = 0;
 ・他のファイル
extern volatile inst v_flg = 0;
ようは、「extern」を使って宣言している変数にも初期値を記述していたのがいけなかったようです。
「extern」を使って宣言した方の初期値記述を消したところ、エラーが出なくなりました。
もしかしたら、C言語の世界では基本的なことなのかもしれませんが、勉強になりました。
また、ヒントとなるアドバイスを頂けた事に感謝いたします。
今後ともよろしくお願い致します。
by Hide (2006-03-05 00:17) 

Hide

いつもお世話になっております。
またまたHEWに関するご質問なのですが、何かご存知であればと思い、コメントを出しました。
HEWで作成したプログラムを別の名前のフォルダーにコピーして、コピーしたプログラムを修正したりしています。最初に作成したHEWのプログラムはPCのCドライブのWorkSpaceに保存してありますが、コピーしたプログラムは訳があって、外付けのHDDに保存してあります。
ここで2つ質問があるのですが・・・。
【1】
HWEで作成したプログラムを単にコピー、貼り付けで別のフォルダー(外付けHDD)にコピーしただけの場合、コピーしたプログラムの内容を変更すると、コピー元のプログラムの内容まで変更されてしまっているのですが、こういう物なのでしょうか?上記のような現象が起きないコピー方法などあれば、お教えください。
【2】
例えばマイコンで以下のような計算をした場合。
 Vg=50
Vg_val = Vg / 0.02
コピー元のプログラムをマイコンにダウンロードし、実行すると正常に
Vg_valの値を計算してくれますが、コピーしたプログラムをマイコンに
ダウンロードし、実行するとVg_valの計算結果が違ってしまいます。
この原因も何かご存知でしたらお教えください。
お手数をおかけし申し訳ございませんが、よろしくお願い致します。
by Hide (2006-07-18 03:16) 

hamayan

お世話になっています。

> HWEで作成したプログラムを単にコピー、貼り付けで別のフォルダー(外付けHDD)にコピーしただけの場合、コピーしたプログラムの内容を変更すると、コピー元のプログラムの内容まで変更されてしまっている

プロジェクトペインの各ファイルを選択して右クリックでプロパティが出ますので、そのファイルが相対パスか絶対パスか調べる必要があります。
相対パスならそのプロジェクトディレクトリからの相対となります。
絶対パスは、パソコン上の絶対パスなので、そのパソコン上の唯一のファイルを示している事となります。

ルネサスに推奨されるやり方では無いと思いますが、HEWのワークスペースやプロジェクト管理情報は、ワークスペースに関してはワークスペースディレクトリのなんとか.hwsに、プロジェクトは各プロジェクトディレクトリのなんとか.hwpにテキストで書かれています。

HEWを落とした状態で、プロジェクトディレクトリごとコピーし、適当な名前を付けて置きます。その後、プロジェクトディレクトリ内部の何とか.hwpをエディターで開き、ファイル名やディレクトリの記述を変更します。面倒に感じますが、エディタの置換を使うので、ほぼ一発です。
セッションディレクトリの中身は一時ファイルなので、ディレクトリだけ残し、中身のファイルは全部削除しても構いません。

次にワークスペースディレクトリのなんとか.hwsを編集します。これは[PROJECTS]の項目に新しいプロジェクト情報を追加するだけです。

これでHEWを再起動してください。もっとスマートなやり方があると思いますが、私の場合これでうまく行っているので、まあ良いか!と。


> 例えばマイコンで以下のような計算をした場合。
>  Vg=50
> Vg_val = Vg / 0.02

これはちょっと判りませんね。LSTにアセンブラ出力させて、それで比べてみて下さい。
by hamayan (2006-07-18 10:00) 

Hide

いつもお世話になっております。
プログラムのコピーはうまく出来ました。ありがとうございました。
ただ、お教えいただいた処理をしたあとにHEWを立ち上げると、
「ワークスペースが移動されました。」と言ったメッセージが出ますが、これは特に気にしなくてもよろしいですか?
あと「.hws」とありますが、これは「.tws」でOKですか?
計算の方はもう少し調べてみます。
by Hide (2006-07-18 11:25) 

hamayan

> 「ワークスペースが移動されました。」と言ったメッセージが出ます
これは気にしないで下さい。

> あと「.hws」とありますが、これは「.tws」でOKですか?
.hwsの方です。
by hamayan (2006-07-18 11:40) 

Hide

ご回答ありがとうしました。
大変助かりました!
by Hide (2006-07-18 18:22) 

JIN

はじめまして。
最近PCを新調しまして、残念ながら?Vistaになってしまいました。
その結果、Htermがうまく動かなくなってしまいました。
具体的には、AKI-H8-USBと接続して、モニタからの応答が表示されない状態です。
PuTTYなどでは問題なく応答が表示されるのですけど・・・。
どうしちゃったのでしょうね?
何かご存知でしたら教えていただけないでしょうか?
by JIN (2007-09-02 00:04) 

hamayan

Vistaが動くパソコンを持っていないのであれなのですが、色々と、ソフトが動くとか、動かないとかは耳にしています。
Htermは、、、まだVistaで検証していないんでしょうね。

Htermを落とした時に付いてくるドキュメントには、あの人の連絡先が書いて有るんですよ。
感想兼ねがね、連絡してみては如何ですか。
by hamayan (2007-09-03 13:47) 

JIN

お返事ありがとうございます。
Vistaはあまり使われていないようですね~。(特に仕事では)
発売されてずいぶんたつはずなのに・・・。
Renesasには質問してみたのですけど、「秋月の基板のことは秋月に聞いてください」という回答でした。
まあ、ありがちなのですけど、RenesasのモニタにRenesasの通信ソフトでこの回答はないのでは、と思いました・・・。
ところでHtermに付属のドキュメントとはどれのことでしょうか?
自己解凍のhtermmdi.exeには付属していないように思うのですけど・・・。
by JIN (2007-09-08 14:22) 

hamayan

↑HELPに「困った時は」、、、って(笑)。

まあルネサスに対して質問すると言うよりも、マイコン好きな個人の方に連絡すると思って連絡してください。お願いします。
by hamayan (2007-09-08 15:15) 

JIN

なるほど!
VistaでWinHelpは開けない、という突っ込みは置いといて、メールしてみたいと思います。
ありがとうございました。
by JIN (2007-09-08 15:47) 

hamayan

> VistaでWinHelpは開けない、という突っ込みは置いとい

しらないよーーー、そんなのぉ(笑)。
by hamayan (2007-09-08 16:05) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。