SpringCore Direct DFU INStructions
Some instructions are implemented both in the running firmware and in the booloader (rescue mode, when the firmware can not start). Some other instructions are available only in one the two modes, not both.
INS opcodes are defined below:
||GET_CONTEXT||Read DFU context||yes||yes|
||RESET||Reset the MCU||yes||yes|
||PUSH_TO_STORAGE||Write a part of the firmware in the NVM (SPI flash, outside the MCU)||yes||yes|
||DUMP_STORAGE||Read-back the NVM (SPI flash).||yes||no|
||CLEAR_STORAGE||Erase the complete NVM||yes||yes|
||PUSH_TO_ROM||Write a part of the firmware in the MCU’s internal ROM||no||yes|
||PUSH_TO_STORAGE_FAST||Write a part of the firmware in the NVM (SPI flash, outside the MCU) - faster erasure algorithm||yes||yes (version >=1)|
||PUSH_TO_STORAGE_CANCEL||Cancel a pending PUSH_TO_STORAGE or PUSH_TO_STORAGE_FAST sequence.||yes||yes (version >=2)|
Important disclaimer #1
The only supported method of flashing a SpringCore device is using the SpringCard-provided
SpringCoreFlash.exe tool, or a genuine SpringCard software that uses the same underlying library as
These pages regarding the DFU class are provided for reference only. Invoking these instructions by hand or from a 3rd-party-developed software is not supported by SpringCard and will void the warranty of the device. Any damage you may cause using the instructions documented here is your own responsibility.
In particular, the CLEAR_STORAGE instruction shall never be called.
Important disclaimer #2
SpringCore devices are protected against running invalid and non-genuine firmware images. The protections takes the form of numerous technical checks (CRC and do on) and of a digital signature.
Not only loading a firmware that has not been genuilely issued by SpringCard is useless because such firmware will not run, but this will also void the warranty of the device.
Important disclaimer #3
The ability to flash a firmware in the device may be restricted by the Access Conditions set in register 02F0. If the Protect the firmware bit is set for any of the Local or Remote interfaces, DFU is totally disabled other this interface.
Nevertheless, DFU can not be disabled when the device is started in rescue mode.