将VxWorks映像映射到RAM(BSP)

时间:2012-03-09 18:52:56

标签: vxworks bsp

查看随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映像之后加载,并且假设引导加载程序位于映像之后。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

RAM高/低有点像你所发现的用词不当。
它应该被称为RAM_VXWORKS_ADDR和RAM_BOOT_ADDR(或其他一些) 很多这些名字都是历史性的。

在99%的情况下,RAM_HIGH> RAM_LOW。但是,根据架构,BSP和目标,可能存在反转。

最后,它只是一个加载软件的地址。只要没有冲突或重叠,就可以了。

vxWorks Heap本身与RAM_LOW / HIGH_ADDR无关。

vxWorks堆(在简化视图中)从vxWorks映像上方运行到sysMemTop()返回的地址 - 由BSP定义,可能运行到物理RAM的顶部(或不)。

在正常情况下,如果vxWorks加载了bootrom加载地址,bootrom就会被覆盖。在您的BSP中情况并非如此,因此您确实会丢失一些RAM空间,因为bootrom不会被“回收”。