User Tools

Site Tools


built_in_firmware_update

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
built_in_firmware_update [2013/05/08 10:13] – created babuilt_in_firmware_update [2017/11/07 22:26] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Built in Firmware update ====== +====== Firmware update from SD-Card or NAND ====== 
-===== Work flow =====+{{:snippets:system:firmware_update.png?direct|}}\\ 
 +This VI performs a software update from sd card.\\ 
 +\\
  
-When building a standalone file with Zbrain SDK 4.1.1 or later two files are generated. The loader file (*.ldr) and a Zbrain SDK firmware update definition file (*.zfu)+A application that was built to boot from [[hw:dongles|ProgDongle]] can be downloaded from the [[templates| templates page]]. 
-The vi ZB.fimware.update.vi (since 4.1.1) can be executed from any position in the Application (FDM and compiled). When the vi is executed, the following steps are executed.+ 
 +===== Detailed operation ===== 
 +The vi ZB.fimware.update.vi (since 4.1.1) can be executed from any position in the Application (FDM and compiled). The vi executes the following steps.
   - A reset is executed.   - A reset is executed.
   - The device boots into the boot loader application   - The device boots into the boot loader application
-  - If a display refnum was provided to the ZB.fimware.update.vi, messages about the update progress are displayed. +  - If a display is provided Messages about the update progress are displayed. 
-  - The boot loader application looks in the root directory of the file system defined by the file system refnum provided to the ZB.fimware.update.vi for a zfu file+  - The boot loader application looks for a *.zfu file in the root directory. 
-  - The following points are checked : +  - The following points are checked before the update starts
-    - Is there exactly one zfu file in the root directory? +    - Is there exactly one *.zfu file in the root directory? 
-    - Is Is there a ldr file with the same name in the same directory? +    - Is there a *.ldr file with the same name in the same directory? 
-    - Is Does the size in the zfu file match the size of the loader file? +    - Does the size in the zfu file match the size of the loader file? 
-    - Is Does the check sum in the zfu file match the calculated check sum of the loader file? +    - Does the check sum in the zfu file match the calculated check sum of the loader file? 
-    - Is Does the target in the zfu file match the target the boot loader was built for? +    - Does the target in the zfu file match the target the boot loader was built for? 
-  - The loader file is flashed into the boot flash if all points under 5. are ok.+  - If all points above are ok, the ldr file is flashed into the boot flash.
   - A reset is executed   - A reset is executed
   - The flashed application is started   - The flashed application is started
 +
 +===== Operation without display =====
 +
 +If no display refnum is wired to the vi, the firmware update is performed without display. 
  
  
 ===== ZFU file ===== ===== ZFU file =====
-The zfu file consists of a set of parameters that influence the firmware update process.+When building a standalone file with Zbrain SDK 4.1.1 or later two files are generated. The loader file (*.ldr) and a Zbrain SDK firmware update definition file (*.zfu).\\ 
 +The zfu file consists of a set of parameters that influence the firmware update process. It is automatically generated when creating a loader file.\\
  
  ###################################  ###################################
Line 32: Line 41:
  waitbeforereset=15  waitbeforereset=15
  
-  * **name** This ame is displayed during the update process.+  * **name** This name is displayed during the update process.
   * **target** The target name must match the target to update.   * **target** The target name must match the target to update.
   * **chksum** The check sum must match the check sum built over the loader file.   * **chksum** The check sum must match the check sum built over the loader file.
   * **size** The size must match the size of the loader file in bytes.   * **size** The size must match the size of the loader file in bytes.
-  * **deletme** If this parameter is 1 the zfu file will be deleted after the update.+  * **deletme** If this parameter is 1 the zfu file will be deleted after the update. This can be used to prevent from repeatedly flashing the same update.
   * **waitbeforereset** The target waits for the given seconds before resetting the board after the update. No reset is issued (reset or power cycle must be initiated manually) when this parameter is 0.   * **waitbeforereset** The target waits for the given seconds before resetting the board after the update. No reset is issued (reset or power cycle must be initiated manually) when this parameter is 0.
  
Line 50: Line 59:
 ===== Limitations ===== ===== Limitations =====
  
-  * If the update process is interrupted by a reset or a power cycle, the device will not boot. No firmware   update can be done via boot loader (lock out).  +  * **If the update process is interrupted by a reset or a power cycle, the firmware update will be corrupt. In this case the device needs to be reprogrammed manually via JTAG emulator**. This limitation does not apply when starting the firmware update from [[hw:dongles|ProgDongle]]
-  * The flashed firmware is responsible to start the boot loader application. There is no by pass.+  * The flashed application is responsible to start the boot loader application. There is no by pass. It is crucial to test the firmware update functionality in new application versions before shipment.
   * Older targets and SDKs are not supported.   * Older targets and SDKs are not supported.
  
  
built_in_firmware_update.1368000792.txt.gz · Last modified: 2017/11/07 22:26 (external edit)