1. 运行显示
- 详见左下角, 运行时串口输出的字符
A
;
2. 工具准备
# for riscv64-linux-gnu-gcc
sudo apt-get install gcc-riscv64-linux-gnu
# for qemu-system-riscv32 / qemu-system-riscv64
sudo apt install qemu-system-misc
3. 裸机代码和编译
3.1 源码
- 在
a.c
中存入如下代码:
#include <stdint.h>
void _start() {
volatile uint8_t *p = (uint8_t *)(uintptr_t)0x10000000;
*p++ = 'A';
*p++ = 'B';
//while (1);
}
3.2 编译
riscv64-linux-gnu-gcc -ffreestanding -nostdlib -Wl,-Ttext=0x80000000 -O2 a.c
4. 使用qemu仿真运行riscv裸机程序
- 启动仿真
qemu-system-riscv32 -nographic -M virt -bios none -kernel a.out
- 运行结果如下:
$ qemu-system-riscv32 -nographic -M virt -bios none -kernel a.out
A