Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mc-cat-tty/riscv_experiments
Playing around with RISC-V assembly language.
https://github.com/mc-cat-tty/riscv_experiments
assembly gcc-complier gcc-cross-compiler qemu qemu-riscv riscv riscv-emulator riscv64
Last synced: about 2 months ago
JSON representation
Playing around with RISC-V assembly language.
- Host: GitHub
- URL: https://github.com/mc-cat-tty/riscv_experiments
- Owner: mc-cat-tty
- Created: 2022-05-07T14:16:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-07-27T11:03:16.000Z (over 2 years ago)
- Last Synced: 2024-10-28T00:21:29.314Z (3 months ago)
- Topics: assembly, gcc-complier, gcc-cross-compiler, qemu, qemu-riscv, riscv, riscv-emulator, riscv64
- Language: Assembly
- Homepage:
- Size: 9.77 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
## Setting up the environment
1. Get QEMU-riscv64: `pacman -S qemu-arch-extra`
2. Compile riscv-gnu-toolchain
1. ```bash
git clone https://github.com/riscv-collab/riscv-gnu-toolchain && cd riscv-gnu-toolchain
```
2. Install dependencies:
```bash
sudo pacman -Syyu autoconf automake curl python3 libmpc mpfr gmp gawk base-devel bison flex texinfo gperf libtool patchutils bc zlib expat
```
3. ```bash
./configure --prefix=/opt/riscv
```
4. ```bash
make && make linux
```
5. add `export PATH="/opt/riscv/bin/:$PATH"` to the file .zshrc or .bashrc### Test your environment
To be sure your dev-env is ready try to compile _hello\_world.c_ and run it through qemu-riscv64:
```bash
riscv64-unknown-elf-gcc -static -Wall --pedantic hello_world.c
qemu-riscv64 a.out
```For more details see: [https://saveriomiroddi.github.io/Quick-riscv-cross-compilation-and-emulation/](https://saveriomiroddi.github.io/Quick-riscv-cross-compilation-and-emulation/)
## Aliases
To set an handful of useful aliases run:
```bash
source configure_env
```Now you can run `build filename.s`, `run exec.out` and `debug exec.out`.