Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches
z_qflash_W25QXXX.c File Reference
#include "main.h"
#include "z_qflash_W25QXXX.h"
Include dependency graph for z_qflash_W25QXXX.c:

Go to the source code of this file.

Functions

uint8_t QFlash_IsQSPIAvailable ()
 
HAL_StatusTypeDef QFlash_WaitForQSPIAvailable (uint32_t timeout)
 
uint8_t QFlash_IsDataAvailable ()
 
HAL_StatusTypeDef QFlash_WaitForDataAvailable (uint32_t timeout)
 
void QFlash_DefaultCmd (QSPI_CommandTypeDef *sCommand)
 
HAL_StatusTypeDef QFlash_Reset ()
 
HAL_StatusTypeDef QFlash_ReadJedecID (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_ReadSFDP (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_Init ()
 
HAL_StatusTypeDef QFlash_Read (uint32_t address, uint8_t *buffer, uint32_t dataSize)
 
HAL_StatusTypeDef QFlash_WriteEnable ()
 enables writes
 
HAL_StatusTypeDef QFlash_WriteDisable ()
 disables writes
 
HAL_StatusTypeDef QFlash_ReadSR1 (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_ReadSR2 (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_ReadSR3 (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_WriteSR2 (uint8_t data)
 writes to register 2
 
HAL_StatusTypeDef QFlash_WriteSR3 (uint8_t data)
 writes to register 3
 
HAL_StatusTypeDef QFlash_CheckSR1 ()
 
HAL_StatusTypeDef QFlash_WaitForWritingComplete ()
 
HAL_StatusTypeDef QFlash_WriteASinglePage (uint32_t addr, uint8_t *dataptr, uint32_t dataSize)
 
HAL_StatusTypeDef QFlash_Write (uint32_t addr, uint8_t *data, uint32_t dataSize)
 
HAL_StatusTypeDef QFlash_SErase4k (uint32_t addr)
 
HAL_StatusTypeDef QFlash_BErase32k (uint32_t addr)
 
HAL_StatusTypeDef QFlash_BErase64k (uint32_t addr)
 
HAL_StatusTypeDef QFlash_ChipErase ()
 
HAL_StatusTypeDef QFlash_PowerDown ()
 
HAL_StatusTypeDef QFlash_PowerUp ()
 
HAL_StatusTypeDef QFlash_ReadDevID (uint8_t *dataptr)
 
HAL_StatusTypeDef QFlash_ReadManufactutrerAndDevID (uint16_t *dataptr)
 read id of the winbond
 
void DataReader_WaitForReceiveDone ()
 
void DataReader_ReadData (uint32_t address24, uint8_t *buffer, uint32_t length)
 
void DataReader_StartDMAReadData (uint32_t address24, uint8_t *buffer, uint32_t length)
 
void HAL_QSPI_CmdCpltCallback (QSPI_HandleTypeDef *l_hqspi)
 
void HAL_QSPI_RxCpltCallback (QSPI_HandleTypeDef *l_hqspi)
 
void HAL_QSPI_TxCpltCallback (QSPI_HandleTypeDef *l_hqspi)
 
void HAL_QSPI_ErrorCallback (QSPI_HandleTypeDef *l_hqspi)
 

Variables

QSPI_HandleTypeDef FLASH_QSPI_PORT
 
static volatile uint8_t QSpiAvailable =1
 
static volatile uint8_t QSpiReadDataAvailable =1
 

Function Documentation

◆ QFlash_WriteASinglePage()

HAL_StatusTypeDef QFlash_WriteASinglePage ( uint32_t  addr,
uint8_t *  dataptr,
uint32_t  dataSize 
)

Definition at line 827 of file z_qflash_W25QXXX.c.

827 {
828 QSPI_CommandTypeDef sCommand = {0};
829
830 QFlash_DefaultCmd(&sCommand);
831 if (!dataSize)
832 return HAL_OK;
833
834 sCommand.Instruction = QFLASH_WRITE_COMMAND;
835 sCommand.AddressMode = QSPI_ADDRESS_1_LINE; //TODO EVENTUALMENTE RICOMMENTA
836 sCommand.DataMode = QFLASH_WDATA_MODE;
837 sCommand.NbData = dataSize;
838 sCommand.Address = addr;
839
840#ifdef EXT_FLASH_QSPI_DMA_MODE
841 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
842 QSpiAvailable=0; //set QSPI busy
843 QSpiReadDataAvailable=0; //set data read unavailable yet
844 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
845 return HAL_ERROR;
846 }
847 if (HAL_QSPI_Transmit_DMA(&FLASH_QSPI_PORT, dataptr) != HAL_OK) { // Receive data
848 return HAL_ERROR;
849 }
850#else
851 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
852 return HAL_ERROR;
853 }
854 if (HAL_QSPI_Transmit(&FLASH_QSPI_PORT, dataptr, QFLASH_DEF_TIMEOUT) != HAL_OK) { // Receive data
855 return HAL_ERROR;
856 }
857#endif //EXT_FLASH_QSPI_DMA_MODE
858 return HAL_OK;
859}
#define QFLASH_DEF_TIMEOUT
#define QFLASH_WRITE_COMMAND
#define QFLASH_WDATA_MODE
void QFlash_DefaultCmd(QSPI_CommandTypeDef *sCommand)
static volatile uint8_t QSpiAvailable
static volatile uint8_t QSpiReadDataAvailable
QSPI_HandleTypeDef FLASH_QSPI_PORT
@ HAL_ERROR
@ HAL_OK

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFLASH_WDATA_MODE, QFLASH_WRITE_COMMAND, QSpiAvailable, and QSpiReadDataAvailable.

Referenced by QFlash_Write().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ FLASH_QSPI_PORT

◆ QSpiAvailable

◆ QSpiReadDataAvailable