summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSummerGift <[email protected]>2018-11-14 17:56:09 +0800
committerSummerGift <[email protected]>2018-11-14 17:58:57 +0800
commitdc704b18289198c69bbe64aa58e8c553e565804f (patch)
tree04ca0c3d5d5c78c60d78a9a3361014a513709bb1
parentebfff0b07b0c5e1c50817f734712eed9ed16cd87 (diff)
[component][sfud]: fix bug when probe device more than once
-rw-r--r--components/drivers/spi/spi_flash_sfud.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/components/drivers/spi/spi_flash_sfud.c b/components/drivers/spi/spi_flash_sfud.c
index e622527d7a..c0e42b3cd8 100644
--- a/components/drivers/spi/spi_flash_sfud.c
+++ b/components/drivers/spi/spi_flash_sfud.c
@@ -402,14 +402,17 @@ static void sf(uint8_t argc, char **argv) {
} else {
char *spi_dev_name = argv[2];
rtt_dev_bak = rtt_dev;
+
+ /* delete the old SPI flash device */
+ if(rtt_dev_bak) {
+ rt_sfud_flash_delete(rtt_dev_bak);
+ }
+
rtt_dev = rt_sfud_flash_probe("sf_cmd", spi_dev_name);
if (!rtt_dev) {
return;
}
- /* already probe then delete the old SPI flash device */
- if(rtt_dev_bak) {
- rt_sfud_flash_delete(rtt_dev_bak);
- }
+
sfud_dev = (sfud_flash_t)rtt_dev->user_data;
if (sfud_dev->chip.capacity < 1024 * 1024) {
rt_kprintf("%d KB %s is current selected device.\n", sfud_dev->chip.capacity / 1024, sfud_dev->name);