Xilinx関連の開発環境でsprintf()がどうもおかしいとの報告があった。
Format problem with sprintf
自分が見付けたのは以下の情報だ。
2006年の質問なので、2017年現在は解決しているだろうか。
https://bytes.com/topic/c/answers/525100-format-problem-sprintf
少なくともZynq + PetaLinux + QEMUでは発生しないようだ。
https://qiita.com/7of9/items/b6eb551b5974f8319f22
別途、マイナスの値をsprintf()した時にマイナスの分一つ多く桁が出る症状の連絡も受けている。
(再現する場合としない場合があるらしい)。
7.1i EDK、RTOS - sprintf、printf、fprintf、および malloc 関数を同時に使用すると、システムがクラッシュする
C ライブラリは、Xilkernel と連動させる場合はスレッド セーフ/リエントラントではありません。 sprintf、printf、fprintf、および malloc 関数などを同時に使用すると、ロックアップが起こる可能性があります。 このため、同期化プリミティブでこれらの関数を保護する必要があります。
mutexなどで対応するのだろうか。
RTOSがXilkernel と連動していないかは不明。