首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用QEMU在.elf处理器上运行LEON3文件

使用QEMU在.elf处理器上运行LEON3文件
EN

Stack Overflow用户
提问于 2021-08-09 11:09:04
回答 1查看 275关注 0票数 2

最近,我一直试图使用qemu在Leon3处理器上执行代码。我的代码如下所示:

代码语言:javascript
运行
复制
#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文件方面我找不到任何帮助。

也许有人做过这件事能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-14 18:22:32

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

正如Peter在评论中提到的那样: Qemu需要的不仅仅是裸金属.elf文件。

我发现有一个由Cobham提供的工具MKPROM2,它接受一个.elf文件并创建一个-kernel映像,该映像以后可以用-kernel选项加载到Qemu。

ROM映像与裸金属.elf的不同之处在于,ROM映像包含一些独立的代码,允许运行我们本来想要执行的程序。

因此,最后要做的就是运行:mkprom2 -freq 20 -romres testapp.elf

这将输出可以加载到qemu的prom.out文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68711065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档