Sequential Functions

Sequential Functions

Sequential functions allow access to the target device in any combination of small instructions like erase, read, write sector, modify part of memory, etc. Sequential functions work correctly after communication between target device and programming adapter has been initialized. This requires the target FPA to be opened using F_OpenInstancesAndFPAs and F Initialization, and for proper configuration options to be set using Generic Functions | F_ConfigFileLoad or Generic Functions | F_Set_Config_Value_by_Name.

Once the FPA has been initialized using the aforementioned functions, open the target device using the function Sequential Functions | F_Open_Target_Device. When communication is established, then any of the sequential instructions can be called. When finished, conclude your task by calling Sequential Functions | F_Close_Target_Device.

NOTE: Sequential Functions | F_Open_Target_Device is a high overhead function (usually around one second of execution time). Therefore call Sequential Functions | F_Open_Target_Device only once and perform all sequential functions before closing the target with Sequential Functions | F_Close_Target_Device. Sample code sequence:

F_OpenInstancesAndFPAs("*# *");//only first FPA F_Set_FPA_index(1); //select FPA 1 F_Initialization(); //initialize selected FPA(s) F_ConfigFileLoad(<config file path>); //load config file to selected FPA(s) F_Open_Target_Device(); //power on, initialize JTAG/SWD communication, calib clk ... < all sequential functions here > ... F_Close_Target_Device(); //power off

 

1. F_Open_Target_Device

General Description

The FPA will establish communication with the target device(s). This step requires a working connection, a read of the processor ID, RAM size, and flash size checked against internal records (except when target MCU doesn’t have this meta-data available), and calibration of internal CPU clock. If these steps match expected values the operation will succeed.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Open_Target_Device( void );

Input

none.

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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_Close_Target_Device

General Description

Terminates communication between FPA and target device. Sets reset line to GND and communication lines (TMS, TCK, TDI) to configuration setting “ReleaseJtagState”.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Close_Target_Device( void );

Input

none.

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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_Segment_Erase

General Description

Send command to erase target device’s memory segment.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Segment_Erase( INT_X address );

Input

INT_X address : address of segment/sector to be erased

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • STATUS_ADDRESS_OUT_OF_FLASH_SPACE_ERR (534) : address out of range

  • STATUS_ERASE_SEGMENT_FAILED (549) : erase operation failed

  • 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_Sectors_Blank_Check

General Description

Blank check part or all of the target device’s memory.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Sectors_Blank_Check( INT_X start_addr, INT_X stop_addr );

Input

INT_X start_addr : first memory address to be included in blank check (inclusive)
INT_X stop_addr : last memory address to be included in blank check (inclusive)

 

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).

INT_X : result of operation

  • FALSE (0) : failed

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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_Copy_Buffer_to_Flash

General Description

Write specified number of bytes from Write Buffer in FlashPro-ARM Data Buffer Functions | FlashPro-ARM-buffers or GangPro-ARM Data Buffer Functions | GangPro-ARM-buffers to target flash.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Copy_Buffer_to_Flash( INT_X start_addr, INT_X size );

Input

INT_X start_addr : valid flash address
INT_X size : number of bytes to copy beginning at start address

 

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

  • STATUS_FW_TYPE_ERR (525) - incorrect firmware present in target

  • STATUS_FW_VERIFICATION_ERROR (526) - firmware download verification error

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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

Example

Custom Buffer Write and Verify - FlashPro-ARM

6. F_Copy_Flash_to_Buffer (FlashPro-ARM only)

General Description

Read specified number of bytes from MCU flash to Read Data Buffer in FlashPro-ARM Data Buffer Functions | FlashPro-ARM-buffers.

Syntax

INT_X F_Copy_Flash_to_Buffer( INT_X start_addr, INT_X size );

Input

INT_X start_addr : valid flash address
INT_X size : number of bytes to copy beginning at start address

 

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

Example

Refer to Sequential Functions | F_Copy_Buffer_to_Flash.

7. F_Copy_Gang_Buffer_to_Flash
(GangPro-ARM only)

General Description

Write specified number of bytes from Gang Write Buffer in GangPro-ARM Data Buffer Functions | GangPro-ARM-buffers to target flash.

Syntax

INT_X F_Copy_Gang_Buffer_to_Flash( INT_X start_addr, INT_X size );

Input

INT_X start_addr : valid flash address
INT_X size : number of bytes to copy beginning at start address

 

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

  • STATUS_FW_TYPE_ERR (525) - incorrect firmware present in target

  • STATUS_FW_VERIFICATION_ERROR (526) - firmware download verification error

  • TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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

Example

Custom Buffer Write and Verify - GangPro-ARM

8. F_Copy_Flash_to_Gang_Buffer (GangPro-ARM only)

General Description

Read specified number of bytes from targets' MCU flash to Gang Read Buffers in GangPro-ARM Data Buffer Functions | GangPro-ARM-buffers.

Syntax

INT_X F_Copy_Flash_to_Gang_Buffer( INT_X start_addr, INT_X size );

Input

INT_X start_addr : valid flash address
INT_X size : number of bytes to copy beginning at start address

 

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

Example

Refer to Sequential Functions | F_Copy_Gang_Buffer_to_Flash.

9. F_Write_Byte_to_RAM

General Description

Use the FPA to write a byte to the target device(s) RAM. This write is not verified (no read performed). Use F_Read_Byte (FlashPro-ARM) or F_Gang_Read_Byte (GangPro-ARM) to verify.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Write_Byte_to_RAM( INT_X addr, BYTE data );

Input

INT_X addr : address of byte to be written (byte addressable)
BYTE data : byte to be written

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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

10. F_Write_Word16_to_RAM

General Description

Use the FPA to write two bytes to the target device(s) RAM. This write is not verified (no read performed). Use F_Read_Word16 (FlashPro-ARM) or F_Gang_Read_Word16 (GangPro-ARM) to verify.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Write_Word16_to_RAM( INT_X addr, INT_X data )

Input

INT_X addr : address of 16-bit data to be written (byte addressable)
INT_X data : 16-bit data to be written

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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_Write_Word32_to_RAM

General Description

Use the FPA to write four bytes to the target device(s) RAM. This write is not verified (no read performed). Use F_Read_Word32 (FlashPro-ARM) or F_Gang_Read_Word32 (GangPro-ARM) to verify.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Write_Word32_to_RAM( INT_X addr, INT_X data )

Input

INT_X addr : address of 32-bit data to be written (byte addressable)
INT_X data : 32-bit data to be written

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • 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

12. F_Write_Bytes_Block_to_RAM

General Description

Use the FPA to write a block of bytes to RAM. Currently this function only writes a block of bytes with a size that is a multiple of four, to a 32-bit word aligned address. These writes are not verified (no reads performed). Use F_Read_Bytes_Block (FlashPro-ARM) or F_Gang_Read_Bytes_Block (GangPro-ARM) to verify.

This function has some exclusive GangPro-ARM return values.

Syntax

INT_X F_Write_Bytes_Block_to_RAM( INT_X addr, INT_X size, BYTE *data )

Input

INT_X addr : address of 32-bit data to be written (byte addressable)
INT_X size : number of bytes to be written
BYTE *data : array of bytes to be written (not verified)

 

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

  • FlashPro-ARM - TRUE (1) : succeeded

  • GangPro-ARM - TRUE MASK (0x01..0x3F) : 0x01 - target 1, 0x02 - target 2, 0x04 - target 3, 0x08 - target
    4, 0x10 - target 5, 0x20 - target 6

  • STATUS ADDR ALIGNMENT ERROR (543) : not 32-bit word aligned address

  • STATUS SIZE ALIGNMENT ERROR (544) : number of bytes not a multiple of four

  • 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

13. F_Read_Byte (FlashPro-ARM only)

General Description

Use the FPA to read one byte from any address (RAM, flash, etc.).

Syntax

INT_X F_Read_Byte( INT_X addr )

Input

INT_X addr : address of byte to be read

 

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 : data read

14. F_Read_Word16 (FlashPro-ARM only)

General Description

Use the FPA to read two bytes from any address (RAM, flash, etc.).

Syntax

INT_X F_Read_Word16( INT_X addr )

Input

INT_X addr : address of 16-bit word to be read

 

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 : data read

15. F_Read_Word32 (FlashPro-ARM only)

General Description

Use the FPA to read four bytes from any address (RAM, flash, etc.).

Syntax

INT_X F_Read_Word32( INT_X addr )

Input

INT_X addr : address of 32-bit word to be read

 

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 : data read

16. F_Read_Bytes_Block (FlashPro-ARM only)

General Description

Use the FPA to read a block of bytes from any address (RAM, flash, etc.).

Syntax

INT_X F_Read_Bytes_Block( INT_X addr, INT_X size, BYTE *data );

Input

INT_X addr : first byte address to be read (byte addressable)
INT_X size : number of bytes to be read
BYTE *data : array of bytes that will be written with memory contents

 

Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.

Output

INT_X : result of operation

17. F_Gang_Read_Byte (GangPro-ARM only)

General Description

Use the FPA to read one byte from any address (RAM, flash, etc.).

Syntax

INT_X F_Gang_Read_Byte( BYTE target_no, INT_X addr )

Input

BYTE target no : MCU target number 1 to 6
INT_X addr : address of byte to be read

 

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 : data read

18. F_Gang_Read_Word16 (GangPro-ARM only)

General Description

Use the FPA to read two bytes from any address (RAM, flash, etc.).

Syntax

INT_X F_Gang_Read_Word16( BYTE target_no, INT_X addr )

Input

BYTE target no : MCU target number 1 to 6
INT_X addr : address of 16-bit word to be read

 

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 : data read

19. F_Gang_Read_Word32 (GangPro-ARM only)

General Description

Use the FPA to read four bytes from any address (RAM, flash, etc.).

Syntax

INT_X F_Gang_Read_Word32( BYTE target_no, INT_X addr )

Input

BYTE target no : MCU target number 1 to 6
INT_X addr : address of 32-bit word to be read

 

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 : data read

20. F_Gang_Bytes_Block (GangPro-ARM only)

General Description

Use the FPA to read a block of bytes from any address (RAM, flash, etc.).