RSSAmplifier

Blog

Scott Mabin

Scott Mabin's blog

mabez.devRSS feed ↗17 posts

Latest posts

esp-hal 1.0.0 beta - 24-02-2025

This one is a bit different! Instead of writing the post here, I have moved the new esp-rs related content to Espressif's developer portal. To read the esp-hal 1.0 beta announcement, click here !

Rust on Espressif chips - 21-06-2024

This is the next quarterly update of the esp-rs effort, detailing the progress over Q2 2024. Xtensa Rust Compiler & LLVM Xtensa Quite a few patches have been merged upstream in LLVM regarding Xtensa support (see the tracking issue here), so much so that the latest LLVM main branch can emit Xtensa machine code and assembly! It's not quite enough to build projects with yet, and Rust is still…

Rust on Espressif chips - 12-04-2024

This is the next quarterly update of the esp-rs effort, detailing the progress over Q1 2024. Xtensa Rust Compiler & LLVM Xtensa LLVM has recently moved away from Phabricator to Github for active development, which meant we had to resubmit some of our patches. We took some time to split up the patches we previously submitted, and resubmitted them; one of which has already been merged! You can…

Rust on Espressif chips - 24-01-2024

This is the next quarterly update of the esp-rs effort, detailing the progress over Q4 2023. Rust Compiler Upstream Over Q4 we saw many improvements to the upstream RISC-V targets. Firstly, all bare metal non-atomic (not a ) targets now have atomic load/store code generation enabled! This was a massive pain point for users of the ESP32C3 and ESP32C2, along with other RISC-V targets in the…

Rust on Espressif chips - 29-09-2023

This is the next quarterly update of the esp-rs effort, detailing the progress over Q3 2023. Rust Xtensa Compiler We had one big bugfix around hardware floating point unit for ESP32 & ESP32-S3 , shout out to @zRedShift for finding the bug and providing the fix in llvm-project#76 . Along with the bugfix, @zRedShift also contributed two code generation improvement patches, one to improve the…

Rust on Espressif chips - 30-06-2023

This is the next quarterly update of esp-rs effort, detailing the progress over Q2 2023. Rust Compiler The ESP32-C6 & ESP32-H2 use the riscv32imac compilation target, however, for our standard library port based on esp-idf, only the riscv32imc existed. We now have support for the riscv32imac target # 111369 meaning you can use the standard library port on the ESP32-C6 & ESP32-H2 . For those using…

Rust on Espressif chips - 28-04-2023

This is the next quarterly update of esp-rs effort, detailing the progress over Q1 2023. Rust Compiler & LLVM We have fixed several issues in the LLVM Xtensa backend, mainly relating to the hardware loop optimization feature used on the ESP32 and ESP32-S3 chips #161 #164 . We spotted an issue with the 1.67 release where debug builds no longer worked on the ESP32, however, this turned out to be a…

Rust on Espressif chips - 2023 Roadmap

This is the next quarterly update of esp-rs effort, detailing the progress over Q4 2022 as well as a roadmap for 2023. Rust Compiler & LLVM Other than the occasional rebase for every Rust release, there is not too much to report on the rust compiler fork. However, we have really exciting news about LLVM. The first 10 Xtensa patches have been approved and committed upstream 🎉, you can view them…

Rust on Espressif chips - 17-10-2022

This is the next quarterly update of esp-rs effort, detailing the progress over Q3 2022. Rust Compiler & LLVM The Rust compiler fork and LLVM have seen a few changes and fixes over the last quarter. Firstly, we have a new way to install the Xtensa-enabled toolchain, introducing espup . espup is a new Rust-based installer that replaces the unwieldy bash scripts we were previously using; we're…

Rust on Espressif chips - 15-07-2022

This is the next quarterly update of esp-rs effort, detailing the progress over Q2 2022. Standard library esp-rs/rust#117 , failure to list file directories, has been fixed. This issue was two in one; the first applied to any filesystem, used through the libc API. The definition of the dirent structure was incorrect in esp-idf , this int definition should have been a ino_t definition. The…

Rust on Espressif chips - 04-04-2022

This is the next quarterly update of esp-rs effort, detailing the progress over Q1 2022. Standard library Build system changes The last post mentioned we were moving towards using the built-in esp-idf build system to compile esp-idf (dubbed "native" build) instead of PlatformIO. I'm happy to announce we have completed this step, going forward the native approach is the default, and platformIO…

Rust on Espressif chips - 10-01-2022

This is the next quarterly update of esp-rs effort, detailing the progress over Q4 2021. Documentation Feedback we have received over the last quarter has primarily been about documentation, or lack there of. We've been working hard on this, making multiple contributions to the book ourselves, as well as some community contributions too. We're also working on documentation for the…

Rust on Espressif chips - 18-10-2021

Now I am working at Espressif I plan on publishing updates roughly every quarter just to keep the community in the loop around the esp rust effort. Documentation & Planning One of the hardest parts in any community project is onboarding new developers, especially in the early stages of a project where API's, processes and tooling is changing rapidly; it can be frustrating to work on something…

Rust on Espressif chips

It's been a while since my last post. I have some exciting news to share before going over the progress over the last nine months. I will be joining Espressif full time to work on Rust support for all of Espressif's chips, past, present and future! I am very excited to join Espressif and improve the Rust ecosystem surrounding their chips! Organisation The forked compiler with esp support…

Rust on the ESP32 & ESP8266 - Building an ecosystem

Since my last post, nearly 10 months ago a lot has changed. For one, its not just me working on this any more! Community members are starting to contribute to the various ESP related projects. The extra help meant we have made considerable progress which I will now take you through in this post. The compiler I have been working on cleaning up the rustc work, including rebasing regularly to keep up…

Rust on the ESP32 - SVD's, PAC's and USB flashing

Since my last post I've been working on building the humble beginnings of an ecosystem around the ESP32 for Rust. The short version of this post is as follows: This PR means the quickstart repo can now flash and run code without a debugger! Simply using the flash or flash_release scripts will flash your code and begin running your code idf2svd has been created which uses the documentation…

Rust on the ESP32

About six months ago, I made a post on reddit highlighting the launch of Espressif's llvm xtensa fork, not too long after, I had a working rustc toolchain capable of generating xtensa assembly. At this point I had to put this project to the side to finish my final year of university. Funnily enough I didn't stray too far, my final year project used Rust to create a 'smartwatch'…