User Manual For Cyclone LC Programmers
77
A Cyclone may have several independent programming images in its non-volatile internal or
external memory. A programming image contains the programming algorithms, binary data, and
programming sequence. This function instructs the Cyclone to start execution of an image. After
invoking this call, the “checkCycloneExecutionStatus” function is used to poll the Cyclone until
completion.
8.2.4.4.2 startDynamicDataProgram
bool startDynamicDataProgram(uint32_t cycloneHandle, uint32_t targetAddress,
uint16_t dataLength, char *buffer);
Sometimes, in addition to the large amount of static data being programmed into a target from the
Cyclone, it is advantageous for the calling application to program small sections of unique data
dynamically. Examples of this include date/time, serial number, MAC addresses, and lot numbers.
This function is valid to be called only after a programming image has been programmed into the
target (once startImageExecution has completed). Call the “checkCycloneExecutionStatus”
function to wait for completion. If the target is reset by the Cyclone or by a power cycle after
programming the image, this function will fail. The workaround for this is to execute a second
image that will re-load the algorithm before you call startDynamicDataProgram.
8.2.4.4.3 checkCycloneExecutionStatus
uint32_t checkCycloneExecutionStatus(uint32_t cycloneHandle);
@parameter cycloneHandle
The handle of the Cyclone to begin programming operations
@parameter imageId
Selects the image on the Cyclone to use. The valid range of this
parameter is from 1 to the total number of images in the Cyclone
with the count starting from internal memory and then external
memory.
If a Cyclone only stores one image, this parameter is 1.
@returnvalue
True if the programming process has started successfully.
False otherwise.
@parameter cycloneHandle
The handle of the Cyclone to begin dynamic programming.
@parameter targetAddress
The first memory address of the target processor where the
dynamic data should be written.
@parameter dataLength
The total number of bytes to be written. This parameter cannot
be greater than 255.
@parameter buffer
A pointer to the array which holds the data to be written.
@returnvalue
True if the programming process has started successfully.
False otherwise.