質問

VXWORKSで提供されているBSPパッケージを見ると、画像の次のメモリマッピングが表示されます。(Pentium4から)

Parameter RAM_HIGH_ADRS {
    NAME        Bootrom Copy region
    DEFAULT     (INCLUDE_BOOT_APP)::(0x00008000) \
                 0x00108000
}

Parameter RAM_LOW_ADRS {
    NAME        Runtime kernel load address
    DEFAULT     (INCLUDE_BOOT_RAM_IMAGE)::(0x00508000) \
                (INCLUDE_BOOT_APP)::(0x00108000) \
                0x00308000
}
.

しかしこれは私に奇妙に見えます、どのようにRAM_LOW_ADRS > RAM_HIGH_ADRSがありますか? 私が理解できることごとに、ブートローダーはRAM_High_ADRSとRAM_LOW_ADRSのVxWorksイメージの後にロードされるとし、ブートローダーはイメージの後に配置されることを想定しているとします。

任意のアイデア?

役に立ちましたか?

解決

RAM高/低い/低い誤ノーマーは、発見されたとおりに誤音である。
それは実際にRAM_VxWorks_AddrとRAM_BOOT_ADDR(またはそのようなもの)と呼ばれるべきです。
それらの名前の多くは自然の中で歴史的です。

ケースの99%、RAM_HIGH> RAM_LOW。ただし、アーキテクチャ、BSP、ターゲットに応じて、反転がある可能性があります。

最後に、ソフトウェアをロードするためのアドレスだけです。競合や重複がない限り、大丈夫です。

VxWorksヒープは、RAM_LOW / HIGH_ADDRそれ自体の関係ありません。

VxWorksヒープ(簡易ビュー)は、VxWorksイメージの上からvxWorksイメージを上から実行しています。これは、BSPとによって定義されています(が物理RAMの上部まで実行されます(またはそうでない)。

通常の状況では、VxWorksがBootRomロードアドレスを搭載した場合、BootRomは単に上書きされます。それはあなたのBSPではそうではないので、BootROMが「再生されている」以来、いくつかのRAMスペースを緩めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top