Interface: moteiv.tos.platform.msp430.dma.MSP430DMA

interface MSP430DMA

HAL Interface for establishing and controlling DMA transfers on the MSP430 microcontroller. Most sensor drivers will need to use this DMA interface to initiate transfers.

Author:
Ben Greenstein <ben@cs.ucla.edu>
Joe Polastre <info@moteiv.com>

Commands
command result_t repeatTransfer(void *src_addr, void *dst_addr, uint16_t size) Repeat a DMA transfer using previous settings but new pointers and transfer size.
command result_t setupTransfer(dma_transfer_mode_t transfer_mode, dma_trigger_t trigger, dma_level_t level, void *src_addr, void *dst_addr, uint16_t size, dma_byte_t src_byte, dma_byte_t dst_byte, dma_incr_t src_incr, dma_incr_t dst_incr) Setup a transfer using explicit argument (most robust and simple mechanism and recommended for novice users) See MSP430DMA.h for parameter options
command result_t setupTransferRaw(uint16_t state, uint16_t trigger, void *src, void *dest, int size) Raw interface for setting up a DMA transfer.
command result_t softwareTrigger() Trigger a DMA transfer using software
command result_t startTransfer() Enable the DMA module.
command result_t stopTransfer() Stop a DMA transfer in progress

Events
event void transferDone(result_t success) Notification that the transfer has completed

Commands - Details

repeatTransfer

command result_t repeatTransfer(void *src_addr, void *dst_addr, uint16_t size)

Repeat a DMA transfer using previous settings but new pointers and transfer size. Automatically starts the transfer (sets the enable bit).

setupTransfer

command result_t setupTransfer(dma_transfer_mode_t transfer_mode, dma_trigger_t trigger, dma_level_t level, void *src_addr, void *dst_addr, uint16_t size, dma_byte_t src_byte, dma_byte_t dst_byte, dma_incr_t src_incr, dma_incr_t dst_incr)

Setup a transfer using explicit argument (most robust and simple mechanism and recommended for novice users) See MSP430DMA.h for parameter options

setupTransferRaw

command result_t setupTransferRaw(uint16_t state, uint16_t trigger, void *src, void *dest, int size)

Raw interface for setting up a DMA transfer. This function is intended to provide as much raw performance as possible but sacrifices type checking in the process. Recommended ONLY for advanced users that have very intricate knowledge of the MSP430 DMA module described in the user's guide.

Parameters:
state - The control register value, as specified by dma_control_state_t in MSP430DMA.h
trigger - The trigger for the DMA transfer. Should be one of the options from dma_trigger_t in MSP430DMA.h
src - Pointer to the source address
dest - Pointer to the destination address
size - Size of the DMA transfer See MSP430DMA.h for parameter options

softwareTrigger

command result_t softwareTrigger()

Trigger a DMA transfer using software

startTransfer

command result_t startTransfer()

Enable the DMA module. Equivalent to setting the DMA enable bit. This function does not force a transfer.

stopTransfer

command result_t stopTransfer()

Stop a DMA transfer in progress

Events - Details

transferDone

event void transferDone(result_t success)

Notification that the transfer has completed