ブートローダーホスト エラー:“The Flash Row is not Valid for the Selected Array” について- KBA221445- Community Translated (JA)

Version 1

    Community Translated by YoOb_1790021          Version: **

     

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

     

    質問:

    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