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!

github.com/mindstorm38/bflb-ru

Working on a Rust abstraction for hardware DMA support. I'm learning a lot from a blog post I wanted to share: blog.japaric.io/safe-dma

I'm rewriting a lot of my Rust HAL for BouffaloLab BL808 in order to be more (not fully) compliant with the Embedded WG standards.

I do not agree on some parts of it, and this is why it's not 100% compliant, even if I may evolve on this topic later.

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 github.com/mindstorm38/bflb-ru

@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.

github.com/rustviz/rustviz

Just reached my first goal: enable and communicate through UART... In full Rust!

Full source code (no doc yet): github.com/mindstorm38/bflb-ru

I'll write a blog post at some time to explain how it works.

@PINE64

First successful flashing, with the BouffaloLab SDK 👀

Now looking into flashing a Rust compiled binary...

@PINE64

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.

github.com/mindstorm38/portabl

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.

Show thread

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.

"Nobody uses Rust in production", he emailed (with Thunderbird) from his laptop (running Windows) to a mailing list (on AWS, behind Cloudflare), which I then read (in Firefox) on my phone (running Android) after clicking a link (in Discord) to the list archive (served by Fastly).

Show older
Mastodon - Gougère Network

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!