]> Pileus Git - ~andy/csm213a-hw/blobdiff - hw2/serial_dma.h
Get DMA timestamp working
[~andy/csm213a-hw] / hw2 / serial_dma.h
index db2314666861dfd4381374b46e8ef4f4469215ed..4ca9bb680af0c4f970f7ab421ba9190f38aca478 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <stdarg.h>
 #include <MKL46Z4.h>
+#include <PinNames.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -30,19 +31,24 @@ typedef enum {
 /* Port */
 typedef struct sdma_t sdma_t;
 
+/* Open */
+sdma_t *sdma_open(sdma_uart_t uart, sdma_dma_t tx_chan, sdma_dma_t rx_chan);
+
 /* Setup */
-sdma_t *sdma_open(sdma_uart_t uart, sdma_dma_t dma);
+void sdma_pinmap(sdma_t *port, PinName tx, PinName rx);
 
 /* Write */
 void sdma_write(sdma_t *port, void *data, int len);
+void sdma_read(sdma_t *port, void *data, int len);
+
+/* Flush/Wait */
+void sdma_flush(sdma_t *port, uint64_t *time);
+void sdma_wait(sdma_t *port, uint64_t *time);
 
 /* Print */
 void sdma_vprintf(sdma_t *port, const char *fmt, va_list ap);
 void sdma_printf(sdma_t *port, const char *fmt, ...);
 
-/* Write */
-void sdma_flush(sdma_t *port);
-
 #ifdef __cplusplus
 }
 #endif