PSoC® 4のブートローダーとブートロード可能なコードのフラッシュ読み出し保護 - Community Translated (JA)

Version 3

    Community Translated by : YoOb_1790021          Version: **

     

     

    質問:

    ブートロードを実行しながら、不正な読み出しからPSoC 4デバイスのブートローダーとブートロード可能なコードを保護する方法を教えてください。

     

    回答:

    PSoC 4デバイスには、デバッグモードとフラッシュへのアクセスを無効にするチップレベルの「保護」モードがあります。(レジスタへのテストモードアクセスは引き続き許可されます。)詳細については、PSoC 4アーキテクチャ テクニカル リファレンスマニュアル (TRM) を参照してください。PSoC Creator のブートローダーおよびブートロード可能なプロジェクトでチップレベルの保護を有効にするには、以下を実行してください。

     

    1. ブートローダーとブートロード可能なプロジェクトの両方において、.cydwrファイルのSystemウィンドウで、図1に示すようにChip ProtectionオプションをProtectedに 定してください。

    図1. .cydwrプロジェクトファイルのChip Protection設定

     

    2. プロジェクトをビルドした後、PSoC Creator のプログラミング オプションを使用してはいけません。デバッグが無効なため、PSoC Creator は、チップをプロテクトモードにしません。代わりに、PSoC Programmer を開いてください。

     

    3. ブートローダーの .hexファイルを対象としてプログラムする前に、メニュー項目のOptions > Programmer Optionsを選択してください。オプションダイアログで、図2に示すように、Chip LockEnableを選択してください。OKをクリックしてダイアログを閉じてください。

     

    図2.PSoC Programmer Programmer OptionsでのChip Lock Enable設定

     

    4. デバイスのプログラミングを開始すると、図のような警告ダイアログが表示されます。OKをクリックしてプログラミングを続けてください。

    図3.PSoC Programmer Chip Lock 警告

    プログラミングが完了すると、図4に示すように、PSoC Programmer のログにチップが保護されたことが示されます。

     

    図4.PSoC Programmer Chip Protect ログエントリ

     

    5. 次に、順番にReadVerify、およびChecksumボタンをクリックしてください。図5は、読み出しおよび検証操作が実行できなかった状態が示されています。チェックサムが働く理由は、フラッシュバイトが読み出されていないためです。代わりに、フラッシュバイトがデバイス内で合計され、チェックサムのみが報告されます。

     

    図5.PSoC Programmer ReadVerify、およびChecksum のログエントリ

    6. Bootloader Host プログラムを使用して、ブートロード可能なプロジェクトをターゲットにダウンロードしてください。図6は、プログラムと検証操作が実行できた状態を示します。検証操作が働く理由は、フラッシュバイトが読み出されていないためです。代わりに、データが、コマンドとともにブートローダーに送信され、指定されたフラッシュの行(row)番号に対するデータと比較します。ブートローダーは単に比較の成功または失敗を報告します。

     

    図6.Bootloader Host ProgramおよびVerify のログエントリ

     


    最後に、PSoC 4 SROMコードも Bootloader Component APIもフラッシュバイトの値を報告する方法がないことに注意してください。Chip Lock ビットが設定されてデバイスにプログラムされると、コードは不正な読み出しから保護されます。

         

    チップを保護モードからオープンモードにするためには、再プログラムする必要があります。これによりフラッシュが消去され、フラッシュ内のコードのセキュリティが維持されます。チップを保護モードからオープンモードにするためには、いくつかの方法があります。

     

      • PSoC Creatorを使用してチップを再プログラムし、DWRオプションでオープンまたは保護のどちらかに設定します。
      • PSoC Programmerを使用してチップを再プログラムし、Chip Lock オプションを無効に設定します。この場合も、DWRオプションでオープンまたは保護のどちらかに設定できます。

    PSoCでのブートロードの詳細については、AN78354PSoCブートローダー入門」を参照してください。