From 5ff47b002e3514f72bfef7791d893376d616c077 Mon Sep 17 00:00:00 2001 From: "marius.crisan" Date: Mon, 12 Jun 2023 09:43:46 +0200 Subject: [PATCH 1/2] First approach of HAL_SYS --- firmware/Sources/HAL/HAL_SYS/hal_sys.c | 64 +++++++++++++++----------- firmware/Sources/HAL/HAL_SYS/hal_sys.h | 16 ++++--- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/firmware/Sources/HAL/HAL_SYS/hal_sys.c b/firmware/Sources/HAL/HAL_SYS/hal_sys.c index 06207be..4328e71 100644 --- a/firmware/Sources/HAL/HAL_SYS/hal_sys.c +++ b/firmware/Sources/HAL/HAL_SYS/hal_sys.c @@ -100,30 +100,18 @@ HAL_SYS_result_e HAL_SysInit(void){ }else{ /* Initialize all configured peripherals */ -#ifdef EPC_CONF_PWM_ENABLED - if (HAL_PwmInit() != HAL_PWM_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_CRIT; - }else{ -#endif - #ifdef EPC_CONF_GPIO_ENABLED if(HAL_GpioInit() != HAL_GPIO_RESULT_SUCCESS){ res = HAL_SYS_RESULT_ERROR_GPIO; }else{ + res = HAL_SYS_RESULT_ERROR_CRIT; #endif -#ifdef EPC_CONF_ADC_DMA_ENABLED - if(HAL_AdcInit() != HAL_ADC_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_ADC; - // TODO: add dma +#ifdef EPC_CONF_CAN_ENABLED + if (HAL_CanInit() != HAL_CAN_RESULT_SUCCESS){ + res = HAL_SYS_RESULT_ERROR_COMM; }else{ -#endif - -#ifdef EPC_CONF_STS_ENABLED - if (HAL_StsInit () != HAL_STS_RESULT_SUCCESS){ - res |= HAL_SYS_RESULT_ERROR_STS; - } - else{ + res = HAL_SYS_RESULT_ERROR_COMM; #endif #ifdef EPC_CONF_TMR_ENABLED @@ -132,18 +120,38 @@ HAL_SYS_result_e HAL_SysInit(void){ if (tmr_res != HAL_TMR_RESULT_SUCCESS){ res = HAL_SYS_RESULT_ERROR_CRIT; }else{ + res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; #endif -#ifdef EPC_CONF_CAN_ENABLED - if (HAL_CanInit() != HAL_CAN_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_COMM; +#ifdef EPC_CONF_ADC_DMA_ENABLED + if(HAL_AdcInit() != HAL_ADC_RESULT_SUCCESS){ + res = HAL_SYS_RESULT_ERROR_ADC; + }else{ + res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; +#endif + +#ifdef EPC_CONF_PWM_ENABLED + if (HAL_PwmInit() != HAL_PWM_RESULT_SUCCESS){ + res = HAL_SYS_RESULT_ERROR_CRIT; }else{ + res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; +#endif + + + +#ifdef EPC_CONF_STS_ENABLED + if (HAL_StsInit () != HAL_STS_RESULT_SUCCESS){ + res |= HAL_SYS_RESULT_ERROR_STS; + } + else{ + res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; #endif #ifdef EPC_CONF_WDG_ENABLED if (HAL_WdgInit() != HAL_WDG_RESULT_SUCCESS){ res = HAL_SYS_RESULT_ERROR_COMM; }else{ + res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; #endif // Close initialization } @@ -151,27 +159,27 @@ HAL_SYS_result_e HAL_SysInit(void){ } #endif -#ifdef EPC_CONF_CAN_ENABLED +#ifdef EPC_CONF_STS_ENABLED } #endif -#ifdef EPC_CONF_TMR_ENABLED +#ifdef EPC_CONF_PWM_ENABLED } #endif -#ifdef EPC_CONF_STS_ENABLED +#ifdef EPC_CONF_ADC_DMA_ENABLED } #endif -#ifdef EPC_CONF_ADC_DMA_ENABLED +#ifdef EPC_CONF_TMR_ENABLED } #endif -#ifdef EPC_CONF_GPIO_ENABLED +#ifdef EPC_CONF_CAN_ENABLED } #endif -#ifdef EPC_CONF_PWM_ENABLED +#ifdef EPC_CONF_GPIO_ENABLED } #endif @@ -180,6 +188,10 @@ HAL_SYS_result_e HAL_SysInit(void){ return res; } +void HAL_SysResume(void){ + HAL_ResumeTick(); +} + HAL_SYS_result_e HAL_SysPwrMode(const HAL_SYS_mode_e mode){ HAL_SYS_result_e res = HAL_SYS_RESULT_SUCCESS; if(mode == HAL_SYS_MODE_SLEEP){ diff --git a/firmware/Sources/HAL/HAL_SYS/hal_sys.h b/firmware/Sources/HAL/HAL_SYS/hal_sys.h index 5633e67..2b63323 100644 --- a/firmware/Sources/HAL/HAL_SYS/hal_sys.h +++ b/firmware/Sources/HAL/HAL_SYS/hal_sys.h @@ -44,12 +44,10 @@ typedef enum */ typedef enum { - HAL_SYS_RESULT_SUCCESS = 0x0U, /**< HAL_SYS success operation result **/ - HAL_SYS_RESULT_ERROR_GPIO = 0x01U, /**< HAL_SYS error on GPIO operation **/ - HAL_SYS_RESULT_ERROR_ADC = 0x02U, /**< HAL_SYS error on ADC operation **/ - HAL_SYS_RESULT_ERROR_STS = 0x03U, /**< HAL_SYS error on I2C operation **/ - HAL_SYS_RESULT_ERROR_COMM = 0x04U, /**< HAL_SYS error on communication process, CAN or UART **/ - HAL_SYS_RESULT_ERROR_CRIT = 0x05U, /**< HAL_SYS critical error result **/ + HAL_SYS_RESULT_SUCCESS = 0x0U, /**< HAL_SYS success operation result **/ + HAL_SYS_RESULT_ERROR_CRIT = 0x01U, /**< HAL_SYS critical error result **/ + HAL_SYS_RESULT_ERROR_CAN = 0x02U, /**< HAL_SYS error on communication process, CAN **/ + HAL_SYS_RESULT_ERROR_CRIT_PERIPH = 0x03U, /**< HAL_SYS error on operation with critical peripherals **/ }HAL_SYS_result_e; @@ -84,6 +82,12 @@ typedef enum */ HAL_SYS_result_e HAL_SysInit(void); +/** + * @fn void HAL_SysResume(void) + * @brief Resume the uC after a low power mode + * */ +void HAL_SysResume(void); + /** * @fn HAL_SYS_result_e HAL_SysPwrMode(HAL_SYS_mode_e) * @brief The micro enters on power save mode. From 0ef5a66d6ccd6962889d879a083af0934514da37 Mon Sep 17 00:00:00 2001 From: "marius.crisan" Date: Mon, 12 Jun 2023 09:49:48 +0200 Subject: [PATCH 2/2] First approach of HAL_SYS --- firmware/Sources/HAL/HAL_SYS/hal_sys.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/firmware/Sources/HAL/HAL_SYS/hal_sys.c b/firmware/Sources/HAL/HAL_SYS/hal_sys.c index 4328e71..98d2277 100644 --- a/firmware/Sources/HAL/HAL_SYS/hal_sys.c +++ b/firmware/Sources/HAL/HAL_SYS/hal_sys.c @@ -102,56 +102,46 @@ HAL_SYS_result_e HAL_SysInit(void){ /* Initialize all configured peripherals */ #ifdef EPC_CONF_GPIO_ENABLED if(HAL_GpioInit() != HAL_GPIO_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_GPIO; - }else{ res = HAL_SYS_RESULT_ERROR_CRIT; + }else{ #endif #ifdef EPC_CONF_CAN_ENABLED if (HAL_CanInit() != HAL_CAN_RESULT_SUCCESS){ res = HAL_SYS_RESULT_ERROR_COMM; }else{ - res = HAL_SYS_RESULT_ERROR_COMM; #endif #ifdef EPC_CONF_TMR_ENABLED HAL_TMR_result_e tmr_res = HAL_TmrInit(HAL_TMR_CLOCK_RT); tmr_res |= HAL_TmrInit(HAL_TMR_CLOCK_PWR_MEAS); if (tmr_res != HAL_TMR_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_CRIT; - }else{ res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + }else{ #endif #ifdef EPC_CONF_ADC_DMA_ENABLED if(HAL_AdcInit() != HAL_ADC_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_ADC; - }else{ res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + }else{ #endif #ifdef EPC_CONF_PWM_ENABLED if (HAL_PwmInit() != HAL_PWM_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_CRIT; - }else{ res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + }else{ #endif - - #ifdef EPC_CONF_STS_ENABLED if (HAL_StsInit () != HAL_STS_RESULT_SUCCESS){ - res |= HAL_SYS_RESULT_ERROR_STS; - } - else{ - res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + res |= HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + } else{ #endif #ifdef EPC_CONF_WDG_ENABLED if (HAL_WdgInit() != HAL_WDG_RESULT_SUCCESS){ - res = HAL_SYS_RESULT_ERROR_COMM; - }else{ res = HAL_SYS_RESULT_ERROR_CRIT_PERIPH; + }else{ #endif // Close initialization }