フォーラム: ヘルプ (スレッド #16851)

H8-3069FでRAM上デバックに失敗します。(ルネサスモニタ使用) (2007-11-28 09:16 by 匿名 #33600)

お世話になります。
秋月電子のH8-3069Fマイコンでルネサスモニタを使用し、外付けのDRAM上でデバックをしようと思うのですがうまく行きません。

メモリの配置が間違っているのだと思うのですが、
どうにも疎いため解決できません。
助けて下さい。

●ルネサスモニタでのエラー内容
: G 400100
HOS!
000 ITU0 IMIA Occur !!
PC=000000 CCR=80:I....... SP=00401F4E
ER0=00000080 ER1=00000030 ER2=00000001 ER3=0040074E
ER4=00000000 ER5=00000030 ER6=00401F54 ER7=00401F4E

●HEWで設定したメモリマップ
*** Options ***
-subcommand=C:\hew3\hosv4\H8sample\Debug\H8sample.hlk
-entry=_startup
-define=STACK=05FFFFF
-noprelink
-rom=D=X
-nomessage
-list="C:\hew3\hosv4\H8sample\Debug\H8sample.map"
-nooptimize
-start=VECT/0400000,P,C,D,B,X/0400100
-nologo
-input="C:\hew3\hosv4\H8sample\Debug\crt0.obj"
-input="C:\hew3\hosv4\H8sample\Debug\h8_sci.obj"
-input="C:\hew3\hosv4\H8sample\Debug\kernel_cfg.obj"
-input="C:\hew3\hosv4\H8sample\Debug\ostimer.obj"
-input="C:\hew3\hosv4\H8sample\Debug\sample.obj"
-input="C:\hew3\hosv4\H8sample\Debug\vector.obj"
-library="C:\hew3\hosv4\H8sample\Debug\H8sample.lib"
-library="C:\hew3\hosv4\hosv4\Debug\hosv4.lib"
-output="C:\hew3\hosv4\H8sample\Debug\H8sample.abs"
-end

*** Error information ***

*** Mapping List ***

SECTION START END SIZE ALIGN

VECT
00400000 004000ff 100 2
P
00400100 00401545 1446 2
C
00401546 00401591 4c 2
D
00401592 004015bd 2c 2
B
004015be 00401fdf a22 2
X
00401fe0 0040200b 2c 2

●ルネサスモニタで設定したメモリマップ
: ?
Monitor Vector 000000 - 0000FF
Monitor ROM 000100 - 005CAD
Monitor RAM FFBF20 - FFBFF3
User Vector 400000 - 4000FF


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




メッセージ #33600 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: H8-3069FでRAM上デバックに失敗します。(ルネサスモニタ使用) (2007-11-28 09:43 by hamayan #33604)

お世話になっています。

まず基本的な事で、モニターの初期化時にDRAMコントローラの初期化は完了しているでしょうか?。

また、STACKは奇数アドレスではなく偶数アドレスに設定した方が良いでしょう。

細かいところですが、スタック領域の設定は、アクセスがとても遅いDRAM上ではなく、2ステートでアクセスできる内蔵RAM上に設定した方が、大概はパフォーマンスが良い様です。
#33600 への返信

メッセージ #33604 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: H8-3069FでRAM上デバックに失敗します。(ルネサスモニタ使用) (2007-11-28 12:41 by 匿名 #33618)

hamayan 様

お返事ありがとうございます。
DRAMコントローラの初期化はhamayan様の
ホームページで公開されているmon3068r20.zipの
monitor.srcを使わせて頂きました。

今夜、アドバイスを参考にSTACKを内蔵RAMの偶数番地に設定してテストしようと思います。

追記
著書の内容、とても良いと思います。
他にuITRONの具体的なプログラミングが学べる本は
少ないので本当に助かります。

#33600 への返信

メッセージ #33618 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: H8-3069FでRAM上デバックに失敗します。(ルネサスモニタ使用) (2007-11-28 22:53 by hamayan #33625)

> 著書の内容、とても良いと思います。

恐れ入ります。これもひとえに、プロジェクトHOSの皆様のお力添えの賜物です。

一つ判らないのは、
> User Vector 400000 - 4000FF
私の場合、内蔵RAM上にユーザーベクターを取っていると思いましたが、これは本当にこのアドレスが設定されていたのでしょう?。

と言いますのも、
> 000 ITU0 IMIA Occur !!
このエラーメッセージが出るのは、大概デバックモニタで管理されていない(ユーザーベクター上に存在しない割り込みエントリー)割り込みが発生した場合です。
#33618 への返信

メッセージ #33625 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

RE: H8-3069FでRAM上デバックに失敗します。(ルネサスモニタ使用) (2007-11-29 09:30 by 匿名 #33634)

お世話になります。

hamayan様のアドバイスを参考に設定し直したところ、無事動きました!
HEWとルネサスモニタの設定内容を報告します。

●ルネサスモニタの設定
: ?
Monitor Vector 000000 - 0000FF
Monitor ROM 000130 - 005CC5
Monitor RAM FFBF20 - FFBFF3
User Vector FFC040 - FFC13F

●HEWの設定
*** Options ***

-subcommand=C:\hew3\hosv4\H8sample\Debug\H8sample.hlk
-entry=_startup
-define=STACK=0FFFF00
-noprelink
-rom=D=X
-nomessage
-list="C:\hew3\hosv4\H8sample\Debug\H8sample.map"
-nooptimize
-start=P,C,D,B,X/0400100,VECT/0FFC040
-nologo
-input="C:\hew3\hosv4\H8sample\Debug\crt0.obj"
-input="C:\hew3\hosv4\H8sample\Debug\h8_sci.obj"
-input="C:\hew3\hosv4\H8sample\Debug\kernel_cfg.obj"
-input="C:\hew3\hosv4\H8sample\Debug\ostimer.obj"
-input="C:\hew3\hosv4\H8sample\Debug\sample.obj"
-input="C:\hew3\hosv4\H8sample\Debug\vector.obj"
-library="C:\hew3\hosv4\H8sample\Debug\H8sample.lib"
-library="C:\hew3\hosv4\hosv4\Debug\hosv4.lib"
-output="C:\hew3\hosv4\H8sample\Debug\H8sample.abs"
-end

*** Error information ***

*** Mapping List ***

SECTION START END SIZE ALIGN

P
00400100 00401545 1446 2
C
00401546 00401591 4c 2
D
00401592 004015bd 2c 2
B
004015be 00401fdf a22 2
X
00401fe0 0040200b 2c 2
VECT
00ffc040 00ffc13f 100 2


●ルネサスモニタで転送したプログラムを実行
: G 400100
HOS!
00000:Task1
01003:Task1
02006:Task1
03009:Task1
04012:Task1
05015:Task1


>>私の場合、内蔵RAM上にユーザーベクターを取ってい>>ると思いましたが、これは本当にこのアドレスが設>>定されていたのでしょう?
実は、mon3068r20.zipからmonitor.srcだけを頂いて、ユーザーベクターなどの設定は自分で行いビルドしたルネサスモニタを使用していました。
最初からmon3068r20.zipに含まれているMON3068R20.MOTに合わせてHEWを設定すれば良かったです。

どうもありがとうございました。
これで私もマルチタスクライフの仲間入りが出来そうです。
#33625 への返信

メッセージ #33634 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする