简介
简单记录下qemu
模拟riscv
平台的过程,以前有模拟arm64
平台的文章
qemu安装
首先安装qemu
以及相关的软件
sudo apt-get install qemu-system-misc libncurses5-dev gcc-riscv64-linux-gnu build-essential bison flex libssl-dev
编译代码
这里使用如下链接的代码
https://github.com/runninglinuxkernel/riscv_programming_practice/tree/master/chapter_2/benos
代码内容目录如下,sbi
目录的代码编译出来是运行在M模式下的固件,为运行在S模式下的操作系统(这里是src目录的代码编译出来的镜像)提供引导和统一的
接口服务,业界流行的是用OPENSBI
固件
编译命令如下
export board=qemu
make clean
make
qemu运行
在上一步的目录,执行命令make run
即可用qemu
把编译出来的riscv
的baremental
程序跑起来了
qemu gdb调试
执行命令make debug
即可让qemu
进入debug
模式
然后再开一个终端,打开gdb
终端
gdb-multiarch --tui /d/riscv_learn/benos/benos.elf
连接gdb
的端口
target remote localhost:1234
在程序开始的地方打断点
b _start
运行
如果想调试sbi.elf
得退出前面占用的1234
端口
gdb-multiarch --tui /d/riscv_learn/benos/mysbi.elf
FEATURED TAGS
Ubuntu
markdown
stm32
OSDK
飞控
串口
Jscope
C
C++
bin
J-Flash
字符串
指针数组
malloc
vscode
svg
png
github
python
CMake
CMakeLists
Linux
拷贝构造函数
GIF
录屏
docker
操作系统
make
Makefile
文件操作
DSP
CCS
SQL
MySQL
shell
bochs
计算机网络
win10
SMTP
Socket
iOS
uxplay
投屏
证书错误
apt
nodesource
ELF
Typora
图床
fossil
sql
git
SecureCRT
windows
cygwin
blog
alsa
alsa-utils
alsa-lib
音频
USB
链接文件
内存
mmap
tcpdump
交叉编译
网络
防火墙
crontab
bond
Linux性能
udev
linux
pcie
wsl2
MMIO
wsl
qemu
raspi4
gdb
ssh
tun
tap
ifconfig
打印
gmac
phy
vim
组播
rock3a
win11
usb
sd
ubuntu
iptables
netfilter
wifi
veth
ipv6
wireshark
radvd
dhcpv6
dhcpv4
网络命名空间
br虚拟网卡
NDP
emmc
存储
raspi4b
baremental
jtag
buildroot
rootfs
ext4
调试
uboot
dropbear
raspi
ebpf
uart
baremetal
kernel
bringup
libbpf
arm64
fit
gzip
压缩
initcall_debug
bootargs
I2C
代理
cmake
python3
zephyr
mcxa156
riscv