Skip to content

An ambitious attempt at documenting the bl602 better then the manufacturers themselves did through practical little code examples

License

Notifications You must be signed in to change notification settings

Alastakelay/Low-Level_BL602

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Static Badge Static Badge Static Badge Static Badge

Unfortunately, I can only contribute to this repo irregularly

There's nothing I'd rather do than explore the mysteries of that interesting chip with fragmented documentation, but that will have to wait until Summer 2026

The reason being the lack of contiguous time that I freely dispose of as a human in modern-day society

In the meantime enjoy what little code I have for you, consult the General E24 core documentation, and submit issues or ideas for current or future projects

BareMetal_BL602

This project aims to document and shed light on parts of the BouffaloLab602

32-bit Wifi+BLE RV32IMFCX_Zifencei_Zicsr_Zaamo RISC-V SiFive E24 Core (No bitmanip extension)

single core microcontroller through practical examples written in Assembly language

This Repository was created out of frustration due to a general lack of good documentation
and practical bare-metal code examples for an otherwise amazing RISC-V embedded chip, as well as curiosity for the RISC-V ISA and assembly language
There's also other cool RISC-V microcontrollers, like the RP2350/4A/B (with bitmanip), or ESP32-C/H/P series chips

My goal is to improve documantation bit by byte by providing clean Assembly code,
through which the reader can get an understanding of how exactly they are supposed to interface
with internals and peripherals through MMIO without any confusing HALs or SDKs

I will try to incrementally grow this collection of small programs and maintain it with my best efforts
All example code is assembled tested on the PineCone EVB (I also have binaries available)

Online resources:

Interrupt controller used in BL602 (CLIC by SiFive):

Directly controlling GPIO

Docs from Bouffalo Lab:

MMIO mapping and hardware notes

RISC-V documentation:

Disassembly with Ghidra

Workflow:

  • VSCodium code editor
  • GCC (riscv64-linux-gnu-gcc & riscv64-linux-gnu-objcopy)
  • Flasher utility: Blflash on Ubuntu, Blisp on Arch Linux

Buy me a coffee:

Monero:

84mP7cpjx8LGC9psMhD2RsGKmc7TfxJdcVXsjVES2dT2YmJkGuSHjr4NUGYpdWoKLrSmkQeXGypU32RU1HwRqvgMGkpCREf

About

An ambitious attempt at documenting the bl602 better then the manufacturers themselves did through practical little code examples

Topics

Resources

License

Stars

Watchers

Forks