この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
次スレは>>980が立てること
【前スレ】
スレ立てるまでもない質問はここで 159匹目
https://mevius.5ch.net/test/read.cgi/tech/1644673480/
スレ立てるまでもない質問はここで 160匹目
■ このスレッドは過去ログ倉庫に格納されています
2022/05/10(火) 14:24:35.29ID:+9FnNLoT
426419
2022/07/23(土) 00:43:15.10ID:6LmREh/f >>420
開発時にメモリ上にどのようにデータを配置するかの指定は今は一般的にリンカの仕事
パソコンのプログラムはもちろん、マイコンでも今はリンカに対して配置するアドレスを
指定するのが一般的
ルネサスの場合、現行のRXマイコンやRAマイコンなどもアドレスはリンカに指示する
しかしレガシーな開発環境だとアセンブラコード内にアドレスを直打ち出来たりして
>>416の例はそのケースだと思う。今時の開発環境でこのパターンはレアと
思われるので理解を深める必要はないかも
H8の開発環境はないのでRXマイコン(CS+)の例だけど
RXマイコンのリセットベクタのアドレスは0xFFFFFFFCからの4バイト
リセットが解除されるとこのアドレスの値がPCへロードされる(=書かれているアドレスから実行が始まる)
ttps://uploader.purinka.work/src/20992.png
右のメモリダンプを見ると0xFFFFFFFCの値は0000C0FF。リトルエンディアンなので並べ替えると
0xFFC00000となりこのアドレスから実行が開始される
左の逆アセンブルリストで0xFFC00000を見るとPowerON_Reset_PC関数がある
PowerON_Reset_PC関数のソースコードを見ると
ttps://uploader.purinka.work/src/20994.png
#pragma sectionでResetPRGセクションへ配置するよう指示されている(91行目~)
Pはセクション種別で2文字目以降がセクション名
そしてリンカの設定を見ると
ttps://uploader.purinka.work/src/20993.png
ResetPRGセクションは0xFFC00000が指定されていて上記アドレスと一致する
開発時にメモリ上にどのようにデータを配置するかの指定は今は一般的にリンカの仕事
パソコンのプログラムはもちろん、マイコンでも今はリンカに対して配置するアドレスを
指定するのが一般的
ルネサスの場合、現行のRXマイコンやRAマイコンなどもアドレスはリンカに指示する
しかしレガシーな開発環境だとアセンブラコード内にアドレスを直打ち出来たりして
>>416の例はそのケースだと思う。今時の開発環境でこのパターンはレアと
思われるので理解を深める必要はないかも
H8の開発環境はないのでRXマイコン(CS+)の例だけど
RXマイコンのリセットベクタのアドレスは0xFFFFFFFCからの4バイト
リセットが解除されるとこのアドレスの値がPCへロードされる(=書かれているアドレスから実行が始まる)
ttps://uploader.purinka.work/src/20992.png
右のメモリダンプを見ると0xFFFFFFFCの値は0000C0FF。リトルエンディアンなので並べ替えると
0xFFC00000となりこのアドレスから実行が開始される
左の逆アセンブルリストで0xFFC00000を見るとPowerON_Reset_PC関数がある
PowerON_Reset_PC関数のソースコードを見ると
ttps://uploader.purinka.work/src/20994.png
#pragma sectionでResetPRGセクションへ配置するよう指示されている(91行目~)
Pはセクション種別で2文字目以降がセクション名
そしてリンカの設定を見ると
ttps://uploader.purinka.work/src/20993.png
ResetPRGセクションは0xFFC00000が指定されていて上記アドレスと一致する
427419
2022/07/23(土) 00:44:12.83ID:6LmREh/f >・このCPUはリセットされると0番地から実行を開始する
正確にはこれは間違っている。正しくは0番地に書いてあるアドレスから実行が開始される
リセットベクタというかベクタテーブルには大きく分けて2パターンあって
・該当するアドレスに書いてある命令を実行する
・該当するアドレスにアドレスから実行する
通常はこのどちらか。H8は後者。前者は古い物に多くて、新しめのはほとんど後者
>・H'0000番地の中にH'0400が入っているについて、その入れる処理は、どこがそうなっているんですか?
>.SECTION $VECT0,DATA,LOCATE=H'0000
>.DATA.L _PowerON_Reset ←PowerON_Resetのアドレスが配置される実データ
この部分が該当箇所。最終的なデータを出力しているのはアセンブラ
上にも書いたけどこのような書き方は今の主流ではない
何となくだけど開発ツールの扱いもまだ不慣れなのかな。自分も使いこなせているとは言い難いけど
正確にはこれは間違っている。正しくは0番地に書いてあるアドレスから実行が開始される
リセットベクタというかベクタテーブルには大きく分けて2パターンあって
・該当するアドレスに書いてある命令を実行する
・該当するアドレスにアドレスから実行する
通常はこのどちらか。H8は後者。前者は古い物に多くて、新しめのはほとんど後者
>・H'0000番地の中にH'0400が入っているについて、その入れる処理は、どこがそうなっているんですか?
>.SECTION $VECT0,DATA,LOCATE=H'0000
>.DATA.L _PowerON_Reset ←PowerON_Resetのアドレスが配置される実データ
この部分が該当箇所。最終的なデータを出力しているのはアセンブラ
上にも書いたけどこのような書き方は今の主流ではない
何となくだけど開発ツールの扱いもまだ不慣れなのかな。自分も使いこなせているとは言い難いけど
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…★2 [Anonymous★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 [蚤の市★]
- 中国国防省が再反論 SNSで公開した音声とは“別の通報”で日本に訓練の時間や海域を通報したと主張★2 [夜のけいちゃん★]
- 【芸能】元フジ・菊間千乃氏 自宅の湯船は「1年で2、3回」しか入らない 毎日入る人58%調査に「衝撃を受けている」 [冬月記者★]
- コメ「余っている」年明けに下落も? 大量の在庫が倉庫を圧迫、赤字の恐れ…業者「値下げするしか…」 ★3 [Hitzeschleier★]
- フィンランド「つり目」騒動、与党会派代表らが投稿議員の処分検討へ [蚤の市★]
- 赤坂高級サウナ火事2人死亡、サウナ室のドアノブ外れ死か [256556981]
- 【ネトウヨ悲報】女が大嫌いなケンモメン、テストでとんでもない解答をしてしまいドン引きされ0点になるwwwwwww [856698234]
- 【日本人悲報】世界、気づく「高市や安倍のようなアホが選ばれる民主主義より、エリートが支配する権威主義の方がマシ」 [246620176]
- さっき25万だったパソコンリロードしたら28万になってた
- 1年後おれら「ったくあのメモリの異常高騰なんだったんよ。慌てて買うんじゃなかった」 可能性ある? [531674905]
- 【悲報】トランプおやびん、トランプ関税で国民から18兆ドルむしり取る [834922174]
