wiced_ota_server_start undefined

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Geva_2134536
Level 3
Level 3
First like received First like given

Hello,

I am trying to include the wiced ota server into my application for upgrading.

I have looked at ota_fr as example. My board is SN8205 evk.

I am getting the error:

undefined reference to `wiced_ota_server_start'

From the example I added the following includes:

#include "wiced.h"

#include "wwd_debug.h"

#include "wiced_framework.h"

#include "wiced_ota_server.h"

In my Makefile I have added the following options:

$(NAME)_COMPONENTS := daemons/ota_server

#Set factory reset application to be this same application.

FR_APP    := $(OUTPUT_DIR)/binary/$(CLEANED_BUILD_STRING).stripped.elf

DCT_IMAGE := $(OUTPUT_DIR)/DCT.stripped.elf

Do I have to add something somewhere else to get this compiling?

Or any other action needed?

Cheers,

Gerard

0 Likes
5 Replies
Anonymous
Not applicable

This looks enough to me. Make sure that this is the actual problem that you are facing, if the library itself have a problem then it is not built and hence linking to it will fail (offcourse make sure the library itself is int libraries/daemons/ota_server

0 Likes

Try make clean first

0 Likes
Geva_2134536
Level 3
Level 3
First like received First like given

Ah thanks, stupid me forgot to run the make clean.

It compiles now, and I get the OTA webinterface, however I upload the elf file of another userapp.

I see in the console it nicely uploads the file and ends with the restarting message.

But after this the board doesn't work anymore. Can I just use the default bootloader for this? Or does my bootloader also needs support for ota?

0 Likes
Anonymous
Not applicable

The WICED boot loader is responsible for loading the new application, so you need it.

Regards,

Bassem

0 Likes
Geva_2134536
Level 3
Level 3
First like received First like given

Hi,

I am trying to understand, but don't really get it.

From the OTA server I see it uploads the app into: DCT_APP0_INDEX

When it is done it  sets the boot value to DCT_APP0_INDEX.

I then get the message restarting...

But now it restart and nothing happens, in the bootloader I see:

#ifdef PLATFORM_HAS_OTA

    NoOS_setup_timing( );

    if ( wiced_waf_check_factory_reset( ) )

    {

        wiced_dct_restore_factory_reset( );

        wiced_waf_app_set_boot( DCT_FR_APP_INDEX, PLATFORM_DEFAULT_LOAD );

    }

    NoOS_stop_timing( );

#endif

I left this piece commented out, because I don't want go back to another app.

I simply want to overwrite my current image with a new version, I included the OTA functionality in there to update.

So my guess was, it should load the new one here:

if ( load_details->source.id == EXTERNAL_FIXED_LOCATION )

    {

        /* Fixed location in serial flash source - i.e. no filesystem */

        wiced_waf_app_load( &load_details->source, new_entry_point );

    }

I would think I shouldn't edit the bootloader, functionality seems already in.

Could you give me a pointer on how to look at this?

EDIT

I search around some more on the forums and located this:

OTA Upgrade from the Application

This had a different approach than I was doing so I followed each step.

The only problem that I get now is when the download step is executed that I get the following:

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

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

Building apps lookup table

./WICED/platform/MCU/wiced_apps_lut.c:63:46: error: expected expression before ',' token

             .sectors = { {FR_APP_SECTOR_START,FR_APP_SECTOR_COUNT} }

                                              ^

./WICED/platform/MCU/wiced_apps_lut.c:68:49: error: expected expression before ',' token

             .sectors = { {DCT_IMAGE_SECTOR_START,DCT_IMAGE_SECTOR_COUNT} }

                                                 ^

./WICED/platform/MCU/wiced_apps_lut.c:73:49: error: expected expression before ',' token

             .sectors = { {DCT_IMAGE_SECTOR_START,DCT_IMAGE_SECTOR_COUNT} }

                                                 ^


Second edit

I found a solution for that here:

http://community.broadcom.com/message/11886#11886

I am able to do an OTA upgrade now