1 Reply Latest reply on Apr 2, 2020 7:02 PM by JuyoungJ_06

    Community Translation - KBA #46 - Flash Read Protection for Bootloader and Bootloadable Code in PSoC® 4

    YoOb_1790021

      Hi,

       

      I tried to translate this KBA#46 into Japanese.

       

      Flash Read Protection for Bootloader and Bootloadable Code in PSoC 4

      https://community.cypress.com/docs/DOC-9323

      ----------------------------------

      タイトル: PSoC® 4のブートローダーとブートローダブル コードのフラッシュ読み取り保護

       

      質問:

      ブートロードを実行しながら、PSoC 4デバイスのブートローダーとブートローダブルコードを不正な読み取りからどのように保護しますか?

       

      回答:

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

       

      1. ブートローダーとブートローダブル プロジェクトの両方において、.cydwrファイルの [System] ウィンドウで、次のように [Chip Protection] オプションを [Protected] に設定します。
        図1.プロジェクトファイル .cydwr の [Chip Protection] 設定

        Figure 1.PNG
      2. プロジェクトをビルドした後、PSoC Creator のプログラミング オプションを使用しないでください。デバッグ無効ため、PSoC Creator は、チップをプロテクトモードにしません。代わりに、PSoC Programmer を開きます。
      3. ブートローダーの .hexファイルをターゲットにプログラミングする前に、メニュー項目の Options -> Programmer Options を選択します。オプションダイアログで、図に示すように、[Chip Lock] [Enable] を選択します。 [OK]をクリックしてダイアログを閉じます。
        図2.PSoC Programmer の Programmer Options で Chip Lock を Enable に設定

        Figure 2.PNG
      4. デバイスのプログラミングを開始すると、次のように警告ダイアログが表示されます。[OK] をクリックしてプログラミングを続行します。
        図3.PSOC Programmer の Chip Lock 警告

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

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

        Figure 4.PNG
      5. 次に、順番に [Read]、[Verify]、[Checksum] ボタンをクリックします。ログは、読み取りおよび検証操作を実行できないことを示しています。チェックサムが機能する理由は、フラッシュバイトが読み取られていないためです。代わりに、フラッシュバイトがデバイス内で合計され、チェックサムのみが報告されます。
        図5.PSoC Programmer の Read, Verify, Checksum のログエントリ

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

        Figure 6.PNG

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

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

       

      • PSoC Creatorを使用してチップを再プログラムし、DWRオプションをOpenまたはProtectedに設定します
      • Chip Lock オプションを無効に設定して、PSoC Programmerを使用してチップを再プログラムします。この場合も、DWRオプションをOpenまたはProtectedに設定します

       

      PSoC のブートローディングの詳細については、AN78354「PSoCブートローダー入門」を参照してください。

       

      ----------------------------------

       

      Best regards,

      obana