启动Microblaze(在OVPsim上)

时间:2014-11-01 15:55:26

标签: assembly simulation gas microblaze

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

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

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

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

__HEAD

ENTRY(_start)

从我所看到的来看,通过点击来源也不是特定的Microblaze:

__HEAD

似乎扩展为:

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

我无法真正看到

ENTRY(_start)

扩展为,但看起来没什么(??)

任何人都可以向我解释我需要在启动时使用.text开始。

1 个答案:

答案 0 :(得分: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或谷歌搜索。