]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_M33F_NXP_LPC55S69_MCUXpresso/NXP_Code/component/serial_manager/serial_port_uart.c
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M33F_NXP_LPC55S69_MCUXpresso / NXP_Code / component / serial_manager / serial_port_uart.c
index afd5c7af7c81febf9f26bc3a6d004dac531fa93a..799e85ac34d695cf931f20cd01549718519bddb3 100644 (file)
@@ -8,6 +8,7 @@
 \r
 #include "fsl_common.h"\r
 #include "serial_manager.h"\r
+#include "serial_port_internal.h"\r
 \r
 #if (defined(SERIAL_PORT_TYPE_UART) && (SERIAL_PORT_TYPE_UART > 0U))\r
 #include "uart.h"\r
@@ -58,8 +59,6 @@ typedef struct _serial_uart_state
  * Prototypes\r
  ******************************************************************************/\r
 \r
-serial_manager_status_t Serial_UartDeinit(serial_handle_t serialHandle);\r
-\r
 /*******************************************************************************\r
  * Code\r
  ******************************************************************************/\r
@@ -81,7 +80,7 @@ static void Serial_UartCallback(hal_uart_handle_t handle, hal_uart_status_t stat
 \r
     serialUartHandle = (serial_uart_state_t *)userData;\r
 \r
-    if (kStatus_HAL_UartRxIdle == status)\r
+    if ((hal_uart_status_t)kStatus_HAL_UartRxIdle == status)\r
     {\r
         if ((NULL != serialUartHandle->rx.callback))\r
         {\r
@@ -90,12 +89,12 @@ static void Serial_UartCallback(hal_uart_handle_t handle, hal_uart_status_t stat
             serialUartHandle->rx.callback(serialUartHandle->rx.callbackParam, &msg, kStatus_SerialManager_Success);\r
         }\r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
-        transfer.data = &serialUartHandle->rx.readBuffer[0];\r
+        transfer.data     = &serialUartHandle->rx.readBuffer[0];\r
         transfer.dataSize = sizeof(serialUartHandle->rx.readBuffer);\r
         if (kStatus_HAL_UartSuccess ==\r
             HAL_UartTransferReceiveNonBlocking(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]), &transfer))\r
 #else\r
-        if (kStatus_HAL_UartSuccess ==\r
+        if ((hal_uart_status_t)kStatus_HAL_UartSuccess ==\r
             HAL_UartReceiveNonBlocking(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]),\r
                                        &serialUartHandle->rx.readBuffer[0], sizeof(serialUartHandle->rx.readBuffer)))\r
 #endif\r
@@ -107,9 +106,9 @@ static void Serial_UartCallback(hal_uart_handle_t handle, hal_uart_status_t stat
             serialUartHandle->rx.busy = 0U;\r
         }\r
     }\r
-    else if (kStatus_HAL_UartTxIdle == status)\r
+    else if ((hal_uart_status_t)kStatus_HAL_UartTxIdle == status)\r
     {\r
-        if (serialUartHandle->tx.busy)\r
+        if (0U != serialUartHandle->tx.busy)\r
         {\r
             serialUartHandle->tx.busy = 0U;\r
             if ((NULL != serialUartHandle->tx.callback))\r
@@ -131,27 +130,26 @@ serial_manager_status_t Serial_UartInit(serial_handle_t serialHandle, void *seri
     serial_uart_state_t *serialUartHandle;\r
     serial_port_uart_config_t *uartConfig;\r
     hal_uart_config_t config;\r
+#if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))\r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
     hal_uart_transfer_t transfer;\r
+#endif\r
 #endif\r
 \r
     assert(serialConfig);\r
     assert(serialHandle);\r
-    if (SERIAL_PORT_UART_HANDLE_SIZE < sizeof(serial_uart_state_t))\r
-    {\r
-        return kStatus_SerialManager_Error;\r
-    }\r
+    assert(SERIAL_PORT_UART_HANDLE_SIZE >= sizeof(serial_uart_state_t));\r
 \r
-    uartConfig = (serial_port_uart_config_t *)serialConfig;\r
+    uartConfig       = (serial_port_uart_config_t *)serialConfig;\r
     serialUartHandle = (serial_uart_state_t *)serialHandle;\r
 \r
     config.baudRate_Bps = uartConfig->baudRate;\r
-    config.parityMode = (hal_uart_parity_mode_t)uartConfig->parityMode;\r
+    config.parityMode   = (hal_uart_parity_mode_t)uartConfig->parityMode;\r
     config.stopBitCount = (hal_uart_stop_bit_count_t)uartConfig->stopBitCount;\r
-    config.enableRx = uartConfig->enableRx;\r
-    config.enableTx = uartConfig->enableTx;\r
-    config.srcClock_Hz = uartConfig->clockRate;\r
-    config.instance = uartConfig->instance;\r
+    config.enableRx     = uartConfig->enableRx;\r
+    config.enableTx     = uartConfig->enableTx;\r
+    config.srcClock_Hz  = uartConfig->clockRate;\r
+    config.instance     = uartConfig->instance;\r
 \r
     if (kStatus_HAL_UartSuccess != HAL_UartInit(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]), &config))\r
     {\r
@@ -172,11 +170,11 @@ serial_manager_status_t Serial_UartInit(serial_handle_t serialHandle, void *seri
         return kStatus_SerialManager_Error;\r
     }\r
 \r
-    if (uartConfig->enableRx)\r
+    if (0U != uartConfig->enableRx)\r
     {\r
         serialUartHandle->rx.busy = 1U;\r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
-        transfer.data = &serialUartHandle->rx.readBuffer[0];\r
+        transfer.data     = &serialUartHandle->rx.readBuffer[0];\r
         transfer.dataSize = sizeof(serialUartHandle->rx.readBuffer);\r
         if (kStatus_HAL_UartSuccess !=\r
             HAL_UartTransferReceiveNonBlocking(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]), &transfer))\r
@@ -205,12 +203,12 @@ serial_manager_status_t Serial_UartDeinit(serial_handle_t serialHandle)
 \r
 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))\r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
-    HAL_UartTransferAbortReceive(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
+    (void)HAL_UartTransferAbortReceive(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
 #else\r
-    HAL_UartAbortReceive(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
+    (void)HAL_UartAbortReceive(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
 #endif\r
 #endif\r
-    HAL_UartDeinit(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
+    (void)HAL_UartDeinit(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
 \r
 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))\r
     serialUartHandle->tx.busy = 0U;\r
@@ -235,7 +233,7 @@ serial_manager_status_t Serial_UartWrite(serial_handle_t serialHandle, uint8_t *
 \r
     serialUartHandle = (serial_uart_state_t *)serialHandle;\r
 \r
-    if (serialUartHandle->tx.busy)\r
+    if (0U != serialUartHandle->tx.busy)\r
     {\r
         return kStatus_SerialManager_Busy;\r
     }\r
@@ -245,7 +243,7 @@ serial_manager_status_t Serial_UartWrite(serial_handle_t serialHandle, uint8_t *
     serialUartHandle->tx.length = length;\r
 \r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
-    transfer.data = buffer;\r
+    transfer.data     = buffer;\r
     transfer.dataSize = length;\r
     if (kStatus_HAL_UartSuccess !=\r
         HAL_UartTransferSendNonBlocking(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]), &transfer))\r
@@ -304,17 +302,17 @@ serial_manager_status_t Serial_UartCancelWrite(serial_handle_t serialHandle)
 \r
     serialUartHandle = (serial_uart_state_t *)serialHandle;\r
 \r
-    primask = DisableGlobalIRQ();\r
-    isBusy = serialUartHandle->tx.busy;\r
+    primask                   = DisableGlobalIRQ();\r
+    isBusy                    = serialUartHandle->tx.busy;\r
     serialUartHandle->tx.busy = 0U;\r
     EnableGlobalIRQ(primask);\r
 \r
 #if (defined(HAL_UART_TRANSFER_MODE) && (HAL_UART_TRANSFER_MODE > 0U))\r
-    HAL_UartTransferAbortSend(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
+    (void)HAL_UartTransferAbortSend(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
 #else\r
-    HAL_UartAbortSend(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
+    (void)HAL_UartAbortSend(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0]));\r
 #endif\r
-    if (isBusy)\r
+    if (0U != isBusy)\r
     {\r
         if ((NULL != serialUartHandle->tx.callback))\r
         {\r
@@ -336,7 +334,7 @@ serial_manager_status_t Serial_UartInstallTxCallback(serial_handle_t serialHandl
 \r
     serialUartHandle = (serial_uart_state_t *)serialHandle;\r
 \r
-    serialUartHandle->tx.callback = callback;\r
+    serialUartHandle->tx.callback      = callback;\r
     serialUartHandle->tx.callbackParam = callbackParam;\r
 \r
     return kStatus_SerialManager_Success;\r
@@ -352,7 +350,7 @@ serial_manager_status_t Serial_UartInstallRxCallback(serial_handle_t serialHandl
 \r
     serialUartHandle = (serial_uart_state_t *)serialHandle;\r
 \r
-    serialUartHandle->rx.callback = callback;\r
+    serialUartHandle->rx.callback      = callback;\r
     serialUartHandle->rx.callbackParam = callbackParam;\r
 \r
     return kStatus_SerialManager_Success;\r
@@ -370,4 +368,36 @@ void Serial_UartIsrFunction(serial_handle_t serialHandle)
 }\r
 #endif\r
 \r
+serial_manager_status_t Serial_UartEnterLowpower(serial_handle_t serialHandle)\r
+{\r
+    serial_uart_state_t *serialUartHandle;\r
+\r
+    assert(serialHandle);\r
+\r
+    serialUartHandle = (serial_uart_state_t *)serialHandle;\r
+\r
+    if (kStatus_HAL_UartSuccess != HAL_UartEnterLowpower(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0])))\r
+    {\r
+        return kStatus_SerialManager_Error;\r
+    }\r
+\r
+    return kStatus_SerialManager_Success;\r
+}\r
+\r
+serial_manager_status_t Serial_UartExitLowpower(serial_handle_t serialHandle)\r
+{\r
+    serial_uart_state_t *serialUartHandle;\r
+\r
+    assert(serialHandle);\r
+\r
+    serialUartHandle = (serial_uart_state_t *)serialHandle;\r
+\r
+    if (kStatus_HAL_UartSuccess != HAL_UartExitLowpower(((hal_uart_handle_t)&serialUartHandle->usartHandleBuffer[0])))\r
+    {\r
+        return kStatus_SerialManager_Error;\r
+    }\r
+\r
+    return kStatus_SerialManager_Success;\r
+}\r
+\r
 #endif\r