在Arch 上安装Risc

您所在的位置:网站首页 安装gcc出错 在Arch 上安装Risc

在Arch 上安装Risc

2023-03-14 12:00| 来源: 网络整理| 查看: 265

前要

课程地址: 第5章-part3-RISC-V 汇编语言编程_哔哩哔哩_bilibili

在学习本课程时,用的系统是 ArchLinux ,而课程中要求的环境是基于 Ubuntu 的,显然为了此目的再开一个虚拟机太消耗资源了,因此我就想能不能在 Arch上 安装相关开发环境。

最终成功了,结果:

$ make debug Press Ctrl-C and then input 'quit' to exit GDB and QEMU ------------------------------------------------------- Reading symbols from test.elf... Breakpoint 1 at 0x80000000: file test.s, line 12. 0x00001000 in ?? () => 0x00001000: 97 02 00 00 auipc t0,0x0 1: /z $x5 = 0x00000000 2: /z $x6 = 0x00000000 3: /z $x7 = 0x00000000 Breakpoint 1, _start () at test.s:12 12 li x6, 1 # x6 = 1 => 0x80000000 : 13 03 10 00 li t1,1 1: /z $x5 = 0x80000000 2: /z $x6 = 0x00000000 3: /z $x7 = 0x00000000 (gdb) 配置开发环境

所需环境:

根据实验需求,我们需要如下工具:

交叉编译工具链调试工具虚拟机 riscv-gnu-toolchain-bin 工具链

安装相关依赖:

sudo pacman -Syyu autoconf automake curl python3 libmpc mpfr gmp gawk base-devel bison flex texinfo gperf libtool patchutils bc zlib expat

这是 riscv-gnu-toolchain-bin 工具链的依赖。

随后直接安装工具链:

yay -S riscv-gnu-toolchain-bin

备注:

此包的大小有点大,如果想要自定义安装可以参考网上教程。此包中也包含调试工具,不过与课程的不一致,需要后续更改。 虚拟机 yay -S qemu-full 更换gdb

打开位于code目录下的 common.mk 文件更改其中的:

GDB = gdb-multiarch

GDB = ${CROSS_COMPILE}gdb 错误 1. 缺少 libguile-2.2.so.1

错误信息:

gdb-multiarch: error while loading shared libraries: libguile-2.2.so.1: No such file or directory

安装:

yay -S guile2.2 2. 缺少 libpython3.8.so.1.0

错误信息:

riscv64-unknown-elf-gdb: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory

安装:

yay -S python38 3. 执行 make debug卡住

错误信息:

$ make debug Press Ctrl-C and then input 'quit' to exit GDB and QEMU ------------------------------------------------------- qemu-system-riscv32: -s: Failed to find an available port: Address already in use Reading symbols from test.elf... Breakpoint 1 at 0x80000000: file test.s, line 12. stop () at test.s:17 17 j stop # Infinite loop to stop execution => 0x8000000c : 6f 00 00 00 j 0x8000000c 1: /z $x5 = 0x00000003 2: /z $x6 = 0x00000001 3: /z $x7 = 0x00000002 #卡在这里

按Ctrl+c即可退出。

这是因为上一次启动的qemu未正常关闭,找到qemu相关进程,kill 掉就能正常执行 make debug

参考

riscv-gnu-toolchain-bin 工具链仓库地址:riscv-collabriscv-gnu-toolchain GNU toolchain for RISC-V, including GCC

riscv-gnu-toolchain-bin包:AUR (en) - gdb-multiarch

AUR (en) - gdb-multiarch

arm-none-eabi-gdb Exception caught while booting Guile. Pacman & Package Upgrade Issues Arch Linux Forums

pwndbg install issue on Arch Linux · Issue 101 · pwndbgpwndbg

Arch Linux - guile2.2 2.2.7-3 (x86_64)

SOLVED Missing library after 2017-03-29 update Pacman & Package Upgrade Issues Arch Linux Forums



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3