nrf-softdevice
chirp8-engine
nrf-softdevice | chirp8-engine | |
---|---|---|
3 | 1 | |
236 | 4 | |
3.4% | - | |
8.7 | 6.8 | |
27 days ago | 4 months ago | |
Rust | Rust | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nrf-softdevice
-
Problems flashing custom firmware to the nice!nano
I'm compiling a very stripped down example from https://github.com/embassy-rs/nrf-softdevice that should just loop forever and turn an LED on and off. I convert from a binary to the uf2 using this script linked in the adafruit bootloader repository. The command I run is uf2conv.py -c -b 0x26000 -f 0xADA52840. When running file on my binary the output is UF2 firmware image, family Nordic NRF52840, address 0x026000, 42 total blocks, exactly the same as on the ZMK image that works without a problem.
- Rust on the MOS 6502: Beyond Fibonacci
-
First steps with Embedded Rust: Selecting a board
The Embassy project provides an async wrapper for the Nordic BLE soft device: https://github.com/embassy-rs/nrf-softdevice
chirp8-engine
-
Rust on the MOS 6502: Beyond Fibonacci
The value add is not in the parts that interface with the C64 internals; probably using C for that would make for nicer code. But I wanted to push as much into Rust as I could in the short amount of time I spent on this.
The real advantage of using Rust is in the actual program logic. E.g. the instructions are decoded into an algebraic datatype (in https://github.com/gergoerdi/chirp8-engine/blob/7623353a8bf0...) and then that is consumed in the virtual CPU (https://github.com/gergoerdi/chirp8-engine/blob/7623353a8bf0...). Rust's case-of-case optimization takes care of avoiding the intermediate data representation at runtime.
What are some alternatives?
embassy - Modern embedded framework, using Rust and async.
microbit - A Rust crate for BBC micro:bit development
llvm-mos-ferris-demo
nrf-hal - A Rust HAL for the nRF family of devices
Rust-chip8_emulator - Rust chip8 emulator in terminal
atsamd - Target atsamd microcontrollers using Rust
scaters - A Chip 8 Emulator Written in Rust and SDL2
riscv-rust-quickstart - A template for building Rust applications for HiFive1 boards
CC65-Advanced-Optimizations - How to optimize C code for CC65 compiler