X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fcc1111%2Fao_arch.h;h=847ac1a65ec1e438df2a884e1c271c1a7cf08346;hb=51aef5d4fc29986353ad887f4a67ed2fe35f8c8e;hp=360b35c8b239517109a8773b493827fa42b37e53;hpb=7a42f2e0f145d2d520aed8e241fa39f7cb62b19f;p=fw%2Faltos diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h index 360b35c8..847ac1a6 100644 --- a/src/cc1111/ao_arch.h +++ b/src/cc1111/ao_arch.h @@ -258,4 +258,40 @@ struct ao_serial_speed { extern const __code struct ao_serial_speed ao_serial_speeds[]; +/* + * ao_dma.c + */ + +/* Allocate a DMA channel. the 'done' parameter will be set when the + * dma is finished and will be used to wakeup any waiters + */ + +uint8_t +ao_dma_alloc(__xdata uint8_t * done); + +/* Setup a DMA channel */ +void +ao_dma_set_transfer(uint8_t id, + void __xdata *srcaddr, + void __xdata *dstaddr, + uint16_t count, + uint8_t cfg0, + uint8_t cfg1); + +/* Start a DMA channel */ +void +ao_dma_start(uint8_t id); + +/* Manually trigger a DMA channel */ +void +ao_dma_trigger(uint8_t id); + +/* Abort a running DMA transfer */ +void +ao_dma_abort(uint8_t id); + +/* DMA interrupt routine */ +void +ao_dma_isr(void) ao_arch_interrupt(8); + #endif /* _AO_ARCH_H_ */