描述
我创建了一个MicroBlaze嵌入式系统,以便Linux或Petalinux可以从SystemACE卡启动。我使用genace.tcl文件创建了ACE文件,但Linux映像无法启动。问题是什么?
解
问题的根源尚未发现,但可疑的是MicroBlaze核心如何与ACE文件的启动过程进行交互。有一个非常简单的解决方法可以启动并运行Linux映像。您将需要少量的Block RAM空间来存储引导软件应用程序。必须将此应用程序标记为初始化到Block RAM中。软件应用程序将采用以下代码形式:
#include“xparameters.h”
/ * START_ADDRESS是图像(或主要()的位置
功能)将驻留。在这个例子中,它是DDR3的地址
SP605板上的内存,但START_ADDRESS可能会有所不同
取决于您的链接器脚本(.ld文件)定义,应该是
根据您的设计规范进行调整。 * /
#define START_ADDRESS XPAR_MCB_DDR3_MPMC_BASEADDR
/ *在程序结束时使用的函数指针
跳转到START_ADDRESS所声明的地址位置* /
int(* func_ptr)();
int main()
{
func_ptr =(void *)START_ADDRESS;
func_ptr();
返回0;
}
没有回复内容