開発のヒント

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’に変えて、②⑤⑥の繰り返し(④の再設定は不要)  

過去の開発のヒントはこちら