62 #if defined(HAL_SRAM_MODULE_ENABLED) || defined(HAL_NOR_MODULE_ENABLED) || defined(HAL_PCCARD_MODULE_ENABLED) || defined(HAL_NAND_MODULE_ENABLED) 78 #if defined(FMC_BANK1) 81 #if defined(FMC_BCRx_NBLSET) 82 #if defined(FMC_BCR1_WFDIS) 83 #define BCR_CLEAR_MASK ((uint32_t)(FMC_BCRx_MBKEN | FMC_BCRx_MUXEN |\ 84 FMC_BCRx_MTYP | FMC_BCRx_MWID |\ 85 FMC_BCRx_FACCEN | FMC_BCRx_BURSTEN |\ 86 FMC_BCRx_WAITPOL | FMC_BCRx_WAITCFG |\ 87 FMC_BCRx_WREN | FMC_BCRx_WAITEN |\ 88 FMC_BCRx_EXTMOD | FMC_BCRx_ASYNCWAIT |\ 89 FMC_BCRx_CPSIZE | FMC_BCRx_CBURSTRW |\ 90 FMC_BCR1_CCLKEN | FMC_BCR1_WFDIS |\ 93 #define BCR_CLEAR_MASK ((uint32_t)(FMC_BCRx_MBKEN | FMC_BCRx_MUXEN |\ 94 FMC_BCRx_MTYP | FMC_BCRx_MWID |\ 95 FMC_BCRx_FACCEN | FMC_BCRx_BURSTEN |\ 96 FMC_BCRx_WAITPOL | FMC_BCRx_WAITCFG |\ 97 FMC_BCRx_WREN | FMC_BCRx_WAITEN |\ 98 FMC_BCRx_EXTMOD | FMC_BCRx_ASYNCWAIT |\ 99 FMC_BCRx_CPSIZE | FMC_BCRx_CBURSTRW |\ 100 FMC_BCR1_CCLKEN | FMC_BCRx_NBLSET)) 103 #if defined(FMC_BCR1_WFDIS) 104 #define BCR_CLEAR_MASK ((uint32_t)(FMC_BCRx_MBKEN | FMC_BCRx_MUXEN |\ 105 FMC_BCRx_MTYP | FMC_BCRx_MWID |\ 106 FMC_BCRx_FACCEN | FMC_BCRx_BURSTEN |\ 107 FMC_BCRx_WAITPOL | FMC_BCRx_WAITCFG |\ 108 FMC_BCRx_WREN | FMC_BCRx_WAITEN |\ 109 FMC_BCRx_EXTMOD | FMC_BCRx_ASYNCWAIT |\ 110 FMC_BCRx_CPSIZE | FMC_BCRx_CBURSTRW |\ 111 FMC_BCR1_CCLKEN | FMC_BCR1_WFDIS)) 113 #define BCR_CLEAR_MASK ((uint32_t)(FMC_BCRx_MBKEN | FMC_BCRx_MUXEN |\ 114 FMC_BCRx_MTYP | FMC_BCRx_MWID |\ 115 FMC_BCRx_FACCEN | FMC_BCRx_BURSTEN |\ 116 FMC_BCRx_WAITPOL | FMC_BCRx_WAITCFG |\ 117 FMC_BCRx_WREN | FMC_BCRx_WAITEN |\ 118 FMC_BCRx_EXTMOD | FMC_BCRx_ASYNCWAIT |\ 119 FMC_BCRx_CPSIZE | FMC_BCRx_CBURSTRW |\ 126 #if defined(FMC_BTRx_DATAHLD) 127 #define BTR_CLEAR_MASK ((uint32_t)(FMC_BTRx_ADDSET | FMC_BTRx_ADDHLD |\ 128 FMC_BTRx_DATAST | FMC_BTRx_BUSTURN |\ 129 FMC_BTRx_CLKDIV | FMC_BTRx_DATLAT |\ 130 FMC_BTRx_ACCMOD | FMC_BTRx_DATAHLD)) 132 #define BTR_CLEAR_MASK ((uint32_t)(FMC_BTRx_ADDSET | FMC_BTRx_ADDHLD |\ 133 FMC_BTRx_DATAST | FMC_BTRx_BUSTURN |\ 134 FMC_BTRx_CLKDIV | FMC_BTRx_DATLAT |\ 140 #if defined(FMC_BWTRx_DATAHLD) 141 #define BWTR_CLEAR_MASK ((uint32_t)(FMC_BWTRx_ADDSET | FMC_BWTRx_ADDHLD |\ 142 FMC_BWTRx_DATAST | FMC_BWTRx_BUSTURN |\ 143 FMC_BWTRx_ACCMOD | FMC_BWTRx_DATAHLD)) 145 #define BWTR_CLEAR_MASK ((uint32_t)(FMC_BWTRx_ADDSET | FMC_BWTRx_ADDHLD |\ 146 FMC_BWTRx_DATAST | FMC_BWTRx_BUSTURN |\ 150 #if defined(FMC_BANK3) 154 #define PCR_CLEAR_MASK ((uint32_t)(FMC_PCR_PWAITEN | FMC_PCR_PBKEN | \ 155 FMC_PCR_PTYP | FMC_PCR_PWID | \ 156 FMC_PCR_ECCEN | FMC_PCR_TCLR | \ 157 FMC_PCR_TAR | FMC_PCR_ECCPS)) 161 #define PMEM_CLEAR_MASK ((uint32_t)(FMC_PMEM_MEMSET | FMC_PMEM_MEMWAIT |\ 162 FMC_PMEM_MEMHOLD | FMC_PMEM_MEMHIZ)) 166 #define PATT_CLEAR_MASK ((uint32_t)(FMC_PATT_ATTSET | FMC_PATT_ATTWAIT |\ 167 FMC_PATT_ATTHOLD | FMC_PATT_ATTHIZ)) 184 #if defined(FMC_BANK1) 236 uint32_t flashaccess;
253 #if defined(FMC_BCR1_WFDIS) 257 #if defined(FMC_BCRx_NBLSET) 262 __FMC_NORSRAM_DISABLE(Device, Init->
NSBank);
267 flashaccess = FMC_NORSRAM_FLASH_ACCESS_ENABLE;
271 flashaccess = FMC_NORSRAM_FLASH_ACCESS_DISABLE;
287 #
if defined(FMC_BCR1_WFDIS)
290 #
if defined(FMC_BCRx_NBLSET)
296 if ((Init->
ContinuousClock == FMC_CONTINUOUS_CLOCK_SYNC_ASYNC) && (Init->
NSBank != FMC_NORSRAM_BANK1))
301 #if defined(FMC_BCR1_WFDIS) 302 if (Init->
NSBank != FMC_NORSRAM_BANK1)
305 SET_BIT(Device->BTCR[FMC_NORSRAM_BANK1], (uint32_t)(Init->
WriteFifo));
320 HAL_StatusTypeDef
FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
328 __FMC_NORSRAM_DISABLE(Device, Bank);
332 if (Bank == FMC_NORSRAM_BANK1)
334 Device->BTCR[Bank] = 0x000030DBU;
339 Device->BTCR[Bank] = 0x000030D2U;
342 Device->BTCR[Bank + 1] = 0x0FFFFFFFU;
343 ExDevice->BWTR[Bank] = 0x0FFFFFFFU;
365 #if defined(FMC_BTRx_DATAHLD) 379 #
if defined(FMC_BTRx_DATAHLD)
383 (((Timing->
CLKDivision) - 1) << FMC_BTRx_CLKDIV_Pos) |
384 (((Timing->
DataLatency) - 2) << FMC_BTRx_DATLAT_Pos) |
388 if (HAL_IS_BIT_SET(Device->BTCR[FMC_NORSRAM_BANK1], FMC_BCR1_CCLKEN))
390 tmpr = (uint32_t)(Device->BTCR[FMC_NORSRAM_BANK1 + 1] & ~(((uint32_t)0x0F) << FMC_BTRx_CLKDIV_Pos));
391 tmpr |= (uint32_t)(((Timing->
CLKDivision) - 1) << FMC_BTRx_CLKDIV_Pos);
392 MODIFY_REG(Device->BTCR[FMC_NORSRAM_BANK1 + 1], FMC_BTRx_CLKDIV, tmpr);
416 if (ExtendedMode == FMC_EXTENDED_MODE_ENABLE)
423 #if defined(FMC_BTRx_DATAHLD) 434 #
if defined(FMC_BTRx_DATAHLD)
442 Device->BWTR[Bank] = 0x0FFFFFFFU;
479 SET_BIT(Device->BTCR[Bank], FMC_WRITE_OPERATION_ENABLE);
497 CLEAR_BIT(Device->BTCR[Bank], FMC_WRITE_OPERATION_ENABLE);
511 #if defined(FMC_BANK3) 576 FMC_PCR_MEMORY_TYPE_NAND |
659 __FMC_NAND_DISABLE(Device);
663 WRITE_REG(Device->PCR, 0x00000018);
664 WRITE_REG(Device->SR, 0x00000040);
665 WRITE_REG(Device->PMEM, 0xFCFCFCFC);
666 WRITE_REG(Device->PATT, 0xFCFCFCFC);
706 SET_BIT(Device->PCR, FMC_PCR_ECCEN);
740 HAL_StatusTypeDef
FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
742 uint32_t tickstart = 0;
754 while (__FMC_NAND_GET_FLAG(Device, Bank, FMC_FLAG_FEMPT) == RESET)
757 if (Timeout != HAL_MAX_DELAY)
759 if ((Timeout == 0) || ((
HAL_GetTick() - tickstart) > Timeout))
767 *ECCval = (uint32_t)Device->ECCR;
HAL_StatusTypeDef FMC_NAND_ECC_Disable(FMC_NAND_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_NAND ECC feature.
HAL_StatusTypeDef FMC_NAND_Init(FMC_NAND_TypeDef *Device, FMC_NAND_InitTypeDef *Init)
Initializes the FMC_NAND device according to the specified control parameters in the FMC_NAND_HandleT...
HAL_StatusTypeDef FMC_NORSRAM_Timing_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank)
Initialize the FMC_NORSRAM Timing according to the specified parameters in the FMC_NORSRAM_TimingType...
HAL_StatusTypeDef FMC_NORSRAM_DeInit(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_EXTENDED_TypeDef *ExDevice, uint32_t Bank)
DeInitialize the FMC_NORSRAM peripheral.
HAL_StatusTypeDef FMC_NAND_GetECC(FMC_NAND_TypeDef *Device, uint32_t *ECCval, uint32_t Bank, uint32_t Timeout)
Disables dynamically FMC_NAND ECC feature.
This file contains all the functions prototypes for the HAL module driver.
FMC NAND Configuration Structure definition.
HAL_StatusTypeDef FMC_NORSRAM_Extended_Timing_Init(FMC_NORSRAM_EXTENDED_TypeDef *Device, FMC_NORSRAM_TimingTypeDef *Timing, uint32_t Bank, uint32_t ExtendedMode)
Initialize the FMC_NORSRAM Extended mode Timing according to the specified parameters in the FMC_NORS...
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
FMC NAND Timing parameters structure definition.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
uint32_t AddressSetupTime
FMC NORSRAM Configuration Structure definition.
HAL_StatusTypeDef FMC_NORSRAM_Init(FMC_NORSRAM_TypeDef *Device, FMC_NORSRAM_InitTypeDef *Init)
Initialize the FMC_NORSRAM device according to the specified control parameters in the FMC_NORSRAM_In...
HAL_StatusTypeDef FMC_NAND_CommonSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_NAND Common space Timing according to the specified parameters in the FMC_NAND_PC...
uint32_t WaitSignalPolarity
uint32_t WaitSignalActive
FMC NORSRAM Timing parameters structure definition.
uint32_t BusTurnAroundDuration
uint32_t AsynchronousWait
HAL_StatusTypeDef FMC_NAND_ECC_Enable(FMC_NAND_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_NAND ECC feature.
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Disable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
Disables dynamically FMC_NORSRAM write operation.
ADC handle Structure definition.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
HAL_StatusTypeDef FMC_NAND_DeInit(FMC_NAND_TypeDef *Device, uint32_t Bank)
DeInitializes the FMC_NAND device.
HAL_StatusTypeDef FMC_NORSRAM_WriteOperation_Enable(FMC_NORSRAM_TypeDef *Device, uint32_t Bank)
Enables dynamically FMC_NORSRAM write operation.
HAL_StatusTypeDef FMC_NAND_AttributeSpace_Timing_Init(FMC_NAND_TypeDef *Device, FMC_NAND_PCC_TimingTypeDef *Timing, uint32_t Bank)
Initializes the FMC_NAND Attribute space Timing according to the specified parameters in the FMC_NAND...
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))