Table of Contents | ||||
---|---|---|---|---|
|
Having setup the Multi API-DLL and API-DLL instances for the correct target devices using functions from previous sections. Use the functions in this section to specify what code should be written by each FPA to their target device.
...
During normal programming using Encapsulated Functions, such as F_AutoProgram, the Code Data Buffer is used to program the target device.
...
For custom modifications the Write Buffer can be used to write to the target device(s) without disturbing the Code Data Buffer. To modify the Write Buffer, use the function F_Put_Byte_to_Buffer. When using FlashPro-ARM, the one target will be modified, when using GangPro-ARM, all six targets will be written with the same data. Sequential Functions, such as F_Copy_Buffer_to_Flash can be used to write this buffer to target(s).
Additionally the GangPro-ARM library also has six Gang Write Buffers, where different custom data can be written to each of the six targets per adapter using the function F_Put_Byte_to_Gang_Buffer. Each target can be provided different data for the same address, i.e. calibration or serialization data. Use Sequential Functions, such as F_Copy_Gang_Buffer_to_Flash to write these buffers to targets.
...
FlashPro-ARM: The Read Data Buffer is used for reading from the target device by the F_Copy_Flash_to_Buffer and F_Memory_Read functions, the contents of which can be accessed using F_Get_Byte_from_Buffer.
GangPro-ARM: Six Gang Read Buffers are used for reading from up to six target devices by the F_Copy_Flash_to_Gang_Buffer and F_Memory_Read functions, the contents of which can be accessed using F_Get_Byte_from_Gang_Buffer.
...
1. F_ReadCodeFile
Anchor | ||||
---|---|---|---|---|
|
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535): could not open file
STATUS_FILE_NAME_ERROR (536): format not supported
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
2. F_ReadCodeFile_BaseAddr
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535): could not open file
STATUS_FILE_NAME_ERROR (536): format not supported
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
3. F_AppendCodeFile
Anchor | ||||
---|---|---|---|---|
|
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535): could not open file
STATUS_FILE_NAME_ERROR (536): format not supported
STATUS_MAX FILE_COUNT (557): total number of files exceeds MAX_FILE_INDEX (20)
STATUS_DUPLICATE_FILE PATH (558): appending already existing file
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
4. F_AppendCodeFile_BaseAddr
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535): could not open file
STATUS_FILE_NAME_ERROR (536): format not supported
STATUS_MAX FILE_COUNT (557): total number of files exceeds MAX_FILE_INDEX (20)
STATUS_DUPLICATE_FILE PATH (558): appending already existing file
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
5. F_Get_CodeCS
...
Read code from selected buffer and calculate check sum. This function has some exclusive GangPro-ARM parametersreturn values.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Get_CodeCS( INT_X dest ) |
Input
INT_X dest : choose operation
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
any : checksum
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
6. F_Clr_Code_Buffer
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
7. F_Put_Byte_to_Code_Buffer
Anchor | ||||
---|---|---|---|---|
|
...
Code Block |
---|
INT_X F_Put_Byte_to_Code_Buffer( INT_X addr, BYTE data ); |
Input
INT_X addr : valid flash address for target MCU
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
8. F_Get_Byte_from_Code_Buffer
...
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Byte_from_Code_Buffer( INT_X addr ); |
Input
INT_X addr : valid flash address for target MCU
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
BYTE (0 to 0xFF) : byte from internal code buffer
-1 : addr parameter out of flash range
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
9. F_Put_Byte_to_Buffer
...
Write byte to Write Buffer from FlashPro-ARM buffer https://elprotronic.atlassian.net/wiki/spaces/FPGPARM/pages/57704798/Data + Buffer +Functions#FlashProFunctions | FlashPro-ARM-buffers and GangPro-ARM buffer https://elprotronic.atlassian.net/wiki/spaces/FPGPARM/pages/57704798/Data+Buffer+Functions#GangPro Data Buffer Functions | GangPro-ARM-buffers.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Put_Byte_to_Buffer( INT_X addr, BYTE data ); |
Input
INT_X addr : valid flash address for target MCU
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeededFPA
STATUS_TXBUF_UNMATCHEDSIZE_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all ERROR (559): Temporary buffer full (4k), program contents with F_Copy_Buffer_to_Flash. This buffer is flushed when F_Open_Target_Device is called, or when addr is set to -1. Call F_Put_Byte_to_Buffer(-1, 0xFF); to flush buffer.
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of rangeout of range
Example
Insert excerpt | ||||
---|---|---|---|---|
|
10. F_Get_Byte_from_Buffer (FlashPro-ARM only)
...
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Byte_from_Buffer( INT_X addr ); |
Input
INT_X addr : valid flash address for target MCU
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
BYTE (0 to 0xFF) : byte from temporary Write Data Buffer
-1 : addr parameter out of flash range
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
11. F_Put_Byte_to_Gang_Buffer (GangPro-ARM only)
Anchor | ||||
---|---|---|---|---|
|
General Description
Write byte to Gang Write Buffer from GangPro-ARM buffer https://elprotronic.atlassian.net/wiki/spaces/FPGPARM/pages/57704798/Data+Buffer+Functions#GangPro-ARM-buffers. This function will set one byte of data in a dedicated buffer for specified Gang target MCU (1 to 6). Use in combination with F_Copy_Gang_Buffer_to_Flash to actually write data to targets.
...
Select FPA to perform operation on using on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with F_OpenInstancesAndFPAs or index out of range-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
Example
Insert excerpt | ||||
---|---|---|---|---|
|
12. F_Get_Byte_from_Gang_Buffer (GangPro-ARM only)
...
BYTE target_no : MCU target number 1 to 6
INT_X addr : valid flash address for target MCU
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
BYTE (0 to 0xFF) : byte from Gang Read Buffer of one target (target_no)
-1 : addr parameter out of flash range
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range