Community Translation - Bootloadable Project Gets Stuck in Bootloader If Frequently Powered ON and OFF in PSoC 3, PSoC 4, or PSoC 5LP - KBA227541

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

cross mob
YoOb_1790021
Level 5
Level 5
Distributor - Marubun (Japan)
First solution authored 10 likes received 10 likes given

Hi,

I tried to translate this KBA227541 into Japanese.

Bootloadable Project Gets Stuck in Bootloader If Frequently Powered ON and OFF in PSoC 3, PSoC 4, or PSoC 5LP - KBA227541

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

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

タイトル:PSoC 3、PSoC 4、またはPSoC 5LPで頻繁に電源のオン/オフを繰り返すと、ブートローダブル プロジェクトがブートローダーでスタックする

質問:

ブートローダブル プロジェクトにおいて、頻繁に電源をオン/オフを繰り返すと、そのプロジェクトがブートローダー プロジェクトでスタックしてしまい、フラッシュが破損します。

この問題を解決するにはどうすればよいですか?

回答:

起動時に、ブートローダーはブートローダブルを検証し、デバイスフラッシュのメタデータ領域を更新します。フラッシュ書き込みには、デバイスのVDDピンとVSSピンに安定した電力が必要です。フラッシュ行(row) の書き込み時間(消去とプログラム)については、デバイスデータシートの「Flash AC Specifications」表を参照してください。この間、デバイスをリセットしないでください。リセットしますと、フラッシュ操作が中断され、完了したこと信頼できなくなります。フラッシュ書き込みが中断されると、メタデータ領域に無効なデータが含まれる可能性があります。

ブートローダー v1.50以前では、同じデータがすでにフラッシュにある場合でも、起動中に毎回メタデータを更新します。起動時に冗長なメタデータの更新を回避するには、メニュー Project -> Update Components からブートローダー v1.60に更新する、或いは、下記の様に Bootloader.c ファイルの 2812行 から 2828行 を変更しすことにより、同じデータがすでにフラッシュにあるかどうかが、フラッシュへの書き込み前に確認されます。

/* Check flash content to avoid unnecessary write to flash */

if (rowData[address % CYDEV_FLS_ROW_SIZE] != runType)

{

rowData[address % CYDEV_FLS_ROW_SIZE] = runType;

#if(CY_PSOC4)

(void) CySysFlashWriteRow((uint32) rowNum, rowData);

#else

(void) CyWriteRowData(arrayId, rowNum, rowData);

#endif  /* (CY_PSOC4) */

#if(CY_PSOC5)

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

* When writing to flash, data in the instruction cache can become stale.

* Therefore, the cache data does not correlate to the data just written to

* flash. A call to CyFlushCache() is required to invalidate the data in the

* cache and force fresh information to be loaded from flash.

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

CyFlushCache();

#endif /* (CY_PSOC5) */

}

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

Best regards,

obana

1 Reply
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello

We receive your translation, it will be published to KBA to Community.

I will get back to you after internal review, after that you will receive the point.

Due to increased the volume of translation request,. Please bear with me for the delayed the response,

Thanks for your contribution to CDC!

Will keep you update the status.

Thanks,

Jenna Jo

Jenna Jo