開発のヒント
CPU
マイコンの演算速度を測る(その2)
以前、プログラムの実際の処理速度を知る便利な方法として「サイクル・カウンタ」を紹介しました。
CPUレジスタの中に「CYCLECOUNTER」というカウンタがあります。IAR社のEWARMなどでは、「CYCLECOUNTER」をチェックして、簡単に演算サイクル数を確認できる機能がありますが、ST製の統合開発環境「STM32CubeIDE」では、直接演算サイクル数を確認することができません。
そこで、今回は、STM32CubeIDEを使って演算サイクル数を確認する方法を紹介します。
DWTレジスタを直接操作、参照することで値の確認が可能です。
① Run-Debug(F11)でDebug開始
② 希望の測定開始BreakPointまでコード実行(Resume,F8)
③ Window-Show View-Memory Browserを選択し、0xE0001000番地に移動
④ 0xE0001000のLSBビットを‘1’に変更(CYCLECOUNTERの開始)*初回のみ
⑤ 希望の測定終了BreakPointまでコード実行(Resume,F8)
⑥ 0xE0001004の値を確認(= CYCLECOUNTERの値)
⑦ 以降の測定Pointについては、0xE0001004の値を‘0’に変えて、②⑤⑥の繰り返し(④の再設定は不要)
【CPU】 その他の記事
・デュアルコア搭載STM32H7マイコンのブート・ビットバンド・アクセスの注意点
・NOPを使ったソフトウェア遅延の注意点
・マイコンの演算速度を測る
・メモリ保護ユニットで内蔵メモリを保護する
・DSP命令の使い方
・L1 Dキャッシュと本体メモリのデータ一貫性
・WFIとWFEの違い
・フォルトが起こったら。
過去の開発のヒントはこちら