Initializing/formatting Serial Flash for multi application file system?

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

cross mob
Anonymous
Not applicable

We have developed a board based on the ISM44362 and included a 16 Mbit external serial flash (SST25VF016B).  I am working on the code for OTA updates to the application running on the board.  I want to store my updated app on the external serial flash, then reboot the board to install the new application as is shown in the OTA example code.

I reviewed the wiced_ota_server.c code, in particular the section where wired_framework_app_open() is called, along with getting/setting sizes.  This code has been implemented in my application, followed by calls to wiced_framework_app_write_chunk() to store chunks of the OTA received application data.  I am seeing failures when I call wiced_framework_app_write_chunk().

I have previously erased the serial flash using sflash_chip_erase().  Tracing through the wiced code, I observe that in wiced_apps_get_size(), there is a call to sflash_read to read the app header.  The app header contains "1's" in all data fields (probably due to the erase), and nonsensical values are calculated for addresses and sizes in various functions inside of wiced_apps_common.c because of this.

Is there a way to format/initialize the serial flash to make it look like a multi-application file system?

What is the right way to erase an existing app and write a new one in its place (i.e. when I update from v1.0 to v2.0 to v3.0 etc.)

I am running Wiced SDK 3.1.2.

Thanks,

Allen

0 Likes
1 Solution
JoYi_1844281
Level 6
Level 6
100 sign-ins 100 replies posted 50 likes received

Check this thread SDK 3.1.2 SN8205 snip.ota_fr FR_APP_SECTOR_START maybe there are some hint to you!

View solution in original post

0 Likes
4 Replies
JoYi_1844281
Level 6
Level 6
100 sign-ins 100 replies posted 50 likes received

Check this thread SDK 3.1.2 SN8205 snip.ota_fr FR_APP_SECTOR_START maybe there are some hint to you!

0 Likes
Anonymous
Not applicable

jone,

I followed the directions in the thread you linked to, in particular defining FR_APP to be a legit factory default app.

The magic that is required to format/init the serial flash (and this isn't at all clear from the linked thread) is to add "download_apps" to the build target (without the quotes).  This causes a serial flash downloader to be built and downloaded to your target.  That program then initializes the serial flash using an application LUT and downloads any apps you've defined (in my case FR_APP).

Subsequent calls to get/set size, write chunk, etc. now work properly.

Thanks,

Allen

0 Likes
Anonymous
Not applicable

If you are still loooking into this - Check out WiConnect 2.1

Here are some of the highlights that pertain to you and this thread:

  • Support for external bulk serial flash up to 128 MBytes. See File System, Internal, Extended and Bulk Flash.
  • A responsive web application based on the WiConnect Javascript API library. The web app may be 100% customized to suit end-product requirements. The new WiConnect web app includes a web console and graphical drag and drop file browser.


The Full release notes can be seen here: WiConnect by ACKme | Release Notes for WiConnect v2.1

0 Likes
Anonymous
Not applicable

Hi ndutton,

Please could you let me know whether WiConnect can be ported onto a custom board with:

1) STM32F4 MCU connected to Murata Type ZX (BCM43362) via SDIO

2) MCU is also connected to external NOR flash via SPI

Thanks in advance.

Oleg

0 Likes