![]() |
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 } |
Interface for data transfer functions.
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 void transfer_ctrl_t |
Transfer control block. Allocate an instance specific control block to pass into the transfer API calls.
| enum 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. |
Chain transfer mode options.
| 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. |
| enum transfer_irq_t |
Interrupt options.
| enum 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. |
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. |
| enum transfer_size_t |
Transfer size specifies the size of each individual transfer. Total transfer length = transfer_size_t * transfer_length_t