SSブログ

STK-7125のデバックモニタ(SH2/7125) [HEW & HTERM]

今朝出かけ前に急いで(そんな必要有るのか?)アップしたので、デバックモニタの詳細について書いておりませんでした。そこで、これからデバックモニタを構築しようと思っている方の為に、稚拙ながら構築の為の情報を書きます。

まず、当然の事なのですがデバックモニタを構築する為にはSHCが必要となります。SHCのバージョンはver.8かver.9が有れば楽ですが、ver.7でも可能です。SHCは評価版がルネサスから入手できますので、SHCを持っていない方はこれを機に手に入れましょう。3ヵ月後の制限が掛かっても、SH/Tinyに関しては事実上制限無しですし。

次にルネサスの半導体セミナーのサンプルプログラムからデバックモニタを手に入れます。この時、SH2、HEW3(SHC ver.8、ver.9)の物をダウンロードします。SHC ver.7の中身には、まだSH2/Tinyのデバックモニタが入っていません。

HTERMからSH2/Tinyの書き込みを行う為には、HTERMのver.8.3(かそれ以上)が必要です。もし手持ちのHTERMのバージョンが8.2以前ならば、新しいHTERMも手に入れて置きます。勿論FDTでも書き込みは可能です。

さて、デバックモニタを手に入れたら、STK-7125用の改造が必要となります。改造するファイルは以下の2つです。

  1. monitor.c
  2. monitor.sub
monitor.cの改造
void INITIALIZE(void)
{
  CPG.FRQCR.WORD = 0x16db;
    /*Iφ=48MHz、Bφ=24MHz、Pφ=24MHz、MPφ=24MHz*/
  PFC.PACRL2.BIT.PA4MD = 1;  /* PA4 is TxD1*/
  PFC.PACRL1.BIT.PA3MD = 1;  /* PA3 is RxD1*/
}  /* Goto Monitor Program */
monitor.subの改造
INPUT      SUPERH,MONITOR,LOWER
LIST       MONITOR.MAP
SHOW       SYMBOL
OUTPUT     MONITOR.MOT
FORM       STYPE
NOOPTIMIZE
LIBRARY    SUPERH,7125
LIBRARY    MONITOR
DEFINE     $BRR=13
DEFINE     $STACK=FFFFC000
START      VECTOR/0,ROM,P,C/400,RAM/FFFFA000,USER/FFFFA160,SCI/FFFFC080
あ、LOWERはお好みで!。

STK-7125固有の処理の解説

SH2/7125のSCI1で使用するPINは初期状態では固定されておらず、その為デバックモニタの起動時にユーザーがこのPINを何処に割り付けるかを決める必要が有ります。それがmonitor.cで行っている処理で、STK-7125の場合はPA3とPA4を使用する事となります。
あと、ボーレートの設定はmonitor.subで行っています。「$BRR=13」の記述がそれですね。この場合は38400bpsとなります。
これと、SH2/7125のRAMの開始アドレス、デバックモニタで使用するSCIの開始アドレスをリンカーに渡す必要が有ります。「VECTOR/0,ROM,P,C/400,RAM/FFFFA000,USER/FFFFA160,SCI/FFFFC080」 の記述がそれですね。
追記!RAMの底を指定するのを忘れていました。 「DEFINE $STACK=FFFFC000」です。

HTERMでの書き込み

デバックモニタをHTERMの書き込み機能で書き込むのですが、設定について書いて置きます。その前にターゲットの電源を落として、FWEを1、MD1端子を0にして置きます。
SH2/7125はH8/3069Fと同じ様に書き込みプログラムをマイコン内部に持っているタイプなので、いきなりフラッシュ(R)→ブートモード(B)と進みます。
ここでターゲットの電源を投入しますと、品名を聞いて来ますので「R5F7125」を選択します。
逓倍比の選択ではCPU、周辺機能共に×2を選択します。
次に進んで、動作周波数では「12MHz」を、書き込みマットでは「ユーザーマット」まで進めば、ダウンロードするファイルをどれにするのか聞いて来ますので、今回はデバックモニタを選択しました。
フラッシュROMへの書き込み完了後、FWEは0、MD1は1とし、電源を再投入します。HTERMにクレジットが表示されれば完了です。 以上! では皆さん頑張ってデバックモニタを作ってみて下さい。
nice!(0)  コメント(15)  トラックバック(0) 

nice! 0

コメント 15

hamayan

「monitor.cの改造」の所で、CPGの初期化を追加しました。
by hamayan (2006-11-28 01:08) 

miw

こんにちは、お久しぶりです。

実験に使っていたH8-3069が、そろそろ計算が追いつかなくなってきたので、とりあえずSTK-7125に計算部分だけ置き換えてみるつもりです。

SCIの扱いで二日かかりましたが、なんとかモニタ上での開発ができるようになりました。
by miw (2008-01-28 15:02) 

hamayan

お久しぶりです。
そうですか、32bit長のレジスタで演算できるので、意外と計算の得意なH8/300Hでも追いつかないとは、なにやら複雑そうな事をやられているのですね。
by hamayan (2008-01-28 23:24) 

miw

ヘリコプタの制御につかってるんですが、
半分くらいはintで計算させて、
最後のところでfloatを使っています。

H8だとintもfloatも2byteでしたっけ?
long int にした方がはやいのかな?

試しに、計算プログラムをつくってみました。

sh2-7125+純正コンパイラ
単精度でsinfを3600回計算         36.8msec
float同士のかけ算を代入 10000回    0.8msec
int同士のかけ算を代入  10000回    0.8msec


H8-3069+GCC
単精度でsinfを3600回計算        10088msec
float同士のかけ算を代入 10000回   1550msec
int同士のかけ算を代入 10000回      29msec


H8-3069+純正コンパイラ
単精度でsinを3600回計算         1512msec
float同士のかけ算を代入 10000回      2msec
int同士のかけ算を代入 10000回       3msec

GCC、だめじゃん。
sinfだけが効いているみたいでもないですね。
純正だと、32bitになってるのかな?
by miw (2008-01-29 10:06) 

miw

あ、ヘリはヒロボーのRCヘリ(エンジン)をつかってるんですが、
3069で気持ちよくホバリングできてますよ。
制御周期がちょとおそいですが・・・
by miw (2008-01-29 10:13) 

hamayan

> GCC、だめじゃん。

まあちょっと結果に差が有り過ぎるので、もっと早くなる設定が有るような気もしますが、ルネサスのコンパイラのH8/300Hのint型は16bitですし、float型は4byteです。この辺は必ずコンパイラのマニュアルに載っていますね。

> 3069で気持ちよくホバリングできてますよ

凄い凄い!。是非You Tube辺りに動画のアップを希望します。
by hamayan (2008-01-29 22:53) 

miw

GCCはGDLでやってるんですが、
最適化かけたmotだと、バグってとまってしまうんですよ。
で、最適化なしでやってます。

いま手元に純正の3.0Aあたりはあるのですが、
これだと3069F用の設定がなくて3067F用になります。
これでもちゃんと25Mhzにあわせたら、無事にうごきますかね?

ヘリの動画は、以前の職場のHPにのっけてます。
この辺でどうでしょうか?手動の舵を外乱としてあたえると、
3069が頑張って水平に復帰させてます。

http://www.wakayama-u.ac.jp/~miw/RCSSSG/NewRCSS2.html

重くてすみません。。。
by miw (2008-01-29 23:19) 

hamayan

おお!、やっぱり動画は良いですね。
そうかそうか、あの操縦が難しいと言われたラジコンヘリが、手放しで飛んでいるなんて。

是非誰でも扱えるラジコンヘリにして下さい。
たとえば家庭内で、
「おーぅい、お茶!」
「はぁーい!」
で「ビーン」と!お茶を積んだヘリが飛んで行く。
by hamayan (2008-01-30 06:40) 

miw

今、室内用の小型ヘリがいろいろでてますが、
ヒロボーのはいいですよ。

あれに超音波センサをのっけて高度制御させたことがあるのですが、
かなりいいですよ。

お茶をもってくのは、難しそうですが(^^;
by miw (2008-01-30 09:01) 

k_t

そして散布ですか?

> で「ビーン」と!お茶を積んだヘリが飛んで行く。
by k_t (2008-01-30 09:48) 

hamayan

> そして散布ですか

えー!知らないのですか?お茶には、抗酸化作用とか消毒作用とか有って、静岡じゃラジコンヘリでお茶を散布するのが常識なんですよ。
by hamayan (2008-01-30 20:35) 

k_t

なるほど! それの屋内用というわけですね?
さすがだなー、卓上には食べる茶葉挽きがあって、頭上からはお茶散布かぁ。そしてカレーはお茶カレー、水はお茶入り水。
by k_t (2008-01-30 23:38) 

miw

ヘリの動画をニコニコ動画にアップしました

RCヘリのタグを検索してみてください。

秋月の3069でやってたころからつい先週までの動画をのっけました。
by miw (2008-06-11 00:01) 

hamayan

現在ニコ動に登録作業中です(笑)。
閲覧開始まで暫くお待ちください。
by hamayan (2008-06-11 01:02) 

hamayan

遅くなりましたがニコ動観ました。
初め、「えっ!一体どれ?」と思ってよく見たら、投稿作品のほとんどがそうではないですか(笑)。

ラジコンヘリからの動画撮影は楽しかったです、、、ですよね、あれ!。

by hamayan (2008-06-12 22:00) 

コメントを書く

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

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

トラックバック 0

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