Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

PSoC®/PRoC™BLEアップグレード可能なスタックOTAプロジェクトが頻繁に電源をオン/オフするとランチャープロジェクトでスタックする - KBA219824 - Community Translated (JA)

PSoC®/PRoC™BLEアップグレード可能なスタックOTAプロジェクトが頻繁に電源をオン/オフするとランチャープロジェクトでスタックする - KBA219824 - Community Translated (JA)

SivaK_96
Employee
Employee
50 questions asked 10 questions asked 5 questions asked

Community Translated by NoTa_4591161    

Version: **

Translation - English: PSoC®/PRoC™ BLE Upgradable Stack OTA Project Gets Stuck in Launcher Project if Frequently Powered ON...

 

質問:

PSoCまたはPRoC BLEチップを256Kフラッシュで使用し、アップグレード可能なスタックOTAをアプリケーションプロジェクトにマージします。頻繁に電源をオン/オフすると、プロジェクトがランチャープロジェクトでスタックし、フラッシュが破損します。この問題を解決するにはどうすればよろしいでしょうか?

 

回答:

これは、同じデータがすでにフラッシュにある場合でも、ブートローダーが起動中に毎回メタデータに書き込むために発生します。フラッシュ書き込みには、デバイスのVddおよびVssピンに安定した電力が必要です。起動時に同じデータがフラッシュにある場合にブートローダーがメタデータに書き込むのを防ぐには、Launcher.cファイルの2812行から2828行を変更します。これにより、フラッシュに書き込む前に同じデータがすでにフラッシュにあるかどうかがチェックされます。ブートローダーV1.5以前のバージョンに問題があり、これは今後のバージョンで修正される予定です。

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)

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

* フラッシュへの書き込み時に、命令キャッシュ内のデータが古くなる可能性があります。

* したがって、キャッシュデータは、フラッシュに書き込まれたばかりのデータとは相関しません。

*キャッシュ内のデータを無効にし、フラッシュから新しい情報を強制的にロードするには、

* CyFlushCache()の呼び出しが必要です。

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

CyFlushCache();

    #endif /* (CY_PSOC5) */

    }

0 件の賞賛
147 件の閲覧回数