QEMU裸机开发之环境搭建
1.概述
前面我们介绍了RISCV架构的一些基础知识,从本章节开始我们通过在QEMU下编写裸机程序来进一步的学习RISCV架构,旨在通过实操来掌握相关知识点。
运行环境我是在Ubuntu 20.04下测试,QEMU选用的时5.2.0版本而不是最新的6.x版本,因为实测发现在6.x版本下从m模式切换到s模式下时,“mret”指令执行会发生异常,具体原因不明,在5.1和5.2版本下测试都正常,所以QEMU选用5.2版本来使用。
2. 安装交叉编译器
首先我们需要安装riscv64的交叉编译器,输入以下命令:
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
然后再安装一些后面编译源码时需要的工具,输入以下命令:
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
3. 编译安装qemu
通过QEMU官网下载5.2.0源码,解压后进入源码目录,通过以下命令来编译安装QEMU5.2.0:
$ ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu" $ make $ sudo make install
4. 测试环境
安装完成后,通过以下命令来测试交叉编译器和qemu的版本:
gewenbin@gewenbin-virtual-machine:~$ riscv64-unknown-elf-gcc --version riscv64-unknown-elf-gcc () 9.3.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. gewenbin@gewenbin-virtual-machine:~$ qemu-system-riscv64 --version QEMU emulator version 5.2.0 Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers gewenbin@gewenbin-virtual-machine:~$
评论