見出し画像

Keil μVisionで処理時間測定をおこなう方法

最終更新日:2023年5月10日

ARMコアを採用しているマイコンの開発に必須のツールであるKeil μVisionで処理時間を測定する方法を記事にします。

環境

  • NUCLEO-F401RE

  • USBケーブル (mini USB Type-B)

  • Windows 10パソコン

  • Keil μVision V5.28.0.0

事前準備

STM32マイコンを使用したソフトウェア作成には、趣味や商用のほとんどのケースでSTM32CubeMXを使用してプロジェクトファイルを作成すると思います。

このツールのClock ConfigurationでSYSCLK(システムクロック)の設定値をメモします。

Clock Configuration

以上で事前準備の説明は終了です。

μVisionの設定

処理時間測定に必要な設定をおこないます。

μVisionを起動し、Option for Targetをクリックします。

Option for Target

DebugタブのSettingsをクリックします。

Debug Tab

Core Clockに事前準備で確認したSYSCLK(システムクロック)の値を設定します。

Core Clock

以上でμVisionの設定の説明は終了です。

処理時間測定

μVisionを起動し、処理時間の測定開始箇所と測定終了箇所にブレークポイントを設定します。そのあと、Start/Stop Debug Sessionをクリックします。

処理時間測定の例として、測定開始箇所と測定終了箇所を同じにすることで1周する時間を測定します。

Start/Stop Debug Session

プログラムを実行し、測定開始箇所でブレークさせます。

測定開始箇所ブレークポイント停止

μVisionの右下の赤枠の箇所を右クリックします。Reset Stop Watch (t1)をクリックすると時間がリセットされ、t1: 0.00000000 secとなります。

Reset Stop Watch

処理時間測定のため、測定開始箇所のブレークポイントからプログラムを実行します。
測定開始箇所と測定終了箇所を同一にしているため、同じ場所でプログラム実行が停止します。

μVisionの右下の赤枠の箇所の時間を見ると、t1: 0.97500025 secとなりました。これが測定開始箇所と測定終了箇所までの処理時間となります。

処理時間測定結果

今回使用したテストプログラムは変数usCounterを1ms毎にインクリメントしています。ブレークポイント設定箇所は、usCounterが1,000以上となった場合に到達します。usCounterは1ms毎にインクリメントするので、1ms×1,000回=1,000ms(1秒)となります。

今回の処理時間測定結果はt1: 0.97500025 secです。内蔵CRを基準クロックとしているため、正確に1秒ではありませんが妥当な結果だと思います。

以上で処理時間測定の説明は終了です。

最後に…

本記事の処理時間測定方法はプログラム実行を停止する必要があるため、手間がかかります。

そこで、別の手法として、リアルタイムに処理時間を測定する方法を記事にしました。


この記事が気に入ったらサポートをしてみませんか?