BitBoxSwiss / bitbox02-firmware

Firmware code of the BitBox02 hardware wallet
https://bitbox.swiss/bitbox02
Apache License 2.0
216 stars 80 forks source link

rust/src: add stdout print #1159

Closed asi345 closed 5 months ago

asi345 commented 5 months ago

Due to the cyclic dependency issues, rust part of the firmware can not import std create and therefore it does not have io capabilities, including 'println!'. As a result, C 'printf' function is exposed to rust as an external function.

It is a useful feature to have it because as developers we may need to debug many parts of the rust code when we are not using debuggers. Also, in projects such as simulator, firmware is mainly debugged with gdb. Hence there is limited flexibility of debugging when execution jumps to rust. In addition, simulator could print some of the ui elements of firmware to stdout in this way.