Synergy Software Package User's Manual

Interface for data transfer functions. More...

Data Structures

struct  transfer_properties_t
 
struct  transfer_info_t
 
struct  transfer_callback_args_t
 
struct  transfer_cfg_t
 
struct  transfer_api_t
 
struct  transfer_instance_t
 

Typedefs

typedef void transfer_ctrl_t
 

Enumerations

enum  transfer_mode_t { TRANSFER_MODE_NORMAL = 0, TRANSFER_MODE_REPEAT = 1, TRANSFER_MODE_BLOCK = 2 }
 
enum  transfer_size_t { TRANSFER_SIZE_1_BYTE = 0, TRANSFER_SIZE_2_BYTE = 1, TRANSFER_SIZE_4_BYTE = 2 }
 
enum  transfer_addr_mode_t { TRANSFER_ADDR_MODE_FIXED = 0, TRANSFER_ADDR_MODE_OFFSET = 1, TRANSFER_ADDR_MODE_INCREMENTED = 2, TRANSFER_ADDR_MODE_DECREMENTED = 3 }
 
enum  transfer_repeat_area_t { TRANSFER_REPEAT_AREA_DESTINATION = 0, TRANSFER_REPEAT_AREA_SOURCE = 1 }
 
enum  transfer_chain_mode_t { TRANSFER_CHAIN_MODE_DISABLED = 0, TRANSFER_CHAIN_MODE_EACH = 2, TRANSFER_CHAIN_MODE_END = 3 }
 
enum  transfer_irq_t { TRANSFER_IRQ_END = 0, TRANSFER_IRQ_EACH = 1 }
 
enum  transfer_start_mode_t { TRANSFER_START_MODE_SINGLE = 0, TRANSFER_START_MODE_REPEAT = 1 }
 

Detailed Description

Interface for data transfer functions.

Summary

The transfer interface supports background data transfer (no CPU intervention).

The transfer interface can be implemented by:

Related SSP architecture topics:

Transfer Interface description: Transfer Driver on r_dtc and Transfer Driver on r_dmac

Typedef Documentation

◆ transfer_ctrl_t

typedef void transfer_ctrl_t

Transfer control block. Allocate an instance specific control block to pass into the transfer API calls.

Implemented as

Enumeration Type Documentation

◆ transfer_addr_mode_t

Address mode specifies whether to modify (increment or decrement) pointer after each transfer.

Enumerator
TRANSFER_ADDR_MODE_FIXED 

Address pointer remains fixed after each transfer.

TRANSFER_ADDR_MODE_OFFSET 

Address pointer changes as per the configured value of offset_byte.

TRANSFER_ADDR_MODE_INCREMENTED 

Address pointer is incremented by associated transfer_size_t after each transfer.

TRANSFER_ADDR_MODE_DECREMENTED 

Address pointer is decremented by associated transfer_size_t after each transfer.

◆ transfer_chain_mode_t

Chain transfer mode options.

Note
Only applies for DTC.
Enumerator
TRANSFER_CHAIN_MODE_DISABLED 

Chain mode not used.

TRANSFER_CHAIN_MODE_EACH 

Switch to next transfer after a single transfer from this transfer_info_t.

TRANSFER_CHAIN_MODE_END 

Complete the entire transfer defined in this transfer_info_t before chaining to next transfer.

◆ transfer_irq_t

Interrupt options.

Enumerator
TRANSFER_IRQ_END 

Interrupt occurs only after last transfer. If this transfer is chained to a subsequent transfer, the interrupt will occur only after subsequent chained transfer(s) are complete.

Warning
DTC triggers the interrupt of the activation source. Choosing TRANSFER_IRQ_END with DTC will prevent activation source interrupts until the transfer is complete.
TRANSFER_IRQ_EACH 

Interrupt occurs after each transfer.

Note
Not available in all HAL drivers. See HAL driver for details.
Warning
This will prevent chained transfers that would have happened after this one until the next activation source.

◆ transfer_mode_t

Transfer mode describes what will happen when a transfer request occurs.

Enumerator
TRANSFER_MODE_NORMAL 

In normal mode, each transfer request causes a transfer of transfer_size_t from the source pointer to the destination pointer. The transfer length is decremented and the source and address pointers are updated according to transfer_addr_mode_t. After the transfer length reaches 0, transfer requests will not cause any further transfers.

TRANSFER_MODE_REPEAT 

Repeat mode is like normal mode, except that when the transfer length reaches 0, the pointer to the repeat area and the transfer length will be reset to their initial values. If DMAC is used, the transfer repeats only transfer_info_t::num_blocks times. After the transfer repeats transfer_info_t::num_blocks times, transfer requests will not cause any further transfers. If DTC is used, the transfer repeats continuously (no limit to the number of repeat transfers).

TRANSFER_MODE_BLOCK 

In block mode, each transfer request causes transfer_info_t::length transfers of transfer_size_t. After each individual transfer, the source and destination pointers are updated according to transfer_addr_mode_t. After the block transfer is complete, transfer_info_t::num_blocks is decremented. After the transfer_info_t::num_blocks reaches 0, transfer requests will not cause any further transfers.

◆ transfer_repeat_area_t

Repeat area options (source or destination). In TRANSFER_MODE_REPEAT, the selected pointer returns to its original value after transfer_info_t::length transfers. In TRANSFER_MODE_BLOCK, the selected pointer returns to its original value after each transfer.

Enumerator
TRANSFER_REPEAT_AREA_DESTINATION 

Destination area repeated in TRANSFER_MODE_REPEAT or TRANSFER_MODE_BLOCK.

TRANSFER_REPEAT_AREA_SOURCE 

Source area repeated in TRANSFER_MODE_REPEAT or TRANSFER_MODE_BLOCK.

◆ transfer_size_t

Transfer size specifies the size of each individual transfer. Total transfer length = transfer_size_t * transfer_length_t

Enumerator
TRANSFER_SIZE_1_BYTE 

Each transfer transfers an 8-bit value.

TRANSFER_SIZE_2_BYTE 

Address pointer is incremented after each transfer.

TRANSFER_SIZE_4_BYTE 

Address pointer is incremented after each transfer.

◆ transfer_start_mode_t

Select whether to start single or repeated transfer with software start.

Enumerator
TRANSFER_START_MODE_SINGLE 

Software start triggers single transfer.

TRANSFER_START_MODE_REPEAT 

Software start transfer continues until transfer is complete.