1 Reply Latest reply on Apr 19, 2020 6:46 PM by JuyoungJ_06

    Community Translation - Bootloader Host Error: “The Flash Row is not Valid for the Selected Array” - KBA221445

    YoOb_1790021

      Hi,

       

      I tried to translate this KBA221445 into Japanese.

       

      Bootloader Host Error: “The Flash Row is not Valid for the Selected Array” - KBA221445

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

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

      タイトル:ブートローダーホスト エラー:“The Flash Row is not Valid for the Selected Array” について

       

      質問:

      PSoC® 3、PSoC 4、または、PSoC 5LP のブートローダー デザインにおいて、ブートローダー ホストの "The flash row is not valid for the selected array" というエラーをどの様に解決したら良いでしょうか?

       

      回答:

      ブートローダー ホストアプリケーションが、書き込み保護されているフラッシュのブートローダー領域、または、そのメモリの一部からをブートロードしようとしたとき、このエラーが発生します。指定がない限り、ブートローダブル アプリケーションは、依存するブートローダー アプリケーションの次の空フラッシュ行から始まります。ブートローダー フラッシュ領域、または、フラッシュ行の保護設定に関して、事前にプログラムされたブートローダー間に矛盾がある場合、ブートローディングは許可されません。

       

      たとえば、ブートローダーがプログラムされている市場での製品(ブートローダーA とします)を考えます。PSoC Creator コンポーネントの最新バージョンで、そのビルドを更新すると仮定します。更新されたブートローダーをブートローダーB とします。ここで、ブートローダーB の依存関係で .hex および .elf の新しいブートローダブル がビルドされた場合、市場のでその新しいアプリケーションをブートロードすると、フラッシュ行無効のエラーが発生する可能性があります。それは、これらの理由が原因かもしれません:

      1. 事前にプログラムされたブートローダーA はより多くのフラッシュ行を占有しているが、ブートローダーB はより少ないフラッシュ行を消費しているかもしれません。そのため、新しい.cyacd ファイルは、事前にプログラムされたブートローダー行をブートロードしようとしていますが、これは許可されません。
      2. ブートローダーB が使用する実際の行数と比較して、Booloader Aのより多くの行が「書き込み保護」されている可能性があります。その場合、新しい.cyacdファイルは保護された行をブートロードしようとしています。

       

      ブートローダーBが依存関係として設定されていても、ブートローダーB の機能変更(A と比較して)は、実際のアプリケーションに反映されないことに注意してください。これは、ブートローダー B がデバイスに再プログラムされていないためです。

       

      図1:PSoC Creator のプロジェクトとフラッシュメモリーの使用量

      この問題に対処するには、図1に示すように、フラッシュのブートローダー イメージの上位で、かつメタデータ領域の下位にブートローダブル アプリケーションを手動で配置します。このアプローチは、依存関係にあるファイルの新旧のリビジョン間でフラッシュ行保護設定がある場合にフラッシュの消費量の不一致を回避に使用できます。手順は次のとおりです:

       

      1. ブートローダブル構成設定(構成ダイアログ)で、[Manual application image placement] オプションを有効にします。有効にしない限り、[Placement address] オプションはグレー表示されます。図2を参照してください。
      2. [Placement address] フィールドにアドレスを指定します。アドレスがデバイスのブートローダー イメージの上位で、メタデータ領域の下位になるようにします。配置アドレスを決定するには、フラッシュの行番号とフラッシュの行サイズの積に、フラッシュのベースアドレスを追加します。配置アドレスをフラッシュ行のサイズに揃えてください。フラッシュメモリ構成の詳細については、System Reference Guide の「Flash(および EEPROM)」の章を参照してください。

       

      図2:Bootloadable 設定での手動によるアプリケーション配置のオプション

       

      参照

      Bootloader and Bootloadable

      AN73854 - PSoC® 3, PSoC 4, and PSoC 5LP Introduction to Bootloaders

      PSoC® 3, PSoC 4, and PSoC 5LP Flash Memory Organization and Array ID Parameter - KBA84740

       

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

       

      Best regards,

      obana