オプション・バイトの確認方法について

RL78デバイスで、オプション・バイトの設定を行いましたが、正しく設定値がフラッシュ・メモリに書き込まれているかを確認する方法を知りたいです。


■開発環境:e2 studio  Version: 5.4.0.018


■オプション・バイトの設定方法
・[プロパティ] → [Setting] → [Linker] → [デバイス]の
 "ユーザ・オプション・バイトを設定する" にチェック(レ)を入れ、
 "ユーザ・オプション・バイト値"
 に設定値を入力。

Linerのオプションをみると、"-user_opt_byte=7a33e8"が入っているので、オプション・バイトの設定は正しく出来ているのだと思うのですが、、、

ちゃんとその設定値がフラッシュ・メモリに書き込まれているのかが心配になり、投稿させていただいた次第です。

ちなみに、オプション・バイトの設定値は、ビルドで出力したhexファイルで確認することが可能なのでしょうか?

初歩的な質問で申し訳ございませんが、ご教授いただけると助かります。

Parents Reply Children
  • チョコ様
    ご回答ありがとうございます。
    hexファイルを見ると、以下のようになっています。
    :020000020000FC
    :10200000555555555555555555555555555500BE6C
    :24201000EC6D2E00ECB82C00ECE42C00FFFFFFFFEC272E00EC232D00FFFFFFFFEC6D2D00ECA02D00A5
    :04210000EC4E2F0072
       :(続く)

    >アドレスがC0~C2に相当するところの
    上記のアドレスがC0~C2に相当するところとは、具体的にどのように見ればよいでしょうか。
    初歩的な質問ですみません。
  • チョコです。

    ":"の次の2桁がデータ数(バイト数)で,それに続く4桁が16ビットのアドレスその次の2桁がレコードタイプです。通常は00ですが,02はセグメント(16ビットのアドレスの上位にあたる)を示します。また,01は最終レコードを示します。

    レコードタイプの次が実際のデータ部になります。最初に示されたデータ数×2桁になります。最後の2桁がチェックサムになります。

    最初の行は,通常はセグメントを指定し,":020000020000FC"は,オレンジのレコードタイプが02で,セグメント指定なので,データ数は02(バイト)つまり16ビットになります。

    黄色で示された"0000"でセグメントは0x0000であることが分かります。最後のFCがチェックサムで,ピンクの02から8ビット単位で加算すると

      02 + 00 + 00 + 02 + 00 +00 + FC = 100

    となりますが8ビットからの桁上がりは無視して,下位の8ビットが00になれば正常です。

    2行目の":10200000555555555555555555555555555500BE6C"は,オレンジのレコードタイプが00なので,データのレコードであることを示しています。青いアドレスが2000なので,セグメントの0000と合わせて,データが0x00002000からのデータであることが分かります。ここでは,ピンクのデータ数が10なので,0x00002000から0x0000200Fまでの16バイトのデータが”55” ”55” ・・・・・ "00" "BE"となります。

    オプションバイトはこの例の1行目に続いて(セグメントが0000の状態)で例えば,下のようにアドレス部分が00C0になるはずです。

    :0400C0007a33e8xxYY

  • チョコ様

    早速のご教示ありがとうございます。大変助かります。

    >:0400C0007a33e8xxYY

    hexファイルを確認したのですが、黄色の部分(オプション・バイト)に相当する箇所が無いです。(青色の部分(アドレス)に相当する箇所も無いです)

    ということは、オプション・バイトが正しく設定されていないという事なのだと思います。

    最初の質問の趣旨から変わってきて申し訳ございません。オプション・バイトの設定方法は、以下で正しいでしょうか。

    【開発環境】

    ・e2 studio  Version: 5.4.0.018

    【設定方法】
    ・[プロジェクト] → [プロパティ] → [Setting] → [Linker] → [デバイス]の
      "ユーザ・オプション・バイトを設定する" にチェック(レ)を入れ、
      "ユーザ・オプション・バイト値"に設定値(7a33e8)を入力

    ビルドで生成されるmapファイルには、

     -user_opt_byte=7A33E8

    が記録されています。

  • チョコです。
    日ごろCS+環境を使用し,e2 studioは使ったことはありませんので,設定方法は分かりません。
    hexファイルをシミュレータにダウンロードさせて,0x000C0番地からメモリの内容を確認できませんか。これが,一番簡単な確認方法だと思います。