乐鑫技术交流
直播中

麻酱

8年用户 1250经验值
擅长:MEMS/传感技术
私信 关注
[问答]

Flash encryption启动失败的原因?

项目:examplessecurityflash_encryption
ESP-IDF v4.1-dev-1572-g30372f5a4-dirty 2nd stage bootloader

项目代码没动,修改了partition table及menuconfig, 程序烧录后,出现Fatal Exception (28):

D (552) esp_image: reading image header @ 0x1000
D (557) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
D (564) esp_image: image header: 0xe9 0x04 0x02 0x02 4008072c
Fatal exception (28): LoadProhibited
epc1=0x4008104c, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000028, depc=0x00000000
0x4008104c: call_start_cpu1 at F:/Projects/esp/esp-idf/components/esp32/cpu_start.c:277

而bootloader.map文件中, 0x4008104c对应的是bootloader_common_get_chip_revision:
.text.bootloader_common_get_chip_revision
                0x4008104c       0x4d esp-idf/bootloader_support/libbootloader_support.a(bootloader_efuse_esp32.c.obj)
                0x4008104c                bootloader_common_get_chip_revision

请问是哪里出了错?多谢。
                     

回帖(1)

江左盟

2024-6-25 17:21:29
Flash encryption启动失败的原因可能有以下几种:

1. **分区表问题**:您提到修改了分区表,如果分区表配置不正确,可能导致烧录失败。请确保分区表中的加密分区设置正确,并且与bootloader和应用程序的配置相匹配。

2. **烧录参数问题**:烧录时使用的参数可能不正确。请检查烧录命令中的参数,确保它们与您的硬件和分区表设置一致。

3. **固件不兼容**:您使用的是ESP-IDF v4.1-dev版本,这可能是一个开发版本,可能存在一些不稳定因素。尝试使用稳定版本的ESP-IDF,看看问题是否仍然存在。

4. **加密配置问题**:在menuconfig中,确保您正确设置了加密相关的配置选项,例如`Example Configuration` -> `Flash Encryption`。

5. **硬件问题**:如果硬件存在问题,例如Flash芯片损坏,也可能导致启动失败。检查硬件连接是否正常。

6. **固件损坏**:烧录过程中,固件可能损坏。尝试重新烧录固件,确保烧录过程中没有错误。

7. **电源问题**:不稳定的电源可能导致烧录失败。确保电源供应稳定。

8. **软件问题**:可能是ESP-IDF软件本身的问题。尝试更新ESP-IDF到最新版本,或者查看ESP-IDF的issue跟踪器,看看是否有其他用户遇到了类似的问题。

9. **异常处理**:从您提供的错误信息来看,`Fatal exception (28): LoadProhibited`表明加载被禁止。这可能是由于加密配置不正确或分区表设置错误导致的。

解决这个问题,您可以尝试以下步骤:

- 仔细检查分区表,确保加密分区的设置正确。
- 检查烧录命令和参数,确保它们与您的硬件和分区表设置一致。
- 尝试使用稳定版本的ESP-IDF。
- 检查硬件连接和电源供应。
- 查看ESP-IDF的issue跟踪器,看看是否有其他用户遇到了类似的问题。

如果问题仍然存在,您可能需要提供更多的信息,例如分区表的具体配置,烧录命令和参数等,以便进一步分析问题。
举报

更多回帖

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