This is the ninth changelog for Knurling-rs, our push to sustainably build better tooling for developing and debugging Rust software for embedded systems. Knurling-rs includes a suite of tools that make it easier to develop, log, debug, and test your embedded Rust libraries and applications!
Knurling-rs is supported by our sponsors on GitHub. If you're interested in seeing more projects like this, consider becoming a sponsor today!
New knurling-sessions content
In this week's knurling-sessions we're improving the way our firmware deals with unrecoverable errors.
Sponsors can check them out in the Panic! chapter of knurling-books (check the sponsors dashboard thread for credentials and discussions)
Improvements
defmt
As we're gearing up for defmt 0.2, the defmt main
branch now includes breaking changes.
Development of the 0.1 version is happening on the v0.1.x
branch, but is limited to backports of
bug fixes for now. If you are using the git version of defmt, proceed with caution!
- #291 allows using defmt on x86 platforms by making the test suite use an internal Cargo feature.
- #296 allows skipping the defmt version check in order to make development easier.
- #284 implement support for
i128
andu128
types. As this is a breaking change, this feature will only be included in defmt 0.2.
defmt-test
- #294 permits
use
items inside#[defmt_test::tests]
modules. - #297 improves the output formatting and includes a progress indicator.
Fixes
defmt
- #290 fixes compilation on ARMv6-M targets with the
alloc
feature enabled.
Version Update Notification
We've bumped the versions of our crates.io releases as a result of the changes listed above. They have changed as follows:
defmt-test
has been updated to v0.1.1
Community
In this section, we'll highlight some community work to integrate with knurling crates in other parts of the Rust ecosystem.
defmt-persist
is a defmt logger that writes log frames to persistent storage, to enable processing and retrieval at a later time.defmt-rtt-target
is a defmt logger similar to the upstreamdefmt-rtt
logger, except it uses thertt-target
crate for the RTT transport.- There is work underway to integrate defmt
decoding support into
cargo-embed
.
We'd like to thank everyone working on this!
Sponsor this work
Knurling is mainly funded through GitHub sponsors. Sponsors get early access to the tools we are building and help us to support and grow the knurling tools and courses. Thank you to all of the people already sponsoring our work through the Knurling project!