• Stars
    star
    187
  • Rank 202,343 (Top 5 %)
  • Language
    TeX
  • License
    Creative Commons ...
  • Created about 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RISC-V Assembly Language Programming

rvalp

RISC-V Assembly Language Programming

This is an attempt to create a book on RISC-V programming in assembly language.

See the Releases page for pre-made PDF versions: https://github.com/johnwinans/rvalp/releases

Pull requests are welcome.

I will release PDFs after useful improvements from time to time into the releases area for those that don't wish to build their own.

You can find the rvddt simulator mentioned in the text here: https://github.com/johnwinans/rvddt

I developed this using LaTeX via texlive. LaTeX is very portable. You should be able to tinker with it on most any platform.

On Ubuntu 20.04 and 18.04 LTS, loading the following packages worked for me:

sudo apt install make      
sudo apt install git
sudo apt install texlive-latex-extra

I suspect the same (above) would work on 16.04 as well.

Then clone and build this repo:

git clone https://github.com/johnwinans/rvalp.git
cd rvalp
make world

Related Projects

The RISC-V simulator that I use to generate figures: https://github.com/johnwinans/rvddt

A RISC-V simulator with more advanced features (but is also more complicated): https://github.com/johnwinans/riscv-toolchain-install-guide

The toolchain used to assemble and compile programs in this book: https://github.com/riscv/riscv-gnu-toolchain

See Appendix A of rvalp for the precise details on how I downloaded and build each of these tools on Linux.

Note: During the great on-line COVID school year I recorded some lectures on RISC-V that use this book as a reference.
These lectures appear in the following YouTube playlists:

More Repositories

1

riscv-toolchain-install-guide

How to download & install qemu a toolchain suitable for building and running freestanding RISC-V C/C++ programs
Shell
43
star
2

rvddt

RISC-V Dynamic Debugging Tool
C++
41
star
3

2063-Z80

Retro Z80 CPU Board
Assembly
30
star
4

2063-Z80-cpm

A flash boot-loader and cp/m 2.2 BIOS
Assembly
16
star
5

Verilog-Examples

Verilog
14
star
6

2057-ICE40HX4K-TQ144-breakout

Minimal Raspberry PI breakout board for ICE40HX4K FPGA
Shell
13
star
7

2044-breadboard-power

Power supply for a breadboard.
9
star
8

2055-LPC51U68JBD64-breakout

LPC51U68JBD64 Breakout Board
5
star
9

raspberry-pi-install

How I create SD and configure SD cards for a Raspberry PI
4
star
10

IceStick-Examples-Verilator

C++
4
star
11

2065-Z80-programmer

A FLASH programmer for 2063-Z80
C
4
star
12

2067-Z8S180

Z8S180 Breakout Board
Verilog
4
star
13

rv32-tutorials

A series of freestansding examples demonstrating RISC-V using qemu
C
4
star
14

PostscriptTutorial

Notes and programs for a postscript programming tutorial
PostScript
4
star
15

camera-boom

3D printable crossblocks and related items to build a boom for cameras such as the Raspberry PI HQ camera
OpenSCAD
3
star
16

VerilogNotes

Notes for a tutorial on Verilog
3
star
17

7SegLED

A back & diffuser for a giant 3D printed 7-segment LED
C++
3
star
18

jb-kicad-library

A library of symbols and footprints used in projects seen on the John's Basement YouTube channel.
2
star
19

2046-preamp-ne5532-mono

NE5532 electret mic preamp
2
star
20

2056-LPC546xxJyyyBD208-breakout

2
star
21

Z80-assembly-intro

Assembly
2
star
22

DecagonReelClock

Design files for a 3D printed decagon reel clock
OpenSCAD
1
star
23

ORIO-1.2-firmware

Files and instructions on how to set up an MCUXpresso workspace to develop for the ORIO 1.2
C
1
star
24

2060-ORIO2

Open Robot IO Controller Version 2
1
star
25

TripodAdapters

OpenSCAD
1
star