RTD SDK または構成ツールを使用していないベアボーン S32DS プロジェクトでは、printf() で使用されるセミホスト stdio チャネルの速度はほぼ瞬時に見えますが、RTD プロジェクトでセミホストを有効にすると速度が非常に遅くなり、コンソールに文字ごとに目に見える形で出力されます。
セミホスト チャネルをスタンドアロン プロジェクトと同様に動作させるには何が必要ですか?
こんにちは、 @Henrik-Wiresさん、
使用しているデバイス + SW バージョン (RTD および S32DS) を共有していただけますか?
デバッガー構成内でセミホスティングが有効になっていますか?解決済み: S32DS.3.5 で printf 関数を使用する方法 - NXP コミュニティ。
Printf はデバッグには非常に時間がかかります。EVB の USB コネクタを介して S32K デバイス内の UART インスタンスを使用する方法については、コミュニティにいくつかの例があります。
最初のものはlpuart.cを使用しますライブラリは printf 関数を介して印刷しますが、lpuart 割り込みエコーの例では UART 関数のみを使用します。
これがお役に立てば幸いです。
よろしくお願いします、
ジュリアン
newlib_nano semihosted と newlib semihosted の違いのようです。ただし、newlib に切り替えると、明らかな理由もなく、printf() の 2 回目の呼び出しでアプリケーションがハードフォールトを起こします。
はい、デバッグ設定でセミホスティングが有効になっています。
私が行っている作業には、newlib (newlib_nano ではない) のパフォーマンスで十分です。これはデバッグ セッションであり、デバッガー GUI で構成するのに現実的なものよりもフォーマットされたデータを提供します。
上記のプロジェクトが printf 中にハードフォールトでクラッシュする理由は不明です。別の MEX を作成しましたが、問題なく動作しました。クラッシュした mex 構成については後ほど分析しますが、おそらく他の無関係な問題であると思われます。