Foren: Hilfe (Thread #20732)

SH7145Fマイコンボード上でHOSを動かすには? (2008-11-26 16:02 by shimizu_t #40204)

はじめまして。
touchと申します。

質問の前に簡単にこれまでの経験を紹介させて頂きますと…

これまで,AVR(ATmega168等),H8(H8/3052F)等を使ったことがありますが,スタートアップルーチンなどはすべて開発環境が用意してくれたものを使い,OS無しでC言語でプログラムを開発してきました。
RTOSというと,MSP430に一度,FreeRTOSというものを載せて動かしたことがあるぐらいです(ROM,RAM等は全て内部のもので,まったくいじらずに動かしただけです)。

しかしながら,スタートアップルーチンをまともに作成したことはありません(PIC,AVRはアセンブリ言語でプログラムを書いたことはありますが,アセンブリ言語とC言語とのインタフェース等は理解していません)。

ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発という本を購入し,HOSに興味を持って,SH7145F上で動かしたいと考えています。
最終的には,オリジナルボード上で動かしたいのですが,まずは下記のボードで試しに動かしたいと考えています。

BTC080 SH7145Fマイコンボード(ベストテクノロジー)
参考URL:http://www.besttechnology.co.jp/download/INETPDF/BTC080%20SH7145FBoardE.pdf

HOSは,SH2で動くというような情報がちらほらと見当たるのですが,特定のボード等の名前が見当たりません。
サンプルを見る限り,sh7045.hというようなファイルが見当たるので,SH7045で秋月電子かなにかのボードで動かされたのであろうと推測しています。

SH7145はSH7045の上位互換なので動くだろうと勝手に思っています。

仮にSH7045を使用した場合,外付けのROM,RAM等のメモリ構成が違うと,リンカスクリプトだけ修正すれば動くのでしょうか?(…と簡単に言っていますが,リンカスクリプトはこれから勉強する予定です。)
その他の部分も修正が必要でしょうか?


追伸:
 教えて君は嫌ですので,BTC080 SH7145Fマイコンボードで動かせるようになったら,情報を公開したいと考えています。(私の知識が追いついていませんが…)

以上,よろしくお願い致します。

Reply to #40204×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-26 16:19 by hamayan #40207)

取り急ぎ、以下のページを参考にやってみてください。
http://hamayan.blog.so-net.ne.jp/2008-02-17-1
http://hamayan.blog.so-net.ne.jp/2008-02-21
Reply to #40204

Reply to #40207×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-26 22:41 by shimizu_t #40227)

hamayan様

返信ありがとうございます。

ページを参考にさせて頂きます。

ちなみに,HOSに既に入っているsh7045のサンプルプログラムは,どのボードで動くのでしょうか?

AKI-SH2でしょうか?
とりあえず,HOSが実際に動くのを見てみたいのですが。

sample.xのベクターテーブルの開始アドレスが下記のようになっているのはかなり特異なボードのように感じています(理解が間違っているでしょうか…)。
 vector : o = 0xfffff200

普通,0x00000000から始まりそうなものですが…。
Reply to #40204

Reply to #40227×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-26 23:51 by ryuz #40235)

こんばんは、Ryuzと申します。

件のサンプルは、hamayan氏から寄贈いただいた北斗電子さんのHSB7045KIT+手製RAM増設ボードといった構成に移植したものだったと思います。
申し訳ないのですが、完全にそのまま動く環境は市販されておりません。

当時まだ自分にはSHは高価だった上、マイコン内蔵のFlashの書き換え寿命が長期開発には厳しいため、モニタプログラムのみ焼いてRAM上で開発していた為特異なメモリマップとなっております。

今ですと、Interfaceのおまけ基板(ESP企画さんで市販品もあり)とか、AKI-SHとかが妥当なのでしょうが、時流にあっておらずすいません。

CQボードで誰かやられていかなとぐぐったら、hamayanさんのところが (^^;
http://hamayan.blog.so-net.ne.jp/2006-11-27

# ちなみに開発中の Advance版では CQボードのサンプル準備してますのでよろしければ、スナップショットですが覗いてみてください。



組込み屋としてスタートアップ部分に手堅いものが欲しい気持ちはすごくよくわかります。このあたりの情報の充実はやはり重要ですよね。
今後ともいろいろご意見いただければ幸いです。
Reply to #40227

Reply to #40235×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-30 12:40 by shimizu_t #40334)

Ryuz様

大変遅くなりましたが,返信ありがとうございます。

現在,とりあえずCQ出版の付録のSH7144基板で動作することを確認しようと試みているところです。

初歩的なミスをすべておかした感じでコンパイルに非常に手間取ってしまいました。
アドバンス版はディレクトリ構成がかなり変わっていて,ちょっと迷いました(苦笑)

アドバンス版のコンパイルは下記のようにしました。
間違っていないでしょうか?(Cygwin上で)
1.文字コード,改行文字をEUC,LFに変換する

2.カーネルのコンパイル
/hos-v4a/kernel/build/sh/sh2/gcc
make -f gmake.mak

3.サンプルのコンパイル(デフォルトはRAM上での実行タイプ?)
/hos-v4a/sample/sh/sh7144/gcc
make -f gmake.mak

これから、実機に焼いてみて,動作確認する予定です。

ちなみに,RAMで実行する場合は,ルネサスのHPからダウンロードできるモニタプログラムを使うことが前提なのでしょうか?(どこかに書いてあったでしょうか…!?)

今後ともよろしくお願いします。

Reply to #40204

Reply to #40334×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-30 13:52 by ryuz #40335)

お世話になります。Ryuzです。

> アドバンス版はディレクトリ構成がかなり変わっていて,ちょっと迷いました(苦笑)

まだ開発中なので、いろいろ不完全ですみません。前作に比べて、作者側でもなるべくいろんなプロセッサやコンパイラに触れてから、なるべく広く対応できるようにアーキテクチャを見直している次第です。なので無印版(安定版?)に比べ、ディレクトリ分類がアーキテクチャ別に細かくなっております。


> 1.文字コード,改行文字をEUC,LFに変換する
当方はSJISでやってますが、cygwinの場合は、EUC+LF あたりが一番要らぬトラブルに巻き込まれないと思います。
最終的には、win用 unix用でリリースパッケージが作れればと思っていますが、当面は利用者側で変換頂ければと思います。

> 2.カーネルのコンパイル
sample の makefile からも自動で呼び出しますので、省略も可能です。

Ryuz様

大変遅くなりましたが,返信ありがとうございます。

現在,とりあえずCQ出版の付録のSH7144基板で動作することを確認しようと試みているところです。

初歩的なミスをすべておかした感じでコンパイルに非常に手間取ってしまいました。
アドバンス版はディレクトリ構成がかなり変わっていて,ちょっと迷いました(苦笑)

アドバンス版のコンパイルは下記のようにしました。
間違っていないでしょうか?(Cygwin上で)
1.文字コード,改行文字をEUC,LFに変換する

2.カーネルのコンパイル
/hos-v4a/kernel/build/sh/sh2/gcc
make -f gmake.mak

> 3.サンプルのコンパイル(デフォルトはRAM上での実行タイプ?)
CVS内の最新では

make -f gmake MEMMAP=ram

で、RAM版、それ以外でROM版としてます。

> ちなみに,RAMで実行する場合は,ルネサスのHPからダウンロードできるモニタプログラムを使うことが前提なのでしょうか?(どこかに書いてあったでしょうか…!?)

モニタプログラムを前提としています。確か手元ではhamayan氏のリリースバイナリを使わせていただいていたと思います。ドキュメントの不備は申し訳ないです。

少し、CVS内もいじっているので、おいおい再リリースします。

よろしくお願いします。

Reply to #40334

Reply to #40335×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-11-30 15:53 by ryuz #40339)

今気が付きましたが、上のレス、メッセージ引用がおかしくなってますね。すいません。
ブラウザで長文書くときにコピペミスしたようです。
Reply to #40335

Reply to #40339×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

CQ7144FボードでsampleのROM動作確認しました。 (2008-11-30 15:42 by ryuz #40337)

お世話になります。Ryuzです。

取り急ぎ、gccコンパイルでモニタプログラム不要で動作するものを shapshot_20081130a としてリリースしました。

よろしくお願いします。
Reply to #40334

Reply to #40337×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: CQ7144FボードでsampleのROM動作確認しました。 (2008-11-30 15:50 by ryuz #40338)

一応フォローアップしておきます。

私の環境は Interface付録版で SH7144Fで、RAM増設しております。
一応ROM版はRAM増設なしで動くようにしたつもりですが、RAMを張る前の基板を持っていないので動作は確認していません。

cygwin上で
http://www.embedded.jp/gnuwing/index.html
こちらの sh-elf-gcc を使いました。

/hos-v4a/sample/sh/sh7144/gcc

make -f gmake.mak
して、出来上がった sample.mot をルネサスのツールでFlashに焼いて確認しています。
38400bps COMを繋いで sample 動作が出力されればOKです。

ちなみにRAM版はルネサスモニタを使っていて

SH7144 Series SuperH RISC engine Monitor Ver. 2.0B
Copyright (C) 2003 Renesas Technology Corp.

Monitor Vector 00000000 - 000002BF
Monitor ROM 00000400 - 000056A9
Monitor RAM FFFFE000 - FFFFE103
User Vector 00400000 - 004002BF

な設定でした。
make -f gmake.mak MEMMAP=ram
で、生成できます。

こちらは、RAM増設基板が必須です。

以上、よろしくお願いします。
Reply to #40337

Reply to #40338×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

HOSに直接関係なくて、非常に恐縮なのですが… (2008-11-30 16:31 by shimizu_t #40340)

Ryuz様

早速,返信ありがとうございます。
更に最新版のリリースに詳しい解説まで…何とお礼を申し上げていいのやら。
将来的にHOSのお役に立つことで恩返しができたらと思っております(いつになるやら…長い目で見守って頂ければと思います…)。

当初,SH7145でオリジナルボードを設計しようと考えていましたが,移植作業に自信がないのでSH7144のサンプルを有効活用させて頂いて,まずはSH7144でオリジナルボードを起こす方向で考えております。(将来的には移植にも挑戦したいと考えていますが…)
CQ出版のSH7144ボードでしばらく遊んで,HOSのプログラミングに少し慣れてからですが。

具体的にはLCDドライバICを繋いで,LCDドライバICに繋いだVRAMにアクセスできるようにしたいなということなのですが…。

そこで必要なことは,オリジナルボードのメモリマップに合わせたリンカスクリプトの修正および増設したRAM等に合わせたSH7144のレジスタの設定をスタートアップルーチン部分かどこかに増やしてやることかと思っております。(それだけでも結構,私に取っては難しいのですが…)


HOSに直接関係なくて、非常に恐縮なのですが…少しリンカスクリプトの修正などに関してアドバイス頂ければと考えております。

下記のサイトや「Linkers & Loaders」という本を参考にリンカスクリプトの修正に取り組もうと考えています。
http://www.sra.co.jp/wingnut/ld/ld-ja_3.html
http://www.ertl.jp/~takayuki/readings/c/

後は,Interfaceの2004年12月号~2005年7月号に「リンカを100%使いこなそう」という連載があったことを見つけて,バックナンバーを手に入れようとしているところです。

ただ,個人的にはこの分野は,どうも具体的なメモリマップを示して,どうリンカスクリプトを書きますよという実践的(現場的)な本がないように感じております。

皆さんはどういった本などで勉強されたのでしょうか?
やはり,地道にGNUのマニュアルを読み,いろいろと試してみる以外,王道はないという感じでしょうか?

HOSのフォーラムにそぐわない内容でしたら,削除させて頂きます。

以上,よろしくお願いします。
Reply to #40204

Reply to #40340×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: HOSに直接関係なくて、非常に恐縮なのですが… (2008-12-06 11:32 by n-okada #40462)

V850/mips担当の岡田です。
一連のメッセージを拝見しておりました。
(ポイント違いならごめんなさい)
#私もベステクさんのSH2/7145F ボードありますので、
#時間が取れればテストしてみたいと思います。

shimizu_t さんの hterm のログを拝見しますと、
SP(スタックポインタですよね?)の値が0になっていることが初期化に失敗しているように思えました。

shimizu_t さんのスタートアップルーチンか、
.ld ファイル(リン化の補助ファイル)を拝見できると解決できそうな気がします。
どこかに公開可能でしたら拝見できませんか?
(たぶん、それを見たら解決のヒントが得られると思います)

以上です。
Reply to #40340

Reply to #40462×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-01 23:22 by ryuz #40353)

こんばんは、Ryuzです。

リンカスクリプトは私も苦手なのですが(というかツールチェイン毎に違うし、gcc系はあまり経験が無いです)、上記のケースはそれほど悩まなくてもよい気がします。

システム構成によりますが、多くは

1) レジスタやVRAMなど、ハードウェアでアドレスが固定されるもの
2) ソフトウェアの都合で自動アロケートするもの

の2種類に分かれると思います。
前者をリンカでアサインすることも可能ではありますが、あまりメリットはなく、通常は
*(volatile int)0x12345678 = 1;
のように直接叩いてしまう事が多いと思います。


> 皆さんはどういった本などで勉強されたのでしょうか?
> やはり,地道にGNUのマニュアルを読み,いろいろと試してみる以外,王道はないという感じでしょうか?

私の場合、リンカスクリプトに関して言えば、他人のコードを参考にしたり、マニュアル見ながら実際に試したりで、なんとなくといった感じですね。

結局のところメーカーやツールごとにやり方や思想が異なるので、王道が存在しないのだと思います。
# gccのリンカスクリプトのように柔軟じゃない処理系も多く、バイナリをハックする羽目になったり、高級言語を諦めたりするケースもありますし。

あまりご参考にならなくて申し訳ないです。

Reply to #40204

Reply to #40353×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-03 18:48 by shimizu_t #40415)

Ryuzさん,リンカについてアドバイスありがとうございます。

また,最新のアドバンス版はROMでの動作は確認しました。
ですが,RAMでは動作しません…。

モニタプログラムはhamayanのところでダウンロードさせて頂いてきて,RAM版のMOTファイルをそのままROMに書き込みました。

下記の情報を頂きましたが,これにあわせてリンカスクリプトの修正とかが必要なのでしょうか?
>Monitor Vector 00000000 - 000002BF
>Monitor ROM 00000400 - 000056A9
>Monitor RAM FFFFE000 - FFFFE103
>User Vector 00400000 - 004002BF

ちなみにHtermで出るメッセージは下記の通りです。

General Illegal Instruction Occur !!
PC=00400400 SR=000000F0:..3210.... SP=00000000
VBR=00000000 GBR=00000000 MACH=00000000 MACL=00000000 PR=00000000
R0-7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
R8-15 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

SRAMはルネサスのものでなくCY7C1041CV33となっています。でも、これは一応、ルネサスのSRAMがないから互換品として送られてきたと記憶しています…。

見る限りでは,はじめから動いていないので,SRAMが壊れている??

もう少し調べてみます。
Reply to #40204

Reply to #40415×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-03 22:01 by ryuz #40417)

こんばんはRyuzです。

すいません、ひょっとすると私のボードに焼かれているのは、自分でビルドしたものなのかもしれません。
だいぶ前にHDD飛ばしてしまって、手元にビルド環境残ってないのでですが。

外部RAMを使う場合、SH側で初期設定が必要ですのでそのコードがモニタプログラムに埋まっている必要があります。

外部バスの設定レジスタを確認いただけますでしょうか?

時間があれば、私の環境も再確認してみます。
Reply to #40415

Reply to #40417×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-03 22:48 by ryuz #40418)

Ryuzです。何度もすいません。

どうも私が hamayan氏のものを焼いたと思い込んでいたのはH8用と勘違いしていたかもです。

http://hamayan.blog.so-net.ne.jp/archive/200604
こちらの
「Interface付属SH2基板のSRAM有り/無しデバックモニタとHOS-V4同梱バージョン」をダウンロードされたのですよね?
# ちゃんと安定版も移植されてたんですね、よく読んでなくてゴメンナサイ > hamayan様

SRAM有り の方を焼いていただければ多分大丈夫なはずなのですが。
後気になるのはUser Vectorのアドレスぐらいでしょうか。

ますはモニタからRAMアクセスができるかどうか見ていただければと思います。


Reply to #40417

Reply to #40418×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-06 10:47 by ryuz #40458)

お世話になります。Ryuzです。

私のほうでもhamayanさん公開のモニタをそのまま焼いて試してみました。
リリースパッケージのRAM有り版
\mon7144r50\Release\MON7144R50.MOT
を焼かせていただいております。

ram.lds のベクタアドレスをを修正して実行したら正常に実行できました。
なお、わざともとの間違ったアドレスのまま実行すると
: l
Top Address=00400000
End Address=00403F1F
: g
1 : CMT0 CMI Occur !!
PC=004008B8 SR=00000001:.........T SP=00410BA4
VBR=00000000 GBR=00000000 MACH=00000000 MACL=00000000 PR=004008FE
R0-7 00000020 00000001 FFFF81B4 00411314 00000020 00410048 00410168 00410000
R8-15 004

となり、touchさんの結果と違うようです。
まずはRAMアクセスがきちんとできているか確認したほうがよいかと思います。
モニタプログラムのDコマンドやFコマンドで、読んだり書いたりの簡単なテストはできると思います。
ありそうなミスとして

1) モニタプログラムのRAM無し版を焼いている
2) RAMの半田つけを失敗している
3) 電源が不安定
4) ボードの改修が必要

などがあると思います。
4) に関してはいろいろな所で情報が公開されていますので情報収集してみてください。
私はラッキーなことに今のところ無修正で動いているのでそのままにしていますが、雑誌の付録ということもあり高い品質を誇っているものでは無いようです。

以上、御参考までに。
Reply to #40415

Reply to #40458×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-06 12:12 by ryuz #40463)

お世話になります。Ryuzです。

本件に関連して HOS-V4 Advance の開発スナップショットの最新をリリースにおきました。
モニタプログラムの設定をhamayan氏公開のものと同じにして、readme.txt などを少し加筆しております。

また、先のバージョン 11月30日版は、パッケージに含めるファイルを間違えていたり、ライセンスドキュメントを入れ忘れるなどしていましたので削除しております。

よろしくお願いします。
Reply to #40458

Reply to #40463×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-04 10:43 by shimizu_t #40420)

Htermで"?"というコマンドで,教えて頂いた情報が確認できるのですね。
下調べ不足でしたすみません。

で,Use Vectorが下記のようになっているので,変更する必要があるようです。

Monitor Vector 00000000 - 000002BF
Monitor ROM 00000400 - 000057A1
Monitor RAM FFFFE000 - FFFFE15F
User Vector FFFFE160 - FFFFE41F

hamayan様のとこから頂いてきたファイルのmon7144r50.subを以下のように修正すればいいのかと考えています。

START VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/FFFFE160,SCI/FFFF81B0
     ↓
START VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/00400000,SCI/FFFF81B0

ただ,HEWをインストールしてから60日は余裕で超えているせいか下記のようなメッセージが出ています。たぶん、フリーバージョンではコンパイルできないということだと思うのですが…。
どうしようか考え中です…。

The total section size exceeded the limit
Reply to #40204

Reply to #40420×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 09:18 by hamayan #40436)

START VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/FFFFE160,SCI/FFFF81B0

Interface誌の付録SH2基板の場合、特にこの設定を変更せず、そのままのデバックモニタで使う事をお勧めします。
この設定ならば外付けRAMが正常に動かなくてもデバック可能ですから。
リンカーも、ベクター領域はFFFFE160に合わせてスクリプトを組んで下さい。
Reply to #40420

Reply to #40436×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-04 13:54 by shimizu_t #40424)

HEWを他のPCにインストールしてやってみたレポートです。

mon7144r50.subを下記のように変更して,コンパイルしました。

START VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/FFFFE160,SCI/FFFF81B0
     ↓
START VECTOR/0,ROM,P,C/400,RAM/FFFFE000,USER/400000,SCI/FFFF81B0

?を実行すると下記のように表示されます。
******* Buffer Overflow ******* が無限に表示されてしまうのは,おかしいのでしょうか?ただ、これはバイナリをそのまま使った場合も同じでした。(Htermのバグでしょうか? ちなみにバージョンは8.4と書いてあります。)

Monitor Vector 00000000 - 000002BF
Monitor ROM 00000400 - 0000577D
Monitor RAM FFFFE000 - FFFFE15F
User Vector 00400000 - 004002BF

. : Changes contents of SH7600 registers.
B : Sets or displays or clear breakpoint(s).
D : Displays memory contents.
DA : Disassembles memory contents.
F : Fills specified memory range with data.
G : Executes real-time emulation.
L : Loads user program into memory from host system.
M : Changes memory contents.
R : Displays contents of SH7600 registers.
S : Executes single emulation(s) and displays instruction and registers.
SH : Displays contents of SH7144 peripheral registers.
: 
******* Buffer Overflow *******
: 
******* Buffer Overflow *******

実行するとやはり同じように下記の表示が出てしまいます…。

General Illegal Instruction Occur !!
PC=00400400 SR=000000F0:..3210.... SP=00000000
VBR=00000000 GBR=00000000 MACH=00000000 MACL=00000000 PR=00000000
R0-7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
R8-15 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

以上,途中経過の報告まで。
Reply to #40204

Reply to #40424×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 23:46 by ryuz #40455)

お世話になります。Ryuzです。

hamayanさん御指摘のとおり、モニタプログラムでなく、ソフトのほうを修正するのが賢明かと思います。

先のサンプルの場合、ram.lds の
vector : o = 0x400000, l = 0x00400
の部分をモニタプログラムに合わせて変えてください。
ベクタのみの移動ですので、巨大な本体は外RAMに置けます。

それと、RAM増設やPFC設定にミスが無いか、事前にモニタプログラムから適当にRAM領域をアクセスしてみて、動作を確認しておかれることをお勧めします。

Reply to #40424

Reply to #40455×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 10:24 by Anonym #40440)

hamayan様

アドバイスありがとうございます。
ただ,この設定では外部RAMは使用できない状態ということでしょうか?

どうもHtermのバグでしょうか?
下記のリンクのような状態の人もいたようなので。
http://ojiyan.txt-nifty.com/m_m/2005/05/_hterm__5568.html

できれば正常に動作するHtermのバージョンを教えて頂ければ幸いと思います。
ルネサスでは最新バージョンしかダウンロードできないようなので,問い合わせしてみようと思います。
Reply to #40204

Reply to #40440×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 10:45 by hamayan #40441)

> 下記のリンクのような状態の人もいたようなので。

バグでもなんでも無く、単に対応していないだけですね。gccまではサポートしていないので、各自の責任で!と言う事になっています。
HEWで生成するオブジェクトは問題無く動かせます。

> 外部RAMは使用できない状態
外部RAMを動かすかどうかは、起動時に外部バスを動かす様に設定する/しないに依存します。

SH2をモード2に設定して動かしますので、内部ROM、内部RAMは有効ですし、外部メモリもBSCの設定を行えば使えます。

基本的に外部にメモリを増設したとしても、大概は内部メモリの方が高速に動きますので、なるべく内部ROM、RAMを有効に使った方が良いでしょう。
特に割り込みベクターやスタックなんかは内部の方がパフォーマンスが良くなります。
Reply to #40204

Reply to #40441×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 12:50 by shimizu_t #40443)

hamayan様

ありがとうございます。

そうですか,対応していないだけですか…。
どこのアドレスから始まるかだけ会っていれば動くというものではないんですね…。

お手数をおかけして申し訳ありません。

他の方法を検討してみようと思います。
Reply to #40204

Reply to #40443×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-05 18:37 by hamayan #40447)

いや、ソースレベルデバックが出来ないだけで、モトローラSフォーマットのファイルをロードすれば、デバックは可能ですよ。
Reply to #40204

Reply to #40447×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-06 00:35 by hamayan #40457)

> SH : Displays contents of SH7144 peripheral
> registers.
> : 
> ******* Buffer Overflow *******

HTERMのバグではないでしょう。この状態では単にターミナルソフトとして動いているので、例えばTeraTermでやっても同じ状態だと思います。
Buffer Overflowなのは本当にバッファオーバーフローなんだと思います。このメッセージの直前に点点点と表示できないデータの入力の痕跡が続いていますから、もしかしたらハードウエア的な問題なのかもしれません。


ところでInterface誌付録SH2基板は、信じられない位ハードウエアの設計ミスが指摘されていますが、これらは対応していますか?。確か通信周りもカットだかが必要だったと思いますが。

General Illegal Instruction Occurは一般不当命令が発生した時に出るメッセージです。有効なコードが無い所を実行したのかもしれません。
Reply to #40204

Reply to #40457×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 09:37 by shimizu_t #40523)

お世話になっております。

Htermで増設RAM領域を読み出してみました。
書き換えられません…。内蔵RAMも書き換えられる部分と書き換えられない部分があったので,こんなものかと思っていたのですが…当然書き換えられないといけない訳ですね…。

<ADDR> <DATA>
00400000 FFFFFFFF
00400004 FFFFFFFF
00400008 FFFFFFFF
0040000C FFFFFFFF
00400010 FFFFFFFF

1) モニタプログラムのRAM無し版を焼いている
→Ryuz様が試して頂いた\mon7144r50\Release\MON7144R50.MOTを焼いていることを確認しました。

2) RAMの半田つけを失敗している
→ここが一番問題かもしれません。目視でブリッジしているところなどは無いようですが,温め過ぎたかもしれません。

3) 電源が不安定
→こちらは,まともな安定化電源を使用しているので問題ないと思います。

4) ボードの改修が必要
→抵抗アレイに繋がっているRX1という信号ラインをカットしました。すると,通信できなくなってしまったので,もとに戻しました。(ネット上で見つけた情報です。)

5)スタートアップルーチン
今回,shapshot_20081206をMEMMAP=ramを付けてコンパイルしたものをそのまま実行しましたが,以前と同じ状況になっております。スタートアップルーチンはそのままで,何も変更しておりません。(crt0.Sだと思うのですが。また,リンカスクリプトはram.ldsだと理解しています。)
”1 : CMT0 CMI Occur !”というエラーが出れば,OKということですね。

一点,理解が不十分なのですが,リンカスクリプトでMEMORYコマンドなどでRAM領域を定義していなくても,RAMの初期化をしていれば勝手にRAM領域を使ってくれるようになるのでしょうか?
例えば,自分でアドレスを指定して使用することはできそうですが,スタックとしてはリンカスクリプトで指定していないと使ってくれなさそうかなと思ったりしています…。

その辺りの動作の理解が不十分です…。


とりあえず,新しいRAMを手に入れて,交換が手っ取り早い対策かと考えております。
Reply to #40204

Reply to #40523×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 10:01 by hamayan #40524)

デバックモニターのRAM増設版をFDT等を使って書き込んでデバックモニタを起動し、その状態で例えばFILLコマンド等を使って外付けのRAM領域に書き込み、その後ダンプコマンドで確認と言う手順ですよね。

まさかとは思いますが、SRAM以外にゲートICも搭載する必要が有りますが、これも実装していますよね?。

> 抵抗アレイに繋がっているRX1
これは確かRS232CドライバーICのRXの入力側に何故かプルアップ抵抗を入れていた!と言う奴ですね。ドライバーICには内部に2KΩ程度のプルダウン抵抗が入っていますので、オープンにすると入力レベルが不定になるタイプのバグです。

これ以外に重要なのが、DBGMDの端子の処理も間違えています。
http://www.cqpub.co.jp/interface/contents/2006/06sp/sh2faq.htm

> 電源が不安定
これはボード上のLDOが入力、出力共にコンデンサの容量不足から発振してしまう現象です。積層磁器コンデンサの公称容量なんてあてにできないので、十分に大きな容量のコンデンサを付ける必要があるのです。
Reply to #40523

Reply to #40524×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 10:06 by hamayan #40525)

> オープンにすると入力レベルが不定になるタイプのバグです。

DSUB 9pinコネクタに何も接続しないと!と言う意味です。
Reply to #40524

Reply to #40525×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 13:47 by shimizu_t #40536)

hamayan様

返信ありがとうございます。

手順は,FDTでデバッグモニターを書き込み,HtermでF9を押しHOSのサンプルを書き込む。その後,Htermの表示→Memoryでメモリを読むという手順です。

付録基板用のセットを購入したので,ゲートICも付いており,実装しています。

DBGMDの端子をGNDに繋いで,同じようにロードして実行したところ,少し前と表示されている内容が変わりました。
プログラムカウンタも進んで,スタックポインタの値が0ではなくなりました。

Slot Illegal Instruction Occur !!
PC=00401682 SR=000000F0:..3210.... SP=FFFFE188
VBR=00000000 GBR=00000000 MACH=00000000 MACL=00000000 PR=004018C4
R0-7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
R8-15 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFE188

ちなみに増設RAMの値は下記の通りになっており,書き換えはできません。
<ADDR> <DATA>
00400000 BEDFBEDF
00400004 BEDFBEDF
00400008 BEDFBEDF
0040000C BEDFBEDF
00400010 BEDFBEDF

振る舞いが変わってしまって…単純にメモリが悪いとは言えなくなったのかなという感じです(苦笑)
Reply to #40204

Reply to #40536×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 14:29 by hamayan #40542)

> 手順は,FDTでデバッグモニターを書き込み,HtermでF9を押しHOSのサンプルを書き込む。その後,Htermの表示→Memoryでメモリを読むという手順です。

まあまずはメモリの良し悪しを判断する為に、デバックモニターを起動後、HOSをロードせずに、400000番地から始まるRAM領域に適当な値をFILL、そしてDUMPで確かめてみてください。

次にSP=FFFFE188となっていますが、HOSをビルドした時のスタックポインタの設定が正しいかも調べる必要が有ります。
Reply to #40536

Reply to #40542×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-10 16:20 by shimizu_t #40548)

hamayan様

ありがとうございます。
一度,たまたまメモリの読み書きがうまく動作したので,動作が不安定なだけかなと思い,ユニバーサル基板で作ったマザーボード側の電源ラインをこれでもかというぐらい太い線に交換し,100uFの電解コンデンサを入れてやりました。

そうすると,正常に読み書きできることが多くなりました…それでも,何かを書き込もうとすると,増設RAMの値がすべて同じ値になったりと,変な動作をします…。

実行結果としては以下の通りです。
Slot Illegal Instruction Occur !!
PC=00400CCC SR=000000F0:..3210.... SP=FFFFE188
VBR=00000000 GBR=00000000 MACH=00000000 MACL=00000000 PR=00400ECE
R0-7 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
R8-15 00000000 00000000 00000000 00000000 00000000 00000000 00000000 FFFFE188

後は,通信ラインの部分のカットしたら動かなくなってもとに戻したけれども,そこら辺が怪しいのかなといろいろ試しているところです。
Reply to #40542

Reply to #40548×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-11 16:30 by shimizu_t #40586)

お世話になります。

現状報告をさせていただきます。
どうも動作が不安定でして,一時,まったくRAMの読み書きができなくなりました。

そして,基板洗浄剤を吹きかけてやると,うまく動作するようになり,ram用のサンプルプログラムもうまく動作してしまいました。(これって,何も修正せずに動作してしまってよかったのでしょうか…)。

その後,再び動作せず,またまた基板洗浄剤を吹きかけてやると,しばらくだけ動作し,また動作しなくなるといった感じです。

ハード的には現状は下記のような状態です。
・シリアル部分のRX1カット
・DBGMD端子はカットしてGNDに接続

基板洗浄剤を掛けてしばらくの間だけ動作するという何とも不思議な状態です。
Reply to #40548

Reply to #40586×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-11 17:33 by hamayan #40591)

ええっと、なんとなくハードウエア上の問題の様に思えます。

一度SRAMやゲートICの足に液体フラックスを塗って、足ではなくPADをさらっと半田鏝でなぞってみるのは如何ですか。
Reply to #40586

Reply to #40591×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden

RE: SH7145Fマイコンボード上でHOSを動かすには? (2008-12-12 08:32 by shimizu_t #40613)

hamayan様

アドバイス頂いた通り半田ごてで温めたところ,確実に動作するようになりました。

HOSで遊ぶ準備が整って,うれしく思っております。

皆様,長々と初心者の初歩的なミスに付き合って頂いてありがとうございました。
今後ともどうぞよろしくお願いします。
Reply to #40591

Reply to #40613×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Anmelden