You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Good evening !
I'm starting to use rust+cortex-m on STM32, and I'm planning to mix existing C code (using STM32CubeIDE, CMSIS and freeRTOS) and Rust code (as a static library).
In my early experiments, I have trouble with ITM support, which seems incompatible with Cube IDE (or at least the SWV ITM Data console)
itm::write_all(), which is used by write_str() and iprintln!, will send 32bits words on ITM (thus 4 chars per word).
This is not compatible with ST CubeIDE ITM display, and CMSIS Core Peripheral Access Layer
E.g in core_cm4.h: (Drivers/CMSIS/, (provided by ARM I think))
Good evening !
I'm starting to use rust+cortex-m on STM32, and I'm planning to mix existing C code (using STM32CubeIDE, CMSIS and freeRTOS) and Rust code (as a static library).
In my early experiments, I have trouble with ITM support, which seems incompatible with Cube IDE (or at least the SWV ITM Data console)
itm::write_all(), which is used by write_str() and iprintln!, will send 32bits words on ITM (thus 4 chars per word).
This is not compatible with ST CubeIDE ITM display, and CMSIS Core Peripheral Access Layer
E.g in core_cm4.h: (Drivers/CMSIS/, (provided by ARM I think))
thus a single byte is sent at a time (wasting 75% bandwidth with ascii)
With Rust/Cortex-m:
And this will display "D䙅D䙅D䙅" in cube IDE
Trace log shows
hence the D (68), while EF becomes 0x4645 and is displayed as U+4645 character (as if it was utf-32)
IMHO, a mode that complies/mimic with CMSIS lib should be provided (and probably should be default)
The text was updated successfully, but these errors were encountered: