stm32l4xx-hal
stm32l4xx-hal copied to clipboard
Logging improvements (tests / examples / impls)
Examples currently use a mix of logging methods (semi-hosting / RTT / ...?). it would make sense to standardise on one here.
My past experience with semi-hosting has been "unpleasant" and Rust tooling for RTT (cargo-embed, rtt-target, rtt-logger, and derivatives of like probe-run/defmt) has been relatively easy to use with none of the sharp edges that semi-hosting has (I realise that examples are unlikely to encounter those sharp edges, but the further away people stay from semi-hosting, the better IMO)
- I generally don't use QEMU any more (dev boards are cheap and were easy to get hold of until "recent" shortages on everything). Not sure what RTT support is like
Along similar lines, I have used probe-run and defmt in a few projects now and having defmt::Format impls for HAL types would be rather handy for ease of use.
- Are there any other libraries that would benefit from support?
- In many cases defmt support would involve adding an additional derive
#[derive(defmt::Format)]presumably feature gated ondefmt(implementing defmt::Format is documented here).
Moving to defmt/rtt-target would be nice IMO.
In the interest of keeping things relatively simple in the examples: probe-run / defmt::println have less setup / configuration than cargo-embed / RTT (e.g. having a logging session open by default after flashing).
There is also defmt-test which I have been considering adding to make it easier to verify changes