SWO トレース出力のタイムスタンプの解釈
テクニカル・ノート 40349
アーキテクチャ:
ARM
コンポーネント:
debugger
更新日:
2018/08/13 1:28
はじめに
本テクニカルノートでは、簡単な例を使って、SWOのタイムスタンプによってIAR Embedded Workbench for ARMバージョン5.20の出力がどのようにトレースされるかについて説明します。
背景
- ターゲットハードウェアシステムは、72MHzのシステムクロックで動作します。
- SWDを使用してC-SPYがデバッグプローブに接続されています。
- 例外がトレースされます(SWOの設定)。
- タイムスタンプは分解能16で記録されます。
- 以下のトレースでは、発生した例外に関係するサイクル値を表すA、B、C、Dの文字が追加されています。
編集されたトレースの例
Index SWO Packet Cycles Event Value
+-------+------------+------------+-------------------------+------------+
006657 0E0F20 122725344 Exit Exception Number 15
006658 20 122725376 Timestamp synch 2
006659 0E0030 122725376 Return to Exception Number 0
006660 0E0F10 122725376 Enter Exception Number 15
006661 C09323 122797360 A Timestamp synch 4499
006662 0E0F20 122797360 Exit Exception Number 15
006663 10 122797376 B Timestamp synch 1
006664 0E0030 122797376 Return to Exception Number 0
006665 0E0F10 122797376 Enter Exception Number 15
006666 C09323 122869360 C Timestamp synch 4499
006667 0E0F20 122869360 Exit Exception Number 15
006668 20 122869392 D Timestamp synch 2
006669 0E0030 122869392 Return to Exception Number 0
計算例
例外15の実行
B - A = 122797376 - 122797360 = 16
16/72 ~ 0.22
AからBまでの時間は約0.22usです。
メインプログラムの実行
C - B = 122869360 - 122797376 = 71984
71984/72 ~ 999.78
BからCまでの時間は約999.78msです。
例外15の実行
D - C = 122869392 - 122869360 =
32/72 = 0.44
CからDまでの時間は約0.44usです。
コメント
分解能が16に設定されているため、この2つの例で実際に費やされた時間は0.22~0.44usの間になります。
この時間を正確に測定するには、タイムスタンプの分解能を1に設定する必要があります。この例では、例外15は1msの周期割り込みであることが推測されます(割り込みログ(Interrupt Log)ウィンドウ、割り込みログ概要(Interrupt Log Summary)ウィンドウ、タイムライン(Timeline)ウィンドウでは、us/ms形式で時間を見ることができます)。
全ての製品名は、それぞれの所有者の商標または登録商標です。