I wanted to share a small RISC-V assembler project that I’ve been working on. I’ve found it useful for diving deep into how hobbyist RISC-V chips (such as the Longan Nano and Wio Lite) work at the lowest level. I figure that if it’s useful to me then it may also be useful to others.
Bronzebeard is a collection of tools for writing RISC-V assembly and working with hobbyist development devices. It is designed for programs that will run on bare metal with no reliance on operating systems, frameworks, SDKs, or pre-existing software of any kind. The assembler currently supports RV32IM.
Much of modern software has accrued vast amounts of bulk and complexity throughout the years. Can useful software be developed without relying on any of it? That’s the question that this project seeks to answer. I believe that the rise of RISC-V provides a great opportunity to explore different methods of program development. Installing a full operating system doesn’t have to be a prerequisite to building something useful.
Bronzebeard and its tools are implemented purely in Python. A simple, standalone assembler is the centerpiece. It has been written in order to be free from large, complex toolchains. This keeps the project portable, minimal, and easy to understand. At the moment, Bronzebeard only targets the Longan Nano and the Wio Lite. However, there are plans to broaden support to also include HiFive1 Rev B.