Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches
Status and Control Functions

Functions for controlling chip state (reset, write enable) and reading status registers. More...

Collaboration diagram for Status and Control Functions:

Functions

HAL_StatusTypeDef QFlash_Reset (void)
 
HAL_StatusTypeDef QFlash_WriteEnable (void)
 enables writes
 
HAL_StatusTypeDef QFlash_WriteDisable (void)
 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 (void)
 
HAL_StatusTypeDef QFlash_WaitForWritingComplete (void)
 
HAL_StatusTypeDef QFlash_PowerDown (void)
 
HAL_StatusTypeDef QFlash_PowerUp (void)
 

Detailed Description

Functions for controlling chip state (reset, write enable) and reading status registers.

Function Documentation

◆ QFlash_CheckSR1()

HAL_StatusTypeDef QFlash_CheckSR1 ( void  )

Definition at line 724 of file z_qflash_W25QXXX.c.

724 {
725 HAL_StatusTypeDef result = HAL_OK;
726 uint8_t sr;
727
728 QFlash_ReadSR1(&sr);
729
730//bitwise test of the SR1 content
731 if (!((sr & 1)==0)) { //why flash is busy? It shouldn't
732 result=HAL_ERROR;
733 } else if (!((sr & 2)==0)) { //if write_enabled, disable it
735 HAL_Delay(1);
736 QFlash_ReadSR1(&sr);
737 if (!((sr & 2)==0)){ //why flash is still writeable? It shouldn't
738 result=HAL_ERROR;
739 }
740 }
741 return result;
742}
HAL_StatusTypeDef QFlash_ReadSR1(uint8_t *dataptr)
HAL_StatusTypeDef QFlash_WriteDisable()
disables writes
HAL_StatusTypeDef
HAL Status structures definition.
@ HAL_ERROR
@ HAL_OK

References HAL_ERROR, HAL_OK, QFlash_ReadSR1(), and QFlash_WriteDisable().

Here is the call graph for this function:

◆ QFlash_PowerDown()

HAL_StatusTypeDef QFlash_PowerDown ( void  )

Definition at line 1081 of file z_qflash_W25QXXX.c.

1081 {
1082 QSPI_CommandTypeDef sCommand = {0};
1083
1084 QFlash_DefaultCmd(&sCommand);
1086 return HAL_ERROR;
1087 sCommand.Instruction = W25_POWERDOWN;
1088 sCommand.DataMode = QSPI_DATA_NONE;
1089 sCommand.AddressMode = QSPI_ADDRESS_NONE;
1090
1091#ifdef EXT_FLASH_QSPI_DMA_MODE
1092 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
1093#endif //EXT_FLASH_QSPI_DMA_MODE
1094
1095 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
1096 return HAL_ERROR;
1097 }
1098
1099 return HAL_OK;
1100}
HAL_StatusTypeDef QFlash_WaitForWritingComplete()
#define QFLASH_DEF_TIMEOUT
#define W25_POWERDOWN
void QFlash_DefaultCmd(QSPI_CommandTypeDef *sCommand)
static volatile uint8_t QSpiAvailable
QSPI_HandleTypeDef FLASH_QSPI_PORT

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForWritingComplete(), QSpiAvailable, and W25_POWERDOWN.

Here is the call graph for this function:

◆ QFlash_PowerUp()

HAL_StatusTypeDef QFlash_PowerUp ( void  )

Definition at line 1112 of file z_qflash_W25QXXX.c.

1112 {
1113 QSPI_CommandTypeDef sCommand = {0};
1114
1115 QFlash_DefaultCmd(&sCommand);
1117 return HAL_ERROR;
1118 sCommand.Instruction = W25_POWERUP_ID;
1119 sCommand.DataMode = QSPI_DATA_NONE;
1120 sCommand.AddressMode = QSPI_ADDRESS_NONE;
1121
1122#ifdef EXT_FLASH_QSPI_DMA_MODE
1123 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
1124#endif //EXT_FLASH_QSPI_DMA_MODE
1125
1126 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
1127 return HAL_ERROR;
1128 }
1129
1130 return HAL_OK;
1131}
#define W25_POWERUP_ID

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForWritingComplete(), QSpiAvailable, and W25_POWERUP_ID.

Here is the call graph for this function:

◆ QFlash_ReadSR1()

HAL_StatusTypeDef QFlash_ReadSR1 ( uint8_t *  dataptr)

Definition at line 502 of file z_qflash_W25QXXX.c.

502 {
503QSPI_CommandTypeDef sCommand = {0};
504
505 QFlash_DefaultCmd(&sCommand);
506 sCommand.Instruction = W25_R_SR1;
507 sCommand.DataMode = QSPI_DATA_1_LINE;
508 sCommand.AddressMode = QSPI_ADDRESS_NONE;
509 sCommand.AddressSize = QSPI_ADDRESS_NONE;
510 sCommand.Address = 0x0;
511 sCommand.NbData = 1;
512
513#ifdef EXT_FLASH_QSPI_DMA_MODE
514 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
515 QSpiAvailable=0; //set QSPI busy
516 QSpiReadDataAvailable=0; //set data read unavailable yet
517 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
518 return HAL_ERROR;
519 }
520 if (HAL_QSPI_Receive_DMA(&FLASH_QSPI_PORT, dataptr) != HAL_OK) { // Receive data
521 return HAL_ERROR;
522 }
524#else
525 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
526 return HAL_ERROR;
527 }
528 if (HAL_QSPI_Receive(&FLASH_QSPI_PORT, dataptr, QFLASH_DEF_TIMEOUT) != HAL_OK) { // Receive data
529 return HAL_ERROR;
530 }
531#endif //EXT_FLASH_QSPI_DMA_MODE
532
533 return HAL_OK;
534}
#define W25_R_SR1
HAL_StatusTypeDef QFlash_WaitForDataAvailable(uint32_t timeout)
static volatile uint8_t QSpiReadDataAvailable

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForDataAvailable(), QSpiAvailable, QSpiReadDataAvailable, and W25_R_SR1.

Referenced by QFlash_CheckSR1().

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

◆ QFlash_ReadSR2()

HAL_StatusTypeDef QFlash_ReadSR2 ( uint8_t *  dataptr)

Definition at line 545 of file z_qflash_W25QXXX.c.

545 {
546
547QSPI_CommandTypeDef sCommand = {0};
548
549 QFlash_DefaultCmd(&sCommand);
550 sCommand.Instruction = W25_R_SR2;
551 sCommand.DataMode = QSPI_DATA_1_LINE;
552 sCommand.AddressMode = QSPI_ADDRESS_NONE;
553 sCommand.AddressSize = QSPI_ADDRESS_NONE;
554 sCommand.Address = 0x0;
555 sCommand.NbData = 1;
556
557#ifdef EXT_FLASH_QSPI_DMA_MODE
558 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
559 QSpiAvailable=0; //set QSPI busy
560 QSpiReadDataAvailable=0; //set data read unavailable yet
561 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
562 return HAL_ERROR;
563 }
564 if (HAL_QSPI_Receive_DMA(&FLASH_QSPI_PORT, dataptr) != HAL_OK) { // Receive data
565 return HAL_ERROR;
566 }
568#else
569 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
570 return HAL_ERROR;
571 }
572 if (HAL_QSPI_Receive(&FLASH_QSPI_PORT, dataptr, QFLASH_DEF_TIMEOUT) != HAL_OK) { // Receive data
573 return HAL_ERROR;
574 }
575#endif //EXT_FLASH_QSPI_DMA_MODE
576
577 return HAL_OK;
578}
#define W25_R_SR2

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForDataAvailable(), QSpiAvailable, QSpiReadDataAvailable, and W25_R_SR2.

Here is the call graph for this function:

◆ QFlash_ReadSR3()

HAL_StatusTypeDef QFlash_ReadSR3 ( uint8_t *  dataptr)

Definition at line 589 of file z_qflash_W25QXXX.c.

589 {
590QSPI_CommandTypeDef sCommand = {0};
591
592 QFlash_DefaultCmd(&sCommand);
593 sCommand.Instruction = W25_R_SR3;
594 sCommand.DataMode = QSPI_DATA_1_LINE;
595 sCommand.AddressMode = QSPI_ADDRESS_NONE;
596 sCommand.AddressSize = QSPI_ADDRESS_NONE;
597 sCommand.Address = 0x0;
598 sCommand.NbData = 1;
599
600#ifdef EXT_FLASH_QSPI_DMA_MODE
601 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
602 QSpiAvailable=0; //set QSPI busy
603 QSpiReadDataAvailable=0; //set data read unavailable yet
604 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
605 return HAL_ERROR;
606 }
607 if (HAL_QSPI_Receive_DMA(&FLASH_QSPI_PORT, dataptr) != HAL_OK) { // Receive data
608 return HAL_ERROR;
609 }
611#else
612 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
613 return HAL_ERROR;
614 }
615 if (HAL_QSPI_Receive(&FLASH_QSPI_PORT, dataptr, QFLASH_DEF_TIMEOUT) != HAL_OK) { // Receive data
616 return HAL_ERROR;
617 }
618#endif //EXT_FLASH_QSPI_DMA_MODE
619
620 return HAL_OK;
621}
#define W25_R_SR3

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForDataAvailable(), QSpiAvailable, QSpiReadDataAvailable, and W25_R_SR3.

Here is the call graph for this function:

◆ QFlash_Reset()

HAL_StatusTypeDef QFlash_Reset ( void  )

Definition at line 129 of file z_qflash_W25QXXX.c.

129 {
130 QSPI_CommandTypeDef sCommand = {0};
131
132 // send a "reset enable" command
133 QFlash_DefaultCmd(&sCommand);
134 sCommand.Instruction = W25_RESET_EN;
135 sCommand.AddressMode = QSPI_ADDRESS_NONE;
136 sCommand.DataMode = QSPI_DATA_NONE;
137
138#ifdef EXT_FLASH_QSPI_DMA_MODE
139 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
140#endif //EXT_FLASH_QSPI_DMA_MODE
141
142 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
143 return HAL_ERROR;
144 }
145 HAL_Delay(1); // 30us needed by resetting
146
147 // send a "reset" command
148 QFlash_DefaultCmd(&sCommand);
149 sCommand.Instruction = W25_RESET;
150 sCommand.AddressMode = QSPI_ADDRESS_NONE;
151 sCommand.DataMode = QSPI_DATA_NONE;
152
153#ifdef EXT_FLASH_QSPI_DMA_MODE
154 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
155#endif //EXT_FLASH_QSPI_DMA_MODE
156
157 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
158 return HAL_ERROR;
159 }
160 HAL_Delay(1); // 30us needed by resetting
161 return HAL_OK;
162
163}
#define W25_RESET_EN
#define W25_RESET

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QSpiAvailable, W25_RESET, and W25_RESET_EN.

Referenced by QFlash_Init().

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

◆ QFlash_WaitForWritingComplete()

HAL_StatusTypeDef QFlash_WaitForWritingComplete ( void  )

Definition at line 762 of file z_qflash_W25QXXX.c.

762 {
763 QSPI_CommandTypeDef sCommand = {0};
764
765
766/* using HAL_QSPI_AutoPolling()*/
767
768QSPI_AutoPollingTypeDef sConfig;
769
770QFlash_DefaultCmd(&sCommand);
771 sCommand.Instruction = W25_R_SR1;
772 sCommand.AddressMode = QSPI_ADDRESS_NONE;
773 sCommand.DataMode = QSPI_DATA_1_LINE;
774
775 sConfig.Mask = SR1_BIT_BSY;
776 sConfig.Match = 0;
777 sConfig.MatchMode = QSPI_MATCH_MODE_AND;
778 sConfig.StatusBytesSize = 1;
779 sConfig.Interval = 0x10;
780 sConfig.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
781
782#ifdef EXT_FLASH_QSPI_DMA_MODE
783 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
784#endif //EXT_FLASH_QSPI_DMA_MODE
785
786 if (HAL_QSPI_AutoPolling(&FLASH_QSPI_PORT, &sCommand, &sConfig, QFLASH_BSY_TIMEOUT) != HAL_OK) {
787 return HAL_ERROR;
788 }
789
790/* alternative implementation "SPI style"
791 * looping, directly reading Status Register 1
792 * until Busy flag resets
793 * (k just count loops)
794 */
795/*
796 uint8_t sr;
797 uint32_t k=0;
798 do {
799 sr=QFlash_ReadSR1();
800 sr=(sr & 1);
801 k+=1;
802 } while (sr);
803
804*/
805
806 return HAL_OK;
807
808}
#define SR1_BIT_BSY
#define QFLASH_BSY_TIMEOUT

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_BSY_TIMEOUT, QFlash_DefaultCmd(), QSpiAvailable, SR1_BIT_BSY, and W25_R_SR1.

Referenced by QFlash_BErase32k(), QFlash_BErase64k(), QFlash_ChipErase(), QFlash_PowerDown(), QFlash_PowerUp(), QFlash_SErase4k(), QFlash_Write(), QFlash_WriteSR2(), and QFlash_WriteSR3().

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

◆ QFlash_WriteDisable()

HAL_StatusTypeDef QFlash_WriteDisable ( void  )

disables writes

Definition at line 475 of file z_qflash_W25QXXX.c.

475 {
476 QSPI_CommandTypeDef sCommand = {0};
477
478 QFlash_DefaultCmd(&sCommand);
479 sCommand.Instruction = W25_W_DISABLE;
480 sCommand.DataMode = QSPI_DATA_NONE;
481 sCommand.AddressMode = QSPI_ADDRESS_NONE;
482
483#ifdef EXT_FLASH_QSPI_DMA_MODE
484 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
485#endif //EXT_FLASH_QSPI_DMA_MODE
486 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
487 return HAL_ERROR;
488 }
489
490 return HAL_OK;
491}
#define W25_W_DISABLE

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QSpiAvailable, and W25_W_DISABLE.

Referenced by QFlash_CheckSR1().

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

◆ QFlash_WriteEnable()

HAL_StatusTypeDef QFlash_WriteEnable ( void  )

enables writes

Definition at line 425 of file z_qflash_W25QXXX.c.

425 {
426QSPI_CommandTypeDef sCommand = {0};
427
428
429//Send a "Write Enable" command
430 QFlash_DefaultCmd(&sCommand);
431 sCommand.Instruction = W25_W_ENABLE;
432 sCommand.DataMode = QSPI_DATA_NONE;
433 sCommand.AddressMode = QSPI_ADDRESS_NONE;
434
435#ifdef EXT_FLASH_QSPI_DMA_MODE
436 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
437#endif //EXT_FLASH_QSPI_DMA_MODE
438 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
439 return HAL_ERROR;
440 }
441
442/*
443//Wait for Write Enable bit set
444
445 QSPI_AutoPollingTypeDef sConfig;
446
447 QFlash_DefaultCmd(&sCommand);
448 sCommand.Instruction = W25_R_SR1;
449 sCommand.DataMode = QSPI_DATA_1_LINE;
450 sCommand.AddressMode = QSPI_ADDRESS_NONE;
451
452 sConfig.Mask = SR1_BIT_WEL;
453 sConfig.Match = 2;
454 sConfig.MatchMode = QSPI_MATCH_MODE_AND;
455 sConfig.StatusBytesSize = 1;
456 sConfig.Interval = 0x10;
457 sConfig.AutomaticStop = QSPI_AUTOMATIC_STOP_ENABLE;
458
459 if (HAL_QSPI_AutoPolling(&FLASH_QSPI_PORT, &sCommand, &sConfig, QFLASH_BSY_TIMEOUT) != HAL_OK) {
460 return HAL_ERROR;
461 }
462*/
463
464 return HAL_OK;
465
466}
#define W25_W_ENABLE

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QSpiAvailable, and W25_W_ENABLE.

Referenced by QFlash_BErase32k(), QFlash_BErase64k(), QFlash_ChipErase(), QFlash_SErase4k(), QFlash_Write(), QFlash_WriteSR2(), and QFlash_WriteSR3().

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

◆ QFlash_WriteSR2()

HAL_StatusTypeDef QFlash_WriteSR2 ( uint8_t  data)

writes to register 2

Definition at line 631 of file z_qflash_W25QXXX.c.

631 {
632 QSPI_CommandTypeDef sCommand = {0};
633
634 if (QFlash_WriteEnable())
635 return HAL_ERROR;
636
637 QFlash_DefaultCmd(&sCommand);
638 sCommand.Instruction = W25_W_SR2;
639 sCommand.DataMode = QSPI_DATA_1_LINE;
640 sCommand.AddressMode = QSPI_ADDRESS_NONE;
641 sCommand.AddressSize = QSPI_ADDRESS_NONE;
642 sCommand.Address = 0x0;
643 sCommand.NbData = 1;
644
645#ifdef EXT_FLASH_QSPI_DMA_MODE
646 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
647 QSpiAvailable=0; //set QSPI busy
648 QSpiReadDataAvailable=0; //set data read unavailable yet
649 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
650 return HAL_ERROR;
651 }
652 if (HAL_QSPI_Transmit_DMA(&FLASH_QSPI_PORT, &data) != HAL_OK) { // Receive data
653 return HAL_ERROR;
654 }
655#else
656 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
657 return HAL_ERROR;
658 }
659 if (HAL_QSPI_Transmit(&FLASH_QSPI_PORT, &data, QFLASH_DEF_TIMEOUT) != HAL_OK) {
660 return HAL_ERROR;
661 }
662#endif //EXT_FLASH_QSPI_DMA_MODE
663
665
666 return HAL_OK;
667}
#define W25_W_SR2
HAL_StatusTypeDef QFlash_WriteEnable()
enables writes

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForWritingComplete(), QFlash_WriteEnable(), QSpiAvailable, QSpiReadDataAvailable, and W25_W_SR2.

Here is the call graph for this function:

◆ QFlash_WriteSR3()

HAL_StatusTypeDef QFlash_WriteSR3 ( uint8_t  data)

writes to register 3

Definition at line 676 of file z_qflash_W25QXXX.c.

676 {
677 QSPI_CommandTypeDef sCommand = {0};
678
679 if (QFlash_WriteEnable())
680 return HAL_ERROR;
681
682 QFlash_DefaultCmd(&sCommand);
683 sCommand.Instruction = W25_W_SR3;
684 sCommand.DataMode = QSPI_DATA_1_LINE;
685 sCommand.AddressMode = QSPI_ADDRESS_NONE;
686 sCommand.AddressSize = QSPI_ADDRESS_NONE;
687 sCommand.Address = 0x0;
688 sCommand.NbData = 1;
689
690#ifdef EXT_FLASH_QSPI_QDMA_MODE
691 while (!QSpiAvailable) {}; // waiting for a free QSPI port.
692 QSpiAvailable=0; //set QSPI busy
693 QSpiReadDataAvailable=0; //set data read unavailable yet
694 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
695 return HAL_ERROR;
696 }
697 if (HAL_QSPI_Transmit_DMA(&FLASH_QSPI_PORT, &data) != HAL_OK) { // Receive data
698 return HAL_ERROR;
699 }
700#else
701 if (HAL_QSPI_Command(&FLASH_QSPI_PORT, &sCommand, QFLASH_DEF_TIMEOUT) != HAL_OK) { //Send command
702 return HAL_ERROR;
703 }
704 if (HAL_QSPI_Transmit(&FLASH_QSPI_PORT, &data, QFLASH_DEF_TIMEOUT) != HAL_OK) { // Receive data
705 return HAL_ERROR;
706 }
707#endif //EXT_FLASH_QSPI_DMA_MODE
708
710
711 return HAL_OK;
712}
#define W25_W_SR3

References FLASH_QSPI_PORT, HAL_ERROR, HAL_OK, QFLASH_DEF_TIMEOUT, QFlash_DefaultCmd(), QFlash_WaitForWritingComplete(), QFlash_WriteEnable(), QSpiAvailable, QSpiReadDataAvailable, and W25_W_SR3.

Here is the call graph for this function: