乐鑫技术交流
直播中

安德森大

8年用户 1296经验值
擅长:接口/总线/驱动
私信 关注
[问答]

ESP32-WROVR-E模组wear_levelling读写错误的原因?怎么解决?

日志LOG:


entry 0x40080710
I (29) boot: ESP-IDF v4.2.1-dirty 2nd stage bootloader
I (29) boot: compile time 16:54:50
I (29) boot: chip revision: 3
I (33) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (40) qio_mode: Enabling default flash chip QIO
I (45) boot.esp32: SPI Speed      : 80MHz
I (50) boot.esp32: SPI Mode       : QIO
I (54) boot.esp32: SPI Flash Size : 4MB
I (59) boot: Enabling RNG early entropy source...
I (64) boot: Partition Table:
I (68) boot: ## Label            Usage          Type ST Offset   Length
I (75) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (82) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (90) boot:  2 factory          factory app      00 00 00010000 001f0000
I (97) boot:  3 storage          Unknown data     01 81 00200000 00100000
I (105) boot: End of partition table
I (109) boot_comm: chip revision: 3, min. application chip revision: 0
I (116) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x064c8 ( 25800) map
I (133) esp_image: segment 1: paddr=0x000164f0 vaddr=0x3ffb0000 size=0x02100 (  8448) load
I (137) esp_image: segment 2: paddr=0x000185f8 vaddr=0x40080000 size=0x00404 (  1028) load
0x40080000: _WindowOverflow4 at C:/msys64/home/wangs/esp/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1730

I (143) esp_image: segment 3: paddr=0x00018a04 vaddr=0x40080404 size=0x07614 ( 30228) load
I (163) esp_image: segment 4: paddr=0x00020020 vaddr=0x400d0020 size=0x1806c ( 98412) map
0x400d0020: _stext at ??:?

I (192) esp_image: segment 5: paddr=0x00038094 vaddr=0x40087a18 size=0x02b28 ( 11048) load
0x40087a18: multi_heap_free_impl at C:/msys64/home/wangs/esp/esp-idf/components/heap/multi_heap.c:533

I (202) boot: Loaded app from partition at offset 0x10000
I (202) boot: Disabling RNG early entropy source...
I (204) cpu_start: Pro cpu up.
I (207) cpu_start: Application information:
I (212) cpu_start: Project name:     wear_levelling_example
I (218) cpu_start: App version:      v4.2.1-dirty
I (224) cpu_start: Compile time:     Sep 14 2021 16:26:27
I (230) cpu_start: ELF file SHA256:  008ba9c15efc846c...
I (236) cpu_start: ESP-IDF:          v4.2.1-dirty
I (241) cpu_start: Starting app cpu, entry point is 0x40081650
0x40081650: call_start_cpu1 at C:/msys64/home/wangs/esp/esp-idf/components/esp32/cpu_start.c:287

I (0) cpu_start: App cpu up.
I (252) heap_init: Initializing. RAM available for dynamic allocation:
I (259) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (265) heap_init: At 3FFB2990 len 0002D670 (181 KiB): DRAM
I (271) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (277) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (284) heap_init: At 4008A540 len 00015AC0 (86 KiB): IRAM
I (290) cpu_start: Pro cpu start user code
I (307) spi_flash: detected chip: generic
I (307) spi_flash: flash io: qio
W (307) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header.
I (319) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (334) example: Mounting FAT filesystem
I (340) example: Opening file
I (483) example: File written
I (483) example: Reading file
I (484) example: Read from file: ''
I (484) example: Unmounting FAT filesystem
I (585) example: Done


最近在想用SPI FLASH存参数,跑 wear_levelling 例程 读写出现写入不成功,读出来也不对的现象,不知道具体原因还多指教一下。
                                      

回帖(1)

发生的方式

2024-6-21 17:22:16
以下是一些建议来解决这个问题:

1. **检查闪存芯片**:首先,确保您的闪存芯片没有损坏或存在质量问题。如果可能的话,尝试更换一个闪存芯片。

2. **更新ESP-IDF**:您正在使用的ESP-IDF版本是4.2.1-dirty,这可能意味着您的版本不是最新的。尝试更新到最新的稳定版本,以获取最新的修复和改进。

3. **检查分区表**:确保您的分区表配置正确,没有错误或冲突。您可以使用`esptool.py`来查看和编辑分区表。

4. **检查Wear Levelling配置**:确保您的Wear Levelling配置正确。检查您的代码中是否正确使用了`esp_partition_find`和`esp_partition_read/esp_partition_write`函数。

5. **减少写入次数**:Wear Levelling的主要目的是减少闪存的磨损。尝试优化您的代码,减少不必要的写入操作。

6. **监控闪存使用情况**:使用`esp_flash_size`和`esp_flash_erase_size`等函数来监控闪存的使用情况,以便在达到临界点之前采取措施。

7. **检查电源稳定性**:不稳定的电源可能会影响闪存的性能和寿命。确保您的电源供应稳定且符合ESP32的要求。

8. **查看错误日志**:仔细查看错误日志,了解错误发生的上下文。这有助于确定问题的根本原因。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分