18 Star 176 Fork 225

OpenHarmony/device_qemu

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Qemu RISC-V virt 教程

1. 简介

riscv32_virt/ 子目录包含部分Qemu RISC-V虚拟化平台验证的OpenHarmony kernel_liteos_m的代码,目录名为riscv32_virt。 RISC-V 虚拟化平台是一个 qemu-system-riscv32 的目标设备,通过它来模拟一个通用的、基于RISC-V架构的单板。

这次模拟的配置是:RISC-V架构,1个CPU,128M内存。

提示: 系统内存硬编码为128MB。

2. 环境搭建

环境搭建

编译器安装:gcc_riscv32, 提示: 可直接下载

3. 获取源码

代码获取

提示: 可以使用 repo 命令来获取源码。

4. 源码构建

在已经获取的源码根目录,请输入:

hb set

选择ohemu下的qemu_riscv_mini_system_demo选项。

然后执行构建命令如下:

hb build

这个命令构建会产生 OHOS_Image 的镜像文件。

在构建完成之后,对应的镜像文件在如下目录:

out/riscv32_virt/qemu_riscv_mini_system_demo/

5. 在Qemu中运行镜像

a) 如果没有安装 qemu-system-riscv32 ,安装请参考链接:Qemu安装指导

b) 运行

(1). qemu 版本 < 5.0.0

cd device/qemu/riscv32_virt
qemu-system-riscv32 -machine virt -m 128M -kernel ../../../out/riscv32_virt/qemu_riscv_mini_system_demo/OHOS_Image -nographic -append "root=dev/vda or console=ttyS0"

(2). qemu 版本 >= 5.0.0

执行./qemu-run --help提示如下:

Usage: qemu-run [OPTION]...
Run a OHOS image in qemu according to the options.

    Options:

    -e, --exec file_name     kernel exec file name
    -n, --net-enable         enable net
    -l, --local-desktop      no VNC
    -g, --gdb                enable gdb for kernel
    -t, --test               test mode, exclusive with -g
    -h, --help               print help info

    By default, the kernel exec file is: out/riscv32_virt/qemu_riscv_mini_system_demo/OHOS_Image,
    and net will not be enabled, gpu enabled and waiting for VNC connection at port 5920.

默认不加参数的情况下,网络不会自动配置,并使用默认镜像文件,若需更改默认镜像文件,可以利用 ./qemu-run -e [file_name] 指定

6. gdb调试

cd device/qemu/riscv32_virt
vim liteos_m/config.gni

board_opt_flags 中的

board_opt_flags = []

编译选项修改为:

board_opt_flags = [ "-g" ]

保存并退出,在OHOS根目录重新编译:

hb build -f

在一个窗口中输入命令:

./qemu-run -g

在另一个窗口中输入命令:

riscv32-unknown-elf-gdb out/riscv32_virt/qemu_riscv_mini_system_demo/OHOS_Image
(gdb) target remote localhost:1234
(gdb) b main

更多gdb相关的调试可以查阅:gdb指导手册

7. 用法示例

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/openharmony/device_qemu.git
git@gitee.com:openharmony/device_qemu.git
openharmony
device_qemu
device_qemu
OpenHarmony-v3.1.3-Release

搜索帮助