Since the releases of defmt and probe-run there have been many improvements in the defmt ecosystem and work on new tools. We have been posting those updates on Twitter but in case you missed them this blog post is a summary of those updates...
I'm an embedded C/C++ developer who joined Ferrous and made the switch to Rust this spring. One thing that continues to amaze me on this journey is the quality and friendliness of Rust tools and learning resources. Still, when you're just s...
Having a good set of tooling is only half of the story in making it easier to develop and debug Rust software for embedded systems. The other half is knowledge and documentation. This is where Knurling Books and Knurling Sessions are brough...
Knurling A tool set to develop embedded applications faster. ❤️ Sponsor We're happy to announce the newest crate published as part of our knurling project: panic-probe. panic-probe is a simple panic and fault handler that integrates into pr...
Today we are thrilled to announce the public release of defmt ("de format"). defmt stands for "deferred formatting" and it's a highly efficient logging framework. As we covered in our blog post about embedded tooling for the 21st century we...
The Rust programming language doesn't just aim to be practical, it also aims to be useful for the people working with it. Not only does this improve productivity, it also helps learning the language! One of the features I want to pick out:...
1.0Sponsor this work Do you need help with coding? The rust-analyzer plugin for VSCode provides you with a helpful little ▶ Run button above every test or main() function that lets you execute your code right out of the editor. Unfortunatel...
Today we're announcing Knurling - Ferrous' effort to sustainably build better tooling for developing and debugging Rust software for embedded systems. To make this a reality, we are opening a GitHub organization to collect these efforts, as...
These days GDB is the go-to development/debugging tool of many embedded Rust developers. We think there's room for complementary tools that could provide a better development workflow and improve productivity. In this blog post we'll share...
We often hear that Rust is a language that is too complex and too difficult to learn. While, yes, the language is complex, we have identified some existing mindsets and expectations that serve as obstacles to the learning process. Let's dis...
How should you do concurrency in an embedded no_std application? There's no built-in support for time-sliced threads in core; that abstraction is only available in std (see std::thread). The latest stable release brought the async/await fea...
1.0Motivation1.1Implementation Do you need help with coding? In this post, we will discuss an interesting technique for testing test coverage, and the associated Rust crate — cov-mark. The two goals of the post are: Share the knowledge abou...
In about 4 weeks time from the publish date of this blog post, you'll be able to use the async/await feature in no_std code on stable! In this blog post we go over the work we did to make it happen and what we learned from building a proof...
Last week, we announced Oxidize Global, a 4 day online Rust conference with workshops, talks and Impl. days happening all around the world. Oxidize Global takes place on July 17-20, 2020. Read our full announcement over here. Today, we are...
"Zero Sized Reference" (ZSR) sounds like an impossible thing given that mem::size_of returns a non-zero value for references to Zero Sized Types (ZST) like &() but ZSRs can in fact be constructed and they can improve both the performance an...
In a previous post we explored what needs to be done on the rustc side to bring async/await to no_std Rust. In this post we'll explore what could be done once async/await is available in no_std land and why we think async/await is a big dea...
Ferrocene is the effort led by Ferrous Systems GmbH to qualify the Rust language and compiler for use in mission and safety-critical domains. This is the second post in a series detailing our plans around this effort. This post expands on c...
At Ferrous Systems, we've worked on a wide range of software in Rust, from embedded systems, to highly concurrent asynchronous applications. While the environments that these systems operate in are wildly different, they both can be boiled...
We are happy to announce that we are now offering a Rust training for beginners in London, hosted by our partner TrueLayer! TrueLayer builds universal APIs that allow companies to access the financial data of their end user to initiate dire...
Ferrous Systems has moved! Besides travelling all over the world to train people in Rust, we are now able to offer courses in our new space in Berlin. We are kicking off this new service with our Rust Summer Classes! Whether you’re just sta...