zoukankan      html  css  js  c++  java
  • 利用 QEMU USER 模式运行 mips 程序

    摘要

    关键字: qemu mips

    前述

    QEMU是一个处理器模拟软件,可以用来在PC中模拟ARM、MIPS等多种架构的软硬件运行环境。QEMU主要有两种模拟模式:

    • System Mode
      System模式中,它可以虚拟多种CPU架构的虚拟计算机系统,比如可以在x86 的 Ubuntu系统中虚拟出一个MIPS架构的Debian系统。
    • User Mode
      User模式中,它可以运行为其他处理器编写的应用程序,比如可以在X64 Ubuntu系统中直接运行 MIPS Linux的应用程序。

    QEMU功能强大,安装起来也很简单。在Ubuntu版本,只需要一条命令就可以把QEMU(本次博客涉及的安装文件)安装好.QEMU 其他架构的软件包这里没有涉及就没安装。

    apt install qemu-user-static qemu-system-mips
    

    注意这里我们安装的是qemu-user模式的static版本,也就是静态链接的qemu。

    QEMU User模式的使用

    安装好qemu后,我们可以用mips编译器交叉编译一个小得C demo应用程序并运行起来。在此之前我们需要安装一个能够编译mips应用程序的编译器。同样使用一条简单的命令就可以完成

    apt install gcc-mips-linux-gnu 
    

    编写一个小得C demo代码:

    root@OptiPlex-7050:/home/lester# cat > xx.c << EOF
    #include <stdio.h>
    #include <endian.h>
    
    int main()
    {
        int x = 0x1234;
        printf("0x%x, htole32 0x%x, htobe32 0x%x
    ", x, htole32(x), htobe32(x));
        return 0;
    }
    EOF
    

    编译这段代码的命令如下:

    root@OptiPlex-7050:/home/lester# mips-linux-gnu-gcc -static xx.c
    root@OptiPlex-7050:/home/lester# file a.out 
    a.out: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=58b4213f431eedcd37b362a38662113d6ff0b7dc, not stripped
    

    从上可以看出,编出来的程序的MIPS的。(需要注意的是要加上 -static的编译选项否则运行时候会提示找不到链接库)

    然后使用 qemu 运行:

    root@OptiPlex-7050:/home/lester# qemu-mips-static ./a.out 
    0x1234, htole32 0x34120000, htobe32 0x1234
    
  • 相关阅读:
    科技小论文
    一线架构—细化架构
    python20.04.10
    软件架构总结
    信息领域热词分析
    架构即未来阅读笔记二
    构架即未来阅读笔记一
    科技小论文之软件质量
    Pre-architecture的需求
    软件质量
  • 原文地址:https://www.cnblogs.com/sinpo828/p/13674479.html
Copyright © 2011-2022 走看看