fixes a race condition when reading qspi data register
This commit is contained in:
parent
b9e5f33cb6
commit
5353d7d258
@ -66,9 +66,11 @@ static inline uint8_t spi_read(volatile qspi_t *qspi) {
|
|||||||
qspi->DATA = SPI_CMD_READ;
|
qspi->DATA = SPI_CMD_READ;
|
||||||
while (spi_rsp_occupied(qspi) == 0)
|
while (spi_rsp_occupied(qspi) == 0)
|
||||||
;
|
;
|
||||||
while ((qspi->DATA & 0x80000000) == 0)
|
int32_t data;
|
||||||
;
|
do {
|
||||||
return qspi->DATA;
|
data = qspi->DATA ;
|
||||||
|
} while (data<0);
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void spi_select(volatile qspi_t *qspi, uint32_t slaveId) {
|
static inline void spi_select(volatile qspi_t *qspi, uint32_t slaveId) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user