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