STマイクロのとあるMCUで開発をしているのですが、IARのEmbedded WorkbenchにてSWO経由printfが全く出力されないという状況に困っていました。
STM32CubeIDEだと問題ないことに気付いたのですが、何かregister設定値に違いがあるのかと思えばそうでもなさそう。
stdioの実装に問題があるのかと思い、とりあえずSEGGERのサンプルを試したところ、SWO_PrintChar()とSWO_PrintString()は出力できると判明。
これはいよいよライブラリの改造かと思って__write()かなと調べていくと、ライブラリオプションの「バッファターミナル出力」だけが原因だったという結論に辿り着きました。
まさか文字化けどころか全く表示されない原因がバッファ処理だったとは思いませんでした。
IAR Embeeded Workbench library option "buffered terminal output" might fix the issue of no printf terminal output via SWO.
コメントする