Platform drivers for Mbed.

Dependents:   EVAL-CN0535-FMCZ EVAL-CN0535-FMCZ EVAL-AD568x-AD569x EVAL-AD7606 ... more

Revision:
11:a2dcf0ebb5b5
Parent:
9:9e247b9c9abf
Child:
15:fd2c3c3038bf
--- a/src/uart.cpp	Wed Jun 17 14:54:14 2020 +0000
+++ b/src/uart.cpp	Mon Aug 03 17:21:20 2020 +0530
@@ -33,17 +33,14 @@
  */
 int32_t uart_read(struct uart_desc *desc, uint8_t *data, uint32_t bytes_number)
 {
-	mbed::Serial *uart;		// pointer to Serial/UART instance
+	mbed::UnbufferedSerial *uart;		// pointer to UnbufferedSerial/UART instance
 
 	if (desc) {
 		if (((mbed_uart_desc *)(desc->extra))->uart_port) {
-			uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
+			uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
 
 			if (data) {
-				for (size_t i = 0; i < bytes_number; i++) {
-					data[i] = uart->getc();
-				}
-
+				uart->read(data, bytes_number);
 				return SUCCESS;
 			}
 		}
@@ -63,17 +60,14 @@
 int32_t uart_write(struct uart_desc *desc, const uint8_t *data,
 		   uint32_t bytes_number)
 {
-	mbed::Serial *uart;		// pointer to Serial/UART instance
+	mbed::UnbufferedSerial *uart;		// pointer to UnbufferedSerial/UART instance
 
 	if (desc) {
 		if (((mbed_uart_desc *)(desc->extra))->uart_port) {
-			uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
+			uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
 
 			if (data) {
-				for (size_t i = 0; i < bytes_number; i++) {
-					uart->putc(data[i]);
-				}
-
+				uart->write(data, bytes_number);
 				return SUCCESS;
 			}
 		}
@@ -96,16 +90,16 @@
 			      uint8_t *data,
 			      uint32_t bytes_number)
 {
-	mbed::Serial *uart;		// pointer to Serial/UART instance
+	mbed::UnbufferedSerial *uart;		// pointer to UnbufferedSerial/UART instance
 
 	if (desc) {
 		if (((mbed_uart_desc *)(desc->extra))->uart_port) {
-			uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
+			uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
 
 			if (data) {
 				for (size_t i = 0; i < bytes_number; i++) {
 					if (uart->readable() > 0) {
-						data[i] = uart->getc();
+						uart->read(&data[i], 1);
 					}
 				}
 
@@ -131,16 +125,16 @@
 			       const uint8_t *data,
 			       uint32_t bytes_number)
 {
-	mbed::Serial *uart;		// pointer to Serial/UART instance
+	mbed::UnbufferedSerial *uart;		// pointer to UnbufferedSerial/UART instance
 
 	if (desc) {
 		if (((mbed_uart_desc *)(desc->extra))->uart_port) {
-			uart = (Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
+			uart = (UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port);
 
 			if (data) {
 				for (size_t i = 0; i < bytes_number; i++) {
-					if (uart->writable() > 0) {
-						uart->putc(data[i]);
+					if (uart->writeable() > 0) {
+						uart->write(&data[i], 1);
 					}
 				}
 
@@ -161,7 +155,7 @@
  */
 int32_t uart_init(struct uart_desc **desc, struct uart_init_param *param)
 {
-	mbed::Serial *uart;	// pointer to new Serial/UART instance
+	mbed::UnbufferedSerial *uart;	// pointer to new UnbufferedSerial/UART instance
 	mbed_uart_desc *mbed_desc; 	// Pointer to mbed uart descriptor
 
 	if (desc && param) {
@@ -173,8 +167,8 @@
 
 		new_desc->baud_rate = param->baud_rate;
 
-		// Create and configure a new instance of Serial/UART port
-		uart = new Serial(
+		// Create and configure a new instance of UnbufferedSerial/UART port
+		uart = new UnbufferedSerial(
 			(PinName)(((mbed_uart_init_param *)param->extra)->uart_tx_pin),
 			(PinName)(((mbed_uart_init_param *)param->extra)->uart_rx_pin),
 			(int)param->baud_rate);
@@ -189,7 +183,7 @@
 			return FAILURE;
 		}
 
-		mbed_desc->uart_port = (Serial *)uart;
+		mbed_desc->uart_port = (UnbufferedSerial *)uart;
 		new_desc->extra = (mbed_uart_desc *)mbed_desc;
 
 		*desc = new_desc;
@@ -210,8 +204,8 @@
 {
 	if (desc) {
 		// Free the UART port object
-		if ((Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port)) {
-			delete((Serial *)(((mbed_uart_desc *)(desc->extra))->uart_port));
+		if ((UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port)) {
+			delete((UnbufferedSerial *)(((mbed_uart_desc *)(desc->extra))->uart_port));
 		}
 
 		// Free the UART extra descriptor object