ブートローダブルプロジェクトでエミュレートされたEEPROMコンポーネントの使用 - KBA89149 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MaMi_1205306 Version: *A
Translation - English: Using the Emulated EEPROM Component in a Bootloadable Project - KBA89149
質問:
ブートローダブルプロジェクトでエミュレートされたEEPROMコンポーネントを使用すると、
PSoC®はその後の電源投入、またはリセット時にブートローダーコードでスタックします。
その理由は何ですか? この問題の回避策はありますか?
回答:
エミュレートされたEEPROMコンポーネントはPSoCのフラッシュメモリ内のEEPROMデバイスをエミュレートし、不揮発性メモリへのアクセスを簡素化します。
このコンポーネントを使用して、ブートローダブルプロジェクトのフラッシュを更新できます。
PSoC 3、PSoC 4またはPSoC 5LPが起動すると、ブートローダーコードはブートローダブルコードのチェックサムをテストします。
チェックサムがブートローダブルプロジェクトの元のダウンロードに対応する保存された値と一致しない場合、
ブートローダーはブートローダブルプロジェクトへ制御を移行しません。
エミュレートされたEEPROMコンポーネントはフラッシュを更新できるため、
ブートローダブルプロジェクトのチェックサムは一致しなくなり、ブートローダブルプロジェクトは実行されません。
これを回避するにはPSoC Creator™で利用可能な以下の機能を使用できます。
プロジェクトにおいて、Bootloader Component configurationウィンドウをダブルクリックし、
Fast bootloadable application validationというチェックボックスを選択します。
このパラメーターを有効にすると、ブートローダーは新しいブートローダブルコード(アプリケーションコード)がダウンロードされたときに一度だけフラッシュチェックサムを計算します。
次に、チェックサムが一致することを示すために不揮発性フラグが設定され、それ以降のリセット時にブートローダーがチェックサムを計算しません。
これによって、アプリケーションコードにエミュレートされたEEPROMを使用してフラッシュを自由に更新できるよになります。
図1. ブートローダーコンポーネント設定ウィンドウ
別の回避策として、図2に示すように最新のブートローダブルコンポーネントで使用可能な新しいオプション–チェックサム除外セクション(バイト)を使用することです。このオプションを有効にすると、コンポーネントに設定された値と同じサイズのブートローダブルプロジェクトのcm3gcc.ldリンカースクリプトファイルに"cy_checksum_exclude"という名前のセクションが追加されます。 これでAN89610で説明されている方法を使用してフラッシュ変数またはエミュレートされたEEPROMデータをこのセクションにポイントできます。
図2. ブートローダブルコンポーネントのチェックサム除外セクション
このセクションで配列を見つけたら、フラッシュ行 APIを使用してこのセクションにデータを書き込むこともできます。
フラッシュへの書き込み中に、このセクションで使用される行を使用します。
チェックサム除外セクションサイズがフラッシュ行サイズの倍数であることを確認してください。
フラッシュ書き込みAPIの詳細については、システムリファレンスガイドを参照してください。