乐鑫技术交流
直播中

周棠亨

7年用户 1047经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

Flash 512K+512K MAP下擦写扇区后崩溃的原因?

是否有人与我遇到相同的问题

SDK版本3.1.0

在SPI Flash Size & Map: 32Mbit(512KB+512KB)的MAP下,其实只要是(512KB+512KB)的MAP中,user2的代码擦写user1的代码扇区时出现的崩溃。1024K+1024K  MAP中可以正常操作。

就是代码在@0x81000地址启动后的user2下,执行了spi_flash_erase_sector(1);擦除0x1000地址的扇区,之后就卡死崩溃。


回帖(1)

王璐

2024-7-9 15:59:53
在这种情况下,Flash 512K+512K MAP下擦写扇区后崩溃的原因可能有以下几点:

1. **扇区擦除范围**:首先,确保擦除的扇区范围是正确的。在ESP32中,扇区大小为64KB。如果擦除的扇区范围不正确,可能会导致设备崩溃。

2. **Flash映射问题**:在512K+512K的映射中,可能存在一些映射问题,导致擦写操作失败。在1024K+1024K的映射中,由于扇区大小和映射方式的不同,可能不会出现这个问题。

3. **SPI Flash驱动问题**:可能是SPI Flash驱动的问题,导致在特定情况下无法正确擦写扇区。可以尝试更新SPI Flash驱动或者使用其他驱动来解决这个问题。

4. **硬件问题**:如果硬件存在问题,可能会导致擦写操作失败。可以尝试更换SPI Flash芯片或者检查硬件连接是否正常。

5. **软件问题**:可能是ESP32 SDK版本3.1.0中的软件问题。可以尝试升级到更高版本的SDK,看看是否解决了这个问题。

为了解决这个问题,你可以尝试以下步骤:

1. 确保擦除的扇区范围是正确的,例如:`spi_flash_erase_sector(1)` 应该擦除0x1000到0x1FFFF的地址范围内的数据。

2. 检查SPI Flash驱动是否是最新的,或者尝试使用其他驱动。

3. 升级ESP32 SDK到更高版本,看看是否解决了这个问题。

4. 如果可能的话,更换SPI Flash芯片或者检查硬件连接是否正常。


举报

更多回帖

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