8 Replies Latest reply on Dec 5, 2019 4:23 PM by HiIg_4537276

    External Flash and APP

    HiIg_4537276

      Hi

       

      When firmware update is performed, update data acquired from the server is written to "APP0" and "APP1" of the external Flash.
      It is a process of updating at a fixed cycle, and I want to write "APP0" and "APP1" alternately at each update. Is this possible?

      If possible, please tell us how to implement it.

      The implementation environment is as follows.
      ・ Chip model: CYW43438
      ・ SDK: WICED-Studio-6.4

       

      Thanks!

        • 1. Re: External Flash and APP
          ZhengbaoZ_96

          hello:

           

             I am a little confused about the requests,  Are you use our OTA mechanism to realize update from a HTTP server ?

          Hypothetically ,  you have no problem to run the snip.ota_fr ,  now your request is to update App0 ,App1 on the first time and second time ?

          Would you please describe your steps wanted ?  we can give a analysis based on current structure to see if it can be supported.

          • 2. Re: External Flash and APP
            HiIg_4537276

            Hello

             

            I am not good at English.

            I'm sorry if it's hard to read.

             

            I want to update a program regularly using the OTA mechanism.

             

            For example, at 0 o'clock every day, the update program is downloaded to APP0.

            Next time at 0:00, download the update program to APP1.

            Write the update program alternately every day.

             

            First, I want to make this happen.

             

            Thank you

            • 3. Re: External Flash and APP
              ZhengbaoZ_96

              we have a multi app in the reference , they are sharing same DCT ,  changing APP by pressing key.

              I think that should be a good start for your application.

              • 4. Re: External Flash and APP
                HiIg_4537276

                Hello


                The steps I want to carry out are as follows:

                --------------------
                ① Download the update file from the server where the update file is stored.

                 

                ② Save the downloaded update file to “APP0” on the external flash.

                 

                ③ Confirm that the file saved in APP0 is not damaged.

                 

                ④-1 If the update file is not damaged, save the update file in “Current Application”.
                ④-2 If the update file is damaged, interrupt the update and restart the board.
                --------------------

                I want to know the existence of sample code that can be used as a reference to implement the above.


                Thank you

                • 5. Re: External Flash and APP
                  ZhengbaoZ_96

                  hello:

                   

                     I want to know if this question was resolved in your side-

                  • 6. Re: External Flash and APP
                    HiIg_4537276

                    Hello

                     

                    No, this issue has not been resolved,
                    The investigation needs to continue.

                    • 7. Re: External Flash and APP
                      ZhengbaoZ_96

                      Our current flow should have a match with your description:

                       

                      OTA2 Staging area = APP0  in your description.

                       

                      Below comments are extracted from our OTA2 document , the checking process.

                       

                      4 OTA2 Bootloader Logic

                      The state of the Current Application Area, LKG (if enabled) and Staged OTA2 Image is stored in the OTA2 DCT. The

                      OTA2 Bootloader will run the snip/ota2_extract application if OTA2 Image Extraction is needed.

                      The OTA2 Image Staging area will have a status value (incorporated into the OTA2 Image Header) so that a background

                      OTA2 Service running from the Current Application (or the SoftAP in snip/ota2_extract) can save an OTA2 Image and the

                      download progress so that the OTA2 Bootloader can determine if there is a valid OTA2 Image to be extracted on a reboot

                      (it will then launch the snip/ota2_extract application to do the extraction). 

                      NOTES: 

                      The FLASH writing code can check for battery level before starting writing.

                      The WICED software CRC32 calculation can be replaced at compile time.

                       

                       

                      #  Sample Layout for 8MB FLASH

                      #

                      #   Sizes are on sector boundaries for this platform

                      #

                      #   +---------------------------------------+

                      #   | Boot loader Area | 32k  Size of build/waf.ota2_bootloader-<platform>/binary/waf.ota2_bootloader-<platform>.stripped.elf

                      #   +---------------------------------------+

                      #   | Factory Reset OTA Image | 2MB - 100k for Failsafe App (Adjust this size to fit build/<your_application>-<platform>/OTA2_factory_reset_file.bin)

                      #   +---------------------------------------+

                      #   | OTA2 Failsafe App | 100k  Size of build/waf.ota2_failsafe-<platform>/binary/waf.ota2_failsafe-<platform>.stripped.elf

                      #   +---------------------------------------+

                      #   | DCT Save area (when updating) | 16k  (same size as normal DCT)

                      #   +--                                   --+

                      #   | Application Lookup Table (LUT) |  4k

                      #   +--                                   --+

                      #   | DCT Copy 1                      | 16k   DCT 1 & 2 must be contiguous

                      #   +--                                   --+

                      #   | DCT Copy 2                      | 16k

                      #   +--                                   --+

                      #   | OTA2 Extractor Application      | 308/316k  Size of build/snip.ota2_extract-<platform>/binary/snip.ota2_extract-<platform>.stripped.elf

                      #   +--                                   --+

                      #   | File system                      | ???   Adjust this size to fit future update size of build/<app><platform>/filesystem.bin

                      #   +--                                   --+

                      #   | Current Application      | ??? --\

                      #   +--                                   --+        >-- total 2.77MB

                      #   | Expansion area   | ??? --/

                      #   +---------------------------------------+

                      #   | OTA2 Staging area (downloaded image)  | 2MB  Adjust this size to max. expectation of update build/<your_application>-<platform>/OTA2_image_file.bin

                      # | |      (Will probably be larger than the Factory Reset Image in Update builds)

                      #   +---------------------------------------+

                      #

                      1 of 1 people found this helpful
                      • 8. Re: External Flash and APP
                        HiIg_4537276

                        Hello

                         

                        Reviewing the sample code based on your advice solved the current question.

                         

                        Use your time
                        Thank you very much.