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

HI7000シリーズでは、

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

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

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

 

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

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

Parents
  • わわいです
    HIなんたらは使ったことはありませんが。。
    ベクタベースアドレスはベクタテーブルをどこに置くかで変えるもので、それは作る人の考え方次第でしょ。
    固定でよければROM領域(あるいはデフォルトのまんま)だし、逐次変える必要があるならRAM領域になるし、ということで。
    私は(SHですが)割り込み応答の高速化を狙って、あえて内蔵RAM領域に割り当て、各デバイスのイニシャル時に該当ベクタをセットしていく、というやり方してましたね
  • わわい様

    仰る通り、VBR配置場所は、作り手如何となります。
    ここでの確認は、HI7000 kernelがどのようにしてVBR設定を行っているかの確認になります。

    ご指摘の通り、
    高速動作・応答を期待しております為、RAM(DDR)上での動作・RAM上にVBR設定を意図しています。
    しかし、マニュアル上は、HI7000 kernelが設定する記載はあるものの(+OS起動後は、ユーザではVBR設定を禁止されています)、どのように決定されるのか記載がない状況であり、確認させて頂いております状況です。
  • わわいです
    HI7000ってITRONだったのねw
    ベクタテーブル位置を自分の好きにしたい、というんであれば、そのOSのソースを手に入れて自分でどーにかするしかないんじゃないかと。
    どのように決定されるかってのはそのOSの作成者でもないと答えようもないし、それを答えられたところでどーしよーもないんじゃないんでしょうか。
    #せいぜい自分でVBRの値読み込んでどこにあるのか確認する程度で

    一度、SH-2上でTOPPERSをポーティングしたりしたことがありますが、どーしてもと言うなら、そこら辺から攻めて見るのもいいんじゃないかと。
  • わわい様

    >OSのソースを手に入れて自分でどーにかするしかないんじゃないかと。
    確かに、ソース提供までは求めた事ないですね。ただ、lib提供なので、コード入手は難しいかもしれません。
    HI7000 kernel が、TOPPERS様と考え方・作りが同じか否かもグレーですね。(ITRONとしては、同じ考え方だと思いますが) 悩ましい。
  • わわいです
    LIBでの提供であれば、そこら辺のメモリ配置はユーザ側のセクション設定である程度自由になるのでは。
    マニュアル(かなんか?)でそこら辺の記述はないでしょうか

    ベクタテーブル単体だけ、は無理としても、定数領域やプログラム領域をRAMに持っていくってことはできるんじゃないかと。
    TOPPERSではベクタテーブルをイニシャル時に設定するような作りになってたので、もしかすればそいつでもRAM領域になってそ~な気もしなくもないですが。
  • わわい様

    >LIBでの提供であれば、そこら辺のメモリ配置はユーザ側のセクション設定である程度自由になるのでは。
    ご指摘の通り、ベクターテーブルセクション or ベクターテーブルから、アドレス解決は出来るので、
    上記解決方法を以て、VBR設定していると推測しております。
    しかしながら、
    ・VBRアドレス解決がどのように解決されているのかがマニュアル記載がない事
    ・使用するマイコンのキャッシュ構成上、VBR配置位置に制限がある事
    から、解決に至っていません。
Reply
  • わわい様

    >LIBでの提供であれば、そこら辺のメモリ配置はユーザ側のセクション設定である程度自由になるのでは。
    ご指摘の通り、ベクターテーブルセクション or ベクターテーブルから、アドレス解決は出来るので、
    上記解決方法を以て、VBR設定していると推測しております。
    しかしながら、
    ・VBRアドレス解決がどのように解決されているのかがマニュアル記載がない事
    ・使用するマイコンのキャッシュ構成上、VBR配置位置に制限がある事
    から、解決に至っていません。
Children
No Data