Community Translation - Using the Emulated EEPROM Component in a Bootloadable Project - KBA89149

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

Dear Sirs and  Madams,

I would like to translate KBA89149, please confirm to my work.

Regards,
Masashi

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Masashi-san

Confirm to work this KBA.

Thanks

Jenna

Jenna Jo
0 Likes
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

Jenna-san,

I translated KBA89149 into Japanese.

We would appreciate it if you could confirm.

Regards,

Masashi

/***************************************************************************/

Using the Emulated EEPROM Component in a Bootloadable Project - KBA89149

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

userc_44725 が 2014/02/19 0:16 に作成。JyothishK_01 モデレータ が 2017/09/03 12:43 に変更。

Version: *A

質問:

ブートローダブルプロジェクトでエミュレートされた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. ブートローダブルコンポーネントのチェックサム除外セクション

2.png

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

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

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

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

0 Likes