利用 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\n", 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM