stm32l4xx-hal icon indicating copy to clipboard operation
stm32l4xx-hal copied to clipboard

Logging improvements (tests / examples / impls)

Open Crzyrndm opened this issue 3 years ago • 2 comments

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 on defmt (implementing defmt::Format is documented here).

Crzyrndm avatar Feb 27 '22 02:02 Crzyrndm

Moving to defmt/rtt-target would be nice IMO.

korken89 avatar Mar 03 '22 09:03 korken89

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

Crzyrndm avatar Mar 05 '22 22:03 Crzyrndm