QEMU中指令添加相关(1):测试程序

QEMU中指令添加相关(1):测试程序

1、汇编.s入口汇编

#See LICENSE forlicense details.

.section
.text.init,“ax”,@progbits

.globl _start

_start:

csrr  t0, mhartid             # read

hardware thread id (hart stands for hardware thread),将线程id放到t0寄存器

bnez  t0, halt                # run only

on the first hardware thread (hartid == 0), halt all the other threads,判断t0值是否为0,为0则向下执行,否则跳转到halt

la    sp, stack_top           # setup

stack pointer //将栈顶的地址加载到sp寄存器中

j     main       #跳转到main标签,即执行主程序

halt:

    j     halt                    # enter

the infinite loop

2、主程序

static int a = 3;

static int b = 256;

static volatile int
uart = (int)0x10013000;

static int
custom48(long addr,long addr1)

{

int ret = 0;

asm volatile (

        "jobget48  %[dest],%[src1],%[src2]"

        :[dest]"=r"(ret)

        :[src1]"r"(addr),[src2]"r"(addr1)

        );

return ret;

}

static int
custom64(long addr,long addr1)

{

int ret = 0;

asm volatile (

        "jobget64

%[dest],%[src1],%[src2]"

        :[dest]"=r"(ret)

        :[src1]"r"(addr),[src2]"r"(addr1)

        );

return ret;

}

void main()

{

int ret1 = 0;

int ret2 = 0;

ret1 = custom48((long)&a,

(long)&b);

ret2 = custom64((long)&a,

(long)&b);

if(ret1)

{

    uart[0] = 'o';

    uart[0] = 'k';

    uart[0] = '4';

}

if(ret2) {

    uart[0] = 'o';

    uart[0] = 'k';

    uart[0] = '6';

}

else

{

    uart[0] = 'e';

    uart[0] = 'r';

    uart[0] = 'r';

}

while(1);

}

3、Makefile文件

PREFIX =
/home/s29363/riscv/install-64-bm/bin/riscv64-unknown-elf-

CC = $(PREFIX)gcc

LD = $(PREFIX)ld

OBJDUMP =
$(PREFIX)objdump

QEMU =
/home/s29363/qemu/qemu-system/install-s64/bin/qemu-system-riscv64

CFLAGS = -static
-mcmodel=medany -fvisibility=hidden -ffunction-sections -fdata-sections
-nostdlib -nostartfiles -nostdinc -g -c -O0

LDFLAGS = -T
/home/s29363/qemu/qemu-system/riscv-test/default.lds --nmagic --gc-sections

QEMU_FLAGS = -nographic
-machine sifive_u -bios none -kernel

TARGET = hello

$(TARGET):start.o
hello.o

    @$(LD) $(LDFLAGS) start.o hello.o -o

$(TARGET)

start.o:

    @$(CC) $(CFLAGS) start.s -o start.o

hello.o:

    @$(CC) $(CFLAGS) hello.c -o hello.o

.PHONY: qemu

qemu:

    $(QEMU) $(QEMU_FLAGS) hello

.PHONY: dis

dis:hello.o

    @$(OBJDUMP)     -d hello.o

    @rm -rf hello.o

.PHONY: clean

clean:

    @rm -rf $(TARGET) start.o hello.o
### 回答1: 好的,下面是在 Ubuntu 20.04 上安装虚拟机的步骤: 1. 打开终端,更新软件包列表: ``` sudo apt update ``` 2. 安装虚拟机软件包: ``` sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager ``` 3. 添加当前用户到 libvirt 和 kvm 组: ``` sudo adduser $USER libvirt sudo adduser $USER kvm ``` 4. 启动 libvirtd 服务: ``` sudo systemctl enable --now libvirtd ``` 5. 打开 virt-manager 图形界面: ``` virt-manager ``` 6. 在 virt-manager 界面中,点击 "新建虚拟机" 按钮,然后按照向导设置虚拟机的参数,如虚拟机的操作系统、磁盘大小、内存大小等。 7. 完成虚拟机的设置后,可以启动虚拟机并开始使用。 希望这些步骤对您有帮助! ### 回答2: Ubuntu 20.04是一个非常流行的Linux操作系统,它的安装方法与其他操作系统类似,但在虚拟机上安装可能会有不同的步骤和要求。下面是一个简单的Ubuntu 20.04虚拟机安装教程。 第一步:下载Ubuntu 20.04 ISO文件 在安装Ubuntu 20.04之前,需要从官方网站下载Ubuntu 20.04的ISO镜像文件。可以通过Google搜索或直接访问Ubuntu官方网站。 第二步:创建并配置虚拟机 打开虚拟机软件(如VirtualBox),单击“新建”按钮,然后在下一个屏幕上为虚拟机设置名称、类型和版本。设置完成后,单击“下一步”按钮打开“内存大小”设置的屏幕。 接下来,在新屏幕上设置虚拟机的硬盘和大小。对于Ubuntu 20.04,建议设置至少20GB的存储空间。 最后,单击“创建”按钮以创建虚拟机。在此之后,单击“设置”按钮,选择“存储”选项卡,并添加从之前下载的ISO文件中的Ubuntu 20.04镜像文件。 第三步:安装Ubuntu 20.04操作系统 现在,启动虚拟机并开始安装Ubuntu 20.04。在安装向导中,可以选择“安装Ubuntu”并按照提示操作。在“安装类型”页面上,选择“清除Ubuntu 20.04并重新安装”或“从现在起安装Ubuntu 20.04”,然后单击“继续”按钮。 在接下来的页面上,选择时区、语言、键盘布局并设置用户名和密码等信息。最后,单击“安装”按钮以开始安装Ubuntu 20.04。 第四步:安装 Ubuntu 20.04 安装虚拟机增强功能 安装Ubuntu 20.04后,需要安装虚拟机增强功能以获得更好的性能和功能。安装增强功能的方法因虚拟机软件而异,但在VirtualBox的情况下,可以在菜单栏中选择“设备”>“安装增强功能”,并按照指示完成安装。 到此为止,安装过程就完成了。现在可以开始使用Ubuntu 20.04来编写代码,运行程序和执行其他任务。 ### 回答3: Ubuntu是一款开源的操作系统,由于其安全、稳定、易用和免费等优点,在很多领域被广泛应用。在实验、开发等需要测试不同版本的程序时,为了避免对本地机器造成不必要的影响,可以选择在虚拟机上进行操作。本文将介绍如何在Windows10操作系统上使用VMware虚拟机安装Ubuntu 20.04系统。 第一步:准备工作 1. 下载VMware软件安装包(个人使用可以选择VMware Workstation Player 15.x); 2. 下载Ubuntu20.04操作系统镜像文件; 3. 确保计算机有足够的存储空间。 第二步:创建虚拟机 1. 打开VMware软件,选择“创建新的虚拟机”; 2. 在虚拟机配置向导中,选择“选择典型(推荐)”; 3. 在“安装程序光盘映像文件(iso)中指定操作系统”下,浏览到之前下载好的Ubuntu20.04镜像文件; 4. 输入虚拟机名称,并指定虚拟机的保存位置; 5. 选择最大磁盘容量并确定虚拟机的大小; 6. 配置虚拟机的自定义硬件,分配CPU、内存大小、网络连接等资源。 第三步:安装Ubuntu 20.04操作系统 1. 启动虚拟机,选择“开始Ubuntu”; 2. 在Ubuntu20.04系统安装界面中,选择“安装Ubuntu”; 3. 选择安装语言和时区; 4. 确定安装类型、磁盘分区和挂载点; 5. 输入用户名和密码,并等待系统安装完毕。 第四步:常见问题解决方法 1. 网络问题:若出现网络连接问题,先检查虚拟机的网络配置是否正确,确认网络是否连通,再尝试重新安装网络驱动软件。 2. 虚拟机启动问题:若出现虚拟机无法启动或无法正常进入操作系统等问题,可以尝试恢复虚拟机至最初状态或重新安装Ubuntu20.04操作系统。 3. 硬件兼容问题:若出现硬件兼容方面的问题,可以先更新VMware软件,或者在虚拟机中添加一些虚拟硬件进行兼容性测试。 总的来说,使用VMware虚拟机安装Ubuntu20.04操作系统是一种方便、安全、稳定的方式。希望这篇教程可以帮助大家快速入门操作系统虚拟化技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值