Skip to content

Commit a87c2ef

Browse files
authored
Merge pull request #3234 from fmkong/spi_flash_sfud
[drivers/spi_flash_sfud] accept the error from spi read or write in spi_write_read function.
2 parents c73c349 + 7e9d54d commit a87c2ef

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

components/drivers/spi/spi_flash_sfud.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,11 @@ static sfud_err spi_write_read(const sfud_spi *spi, const uint8_t *write_buf, si
156156
if(rtt_dev->rt_spi_device->bus->mode & RT_SPI_BUS_MODE_QSPI) {
157157
qspi_dev = (struct rt_qspi_device *) (rtt_dev->rt_spi_device);
158158
if (write_size && read_size) {
159-
if (rt_qspi_send_then_recv(qspi_dev, write_buf, write_size, read_buf, read_size) == 0) {
159+
if (rt_qspi_send_then_recv(qspi_dev, write_buf, write_size, read_buf, read_size) <= 0) {
160160
result = SFUD_ERR_TIMEOUT;
161161
}
162162
} else if (write_size) {
163-
if (rt_qspi_send(qspi_dev, write_buf, write_size) == 0) {
163+
if (rt_qspi_send(qspi_dev, write_buf, write_size) <= 0) {
164164
result = SFUD_ERR_TIMEOUT;
165165
}
166166
}
@@ -173,11 +173,11 @@ static sfud_err spi_write_read(const sfud_spi *spi, const uint8_t *write_buf, si
173173
result = SFUD_ERR_TIMEOUT;
174174
}
175175
} else if (write_size) {
176-
if (rt_spi_send(rtt_dev->rt_spi_device, write_buf, write_size) == 0) {
176+
if (rt_spi_send(rtt_dev->rt_spi_device, write_buf, write_size) <= 0) {
177177
result = SFUD_ERR_TIMEOUT;
178178
}
179179
} else {
180-
if (rt_spi_recv(rtt_dev->rt_spi_device, read_buf, read_size) == 0) {
180+
if (rt_spi_recv(rtt_dev->rt_spi_device, read_buf, read_size) <= 0) {
181181
result = SFUD_ERR_TIMEOUT;
182182
}
183183
}
@@ -322,7 +322,7 @@ sfud_err sfud_spi_port_init(sfud_flash *flash) {
322322
}
323323

324324
#ifdef RT_USING_DEVICE_OPS
325-
const static struct rt_device_ops flash_device_ops =
325+
const static struct rt_device_ops flash_device_ops =
326326
{
327327
RT_NULL,
328328
RT_NULL,
@@ -734,6 +734,7 @@ static void sf(uint8_t argc, char **argv) {
734734
for (i = 0; i < size; i += write_size) {
735735
result = sfud_write(sfud_dev, addr + i, write_size, write_data);
736736
if (result != SFUD_SUCCESS) {
737+
rt_kprintf("Writing %s failed, already wr for %lu bytes, write %d each time\n", sfud_dev->name, i, write_size);
737738
break;
738739
}
739740
}
@@ -761,6 +762,7 @@ static void sf(uint8_t argc, char **argv) {
761762
}
762763

763764
if (result != SFUD_SUCCESS) {
765+
rt_kprintf("Read %s failed, already rd for %lu bytes, read %d each time\n", sfud_dev->name, i, read_size);
764766
break;
765767
}
766768
}

0 commit comments

Comments
 (0)