PEmicro | Experts in Embedded tools for Flash Programming and Development
PEmicro logo
Cart New Account Login

Logo image
HomeAbout usProductsSupportForumsBlogCustomer Service

by Johnny Ng

PEmicro has added a new feature to the Cyclone Control Suite that solves a difficult production issue for certain devices with ECC-enabled flash when programming dynamic data.

The Cyclone Control SDK and Cyclone Control Console support a new feature called Specify Overlay Programming that will be very helpful for devices such as the Infineon TriCore or NXP Qorivva. This blog post demonstrates how to use Specify Overlay Programming.

Now available in the latest Cyclone LC and Cyclone FX Installation Software

Specify Overlay Programming

When a device has ECC-enabled flash, one typically must program the data to a sector of flash, and the ECC bits associated with that sector, at the same time. When programming serial numbers, MAC addresses, lot dates, calibration values, etc, the existing startDynamicData function cannot be used because it programs the dynamic data after the primary application data is programmed. This invalidates the ECC bits and corrupts the flash. The only workaround to this issue was to modify the S-Record file manually with the dynamic data prior to programming. Because every single device has unique data, this workaround quickly becomes infeasible for mass production.

With the new specifyOverlayProgramData function, dynamic data is inserted on the fly into the S19 of the SAP image that is being programmed. The overlay can be done programmatically using the Cyclone Control SDK or on the command line using the Cyclone Control Console. 

Cyclone Control SDK:

bool specifyOverlayProgramData(uint32_t cycloneHandle, uint32_t targetAddress, uint32_t dataLength, char* buffer);

The function has to be called prior to startImageExecution. The first parameter is the handle of the Cyclone. The second parameter is the address where the overlaying of the data starts. The third parameter is an array of bytes holding the data in hex.

data = [80,69,77,73,67,82,79]

specifyOverlayProgramData(1, 1080, data)


Cyclone Control Console Example:

CycloneControlConsole.exe –cyclone=USB1 -specifyOverlayProgramData=1,1080,80,69,77,73,67,82,79 -launchimage=1

Cyclone Control Suite and Licensing

specifyOverlayProgramData is considered an advanced feature, and as such, requires a Cyclone FX programmer (no license required) or a Cyclone LC programmer with the Advanced Control License.


Please contact PEmicro with any questions about programming ECC-enabled flash with specifyOverlayProgramData.

search in blog posts


Product pages
Cyclone (94)
Cyclone FX (97)
Multilink (57)
Multilink FX (52)
GDB Server (26)
Prog ACMP (24)
Interface Library Routines (5)

ARM (76)
NXP (83)
Microchip (7)
Cypress (7)
Infineon (7)
Maxim (3)
Nordic Semiconductor (3)
Silicon Labs (6)
Silergy Teridian (1)
STMicroelectronics (11)
Texas Instruments (2)
Toshiba (3)
Renesas (11)

Production Programming (97)
Debug (59)
Automated Control (25)
Miscellaneous (39)

© 2021 P&E Microcomputer Systems Inc.
Website Terms of Use and Sales Agreement