【问题标题】:Booting a Microblaze (on OVPsim)启动 Microblaze(在 OVPsim 上)
【发布时间】:2014-11-04 02:18:37
【问题描述】:

我想编写一些代码来启动模拟(在 OVPsim 上)Microblaze 处理器。

我已经构建了一个真正的裸机平台——即没有半主机库。但是我不熟悉编写 .S 文件,而不是一些小的内联汇编。

所以,我想指定我的汇编器 .text 部分位于物理地址 0x00000000

在Linux内核的head.S文件中,引导代码前面有两个宏:

__HEAD

ENTRY(_start)

从我通过 grepping 来源看到的情况来看,Microblaze 也不是特定的:

__HEAD

似乎扩展为:

 .section        ".head.text","ax"

我真的看不到什么

ENTRY(_start)

扩展至,但看起来没什么大不了的(??)

谁能向我解释我需要在启动 .text 前加上什么?

【问题讨论】:

    标签: assembly simulation gnu-assembler microblaze


    【解决方案1】:

    您应该从 Xilinx 学习 crt0.s(以及其他 crt*.s 文件)开始。这些文件为在 MicroBlaze 上运行的独立非 Linux 程序初始化 C 运行时环境。

    基本上这些启动文件做的最少:

    • 为 MicroBlaze 复位、中断、异常向量、初始化提供地址;

    • 初始化堆栈和其他 Xilinx ABI 寄存器(.bss.sbss.rodata);

    • 用零初始化 .bss 部分;

    • 调用您的 main() 函数。

    对于 Xilinx 14.3,它们的位置是 Xilinx/14.3/ISE_DS/EDK/sw/lib/microblaze/src/。或者只需在您的 Xilinx 文件夹中搜索 crt0.s 或通过 Google 搜索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多