Blog coding article

Knurling-rs changelog #10

Jorge
Article

Knurling-rs changelog #10

3 min read

    This is the tenth 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 start working with the ePaper display.

    Sponsors can check the new content in the ePaper display chapter of knurling-books (check this sponsors dashboard thread for credentials and discussions)

    Upcoming break

    We'd like to let you know that the knurling team will be taking a break during the last two weeks of 2020 so next week's changelog blog post will be the last one of 2020. We'll be back, fully recharged, on the week of January 4, 2021.

    New features

    probe-run

    • #119 probe-run has gained a --connect-under-reset command line flag. When used, the probe drives the NRST pin of the microcontroller to put it in reset state before establishing a SWD / JTAG connection with the device. If you are experiencing connection issues try this new flag.

    If you are using our Cargo project template (app-template) apply this change to .cargo/config.toml

     [target.'cfg(all(target_arch = "arm", target_os = "none"))']
    -runner = "probe-run --chip nrf52840"
    +runner = "probe-run --chip nrf52840 --connect-under-reset"
     rustflags = [
    

    Note that if you are using a standalone probe then you'll need to electrically connect the probe's NRST pin to the microcontroller's NRST pin (if you haven't already). If you are using a development board with an "on-board debugger" then probably no extra wiring is required but we suggest you double check your dev board's manual.

    Improvements

    app-template

    • #32 don't pass the --defmt flag to probe-run. This flag was deprecated some time ago and is currently ignored by probe-run
    • #31, #33 set defmt assert macros as the default assertion mechanism in the test suite
    • #18 document, in the README, how stack overflows can corrupt the memory of embedded applications and how flip-link prevents the problem

    Fixes

    probe-run

    • #117 wait for breakpoint before switching RTT from non-blocking mode to blocking mode.

    Internal improvements

    defmt-test

    • #299 we are now testing our embedded test runner (defmt-test) as part of our CI setup.

    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:

    • probe-run has been updated to v0.1.8

    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!

    You might be also interested in these.