PEmicro logo
Cart New Account Login

Logo image
HomeAbout usProductsSupportForumsBlogCustomer Service

by Johnny Ng

Note: This blog post was updated on 24 June 2022 to reflect a change to the Console command.

Note: This blog post was updated on 10 October 26 to reflect a change in the licensing for Cyclone LC.

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, Infineon Traveo-II, 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:

Please note that the Console command differs slightly from the SDK command. The command -specifyOverlayData must be placed before the command -launchimage.

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

Cyclone Control Suite and Licensing

This function is considered an advanced automation feature and requires a Cyclone LC or Cyclone FX programmer running the latest firmware which can be downloaded here.


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

search in blog posts


Product pages
Cyclone (130)
Cyclone FX (136)
Multilink (85)
Multilink FX (78)
GDB Server (41)
Prog ACMP (47)
Interface Library Routines (7)

ARM (114)
NXP (102)
Microchip (7)
Cypress (7)
Infineon (10)
Maxim (3)
Nordic Semiconductor (3)
Silergy Teridian (1)
Silicon Labs (6)
STMicroelectronics (14)
Texas Instruments (3)
Toshiba (3)
Renesas (17)

Production Programming (134)
Debug (81)
Automated Control (38)
Miscellaneous (41)

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