董事会是否依赖于包下层架构?

时间:2012-12-26 12:46:45

标签: linux embedded

我想知道Board提出的封装架构是否依赖于架构? actullay想要知道的是,我们可以使用64位架构运行32位bsp代码,或者BSP代码始终为64位,因为BSP代码是特定于架构的。

2 个答案:

答案 0 :(得分:3)

是的,绝对的。 BSP非常特定于处理器和电路板本身的架构。话虽如此,有可能在64位运行时不需要那么多的更改。大多数BSP包含的一件事是初始化系统中硬件寄存器的启动代码。当你转向64位时,其中一些可能会改变。

第二部分是引导加载程序,它将内核/ OS /任何内容加载到RAM中(通常 - 它可能只是将ROM区域初始化为可执行文件并正确设置)。同样,这可能需要更改,因为它可能“以32位跳转到操作系统”,并且操作系统可能期望64位跳转。

然后你有自己的OS /内核,显然需要重新编译。

您实际需要做多少工作取决于电路板的架构,您正在使用的处理器,最重要的是,操作系统和上层软件在64位模式下运行的要求 - 是否有内存由init-code或bootloader设置需要更改?从32位到64位的切换何时发生 - 在操作系统内部或外部?

这可能不是你想要的答案,但我认为没有人,除了那些熟悉BSP的人能够准确地说出你需要改变的东西 - 我很确定这不是一个完整的重写,但是可能存在一系列假设:“我们知道指针是32位,所以int将保存指针”或“我们知道指针是4个字节,所以我们在这里保留4个字节......” / p>

答案 1 :(得分:0)

垫子几乎涵盖了它。与任何其他应用程序一样,它是您要定位的两个或多个平台以及应用程序的愿望和设计的组合。这些架构可能相距甚远,因此尝试使用单个BSP来定位它们毫无意义。如果架构足够相似,您可以使用单个BSP来定位它们,但您可能会也可能不会选择。 Linux或BSD是一个很好的例子,有相当数量的代码是多平台的,具有一些特定于平台的部分。 bsp没有什么不同,通常只是不太复杂,你的大多数代码通常是C或一些类似的语言,所以它是你编译的任何目标,引导程序和一些其他类似的部分是asm,那些将是目标特定的。 FreeRTOS可能比Linux或BSD更好。