4 Replies Latest reply on Oct 19, 2018 3:49 AM by riya

    OTA2-example on the QuickSilver platform


      Hello Everyone,


      I'm evaluating the Arrow Quicksilver evaluation kit (based on Murata 1GC module which is based on CYW43907) and I want to build the OTA2-example that is included in WICED Studio (6.1.2 in my case) to test the OTA update capability.


      I've built with success the snip.ota2_extract using this command :



      But when I build the snip.ota2_example, I get an error. I use this command to build it :

      snip.ota2_example-Quicksilver_EVL ota2_image download run


      Here the console output :

      Downloading DCT ... build/snip.ota2_example-Quicksilver_EVL/DCT.bin @ SFLASH_DCT_LOC=0x0020d000

      ./tools/common/Win32/mk_wicedfs32 build/snip.ota2_example-Quicksilver_EVL/filesystem.bin build/snip.ota2_example-Quicksilver_EVL/resources/Staging/

      Creating Filesystem Done

      Illegal division by zero at ./tools/text_to_c/sector_count.pl line 49.

      Finished Building OTA2 Failsafe



      Building apps lookup table

      tools/makefiles/wiced_apps.mk:454: *** OTA2 Factory Reset Image Info File Not built!.  Stop.

      make.exe[1]: *** Waiting for unfinished jobs....

      make: *** [main_app] Error 2

      Makefile:351: recipe for target 'main_app' failed



      What I've understood so far, it's when I run this command: "snip.ota2_example-Quicksilver_EVL ota2_image" (without the download and run) I was getting an overlapping error :

           OTA2 component OTA_APP_FILE overlaps FILESYSTEM_FILE by 0x7000 bytes Adjust platform's "ota2_image_defines.mk file" !!

                start: 0x00225000 padded size: 0x00047000  end: 0x0026c000 :: OTA_APP_FILE (build\snip.ota2_extract-Quicksilver_EVL\binary\snip.ota2_extract-Quicksilver_EVL.stripped.elf)

                start: 0x00265000 padded size: 0x0007d000  end: 0x002e2000 :: FILESYSTEM_FILE (build\snip.ota2_example-Quicksilver_EVL\filesystem.bin)


      So what I've done, I've modified the following file: "platforms/Quicksilver_EVL/ota2_image_defines.mk"


      And I've modified the line #98:

      # File system

      OTA2_IMAGE_CURR_FS_AREA_BASE         := 0x00265000 # 876k  0x000DB000




      # File system

      OTA2_IMAGE_CURR_FS_AREA_BASE         := 0x0026F000 # 876k  0x000DB000


      To give more space to the snip.ota2_extract binary to fit in its memory space.


      After that modification, I am able to build the snip.OTA2_example but it gets the same exact message when I try to put it on the target (download and run).


      Do you have any idea how we can fix that issue?


      Thanks in advance,

      Mister Kim Forest

        • 1. Re: OTA2-example on the QuickSilver platform

          Adding the centralized Engineering team from Arrow: vpea_2619796 mroberts_arrow user_455868498


          Have you taken a look at these 2 documents?

          WICED OTA2 Update Support

          OTA2 Update for SDK-3.7.0

          • 2. Re: OTA2-example on the QuickSilver platform

            Hello Mifo,


            Yes, the I've read the WICED OTA2 Update Support.


            The OTA2 Update post seems to work more (I get serial output from the snip.ota2_example).

            Although, I still have the same error message when building the OTA2_image for the snip.scan:

                 tools/makefiles/wiced_apps.mk:454: *** OTA2 Factory Reset Image Info File Not built!.  Stop.


            Is there a way to get more log while building?

            • 3. Re: OTA2-example on the QuickSilver platform

              I will let the IoT applications team chime in as the Arrow Quicksilver board should operate in a near identical fashion for OTA_2 compared to our own 43907 development kit.


              riya rroy gyan anpm shjl grsr

              • 4. Re: OTA2-example on the QuickSilver platform



                The problem is in the makefile which is looking for "download download_apps" in the make target instead of just "download" i.e.,it is expecting following make target:

                snip.ota2_example-CYW943907AEVAL1F ota2_image download download_apps run

                Kindly refer the 43xxx_Wi-Fi\tools\makefiles\wiced_apps.mk file to better understand the implementation.

                Adding download download_apps in your make target should solve your problem.


                I am trying to give an explanation on why the make target with only "ota2_image" works but the make target with "ota2_image download run" doesn't.

                The conditional macro in the makefile works as follows:

                ifeq (condition_evaluated_as_true)






                In context of WICED:

                ifeq ($(OTA_APP),) means if OTA_APP is an empty string or contains only white space characters(which might appear empty to a user), then evaluate the "lines-of-code-if-true", else evaluate the "lines-of-code-if-false". Hence if OTA_APP is declared in the application makefile(as it is declared in the ota2_example.mk file), the ota2_image should be compiled. 


                This statement

                "OTA2_DOWNLOAD_DEPENDENCY := $(filter download download_apps, $(MAKECMDGOALS))

                filters out 'dowload download_apps' from the make target and creates image dependencies for building and downloading further images.


                When "download" is added to the make target, this OTA2_DOWNLOAD_DEPENDENCY equals just download, whereas when "download download_apps" is added, the paameter gets the correct value and hence the rest of the image are built/downloaded correctly.

                Let me know if this makes sense.

                1 of 1 people found this helpful