質問
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スペースを緩めます。