108 static uint8_t QSPI_AutoPollingMemReady (
QSPI_HandleTypeDef *hqspi, uint32_t Timeout);
152 if (QSPI_ResetMemory(&QSPIHandle) !=
QSPI_OK)
158 if( QSPI_EnterMemory_QPI( &QSPIHandle )!=
QSPI_OK )
164 if (QSPI_EnterFourBytesAddress(&QSPIHandle) !=
QSPI_OK)
170 if (QSPI_DummyCyclesCfg(&QSPIHandle) !=
QSPI_OK)
176 if( QSPI_OutDrvStrengthCfg( &QSPIHandle ) !=
QSPI_OK )
193 if( QSPI_ExitMemory_QPI(&QSPIHandle )!=
QSPI_OK )
260 uint32_t end_addr, current_size, current_addr;
265 while (current_addr <= WriteAddr)
269 current_size = current_addr - WriteAddr;
272 if (current_size > Size)
278 current_addr = WriteAddr;
279 end_addr = WriteAddr + Size;
296 s_command.
Address = current_addr;
297 s_command.
NbData = current_size;
300 if (QSPI_WriteEnable(&QSPIHandle) !=
QSPI_OK)
324 current_addr += current_size;
325 pData += current_size;
327 }
while (current_addr < end_addr);
346 s_command.
Address = BlockAddress;
355 if (QSPI_WriteEnable(&QSPIHandle) !=
QSPI_OK)
395 if (QSPI_WriteEnable(&QSPIHandle) !=
QSPI_OK)
790 if (QSPI_WriteEnable(hqspi) !=
QSPI_OK)
869 if (QSPI_WriteEnable(hqspi) !=
QSPI_OK)
1044 if (QSPI_WriteEnable(&QSPIHandle) !=
QSPI_OK)
QSPI Handle Structure definition.
#define QSPI_NOT_SUPPORTED
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define MX25L512_DUMMY_CYCLES_READ_QUAD_IO
#define QSPI_ALTERNATE_BYTES_NONE
#define QSPI_CS_GPIO_CLK_ENABLE()
uint8_t BSP_QSPI_GetStatus(void)
Reads current status of the QSPI memory.
#define RESET_ENABLE_CMD
MX25L512 Commands.
#define GPIO_SPEED_FREQ_HIGH
#define QSPI_CLK_DISABLE()
#define MX25L512_SUBSECTOR_ERASE_MAX_TIME
void HAL_Delay(__IO uint32_t Delay)
This function provides accurate delay (in milliseconds) based on variable incremented.
#define QSPI_D0_GPIO_CLK_ENABLE()
#define MX25L512_FLASH_SIZE
MX25L512 Configuration.
#define QSPI_SIOO_INST_EVERY_CMD
#define QSPI_ADDRESS_NONE
void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
#define QSPI_D1_GPIO_PORT
uint8_t BSP_QSPI_EnableMemoryMappedMode(void)
Configure the QSPI in memory-mapped mode.
#define MX25L512_SUBSECTOR_SIZE
#define MX25L512_SR_QUADEN
QSPI Command structure definition.
#define QSPI_MATCH_MODE_AND
HAL_StatusTypeDef HAL_QSPI_DeInit(QSPI_HandleTypeDef *hqspi)
#define QSPI_DATA_4_LINES
This file contains the common defines and functions prototypes for the stm32f769i_discovery_qspi.c driver.
uint32_t DdrHoldHalfCycle
#define POSITION_VAL(VAL)
HAL_StatusTypeDef HAL_QSPI_Transmit(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout)
#define QSPI_RELEASE_RESET()
#define QSPI_D1_GPIO_CLK_ENABLE()
#define QSPI_TIMEOUT_COUNTER_DISABLE
#define MX25L512_SR_WIP
MX25L512 Registers.
HAL_StatusTypeDef HAL_QSPI_AutoPolling(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_AutoPollingTypeDef *cfg, uint32_t Timeout)
QSPI Memory Mapped mode configuration structure definition.
#define QSPI_CLK_GPIO_PORT
#define QPI_PAGE_PROG_4_BYTE_ADDR_CMD
#define WRITE_STATUS_CFG_REG_CMD
#define QSPI_DDR_MODE_DISABLE
uint8_t BSP_QSPI_GetInfo(QSPI_Info *pInfo)
Return the configuration of the QSPI memory.
#define MX25L512_BULK_ERASE_MAX_TIME
QSPI Auto Polling mode configuration structure definition.
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
#define QSPI_AUTOMATIC_STOP_ENABLE
QUADSPI_TypeDef * Instance
#define READ_STATUS_REG_CMD
#define QSPI_CS_GPIO_PORT
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
#define QSPI_D3_GPIO_PORT
#define QSPI_CLK_GPIO_CLK_ENABLE()
#define QSPI_INSTRUCTION_1_LINE
#define MX25L512_DUMMY_CYCLES_READ_QUAD
#define QSPI_D0_GPIO_PORT
GPIO Init structure definition.
#define QSPI_DUALFLASH_DISABLE
uint8_t BSP_QSPI_Erase_Chip(void)
Erases the entire QSPI memory.
uint8_t BSP_QSPI_Read(uint8_t *pData, uint32_t ReadAddr, uint32_t Size)
Reads an amount of data from the QSPI memory.
#define SUBSECTOR_ERASE_4_BYTE_ADDR_CMD
#define QSPI_SAMPLE_SHIFTING_HALFCYCLE
#define MX25L512_CR_ODS_15
#define MX25L512_CR_NB_DUMMY
QSPI_HandleTypeDef QSPIHandle
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
uint8_t BSP_QSPI_Erase_Block(uint32_t BlockAddress)
Erases the specified block of the QSPI memory.
#define QSPI_FORCE_RESET()
#define HAL_QPSI_TIMEOUT_DEFAULT_VALUE
HAL_StatusTypeDef HAL_QSPI_MemoryMapped(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, QSPI_MemoryMappedTypeDef *cfg)
uint8_t BSP_QSPI_Init(void)
Initializes the QSPI interface.
uint8_t BSP_QSPI_DeInit(void)
De-Initializes the QSPI interface.
__weak void BSP_QSPI_MspDeInit(QSPI_HandleTypeDef *hqspi, void *Params)
QSPI MSP De-Initialization This function frees the hardware resources used in this example: ...
#define MX25L512_PAGE_SIZE
#define QSPI_INSTRUCTION_4_LINES
#define QPI_READ_4_BYTE_ADDR_CMD
#define QSPI_CS_HIGH_TIME_1_CYCLE
uint8_t BSP_QSPI_Write(uint8_t *pData, uint32_t WriteAddr, uint32_t Size)
Writes an amount of data to the QSPI memory.
__weak void BSP_QSPI_MspInit(QSPI_HandleTypeDef *hqspi, void *Params)
QSPI MSP Initialization This function configures the hardware resources used in this example: ...
#define QSPI_D2_GPIO_PORT
HAL_StatusTypeDef HAL_QSPI_Init(QSPI_HandleTypeDef *hqspi)
#define QSPI_DDR_HHC_ANALOG_DELAY
uint32_t EraseSectorsNumber
uint32_t ChipSelectHighTime
#define QSPI_ADDRESS_4_LINES
#define ENTER_4_BYTE_ADDR_MODE_CMD
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
#define QSPI_D2_GPIO_CLK_ENABLE()
HAL_StatusTypeDef HAL_QSPI_Command(QSPI_HandleTypeDef *hqspi, QSPI_CommandTypeDef *cmd, uint32_t Timeout)
#define QSPI_ADDRESS_32_BITS
#define QSPI_D3_GPIO_CLK_ENABLE()
uint32_t AlternateByteMode
#define QSPI_CLK_ENABLE()
uint32_t TimeOutActivation
#define QSPI_CLOCK_MODE_0
HAL_StatusTypeDef HAL_QSPI_Receive(QSPI_HandleTypeDef *hqspi, uint8_t *pData, uint32_t Timeout)