叶鋼は午前1時に計算をする

電子工作と計算の記録

【BLEを使う】開発環境メモ:Keil v5でNordicサンプルプログラムを開くと毎回エラーが出る場合の対応

Has anyone tried Keil 5.11? I get a parsing error when installing/repairing SDK when it imports the device pack into Keil. 5.10 works great.

Keil 5.11 Device pack parsing error - Nordic Q&A - Nordic DevZone - Nordic DevZoneより引用

Keil v5でNordicから提供されているnRF51のサンプルプログラムを起動時に、毎回「Error loading software packs...」というエラーメッセージが出る問題の解決方法を以下に示します。

f:id:yegang:20140927171534j:plain

Error loading software packs

C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\1.0.3\NordicSemiconductor.nRF_DeviceFamilyPack.pdsc(60,49):

Error parsing node '#text' :no declaration found for element 'swdconfig' C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\1.0.3\NordicSemiconductor.nRF_DeviceFamilyPack.pdsc(60,49):

Error parsing node '#text' :attribute 'default' is not declared for element 'swdconfig' C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\1.0.3\NordicSemiconductor.nRF_DeviceFamilyPack.pdsc(60,49):

Error parsing node '#text' :attribute 'clock' is not declared for element 'swdconfig' C:\Keil_v5\ARM\PACK\NordicSemiconductor\nRF_DeviceFamilyPack\1.0.3\NordicSemiconductor.nRF_DeviceFamilyPack.pdsc(117,18):

Error parsing node '#text' :element 'swdconfig' is not allowed for content model '((((processor,debugconfig),(compile|memory|algorithm|book|description|feature|environment|debugport|debug|trace|debugvars)|sequences)),device),subFamily)'

このエラーに対する対応はNORDIC DEVELOPER ZONEにありました。

Keil 5.11 Device pack parsing error - Nordic Q&A - Nordic DevZone - Nordic DevZone

swdconfigは現在のCMSIS-Packでは削除されているのに、それを使う指示が残っていることが問題の原因のようです。

http://www.keil.com/pack/doc/CMSIS/Pack/html/_pack_format.html

そのため以下の場所にあるNordicSemiconductor.nRF_DeviceFamilyPack.pdscのswadconfigをコメントアウトしてからkeilを再スタートすることで問題は解決します。

C:\Keil_v5\ARM\Pack\NordicSemiconductor\nRF_DeviceFamilyPack\1.0.3 NordicSemiconductor.nRF_DeviceFamilyPack.pdsc

60行目 修正前

        <swdconfig default="1" clock="2000000"/>

60行目 修正後

        <!--<swdconfig default="1" clock="2000000"/>-->

Jlink SWD clockパラメータはSegger device用に自動的に照会されるので、このコメントアウトが悪さをすることはないそうです。

先に引用した質問サイトの回答者によると、コメントアウトしてからも、動作で特に問題は起きていないとのことです。

また、私の環境でも動作に問題は起きていません。