cancel
Showing results for 
Search instead for 
Did you mean: 

Knowledge Base Articles

ブートローダブルプロジェクトでエミュレートされたEEPROMコンポーネントの使用 - KBA89149 - Community Translated (JA)

Employee

ブートローダブルプロジェクトでエミュレートされたEEPROMコンポーネントの使用 - KBA89149 - Community Translated (JA)

Community Translated by  MaMi_1205306 Expert         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. ブートローダーコンポーネント設定ウィンドウ

KBA89149

別の回避策として、図2に示すように最新のブートローダブルコンポーネントで使用可能な新しいオプション–チェックサム除外セクション(バイト)を使用することです。このオプションを有効にすると、コンポーネントに設定された値と同じサイズのブートローダブルプロジェクトのcm3gcc.ldリンカースクリプトファイルに"cy_checksum_exclude"という名前のセクションが追加されます。 これでAN89610で説明されている方法を使用してフラッシュ変数またはエミュレートされたEEPROMデータをこのセクションにポイントできます。

図2. ブートローダブルコンポーネントのチェックサム除外セクション

2.png

このセクションで配列を見つけたら、フラッシュ行 APIを使用してこのセクションにデータを書き込むこともできます。

フラッシュへの書き込み中に、このセクションで使用される行を使用します。

チェックサム除外セクションサイズがフラッシュ行サイズの倍数であることを確認してください。

フラッシュ書き込みAPIの詳細については、システムリファレンスガイドを参照してください。

0 Likes
Version history
Revision #:
1 of 1
Last update:
‎Jul 13, 2020 02:42 AM
Updated by:
 
Contributors