Fragility of Keil printf() for doubles on Cortex-M0(+) platforms
I generally don't open threads, but one recurring frustration I've had with Keil on CM0(+) platforms is with printf() going off the rails with "%.2lf" "%.3lf" type formats.
I've seen more often than I care for, a situation where code working elsewhere fails with massive format failures, where it wants to prints tens of digits before/after the decimal point, and where it seems it trashes it own environment.
It's gone away for the moment, with me making the stack as large as possible, I think I had a 1500 byte stack, it was using less the 940 bytes according to the high/low water mark analysis I did. So I'm a little skeptical that is the underlying issue.
I'm using a G031 today, but seen on L011 too. Have seen in past issues with locale, heap and stack collide.
Another annoyance is with "unsigned long" becoming 64-bit on the v6 compiler, and also with structure size alignment.
Anyway, looking to read the temperature in the room (figuratively), and see if others have seen this behaviour.
This install of MDK is using the STM32 Free License for CM0(+) parts, v5.38a here, but seen this oddness across 5.2x thru 5.4x. Just want to not be only Me seeing this.
This isn't the GNU/GCC issue were it's not enabled in the library, but I only see it on CM0, not CM3,CM4 or CM7 builds.
