This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
built_in_firmware_update [2013/05/08 13:40] – ba | built_in_firmware_update [2017/11/07 22:26] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== Firmware update |
- | ===== Work flow ===== | + | |
- | + | ||
- | 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 vi ZB.fimware.update.vi (since 4.1.1) can be executed from any position in the Application (FDM and compiled). | + | This VI performs a software update from sd card.\\ |
+ | \\ | ||
+ | |||
+ | A application that was built to boot from [[hw: | ||
+ | |||
+ | ===== Detailed operation ===== | ||
+ | The vi ZB.fimware.update.vi (since 4.1.1) can be executed from any position in the Application (FDM and compiled). | ||
- 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 | + | - If a display |
- | - The boot loader application looks in the root directory | + | - The boot loader application looks for a *.zfu file in the root directory. |
- | - The following points are checked : | + | - The following points are checked |
- | - 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 | + | - 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. | ||
################################### | ################################### | ||
Line 33: | 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 51: | Line 59: | ||
===== Limitations ===== | ===== Limitations ===== | ||
- | * If the update process is interrupted by a reset or a power cycle, the device will not boot. No firmware | + | |
- | * The flashed | + | * The flashed |
* Older targets and SDKs are not supported. | * Older targets and SDKs are not supported. | ||