x86_64用户态模拟arm程序(helloworld)

原创 2015年07月07日 13:27:57
用户态模拟arm 运行程序 - "hello world"

编译一个运行在arm 上的helloworld.
----------------------------------------
甲: 代码
----------------------------------------
$cat hello.c
#include <stdio.h>
void main()
{
    printf("---------- hello qemu ------------\n");
//    return 0;
    while(1);
}

注意结尾是while(1); 而不是return 0;
   这里模拟一个永不退出的主进程

----------------------------------------
乙: 编译
----------------------------------------
$cat Makefile
CC=arm-none-linux-gnueabi-gcc
all: initramfs

hello:
    $(CC) -o hello hello.c -static
initramfs: hello

    echo hello |cpio -o --format=newc > initramfs

# 说明: hello 是文件名称, -o 是创建, initramfs 是归档名称


    
clean:
    rm hello initramfs
用来交叉编译出arm 执行文件和打包文件
打包文件是为系统起动ramfs 镜像, 研究系统时使用

----------------------------------------
丙: 运行
----------------------------------------
$ qemu-arm hello
---------- hello qemu -----------
^C
 qemu-arm 是用户态arm模拟运行程序

说明:
如果编译时不加-static 选项,则运行时需要指明运行库搜索路径。
arm-none-linux-gnueabi-gcc -o hello hello.c
这个hello 需要动态链接库
$ qemu-arm hello
/lib/ld-linux.so.3: No such file or directory

查询所需要的动态库:
arm-none-linux-gnueabi-readelf -a hello |grep lib
      [Requesting program interpreter: /lib/ld-linux.so.3]

对于我的环境,指明库路径:
$ qemu-arm  -L /home/hjj/CodeBench/arm-2014.05/arm-none-linux-gnueabi/libc hello
---------- hello qemu ------------
^C

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejinjing_tom_com/article/details/46788283

用Qemu模拟ARM(1)

前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。 1. Hello, Qemu! 输入下面的代码: hello.c - hello.c ...
  • HMSIWTV
  • HMSIWTV
  • 2014-02-23 18:02:34
  • 6767

ubuntu下使用qemu模拟ARM(五)-------应用程序Hello World

在前面四章建立好的开发环境基础上我们来写一个应用程序,然后将它在Qemu模拟出来的ARM开发板中运行 首先写程序 #include int main() { printf("hello l...
  • rfidunion
  • rfidunion
  • 2017-01-23 23:12:49
  • 580

一个Hello World的Arm汇编指令

源码 #include #include int main() {     int a = 1;     int b = 2;     printf("hello %d, %d", a, b)...
  • demonshir
  • demonshir
  • 2016-09-21 21:48:27
  • 235

一个最小x86 ELF Hello World程序的诞生

注:这里的最小是指我能做到的 最终大小: 142字节 介绍 这篇文章可以算是我在Ubuntu Linux上尝试创建一个最小的x86 ELF二进制Hello World文件的记录,你也可以把它当作...
  • fisher_jiang
  • fisher_jiang
  • 2011-10-20 21:05:36
  • 1718

让x86的android模拟器能模拟arm架构系统

2016-06-24 15:51:49   来源:eefocus    关键字:x86  android模拟器能  arm架构系统 网上介绍共计三种模拟器比较常用,分别是bluestacks、...
  • dj0379
  • dj0379
  • 2016-08-01 00:49:06
  • 8733

我见过最全的剖析QEMU原理的文章[Z]

转自: http://people.cs.nctu.edu.tw/~chenwj/dokuwiki/doku.php?id=qemu     How To Become A H...
  • pkufergus
  • pkufergus
  • 2014-01-17 10:33:02
  • 5915

PC 上 QEMU模拟arm

1. 首先,编译 qemu代码: git clone git://git.qemu.org/qemu.git cd qemu/ ./configure --target-list=arm-s...
  • CaspianSea
  • CaspianSea
  • 2013-10-06 11:49:06
  • 2860

x86_64用户态模拟arm程序(helloworld)

用户态模拟arm 运行程序 - "hello world" 编译一个运行在arm 上的helloworld. ---------------------------------------- 甲:...
  • hejinjing_tom_com
  • hejinjing_tom_com
  • 2015-07-07 13:27:57
  • 896

用Qemu模拟ARM

用Qemu模拟ARM(1) 前面已经安装并配置了编译链和qemu,现在可以用qemu来模拟arm平台了。 1. Hello, Qemu! 输入下面的代码: hello.c - hell...
  • tycoon1988
  • tycoon1988
  • 2015-06-17 09:35:18
  • 1886
收藏助手
不良信息举报
您举报文章:x86_64用户态模拟arm程序(helloworld)
举报原因:
原因补充:

(最多只允许输入30个字)