GFX Develop Branch

This commit is contained in:
2024-06-11 19:38:14 +02:00
parent e23389a0b9
commit b0ef96e390
647 changed files with 10174 additions and 6435 deletions

View File

@ -80,6 +80,31 @@
flag.
(+) __HAL_RAMECC_CLEAR_FLAG : Clear the current RAMECC Monitor selected
flag.
##### Callback registration #####
==================================
[..]
(#) The compilation define USE_HAL_RAMECC_REGISTER_CALLBACKS when set to 1
allows the user to configure dynamically the driver callback.
[..]
(#) Use Function HAL_RAMECC_RegisterCallback() to register a user callback.
(#) Function HAL_RAMECC_RegisterCallback() allows to register following callback:
(+) RAMECCErrorCode : RAMECC error code detection.
(#) This function takes as parameters the HAL peripheral handle
and a pointer to the user callback function.
[..]
(#) Use function HAL_RAMECC_UnRegisterCallback() to reset a callback to the default
weak function.
(#) HAL_RAMECC_UnRegisterCallback() takes as parameters the HAL peripheral handle.
(#) This function allows to reset following callback:
(+) RAMECCErrorCode : RAMECC error code detection.
[..]
(#) When The compilation define USE_HAL_RAMECC_REGISTER_CALLBACKS is set to 0 or
not defined, the callback registration feature is not available
and weak callbacks are used.
@endverbatim
*/
@ -132,7 +157,7 @@
* Monitor.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_Init (RAMECC_HandleTypeDef *hramecc)
HAL_StatusTypeDef HAL_RAMECC_Init(RAMECC_HandleTypeDef *hramecc)
{
/* Check the RAMECC peripheral handle */
if (hramecc == NULL)
@ -163,6 +188,9 @@ HAL_StatusTypeDef HAL_RAMECC_Init (RAMECC_HandleTypeDef *hramecc)
/* Initialise the RAMECC error code */
hramecc->ErrorCode = HAL_RAMECC_ERROR_NONE;
/* Initialise the RAMECC error detected code */
hramecc->RAMECCErrorCode = HAL_RAMECC_NO_ERROR;
/* Update the RAMECC state */
hramecc->State = HAL_RAMECC_STATE_READY;
@ -170,7 +198,6 @@ HAL_StatusTypeDef HAL_RAMECC_Init (RAMECC_HandleTypeDef *hramecc)
return HAL_OK;
}
/**
* @brief DeInitializes the RAMECC peripheral.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -178,7 +205,7 @@ HAL_StatusTypeDef HAL_RAMECC_Init (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_DeInit (RAMECC_HandleTypeDef *hramecc)
HAL_StatusTypeDef HAL_RAMECC_DeInit(RAMECC_HandleTypeDef *hramecc)
{
/* Check the RAMECC peripheral handle */
if (hramecc == NULL)
@ -203,18 +230,24 @@ HAL_StatusTypeDef HAL_RAMECC_DeInit (RAMECC_HandleTypeDef *hramecc)
/* Clear RAMECC monitor flags */
__HAL_RAMECC_CLEAR_FLAG (hramecc, RAMECC_FLAGS_ALL);
#if (USE_HAL_RAMECC_REGISTER_CALLBACKS == 1)
/* Clean callback */
hramecc->DetectErrorCallback = NULL;
#endif /* USE_HAL_RAMECC_REGISTER_CALLBACKS */
/* Initialise the RAMECC error code */
/* Initialize the RAMECC error code */
hramecc->ErrorCode = HAL_RAMECC_ERROR_NONE;
/* Initialize the RAMECC error detected code */
hramecc->RAMECCErrorCode = HAL_RAMECC_NO_ERROR;
/* Change RAMECC peripheral state */
hramecc->State = HAL_RAMECC_STATE_RESET;
/* Return HAL status */
return HAL_OK;
}
/**
* @}
*/
@ -242,7 +275,7 @@ HAL_StatusTypeDef HAL_RAMECC_DeInit (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_StartMonitor (RAMECC_HandleTypeDef *hramecc)
HAL_StatusTypeDef HAL_RAMECC_StartMonitor(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -272,7 +305,6 @@ HAL_StatusTypeDef HAL_RAMECC_StartMonitor (RAMECC_HandleTypeDef *hramecc)
return HAL_OK;
}
/**
* @brief Stop the RAMECC latching error information.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -280,7 +312,7 @@ HAL_StatusTypeDef HAL_RAMECC_StartMonitor (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_StopMonitor (RAMECC_HandleTypeDef *hramecc)
HAL_StatusTypeDef HAL_RAMECC_StopMonitor(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -310,7 +342,6 @@ HAL_StatusTypeDef HAL_RAMECC_StopMonitor (RAMECC_HandleTypeDef *hramecc)
return HAL_OK;
}
/**
* @brief Enable the RAMECC error interrupts.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that
@ -319,7 +350,7 @@ HAL_StatusTypeDef HAL_RAMECC_StopMonitor (RAMECC_HandleTypeDef *hramecc)
* @param Notifications Select the notification.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_EnableNotification (RAMECC_HandleTypeDef *hramecc, uint32_t Notifications)
HAL_StatusTypeDef HAL_RAMECC_EnableNotification(RAMECC_HandleTypeDef *hramecc, uint32_t Notifications)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -350,7 +381,6 @@ HAL_StatusTypeDef HAL_RAMECC_EnableNotification (RAMECC_HandleTypeDef *hramecc,
return HAL_OK;
}
/**
* @brief Disable the RAMECC error interrupts.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that
@ -359,7 +389,7 @@ HAL_StatusTypeDef HAL_RAMECC_EnableNotification (RAMECC_HandleTypeDef *hramecc,
* @param Notifications Select the notification.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_DisableNotification (RAMECC_HandleTypeDef *hramecc, uint32_t Notifications)
HAL_StatusTypeDef HAL_RAMECC_DisableNotification(RAMECC_HandleTypeDef *hramecc, uint32_t Notifications)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -390,7 +420,31 @@ HAL_StatusTypeDef HAL_RAMECC_DisableNotification (RAMECC_HandleTypeDef *hramecc,
return HAL_OK;
}
/**
* @}
*/
/** @addtogroup RAMECC_Exported_Functions_Group3
*
@verbatim
===============================================================================
##### Handle Interrupt and Callbacks Functions #####
===============================================================================
[..]
This section provides functions to handle RAMECC interrupts and
Register / UnRegister the different callbacks.
[..]
The HAL_RAMECC_IRQHandler() function allows the user to handle the active RAMECC
interrupt request.
The HAL_RAMECC_RegisterCallback() function allows the user to register the selected
RAMECC callbacks.
The HAL_RAMECC_UnRegisterCallback() function allows the user to unregister the
selected RAMECC callbacks.
@endverbatim
* @{
*/
#if (USE_HAL_RAMECC_REGISTER_CALLBACKS == 1)
/**
* @brief Register callbacks.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -434,7 +488,6 @@ HAL_StatusTypeDef HAL_RAMECC_RegisterCallback (RAMECC_HandleTypeDef *hramecc, vo
return status;
}
/**
* @brief UnRegister callbacks.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -442,7 +495,7 @@ HAL_StatusTypeDef HAL_RAMECC_RegisterCallback (RAMECC_HandleTypeDef *hramecc, vo
* Monitor.
* @retval HAL status.
*/
HAL_StatusTypeDef HAL_RAMECC_UnRegisterCallback (RAMECC_HandleTypeDef *hramecc)
HAL_StatusTypeDef HAL_RAMECC_UnRegisterCallback(RAMECC_HandleTypeDef *hramecc)
{
HAL_StatusTypeDef status = HAL_OK;
@ -450,7 +503,7 @@ HAL_StatusTypeDef HAL_RAMECC_UnRegisterCallback (RAMECC_HandleTypeDef *hramecc)
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
/* Check RAMECC state */
if(hramecc->State == HAL_RAMECC_STATE_READY)
if (hramecc->State == HAL_RAMECC_STATE_READY)
{
hramecc->DetectErrorCallback = NULL;
}
@ -466,7 +519,7 @@ HAL_StatusTypeDef HAL_RAMECC_UnRegisterCallback (RAMECC_HandleTypeDef *hramecc)
/* Return HAL status */
return status;
}
#endif /* USE_HAL_RAMECC_REGISTER_CALLBACKS */
/**
* @brief Handles RAMECC interrupt request.
@ -475,11 +528,11 @@ HAL_StatusTypeDef HAL_RAMECC_UnRegisterCallback (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval None.
*/
void HAL_RAMECC_IRQHandler (RAMECC_HandleTypeDef *hramecc)
void HAL_RAMECC_IRQHandler(RAMECC_HandleTypeDef *hramecc)
{
uint32_t ier_reg = ((RAMECC_TypeDef *)((uint32_t)hramecc->Instance & 0xFFFFFF00U))->IER;
uint32_t cr_reg = hramecc->Instance->CR >> 1U;
uint32_t sr_reg = hramecc->Instance->SR << 1U;
uint32_t sr_reg = hramecc->Instance->SR;
/* Update global interrupt variables */
if ((ier_reg & RAMECC_IER_GIE) == RAMECC_IER_GIE)
@ -487,21 +540,55 @@ void HAL_RAMECC_IRQHandler (RAMECC_HandleTypeDef *hramecc)
ier_reg = RAMECC_IT_GLOBAL_ALL;
}
/* Store the ECC Single error detected */
if ((sr_reg & RAMECC_SR_SEDCF) == RAMECC_SR_SEDCF)
{
hramecc->RAMECCErrorCode |= HAL_RAMECC_SINGLEERROR_DETECTED;
}
/* Store the ECC double error detected */
if ((sr_reg & (RAMECC_SR_DEDF | RAMECC_SR_DEBWDF)) != 0U)
{
hramecc->RAMECCErrorCode |= HAL_RAMECC_DOUBLEERROR_DETECTED;
}
/* Clear active flags */
__HAL_RAMECC_CLEAR_FLAG (hramecc, (((ier_reg | cr_reg) & sr_reg) >> 1U));
__HAL_RAMECC_CLEAR_FLAG (hramecc, (((ier_reg | cr_reg) & (sr_reg << 1U)) >> 1U));
/* Check if a valid double error callback is registered */
#if (USE_HAL_RAMECC_REGISTER_CALLBACKS == 1)
/* Check if a valid error callback is registered */
if (hramecc->DetectErrorCallback != NULL)
{
/* Error detection callback */
hramecc->DetectErrorCallback(hramecc);
}
#else
HAL_RAMECC_DetectErrorCallback(hramecc);
#endif /* USE_HAL_RAMECC_REGISTER_CALLBACKS */
}
/**
* @brief RAMECC error detection callback.
* @param hramecc : Pointer to a RAMECC_HandleTypeDef structure that contains
* the configuration information for the specified RAMECC.
* @retval None.
*/
__weak void HAL_RAMECC_DetectErrorCallback(RAMECC_HandleTypeDef *hramecc)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(hramecc);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_RAMECC_DetectDoubleErrorCallback can be implemented in
the user file. */
}
/**
* @}
*/
/** @addtogroup RAMECC_Exported_Functions_Group3
/** @addtogroup RAMECC_Exported_Functions_Group4
*
@verbatim
===============================================================================
@ -526,7 +613,7 @@ void HAL_RAMECC_IRQHandler (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval Failing address offset.
*/
uint32_t HAL_RAMECC_GetFailingAddress (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_GetFailingAddress(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -535,7 +622,6 @@ uint32_t HAL_RAMECC_GetFailingAddress (RAMECC_HandleTypeDef *hramecc)
return hramecc->Instance->FAR;
}
/**
* @brief Return the RAMECC data low.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -543,7 +629,7 @@ uint32_t HAL_RAMECC_GetFailingAddress (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval Failing data low.
*/
uint32_t HAL_RAMECC_GetFailingDataLow (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_GetFailingDataLow(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -552,7 +638,6 @@ uint32_t HAL_RAMECC_GetFailingDataLow (RAMECC_HandleTypeDef *hramecc)
return hramecc->Instance->FDRL;
}
/**
* @brief Return the RAMECC data high.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -560,7 +645,7 @@ uint32_t HAL_RAMECC_GetFailingDataLow (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval Failing data high.
*/
uint32_t HAL_RAMECC_GetFailingDataHigh (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_GetFailingDataHigh(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -569,7 +654,6 @@ uint32_t HAL_RAMECC_GetFailingDataHigh (RAMECC_HandleTypeDef *hramecc)
return hramecc->Instance->FDRH;
}
/**
* @brief Return the RAMECC Hamming bits injected.
* @param hramecc Pointer to a RAMECC_HandleTypeDef structure that contains
@ -577,7 +661,7 @@ uint32_t HAL_RAMECC_GetFailingDataHigh (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval Hamming bits injected.
*/
uint32_t HAL_RAMECC_GetHammingErrorCode (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_GetHammingErrorCode(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -593,7 +677,7 @@ uint32_t HAL_RAMECC_GetHammingErrorCode (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval State of bit (1 or 0).
*/
uint32_t HAL_RAMECC_IsECCSingleErrorDetected (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_IsECCSingleErrorDetected(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -609,7 +693,7 @@ uint32_t HAL_RAMECC_IsECCSingleErrorDetected (RAMECC_HandleTypeDef *hramecc)
* Monitor.
* @retval State of bit (1 or 0).
*/
uint32_t HAL_RAMECC_IsECCDoubleErrorDetected (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_IsECCDoubleErrorDetected(RAMECC_HandleTypeDef *hramecc)
{
/* Check the parameters */
assert_param (IS_RAMECC_MONITOR_ALL_INSTANCE (hramecc->Instance));
@ -617,12 +701,12 @@ uint32_t HAL_RAMECC_IsECCDoubleErrorDetected (RAMECC_HandleTypeDef *hramecc)
/* Return the state of DEDF | DEBWDF flags */
return ((READ_BIT(hramecc->Instance->SR, (RAMECC_SR_DEDF | RAMECC_SR_DEBWDF)) != 0U) ? 1UL : 0UL);
}
/**
* @}
*/
/** @addtogroup RAMECC_Exported_Functions_Group4
/** @addtogroup RAMECC_Exported_Functions_Group5
*
@verbatim
===============================================================================
@ -636,6 +720,8 @@ uint32_t HAL_RAMECC_IsECCDoubleErrorDetected (RAMECC_HandleTypeDef *hramecc)
state.
The HAL_RAMECC_GetError() function allows to Get the RAMECC peripheral error
code.
The HAL_RAMECC_GetRAMECCError() function allows to Get the RAMECC error code
detected.
@endverbatim
* @{
@ -648,7 +734,7 @@ uint32_t HAL_RAMECC_IsECCDoubleErrorDetected (RAMECC_HandleTypeDef *hramecc)
* specified RAMECC instance.
* @retval RAMECC state.
*/
HAL_RAMECC_StateTypeDef HAL_RAMECC_GetState (RAMECC_HandleTypeDef *hramecc)
HAL_RAMECC_StateTypeDef HAL_RAMECC_GetState(RAMECC_HandleTypeDef *hramecc)
{
/* Return the RAMECC state */
return hramecc->State;
@ -661,14 +747,24 @@ HAL_RAMECC_StateTypeDef HAL_RAMECC_GetState (RAMECC_HandleTypeDef *hramecc)
* specified RAMECC instance.
* @retval RAMECC error code.
*/
uint32_t HAL_RAMECC_GetError (RAMECC_HandleTypeDef *hramecc)
uint32_t HAL_RAMECC_GetError(RAMECC_HandleTypeDef *hramecc)
{
/* Return the RAMECC error code */
return hramecc->ErrorCode;
}
/**
* @}
* @brief Get the RAMECC error code detected.
* @param hramecc : Pointer to a RAMECC_HandleTypeDef structure that
* contains the configuration information for the
* specified RAMECC instance.
* @retval RAMECC error code detected.
*/
uint32_t HAL_RAMECC_GetRAMECCError(RAMECC_HandleTypeDef *hramecc)
{
/* Return the RAMECC error code detected*/
return hramecc->RAMECCErrorCode;
}
/**
* @}
@ -681,4 +777,3 @@ uint32_t HAL_RAMECC_GetError (RAMECC_HandleTypeDef *hramecc)
/**
* @}
*/