new vfs_fat_spiflash library
Posted: Fri Apr 28, 2017 5:20 am
Hello. Thanks for implementing the new wear leveling fatfs spiflash library.
It's exactly what I've been looking for.
Unfortunately,
When I compile and run the example code at (esp-idf/examples/storage/wear_levelling) on an ESP WROOM-32
It fails when trying to "Formatting FATFS partition"
, more specifically, it fails the MBR check at (esp-idf/components/fatfs/src/ff.c), function f_mkfs(), line 5267, 5268:
The memory there is empty 0x0000.
Has anyone gotten the new library to run?
Thanks!
A dump of my logs:
It's exactly what I've been looking for.
Unfortunately,
When I compile and run the example code at (esp-idf/examples/storage/wear_levelling) on an ESP WROOM-32
It fails when trying to "Formatting FATFS partition"
, more specifically, it fails the MBR check at (esp-idf/components/fatfs/src/ff.c), function f_mkfs(), line 5267, 5268:
Code: Select all
if (disk_read(pdrv, buf, 0, 1) != RES_OK) return FR_DISK_ERR; /* Load MBR */
if (ld_word(buf + BS_55AA) != 0xAA55) return FR_MKFS_ABORTED; /* Check if MBR is valid */
Has anyone gotten the new library to run?
Thanks!
A dump of my logs:
Code: Select all
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:8
load:0x3fff0010,len:4416
load:0x40078000,len:11080
load:0x40080000,len:252
0x40080000: _iram_start at ??:?
entry 0x40080034
0x40080034: _iram_start at ??:?
I (45) boot: ESP-IDF v2.0-rc1-666-g0fe765a-dirty 2nd stage bootloader
I (46) boot: compile time 22:08:22
I (48) boot: Enabling RNG early entropy source...
I (65) boot: SPI Speed : 40MHz
I (78) boot: SPI Mode : DIO
I (90) boot: SPI Flash Size : 4MB
I (102) boot: Partition Table:
I (114) boot: ## Label Usage Type ST Offset Length
I (136) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (160) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (183) boot: 2 factory factory app 00 00 00010000 00100000
I (206) boot: 3 storage Unknown data 01 81 00110000 00100000
I (230) boot: End of partition table
I (242) boot: Disabling RNG early entropy source...
I (260) boot: Loading app partition at offset 00010000
I (815) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (816) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x08850 ( 34896) map
I (832) boot: segment 2: paddr=0x00028860 vaddr=0x3ffb0000 size=0x02b1c ( 11036) load
I (863) boot: segment 3: paddr=0x0002b384 vaddr=0x40080000 size=0x00400 ( 1024) load
0x40080000: _iram_start at ??:?
I (885) boot: segment 4: paddr=0x0002b78c vaddr=0x40080400 size=0x12ba8 ( 76712) load
I (947) boot: segment 5: paddr=0x0003e33c vaddr=0x400c0000 size=0x00000 ( 0) load
I (948) boot: segment 6: paddr=0x0003e344 vaddr=0x00000000 size=0x01cc4 ( 7364)
I (969) boot: segment 7: paddr=0x00040010 vaddr=0x400d0018 size=0x2dda4 (187812) map
0x400d0018: _flash_cache_start at ??:?
I (994) cpu_start: Pro cpu up.
I (1006) cpu_start: Starting app cpu, entry point is 0x40080efc
0x40080efc: call_start_cpu1 at //redacted
I (0) cpu_start: App cpu up.
I (1039) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (1061) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (1081) heap_alloc_caps: At 3FFB6940 len 000296C0 (165 KiB): DRAM
I (1103) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (1124) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (1146) heap_alloc_caps: At 40092FA8 len 0000D058 (52 KiB): IRAM
I (1166) cpu_start: Pro cpu start user code
D (1204) clk: RTC_SLOW_CLK calibration value: 3096512
V (1234) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (1234) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xE
D (1267) intr_alloc: Connected src 56 to int 2 (cpu 0)
V (1299) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (1337) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xE
D (1387) intr_alloc: Connected src 16 to int 3 (cpu 0)
V (1419) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (1458) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0x40E
D (1509) intr_alloc: Connected src 24 to int 12 (cpu 0)
I (1542) cpu_start: Starting scheduler on PRO CPU.
V (550) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): checking args
V (550) intr_alloc: esp_intr_alloc_intrstatus (cpu 1): Args okay. Resulting flags 0x40E
[ (560) intr_alloc: Connected src 25 to int 2 (cpu 1)
I (560) cpu_start: Starting scheduler on APP CPU.
0;32mI (550) example: Mounting FAT filesystem
V (580) wl_flash: config start_addr=0x00000000, full_mem_size=0x00100000, page_size=0x00001000, sector_size=0x00001000, updaterate=0x00000010, wr_size=0x00000010, version=0x00000001, temp_buff_size=0x00000020
V (590) wl_flash: config - this->addr_state1=0x000fb000
V (600) wl_flash: config - this->addr_state2=0x000fd000
D (600) wl_flash: init - config ID=1, stored ID=1, access_count=0, block_size=4096, max_count=16, pos=0, move_count=0
D (610) wl_flash: init starts: crc1=1280242342, crc2 = 1280242342, this->state.crc=1280242342, state_copy->crc=1280242342
D (630) wl_flash: init: crc1=1280242342, crc2 = 1280242342, result=0
D (630) wl_flash: recoverPos - this->state.pos=0x00000000, result=00000000
I (640) vfs_fat_spiflash: pdrv=0
V (640) ff_diskio_spiflash: ff_wl_ioctl: cmd=2
V (650) ff_diskio_spiflash: ff_wl_read - pdrv=0, sector=0, count=1
V (650) wl_flash: read - src_addr=0x00000000, size=0x00001000
V (660) wl_flash: calcAddr - addr=0x00000000 -> result=0x00001000
W (670) vfs_fat_spiflash: f_mount failed (13)
I (670) vfs_fat_spiflash: Formatting FATFS partition
V (680) ff_diskio_spiflash: ff_wl_ioctl: cmd=3
V (680) ff_diskio_spiflash: ff_wl_ioctl: cmd=2
V (690) ff_diskio_spiflash: ff_wl_read - pdrv=0, sector=0, count=1
V (690) wl_flash: read - src_addr=0x00000000, size=0x00001000
V (700) wl_flash: calcAddr - addr=0x00000000 -> result=0x00001000
E (700) vfs_fat_spiflash: f_mkfs failed (14)
E (700) example: Failed to mount FATFS (0xffffffff)