適用範囲:Keil MDK 5
質問:
uVisionでデバッグセッションを開始しましたが、ペリフェラルレジスタを参照するSystem Viewer ウィンドウを開くことができません。
Peripherals → System Viewer のメニューの中身が空になっています:
他のプロジェクトでは以下のようにペリフェラルレジスタの一覧が表示されます:
この問題を解消する方法はありますか?
回答:
Keil uVisionデバッガは、デバイスのペリフェラルレジスタの情報が書かれたSFR ファイルと呼ばれるファイルを必要とします。SFR ファイルは、Pack Installerを使用してDevice Family Pack(DFP) がインストールされる際、SVDファイルから生成されます。
プロジェクトで使用しているデバイスのSFR ファイルが見つからない原因として以下のような理由が考えられます:
- Keil MDK 5.43 および 5.43a に含まれるPack Installer のversion 1.4.1.0 および1.4.1.1 には、既知の問題があります。これらのバージョンでは、SFR ファイルが生成されません。
- Keil MDK 5.39 に含まれるPack Installer のversion 1.4.0.4.9 にも、既知の問題があります。このバージョンでは、特定の条件下でSFR ファイルが生成されません。
- MDK 6 とMDK 5 は、CMSIS software pack 用のフォルダを共有することができます。そのように設定している場合、MDK 6 でpack をインストールすると、SFR ファイルは意図的に生成されません。(VS Code のデバッガではこれらのファイルが不要なため)MDK 5 は、既にインストールされているsoftware pack を使用できますが、SVD ファイルや doxygen で生成されるオプションのドキュメントは含まれません。
- MDK 5.38(MDK 5.38a ではない) に同梱されているツールSVDConv.exe のversion 3.3.43 では、SFR ファイルの生成に失敗するという問題がありました。詳細については、MDK 5.38a のリリースノートを参照してください:
<https://developer.arm.com/documentation/107778/5-40/MDK-Version-5-38a>
以下の手順でこの問題を解消できます:
- この問題の影響を受けるMDK のバージョン(上記参照)を使用しており、且つ、より新しいMDK のバージョンが利用可能な場合は、最新版のMDK をインストールしてください。その後、最新版のMDK のインストール環境に含まれるPack Installerを開き、対象のpack を選択して"Remove" ボタンをクリックします。続いて、同じ場所にある'Unpack' ボタンをクリックし、pack を再インストールしてください。この操作によりSVDConv のユーティリティが実行され、pack のpdsc ファイルで参照されているすべてのSFR ファイルが生成されます。
- より新しいMDK のバージョンを利用できない場合や、プロジェクトの都合上特定のMDK のバージョンを使用する必要がある場合は、Pack Installer のみをversion 1.4.1.3 に更新することも可能です。(このバージョンのPack Installer は本FAQ の末尾にリンクのあるArm のKnowledge Base "uVision Debugger: System Viewer Windows are not available" のページに添付されており、ダウンロード可能です。リンクを開き、ページ下部にあるAttachment の箇所からダウンロード可能です)
ファイルをダウンロードして<MDK のインストレーションフォルダ>\UV4 のフォルダに展開し、Pack Installer をアップデート(上書き)してください。更新後、Pack Installerを開き、対象のpack を選択して'Remove' ボタンをクリックします。続いて、同じ場所にある'Unpack' ボタンをクリックし、pack を再インストールしてください。この操作によりSVDConv のユーティリティが実行され、pack のpdsc ファイルで参照されているすべてのSFR ファイルが生成されます。
- コマンドラインからSVDConv.exe ツールを実行することで、不足しているすべてのSFRファイルをSVD ファイルから手動で生成することも可能です。Windows のコマンドプロンプトを開き、特定のpack のSVD ファイルが格納されているフォルダに移動してください。
例:
CD C:\Users\MyUser\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.17.1\CMSIS\SVDbr
書式は次の通りです:
<MDK_Installation_Folder>\UV4\SVDConv.exe <device>.svd --generate sfr
例:
C:\Users\MyUser\AppData\Local\Keil_v5\UV4\SVDConv.exe STM32F407.svd --generate sfr
上記の例ではSTM32F407.SFR のファイルが同一のフォルダに生成されます。
参考ページ :
- µVision User's Guide - System Viewer
- µVision User's Guide - System View Description Converter
- µVision User's Guide - Adding System Viewer Windows
- µVision User's Guide - File Types
元記事:
uVision Debugger: System Viewer Windows are not available