1 of 1 people found this helpful
BiM_4640481 Unfortunately, there's no document explaining the wiced boot process. Do you have 2 apps at APP0 and APP1 and do you want to switch between them after reset? If so, the wiced_framework_set_boot() API should be able to do the job for you. All you need to do is set the boot to the respective app. Have you taken a look at the app at /43xxx_Wi-Fi/apps/snip/multi_image_0 ? This gives an example of how to switch between apps.
Thanks for your reply.
My requirement is :
When first OTA command is received from AWS, download the OTA update from AWS and place it in DCT_APP0_INDEX and reboot.
When OTA command comes again from AWS, download the OTA update from AWS and place it in DCT_APP1_INDEX and reboot.
And this should continue.
For this I was searching for an API or variable that can give me current DCT app index in use, so that the next OTA can be placed in the other app location and use wiced_framework_set_boot() accordingly.
Can you please get me some info on this?
Meanwhile I will have a look at /43xxx_Wi-Fi/apps/snip/multi_image_0
Binsy M S
I referred the application suggested by you : /apps/snip/multi_image_0
When I build this application I get the following error:
build/snip.multi_image_1-MurataType1LD/libraries/App_Multi_Image_1.a(app_1.o): In function `app_console_command':
C:\Users\USER\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/snip/multi_image_1/app_1.c:612: undefined reference to `platform_deepsleep_set_boot'
build/snip.multi_image_1-MurataType1LD/libraries/App_Multi_Image_1.a(app_1.o): In function `deep_sleep':
C:\Users\USER\Documents\WICED-Studio-6.4\43xxx_Wi-Fi/apps/snip/multi_image_1/app_1.c:360: undefined reference to `wiced_deep_sleep_is_networking_idle'
collect2.exe: error: ld returned 1 exit status
make.exe: *** [build/snip.multi_image_1-MurataType1LD/binary/snip.multi_image_1-MurataType1LD.elf] Error 1
tools/makefiles/wiced_elf.mk:315: recipe for target 'build/snip.multi_image_1-MurataType1LD/binary/snip.multi_image_1-MurataType1LD.elf' failed
make: *** [main_app] Error 2
Makefile:351: recipe for target 'main_app' failed
I am working on Murata1LD board with BCM43438 Wi-Fi. The readme file of /apps/snip/multi_image_0 talks about BCM94390x platform as requirement. Can I use this application on Murata1LD board?
BiM_4640481 Are you doing an OTA update from AWS? If so, i think you have some some sort of custom implementation.
Anyway, I think what you are asking is that you want to do some sort of round robin implementation where the device loads from APP0, APP1 and APP2 in a round robin way. This is not possible by default and you will need to have a custom implementation, where you will have to store a variable in the DCT/ some memory area which isn't disturbed on resets and would need to load the information about where to load the framework from there. Please get in touch with local sales/Marketing to check the feasibility of implementation.
The multi_image app is not supported on the 4343 since it doesn't have an AON ram like the 43907 as mentioned in the readme file. In my previous response, I meant that maybe that may give you an idea of how switch between boots as i didn't know the exact requirements. My bad, maybe i should have been more clearer.
Thanks a lot for the reply.
Yes . You are right. I am doing an OTA update from AWS. Your understanding of our requirement is right.
As you suggested, will try to check the feasibility of implementation.
Came across a structure named "boot_detail_t. Is there any variable in this structure that gets updated based on DCT_APP0_INDEX, DCT_APP1_INDEX or DCT_APP2_INDEX that is passed to wiced_framework_set_boot() function?
Thanks once again.
BiM_4640481 DCT_APP0_INDEX, DCT_APP1_INDEX or DCT_APP2_INDEX, affects the boot_detail_t structure by modifying the image location from where the code gets loaded. In the file /43xxx_Wi-Fi/WICED/platform/MCU/wiced_waf_common.c, in the api wiced_waf_app_set_boot(), the below line is written.
wiced_dct_get_app_header_location( app_id, &boot.load_details.source )
This ultimately gets the location of the app id and loads it onto the boot.load_details.source which is part of the boot_detail_t structure.
A simple way to debug and confirm will be to start from the wiced_framework_set_boot() in the wiced_ota_server.c file, open the declaration and continue till you get to the root.