Expand description
DMA with separate read and write masters
Re-exports§
pub use self::ch::CH;
Modules§
- ch
- Cluster Cluster CH%s, containing CH?_READ_ADDR,CH??_READ_ADDR, CH?_WRITE_ADDR,CH??_WRITE_ADDR, CH?_TRANS_COUNT,CH??_TRANS_COUNT, CH?_CTRL_TRIG,CH??_CTRL_TRIG, CH?_AL1_CTRL,CH??_AL1_CTRL, CH?_AL1_READ_ADDR,CH??_AL1_READ_ADDR, CH?_AL1_WRITE_ADDR,CH??_AL1_WRITE_ADDR, CH?_AL1_TRANS_COUNT_TRIG,CH??_AL1_TRANS_COUNT_TRIG, CH?_AL2_CTRL,CH??_AL2_CTRL, CH?_AL2_TRANS_COUNT,CH??_AL2_TRANS_COUNT, CH?_AL2_READ_ADDR,CH??_AL2_READ_ADDR, CH?_AL2_WRITE_ADDR_TRIG,CH??_AL2_WRITE_ADDR_TRIG, CH?_AL3_CTRL,CH??_AL3_CTRL, CH?_AL3_WRITE_ADDR,CH??_AL3_WRITE_ADDR, CH?_AL3_TRANS_COUNT,CH??_AL3_TRANS_COUNT, CH?_AL3_READ_ADDR_TRIG,CH??_AL3_READ_ADDR_TRIG
- ch0_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch0_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch1_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch1_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch2_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch2_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch3_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch3_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch4_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch4_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch5_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch5_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch6_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch6_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch7_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch7_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch8_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch8_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch9_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch9_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch10_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch10_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- ch11_
dbg_ ctdreq - Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- ch11_
dbg_ tcr - Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- chan_
abort - Abort an in-progress transfer sequence on one or more channels
- fifo_
levels - Debug RAF, WAF, TDF levels
- inte0
- Interrupt Enables for IRQ 0
- inte1
- Interrupt Enables for IRQ 1
- intf0
- Force Interrupts
- intf1
- Force Interrupts for IRQ 1
- intr
- Interrupt Status (raw)
- ints0
- Interrupt Status for IRQ 0
- ints1
- Interrupt Status (masked) for IRQ 1
- multi_
chan_ trigger - Trigger one or more channels simultaneously
- n_
channels - The number of channels this DMA instance is equipped with. This DMA supports up to 16 hardware channels, but can be configured with as few as one, to minimise silicon area.
- sniff_
ctrl - Sniffer Control
- sniff_
data - Data accumulator for sniff hardware
Write an initial seed value here before starting a DMA transfer on the channel indicated by SNIFF_CTRL_DMACH. The hardware will update this register each time it observes a read from the indicated channel. Once the channel completes, the final result can be read from this register. - timer0
- Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - timer1
- Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - timer2
- Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - timer3
- Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.
Structs§
- Register
Block - Register block
Type Aliases§
- CH0_
DBG_ CTDREQ - CH0_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH0_
DBG_ TCR - CH0_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH1_
DBG_ CTDREQ - CH1_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH1_
DBG_ TCR - CH1_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH2_
DBG_ CTDREQ - CH2_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH2_
DBG_ TCR - CH2_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH3_
DBG_ CTDREQ - CH3_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH3_
DBG_ TCR - CH3_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH4_
DBG_ CTDREQ - CH4_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH4_
DBG_ TCR - CH4_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH5_
DBG_ CTDREQ - CH5_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH5_
DBG_ TCR - CH5_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH6_
DBG_ CTDREQ - CH6_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH6_
DBG_ TCR - CH6_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH7_
DBG_ CTDREQ - CH7_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH7_
DBG_ TCR - CH7_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH8_
DBG_ CTDREQ - CH8_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH8_
DBG_ TCR - CH8_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH9_
DBG_ CTDREQ - CH9_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH9_
DBG_ TCR - CH9_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH10_
DBG_ CTDREQ - CH10_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH10_
DBG_ TCR - CH10_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CH11_
DBG_ CTDREQ - CH11_DBG_CTDREQ (rw) register accessor: Read: get channel DREQ counter (i.e. how many accesses the DMA expects it can perform on the peripheral without overflow/underflow. Write any value: clears the counter, and cause channel to re-initiate DREQ handshake.
- CH11_
DBG_ TCR - CH11_DBG_TCR (r) register accessor: Read to get channel TRANS_COUNT reload value, i.e. the length of the next transfer
- CHAN_
ABORT - CHAN_ABORT (rw) register accessor: Abort an in-progress transfer sequence on one or more channels
- FIFO_
LEVELS - FIFO_LEVELS (r) register accessor: Debug RAF, WAF, TDF levels
- INTE0
- INTE0 (rw) register accessor: Interrupt Enables for IRQ 0
- INTE1
- INTE1 (rw) register accessor: Interrupt Enables for IRQ 1
- INTF0
- INTF0 (rw) register accessor: Force Interrupts
- INTF1
- INTF1 (rw) register accessor: Force Interrupts for IRQ 1
- INTR
- INTR (rw) register accessor: Interrupt Status (raw)
- INTS0
- INTS0 (rw) register accessor: Interrupt Status for IRQ 0
- INTS1
- INTS1 (rw) register accessor: Interrupt Status (masked) for IRQ 1
- MULTI_
CHAN_ TRIGGER - MULTI_CHAN_TRIGGER (rw) register accessor: Trigger one or more channels simultaneously
- N_
CHANNELS - N_CHANNELS (r) register accessor: The number of channels this DMA instance is equipped with. This DMA supports up to 16 hardware channels, but can be configured with as few as one, to minimise silicon area.
- SNIFF_
CTRL - SNIFF_CTRL (rw) register accessor: Sniffer Control
- SNIFF_
DATA - SNIFF_DATA (rw) register accessor: Data accumulator for sniff hardware
Write an initial seed value here before starting a DMA transfer on the channel indicated by SNIFF_CTRL_DMACH. The hardware will update this register each time it observes a read from the indicated channel. Once the channel completes, the final result can be read from this register. - TIMER0
- TIMER0 (rw) register accessor: Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - TIMER1
- TIMER1 (rw) register accessor: Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - TIMER2
- TIMER2 (rw) register accessor: Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less. - TIMER3
- TIMER3 (rw) register accessor: Pacing (X/Y) Fractional Timer
The pacing timer produces TREQ assertions at a rate set by ((X/Y) * sys_clk). This equation is evaluated every sys_clk cycles and therefore can only generate TREQs at a rate of 1 per sys_clk (i.e. permanent TREQ) or less.