118#if defined(FMC_Bank1) || defined(FSMC_Bank1)
124#ifdef HAL_SRAM_MODULE_ENABLED
174HAL_StatusTypeDef HAL_SRAM_Init(SRAM_HandleTypeDef *hsram, FMC_NORSRAM_TimingTypeDef *Timing,
175 FMC_NORSRAM_TimingTypeDef *ExtTiming)
183 if (hsram->State == HAL_SRAM_STATE_RESET)
188#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
189 if (hsram->MspInitCallback == NULL)
191 hsram->MspInitCallback = HAL_SRAM_MspInit;
193 hsram->DmaXferCpltCallback = HAL_SRAM_DMA_XferCpltCallback;
194 hsram->DmaXferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
197 hsram->MspInitCallback(hsram);
200 HAL_SRAM_MspInit(hsram);
205 (void)FMC_NORSRAM_Init(hsram->Instance, &(hsram->Init));
208 (void)FMC_NORSRAM_Timing_Init(hsram->Instance, Timing, hsram->Init.NSBank);
211 (void)FMC_NORSRAM_Extended_Timing_Init(hsram->Extended, ExtTiming, hsram->Init.NSBank,
212 hsram->Init.ExtendedMode);
215 __FMC_NORSRAM_ENABLE(hsram->Instance, hsram->Init.NSBank);
218 hsram->State = HAL_SRAM_STATE_READY;
231#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
232 if (hsram->MspDeInitCallback == NULL)
234 hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
238 hsram->MspDeInitCallback(hsram);
241 HAL_SRAM_MspDeInit(hsram);
245 (void)FMC_NORSRAM_DeInit(hsram->Instance, hsram->Extended, hsram->Init.NSBank);
248 hsram->State = HAL_SRAM_STATE_RESET;
262__weak
void HAL_SRAM_MspInit(SRAM_HandleTypeDef *hsram)
278__weak
void HAL_SRAM_MspDeInit(SRAM_HandleTypeDef *hsram)
347HAL_StatusTypeDef HAL_SRAM_Read_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pDstBuffer,
351 __IO uint8_t *psramaddress = (uint8_t *)pAddress;
352 uint8_t *pdestbuff = pDstBuffer;
353 HAL_SRAM_StateTypeDef state = hsram->State;
356 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
362 hsram->State = HAL_SRAM_STATE_BUSY;
365 for (size = BufferSize; size != 0U; size--)
367 *pdestbuff = *psramaddress;
373 hsram->State = state;
395HAL_StatusTypeDef HAL_SRAM_Write_8b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint8_t *pSrcBuffer,
399 __IO uint8_t *psramaddress = (uint8_t *)pAddress;
400 uint8_t *psrcbuff = pSrcBuffer;
403 if (hsram->State == HAL_SRAM_STATE_READY)
409 hsram->State = HAL_SRAM_STATE_BUSY;
412 for (size = BufferSize; size != 0U; size--)
414 *psramaddress = *psrcbuff;
420 hsram->State = HAL_SRAM_STATE_READY;
442HAL_StatusTypeDef HAL_SRAM_Read_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pDstBuffer,
446 __IO uint32_t *psramaddress = pAddress;
447 uint16_t *pdestbuff = pDstBuffer;
449 HAL_SRAM_StateTypeDef state = hsram->State;
452 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
458 hsram->State = HAL_SRAM_STATE_BUSY;
461 limit = (((BufferSize % 2U) != 0U) ? 1U : 0U);
464 for (size = BufferSize; size != limit; size -= 2U)
466 *pdestbuff = (uint16_t)((*psramaddress) & 0x0000FFFFU);
468 *pdestbuff = (uint16_t)(((*psramaddress) & 0xFFFF0000U) >> 16U);
476 *pdestbuff = (uint16_t)((*psramaddress) & 0x0000FFFFU);
480 hsram->State = state;
502HAL_StatusTypeDef HAL_SRAM_Write_16b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint16_t *pSrcBuffer,
506 __IO uint32_t *psramaddress = pAddress;
507 uint16_t *psrcbuff = pSrcBuffer;
511 if (hsram->State == HAL_SRAM_STATE_READY)
517 hsram->State = HAL_SRAM_STATE_BUSY;
520 limit = (((BufferSize % 2U) != 0U) ? 1U : 0U);
523 for (size = BufferSize; size != limit; size -= 2U)
525 *psramaddress = (uint32_t)(*psrcbuff);
527 *psramaddress |= ((uint32_t)(*psrcbuff) << 16U);
535 *psramaddress = ((uint32_t)(*psrcbuff) & 0x0000FFFFU) | ((*psramaddress) & 0xFFFF0000U);
539 hsram->State = HAL_SRAM_STATE_READY;
561HAL_StatusTypeDef HAL_SRAM_Read_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
565 __IO uint32_t *psramaddress = pAddress;
566 uint32_t *pdestbuff = pDstBuffer;
567 HAL_SRAM_StateTypeDef state = hsram->State;
570 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
576 hsram->State = HAL_SRAM_STATE_BUSY;
579 for (size = BufferSize; size != 0U; size--)
581 *pdestbuff = *psramaddress;
587 hsram->State = state;
609HAL_StatusTypeDef HAL_SRAM_Write_32b(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
613 __IO uint32_t *psramaddress = pAddress;
614 uint32_t *psrcbuff = pSrcBuffer;
617 if (hsram->State == HAL_SRAM_STATE_READY)
623 hsram->State = HAL_SRAM_STATE_BUSY;
626 for (size = BufferSize; size != 0U; size--)
628 *psramaddress = *psrcbuff;
634 hsram->State = HAL_SRAM_STATE_READY;
656HAL_StatusTypeDef HAL_SRAM_Read_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pDstBuffer,
660 HAL_SRAM_StateTypeDef state = hsram->State;
663 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
669 hsram->State = HAL_SRAM_STATE_BUSY;
672 if (state == HAL_SRAM_STATE_READY)
674 hsram->hdma->XferCpltCallback = SRAM_DMACplt;
678 hsram->hdma->XferCpltCallback = SRAM_DMACpltProt;
680 hsram->hdma->XferErrorCallback = SRAM_DMAError;
683 status =
HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pAddress, (uint32_t)pDstBuffer, (uint32_t)BufferSize);
705HAL_StatusTypeDef HAL_SRAM_Write_DMA(SRAM_HandleTypeDef *hsram, uint32_t *pAddress, uint32_t *pSrcBuffer,
711 if (hsram->State == HAL_SRAM_STATE_READY)
717 hsram->State = HAL_SRAM_STATE_BUSY;
720 hsram->hdma->XferCpltCallback = SRAM_DMACplt;
721 hsram->hdma->XferErrorCallback = SRAM_DMAError;
724 status =
HAL_DMA_Start_IT(hsram->hdma, (uint32_t)pSrcBuffer, (uint32_t)pAddress, (uint32_t)BufferSize);
737#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
749HAL_StatusTypeDef HAL_SRAM_RegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
750 pSRAM_CallbackTypeDef pCallback)
753 HAL_SRAM_StateTypeDef state;
755 if (pCallback == NULL)
760 state = hsram->State;
761 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_RESET) || (state == HAL_SRAM_STATE_PROTECTED))
765 case HAL_SRAM_MSP_INIT_CB_ID :
766 hsram->MspInitCallback = pCallback;
768 case HAL_SRAM_MSP_DEINIT_CB_ID :
769 hsram->MspDeInitCallback = pCallback;
798HAL_StatusTypeDef HAL_SRAM_UnRegisterCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId)
801 HAL_SRAM_StateTypeDef state;
803 state = hsram->State;
804 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
808 case HAL_SRAM_MSP_INIT_CB_ID :
809 hsram->MspInitCallback = HAL_SRAM_MspInit;
811 case HAL_SRAM_MSP_DEINIT_CB_ID :
812 hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
814 case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
815 hsram->DmaXferCpltCallback = HAL_SRAM_DMA_XferCpltCallback;
817 case HAL_SRAM_DMA_XFER_ERR_CB_ID :
818 hsram->DmaXferErrorCallback = HAL_SRAM_DMA_XferErrorCallback;
826 else if (state == HAL_SRAM_STATE_RESET)
830 case HAL_SRAM_MSP_INIT_CB_ID :
831 hsram->MspInitCallback = HAL_SRAM_MspInit;
833 case HAL_SRAM_MSP_DEINIT_CB_ID :
834 hsram->MspDeInitCallback = HAL_SRAM_MspDeInit;
862HAL_StatusTypeDef HAL_SRAM_RegisterDmaCallback(SRAM_HandleTypeDef *hsram, HAL_SRAM_CallbackIDTypeDef CallbackId,
863 pSRAM_DmaCallbackTypeDef pCallback)
866 HAL_SRAM_StateTypeDef state;
868 if (pCallback == NULL)
876 state = hsram->State;
877 if ((state == HAL_SRAM_STATE_READY) || (state == HAL_SRAM_STATE_PROTECTED))
881 case HAL_SRAM_DMA_XFER_CPLT_CB_ID :
882 hsram->DmaXferCpltCallback = pCallback;
884 case HAL_SRAM_DMA_XFER_ERR_CB_ID :
885 hsram->DmaXferErrorCallback = pCallback;
933 if (hsram->State == HAL_SRAM_STATE_PROTECTED)
939 hsram->State = HAL_SRAM_STATE_BUSY;
942 (void)FMC_NORSRAM_WriteOperation_Enable(hsram->Instance, hsram->Init.NSBank);
945 hsram->State = HAL_SRAM_STATE_READY;
967 if (hsram->State == HAL_SRAM_STATE_READY)
973 hsram->State = HAL_SRAM_STATE_BUSY;
976 (void)FMC_NORSRAM_WriteOperation_Disable(hsram->Instance, hsram->Init.NSBank);
979 hsram->State = HAL_SRAM_STATE_PROTECTED;
1017HAL_SRAM_StateTypeDef HAL_SRAM_GetState(
const SRAM_HandleTypeDef *hsram)
1019 return hsram->State;
1041 SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->
Parent);
1047 hsram->State = HAL_SRAM_STATE_READY;
1049#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
1050 hsram->DmaXferCpltCallback(hdma);
1052 HAL_SRAM_DMA_XferCpltCallback(hdma);
1063 SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->
Parent);
1069 hsram->State = HAL_SRAM_STATE_PROTECTED;
1071#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
1072 hsram->DmaXferCpltCallback(hdma);
1074 HAL_SRAM_DMA_XferCpltCallback(hdma);
1085 SRAM_HandleTypeDef *hsram = (SRAM_HandleTypeDef *)(hdma->
Parent);
1091 hsram->State = HAL_SRAM_STATE_ERROR;
1093#if (USE_HAL_SRAM_REGISTER_CALLBACKS == 1)
1094 hsram->DmaXferErrorCallback(hdma);
1096 HAL_SRAM_DMA_XferErrorCallback(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.
#define __HAL_DMA_DISABLE(__HANDLE__)
Disable the specified DMA Stream.
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef
HAL Status structures definition
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
DMA handle Structure definition.