HI7000シリーズ:OS内でのVBR初期化(設定)値について

HI7000シリーズでは、

OS起動中に、事前に設定されたベクターテーブル情報を関連づける為に、VBR設定を実施している認識です。

ただ、使用するマイコンによっては、VBRアドレス設定可能エリアが決まっていますので、

VBR配置には気を付けなければならない認識です。

 

OS内では、どのようにVBRアドレスを割り出しているのかご存知ないでしょうか。

(恐らく、ベクターテーブルアドレスのシンボルから先頭アドレスを引っ張り出して、VBRアドレス設定していると思うのですが、マニュアル記載がなく、困ってます)

Parents
  • https://www.renesas.com/ja-jp/products/software-tools/software-os-middleware-driver/itron-os/hi7000-4-for-sh-family.html#productInfo

    製品パッケージ内容

    仕様 説明 備考
    カーネルソースプログラム カーネル本体ソースプログラム ソースコード付き量産契約の場合にのみ提供

    とあるので契約次第では直接参照もできると思いますが、VBR ならリセット処理から割と早期に設定してると思うので、デバッガで見て行ってもすぐ見つかるのでは?

    それより

    > (恐らく、ベクターテーブルアドレスのシンボルから先頭アドレスを引っ張り出して、VBRアドレス設定していると思うのですが、マニュアル記載がなく、困ってます)

    ユーザの見えないところで行われる VBR の設定で困る状況がわかりません。

  • fujita nozomu様

    御連絡有難うございます。

    >VBR ならリセット処理から割と早期に設定してると思うので、デバッガで見て行ってもすぐ見つかるのでは?
    VBRアドレスがどこに配置されているのかはデバックで把握しております。
    そうですね、契約を見直してみます。

    >ユーザの見えないところで行われる VBR の設定で困る状況がわかりません。
    VBRがどこに設定されるのか不安に感じない事の方が、恐ろしいと感じています。
    可能性の話ですが、VBRがROM/RAMマッピング外に設定されていた場合は、予期しないリセットを誘発してしまうと考えています。また、キャッシュ使用、MMU使用によって配置場所が限定される認識です。
    その為、OS内でVR設定される記述がある以上、どのようにアドレス解決されるのかを確認したい次第です。
  • わわいです
    なんかよーわかりませんが、予期しないリセットを誘発するとかなるなら、OSの不具合なので、カネ払ってそれを使ってるなら、堂々とサポートしてもらえばいいんじゃないでしょうか。

    #ちまたにあふれるPCやらタブレットやらスマホやら、ベクタテーブルの位置が公開されてないからと不安?
  • わわい様

    >ベクタテーブルの位置が公開されてないからと不安?
    製品開発する上で、VBRアドレス決定が不確定であれば、通常の割り込みは勿論、予期しない割り込み検知ケースへのフェール対策が不十分になると考えています。

    >堂々とサポートしてもらえばいいんじゃないでしょうか。
    はい、確認してみます。
    もし、どなたかご存知でしたらお聞きしたい想いで本件を投稿いたしました。
  • VBRは、nnnn_exp_ent.srcの__kernel_exp_entの配置アドレス(=P_hiexpentセクション先頭)-0x100に初期化されます。
  • すみません、上記はHI7700/4の場合でした。
    HI7000/4では、以下です。

    CFG_VCTRAMが選択の場合:B_hivctセクション先頭(=_kernel_vcttbl_ram)
    この領域もvsta_knlで初期化されます。

    CFG_VCTRAMが未選択の場合:C_hivctセクション先頭(=_kernel_vcttbl)
  • 117様

    >VBRは、nnnn_exp_ent.srcの__kernel_exp_entの配置アドレス(=P_hiexpentセクション先頭)-0x100に初期化されます。
    御連絡有難うございます。
    HI7750でも、上記の通りになりますでしょうか。
    (投稿の題目が良くなかったと反省しておりますが、対象は、HI7750となります)

    また、どのマニュアルから判断されていますでしょうか。
    (asmから判断??)
  • HI7750/4も同じです。

    fujita nozomuさんがおっしゃるように、ステップしていけば分かります。
  • 117様

    御連絡有難うございます。
    HI7750では、VBR = __kernel_exp_entの配置アドレス - 0x100 へ設定される事で、提供元から回答を得ました。
    情報のご展開まで。
Reply Children
No Data