117 #if defined(FMC_Bank5_6)
123 #ifdef HAL_SDRAM_MODULE_ENABLED
183 hsdram->Lock = HAL_UNLOCKED;
184 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
185 if (hsdram->MspInitCallback == NULL)
194 hsdram->MspInitCallback(hsdram);
223 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
224 if (hsdram->MspDeInitCallback == NULL)
230 hsdram->MspDeInitCallback(hsdram);
243 __HAL_UNLOCK(hsdram);
289 if (__FMC_SDRAM_GET_FLAG(hsdram->Instance, FMC_SDRAM_FLAG_REFRESH_IT))
292 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
293 hsdram->RefreshErrorCallback(hsdram);
299 __FMC_SDRAM_CLEAR_FLAG(hsdram->Instance, FMC_SDRAM_FLAG_REFRESH_ERROR);
381 __IO uint8_t *pSdramAddress = (uint8_t *)pAddress;
382 uint8_t *pdestbuff = pDstBuffer;
399 for (size = BufferSize; size != 0U; size--)
401 *pdestbuff = *(__IO uint8_t *)pSdramAddress;
407 hsdram->State = state;
410 __HAL_UNLOCK(hsdram);
433 __IO uint8_t *pSdramAddress = (uint8_t *)pAddress;
434 uint8_t *psrcbuff = pSrcBuffer;
450 for (size = BufferSize; size != 0U; size--)
452 *(__IO uint8_t *)pSdramAddress = *psrcbuff;
461 __HAL_UNLOCK(hsdram);
484 __IO uint32_t *pSdramAddress = pAddress;
485 uint16_t *pdestbuff = pDstBuffer;
502 for (size = BufferSize; size >= 2U ; size -= 2U)
504 *pdestbuff = (uint16_t)((*pSdramAddress) & 0x0000FFFFU);
506 *pdestbuff = (uint16_t)(((*pSdramAddress) & 0xFFFF0000U) >> 16U);
512 if ((BufferSize % 2U) != 0U)
514 *pdestbuff = (uint16_t)((*pSdramAddress) & 0x0000FFFFU);
518 hsdram->State = state;
521 __HAL_UNLOCK(hsdram);
544 __IO uint32_t *psdramaddress = pAddress;
545 uint16_t *psrcbuff = pSrcBuffer;
561 for (size = BufferSize; size >= 2U ; size -= 2U)
563 *psdramaddress = (uint32_t)(*psrcbuff);
565 *psdramaddress |= ((uint32_t)(*psrcbuff) << 16U);
571 if ((BufferSize % 2U) != 0U)
573 *psdramaddress = ((uint32_t)(*psrcbuff) & 0x0000FFFFU) | ((*psdramaddress) & 0xFFFF0000U);
580 __HAL_UNLOCK(hsdram);
603 __IO uint32_t *pSdramAddress = (uint32_t *)pAddress;
604 uint32_t *pdestbuff = pDstBuffer;
621 for (size = BufferSize; size != 0U; size--)
623 *pdestbuff = *(__IO uint32_t *)pSdramAddress;
629 hsdram->State = state;
632 __HAL_UNLOCK(hsdram);
655 __IO uint32_t *pSdramAddress = pAddress;
656 uint32_t *psrcbuff = pSrcBuffer;
672 for (size = BufferSize; size != 0U; size--)
674 *pSdramAddress = *psrcbuff;
683 __HAL_UNLOCK(hsdram);
705 HAL_StatusTypeDef status;
724 hsdram->hdma->XferCpltCallback = SDRAM_DMACplt;
728 hsdram->hdma->XferCpltCallback = SDRAM_DMACpltProt;
730 hsdram->hdma->XferErrorCallback = SDRAM_DMAError;
733 status =
HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
736 __HAL_UNLOCK(hsdram);
758 HAL_StatusTypeDef status;
774 hsdram->hdma->XferCpltCallback = SDRAM_DMACplt;
775 hsdram->hdma->XferErrorCallback = SDRAM_DMAError;
778 status =
HAL_DMA_Start_IT(hsdram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
781 __HAL_UNLOCK(hsdram);
791 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
807 HAL_StatusTypeDef status = HAL_OK;
810 if (pCallback == NULL)
815 state = hsdram->State;
821 hsdram->MspInitCallback = pCallback;
824 hsdram->MspDeInitCallback = pCallback;
827 hsdram->RefreshErrorCallback = pCallback;
840 hsdram->MspInitCallback = pCallback;
843 hsdram->MspDeInitCallback = pCallback;
875 HAL_StatusTypeDef status = HAL_OK;
878 state = hsdram->State;
941 pSDRAM_DmaCallbackTypeDef pCallback)
943 HAL_StatusTypeDef status = HAL_OK;
946 if (pCallback == NULL)
954 state = hsdram->State;
960 hsdram->DmaXferCpltCallback = pCallback;
963 hsdram->DmaXferErrorCallback = pCallback;
978 __HAL_UNLOCK(hsdram);
1217 return hsdram->State;
1241 __HAL_DMA_DISABLE(hdma);
1246 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
1247 hsdram->DmaXferCpltCallback(hdma);
1263 __HAL_DMA_DISABLE(hdma);
1268 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
1269 hsdram->DmaXferCpltCallback(hdma);
1285 __HAL_DMA_DISABLE(hdma);
1290 #if (USE_HAL_SDRAM_REGISTER_CALLBACKS == 1)
1291 hsdram->DmaXferErrorCallback(hdma);
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
SDRAM command parameters structure definition.
FMC SDRAM Timing parameters structure definition.
HAL_StatusTypeDef FMC_SDRAM_Timing_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_SDRAM device timing according to the specified parameters in the FMC_SDRAM_Timing...
HAL_StatusTypeDef FMC_SDRAM_DeInit(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
DeInitializes the FMC_SDRAM peripheral.
HAL_StatusTypeDef FMC_SDRAM_Init(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_InitTypeDef *Init)
Initializes the FMC_SDRAM device according to the specified control parameters in the FMC_SDRAM_InitT...
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Disable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_SDRAM write protection.
HAL_StatusTypeDef FMC_SDRAM_SetAutoRefreshNumber(FMC_SDRAM_TypeDef *Device, uint32_t AutoRefreshNumber)
Set the Number of consecutive SDRAM Memory auto Refresh commands.
uint32_t FMC_SDRAM_GetModeStatus(const FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Returns the indicated FMC SDRAM bank mode status.
HAL_StatusTypeDef FMC_SDRAM_SendCommand(FMC_SDRAM_TypeDef *Device, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
Send Command to the FMC SDRAM bank.
HAL_StatusTypeDef FMC_SDRAM_WriteProtection_Enable(FMC_SDRAM_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_SDRAM write protection.
HAL_StatusTypeDef FMC_SDRAM_ProgramRefreshRate(FMC_SDRAM_TypeDef *Device, uint32_t RefreshRate)
Program the SDRAM Memory Refresh rate.
void HAL_SDRAM_DMA_XferCpltCallback(DMA_HandleTypeDef *hdma)
DMA transfer complete callback.
void HAL_SDRAM_MspInit(SDRAM_HandleTypeDef *hsdram)
SDRAM MSP Init.
HAL_StatusTypeDef HAL_SDRAM_DeInit(SDRAM_HandleTypeDef *hsdram)
Perform the SDRAM device initialization sequence.
void HAL_SDRAM_RefreshErrorCallback(SDRAM_HandleTypeDef *hsdram)
SDRAM Refresh error callback.
HAL_StatusTypeDef HAL_SDRAM_Init(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_TimingTypeDef *Timing)
Performs the SDRAM device initialization sequence.
void HAL_SDRAM_IRQHandler(SDRAM_HandleTypeDef *hsdram)
This function handles SDRAM refresh error interrupt request.
void HAL_SDRAM_MspDeInit(SDRAM_HandleTypeDef *hsdram)
SDRAM MSP DeInit.
void HAL_SDRAM_DMA_XferErrorCallback(DMA_HandleTypeDef *hdma)
DMA transfer complete error callback.
HAL_StatusTypeDef HAL_SDRAM_UnRegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId)
Unregister a User SDRAM Callback SDRAM Callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Read_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pDstBuffer, uint32_t BufferSize)
Reads 8-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Read_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
Reads 32-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Read_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pDstBuffer, uint32_t BufferSize)
Reads 16-bit data buffer from the SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_Write_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
Writes a Words data buffer to SDRAM memory using DMA transfer.
HAL_StatusTypeDef HAL_SDRAM_Read_DMA(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pDstBuffer, uint32_t BufferSize)
Reads a Words data from the SDRAM memory using DMA transfer.
HAL_StatusTypeDef HAL_SDRAM_Write_8b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint8_t *pSrcBuffer, uint32_t BufferSize)
Writes 8-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_RegisterCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_CallbackTypeDef pCallback)
Register a User SDRAM Callback To be used to override the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Write_32b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint32_t *pSrcBuffer, uint32_t BufferSize)
Writes 32-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_RegisterDmaCallback(SDRAM_HandleTypeDef *hsdram, HAL_SDRAM_CallbackIDTypeDef CallbackId, pSDRAM_DmaCallbackTypeDef pCallback)
Register a User SDRAM Callback for DMA transfers To be used to override the weak predefined callback.
HAL_StatusTypeDef HAL_SDRAM_Write_16b(SDRAM_HandleTypeDef *hsdram, uint32_t *pAddress, uint16_t *pSrcBuffer, uint32_t BufferSize)
Writes 16-bit data buffer to SDRAM memory.
HAL_StatusTypeDef HAL_SDRAM_SendCommand(SDRAM_HandleTypeDef *hsdram, FMC_SDRAM_CommandTypeDef *Command, uint32_t Timeout)
Sends Command to the SDRAM bank.
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Enable(SDRAM_HandleTypeDef *hsdram)
Enables dynamically SDRAM write protection.
HAL_StatusTypeDef HAL_SDRAM_WriteProtection_Disable(SDRAM_HandleTypeDef *hsdram)
Disables dynamically SDRAM write protection.
HAL_StatusTypeDef HAL_SDRAM_SetAutoRefreshNumber(SDRAM_HandleTypeDef *hsdram, uint32_t AutoRefreshNumber)
Sets the Number of consecutive SDRAM Memory auto Refresh commands.
uint32_t HAL_SDRAM_GetModeStatus(SDRAM_HandleTypeDef *hsdram)
Returns the SDRAM memory current mode.
HAL_StatusTypeDef HAL_SDRAM_ProgramRefreshRate(SDRAM_HandleTypeDef *hsdram, uint32_t RefreshRate)
Programs the SDRAM Memory Refresh rate.
HAL_SDRAM_StateTypeDef HAL_SDRAM_GetState(SDRAM_HandleTypeDef *hsdram)
Returns the SDRAM state.
HAL_SDRAM_CallbackIDTypeDef
HAL SDRAM Callback ID enumeration definition.
struct __SDRAM_HandleTypeDef else typedef struct endif SDRAM_HandleTypeDef
SDRAM handle Structure definition.
HAL_SDRAM_StateTypeDef
HAL SDRAM State structure definition.
void(* pSDRAM_CallbackTypeDef)(SDRAM_HandleTypeDef *hsdram)
HAL SDRAM Callback pointer definition.
@ HAL_SDRAM_DMA_XFER_CPLT_CB_ID
@ HAL_SDRAM_REFRESH_ERR_CB_ID
@ HAL_SDRAM_MSP_INIT_CB_ID
@ HAL_SDRAM_DMA_XFER_ERR_CB_ID
@ HAL_SDRAM_MSP_DEINIT_CB_ID
@ HAL_SDRAM_STATE_WRITE_PROTECTED
@ HAL_SDRAM_STATE_PRECHARGED
This file contains all the functions prototypes for the HAL module driver.
DMA handle Structure definition.