2 Replies Latest reply on Aug 3, 2020 5:59 PM by NoTa_4591161

    Community Translation - PSoC®/PRoC™ BLE Upgradable Stack OTA Project Gets Stuck in Launcher Project if Frequently Powered ON and OFF - KBA219824

    NoTa_4591161

      Hi,               

       

      I would like to translate KBA into Japanese.

      Please confirm to my work.

       

      Thanks,

      Kenshow

        • 1. Re: Community Translation - PSoC®/PRoC™ BLE Upgradable Stack OTA Project Gets Stuck in Launcher Project if Frequently Powered ON and OFF - KBA219824
          JuyoungJ_06

          Hi, Kenshow-san

          Sorry to said that, this KBA is worked already, would you pick another one to work?

           

          Thanks

          Jenna

          • 2. Re: Community Translation - PSoC®/PRoC™ BLE Upgradable Stack OTA Project Gets Stuck in Launcher Project if Frequently Powered ON and OFF - KBA219824
            NoTa_4591161

            Hi Jenna-san,

                                            

            Japanese translation was over.
            Please check below.

             

            Original KBA:

            PSoC®/PRoC™ BLE Upgradable Stack OTA Project Gets Stuck in Launcher Project if Frequently Powered ON and OFF - KBA219824

             

            Thanks.

            Kenshow

            ==============================

             

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

             

            バージョン:**

             

            質問:

            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) */

                }

             

            ==============================

            04-August-2020

              Kenshow