DMA abstraction is almost done, fully in Rust! I love how far abstraction can get in Rust without adding any runtime cost, this is only compile-time validation for memory safety!
https://github.com/mindstorm38/bflb-rust-experiment/blob/main/examples/ox64/src/main.rs
Working on a Rust abstraction for hardware DMA support. I'm learning a lot from a blog post I wanted to share: https://blog.japaric.io/safe-dma
How idiomatic do you think that is? If that's enough, can you describe what's going on?
Interrupt handling is working... This has been quite challenging to port this and debug it, but it now works in full Rust!
The example code I'm running is available at https://github.com/mindstorm38/bflb-rust-experiment/tree/main/examples/ox64
@PINE64 Are you providing some adapter on Ox64 for USB-C <=> MIPI CSI-2 port?
RustViz - Interactively visualizing Ownership and Borrowing in #Rust
RustViz generates SVG files with graphical indicators that integrate with mdbook to render interactive visualizations of ownership and borrowing-related events in a Rust program.
Just reached my first goal: enable and communicate through UART... In full Rust!
Full source code (no doc yet): https://github.com/mindstorm38/bflb-rust-experiment
I'll write a blog post at some time to explain how it works.
First successful flashing, with the BouffaloLab SDK 👀
Now looking into flashing a Rust compiled binary...
Just reached 130 on my CLI MC launcher on GitHub! I never thought that I'll be that far at the end of the year.
I think I have a solution, almost similar to LLVM IR but with fewer statements for the moment, fewer options for these statements (because it's hard to infer complex options based on assembly) and parameter-based basic block.
Desperately trying to figure out how to make a good IR language for my decompiler...
SSA with parametrized basic blocks with explicitly typed assignments for now. But I'm really struggling to understand how to PROPERLY propagate basic block and functions parameters types... Now I really need to try a solution, at least one.
Work-study student in High Perf Computing at HPE. Also active in the open-source community, especially for Rust 🦀 and Python 🐍, but I also do Java, Web, C, C++ and OpenGL.
Maintainer of portablemc, a CLI Minecraft launcher.