Firmware upgrade via SD Card

<< Click to Display Table of Contents >>

Navigation:  STM32F4 Target > Demos > Waijung Demos > Device Firmware upgrade >

Firmware upgrade via SD Card

Previous pageReturn to chapter overviewNext page

Demo File: app_demo.mdl

Note: File located in directory: \waijung\targets\stm32f4_target\stm32f4\demo\webserver_devicefirmware_upgrade_demo

dfu_sdcard_model

Description

The native MCU reset vector (Entry point) is 0x8020000. This model is build with entry point 0x8020000, it cannot run without boot loader.

Flash program sector division

dfu_sdcard_flashdivision

Offset the entry point of Application

Add define -DVECT_TAB_OFFSET=0x20000 to compiler control string.

dfu_sdcard_compiler_control

 

System configuration file

If use a custom system configuration file, "system_stm32f4xx.c". Please modify the Vector offset table definition as below:

/*!< Uncomment the following line if you need to relocate your vector Table in

    Internal SRAM. */

#ifndef VECT_TAB_OFFSET

#define VECT_TAB_OFFSET  0x00 /*!< Vector Table base offset field.

                                  This value must be a multiple of 0x200. */

#endif

Firmware file conversion

To make sure the firmware file is healthy, the CRC32 value embedded to the last 4 bytes of file. This can be done be running command, follow below steps:

1. Build model with auto Compile but not auto Download

dfu_sdcard_build

2. Change current working directory of Matlab to "\webserver_devicefirmware_upgrade_demo\app_demo_stm32f4\". Note: this directory containing source files and command line program "iap_image.exe".

At Matlab console, run command: !iap_image.exe "-Sapp_demo.bin" "-Oapp_img.bin"

dfu_sdcard_conversion

Prepare files on SD Card

1. Crate directory (SDCard):\system\upgrade\

2. Copy file app_img.bin to the created directory.

3. Create conf.ini file, contents below:

[Upgrade]

Target=main

File=system/upgrade/app_img.bin

Enable=1

dfu_sdcard_conf_ini

4. The files content of SD card as below:

dfu_sdcard_prepare

Testing

1. Build and program boot loader into Target board (done once), with demo : Device Boot Loader (SD Card).

2. Disconnect the Target board power.

3. insert SD card to the SD card slot.

3. Re-connect power to the Target board again.

4. Wait for firmware upgrade process, normally 10-15 seconds. In this demo, 4LEDs blinking indicates firmware upgrade is success.

5. Check firmware upgrade status from conf.ini.

dfu_sdcard_result