C语言 使用QEMU在LEON3处理器上运行.elf文件



最近我一直在尝试使用qemu在Leon3处理器上执行代码。我的代码是这样的:

#include <stdio.h>
#include <stdint.h>

int main(void) {


int a,b,c,d,e;  
printf("hello world!");



if(a){
a++;
};

if(b){
b++;
};

if(c){
c++;
};

if(d){
d++;
};


if(e){
e++;
};


while(1){
}





return 0;
}

是一个非常简单的程序。我用以下命令启动Qemu:qemu-system-sparc.exe -nographic -M leon3_generic -m 64M -kernel testapp.elf

但是没有得到任何输出。Qemu似乎开始并立即退出,甚至没有挂在无限循环中。试图调试导致崩溃(?)与以下代码:qemu-system-sparc.exe: QEMU: Terminated via GDBstub

我想我可能不理解qemu的一些东西,但是我找不到任何关于运行。elf文件的帮助。

也许有人做过这件事,可以帮助我?

好的,所以我找到了一个方法。

正如Peter在评论中提到的:Qemu需要"一些东西"。

我发现有一个工具MKPROM2由Cobham-Gaisler提供,它需要一个。elf文件并创建一个ROM映像,稍后可以用-kernel选项加载到Qemu。

ROM映像与裸机映像的不同之处在于,ROM映像包含一些初始化代码,这些代码允许运行我们最初想要执行的程序。

所以最后要做的就是运行:mkprom2 -freq 20 -romres testapp.elf

输出prom.out文件,可以加载到qemu。

相关内容

  • 没有找到相关文章

最新更新