乐鑫技术交流
直播中

尤立虔

7年用户 960经验值
擅长:控制/MCU
私信 关注
[问答]

官方实例simple_ota_example ,OTA失败Error: esp_ota_end failed! err=0x5379. Image is invalid的原因?

修改IDF代码为HTTP OTA可以成功 但是用原来的https通过证书认证 还是ota失败
关键log:

I (234) wifi: wifi driver task: 3ffc0b20, prio:23, stack:3584, core=0
I (234) wifi: wifi firmware version: 2af77cc
I (244) wifi: config NVS flash: enabled
I (244) wifi: config nano formating: disabled
I (244) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (254) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (294) wifi: Init dynamic tx buffer num: 32
I (294) wifi: Init data frame dynamic rx buffer num: 32
I (294) wifi: Init management frame dynamic rx buffer num: 32
I (294) wifi: Init management short buffer num: 32
I (294) wifi: Init static rx buffer size: 1600
I (304) wifi: Init static rx buffer num: 10
I (304) wifi: Init dynamic rx buffer num: 32
I (314) simple_ota_example: Setting WiFi configuration SSID TangPhone...
I (374) phy: phy_version: 4008, 544f89f, Jan 24 2019, 14:54:06, 0, 0
I (384) wifi: mode : sta (c4:4f:33:14:ec:f1)
I (384) simple_ota_example: Starting OTA example...
I (504) wifi: n:1 0, o:1 0, ap:255 255, sta:1 0, prof:1
I (1484) wifi: state: init -> auth (b0)
I (1484) wifi: state: auth -> assoc (0)
I (1494) wifi: state: assoc -> run (10)
I (1514) wifi: connected with TangPhone, channel 1
I (1514) wifi: pm start, type: 1

I (2234) event: sta ip: 172.20.10.4, mask: 255.255.255.240, gw: 172.20.10.1
I (2234) simple_ota_example: Connect to Wifi ! Start to Connect to Server....
I (4264) esp_https_ota: Starting OTA...
I (4264) esp_https_ota: Writing to partition subtype 16 at offset 0x110000
I (4444) esp_https_ota: esp_ota_begin succeeded
I (4444) esp_https_ota: Please Wait. This may take time
I (4474) esp_https_ota: Connection closed,all data received
I (4474) esp_image: segment 0: paddr=0x00110020 vaddr=0x3f400020 size=0x1ce50 (118352) map
E (4574) esp_image: invalid segment length 0xffffffff
E (4574) esp_https_ota: Error: esp_ota_end failed! err=0x5379. Image is invalid
E (4574) simple_ota_example: Firmware Upgrades Failed
                    

回帖(1)

lotusp

2024-6-25 17:10:33
OTA(Over-The-Air)更新是一种无线更新技术,允许设备在不需要物理接触的情况下接收和安装软件更新。在您提供的例子中,OTA更新失败,错误代码为0x5379,表示图像无效。这可能是由多种原因引起的,以下是一些可能的原因和解决方案:

1. **图像文件损坏**:OTA更新过程中,如果图像文件在传输或存储过程中损坏,可能导致更新失败。确保服务器上的固件文件完整无损。

2. **固件版本不兼容**:如果固件版本与设备不兼容,也可能导致OTA更新失败。检查固件是否适用于您的设备型号和硬件版本。

3. **网络问题**:不稳定或中断的网络连接可能导致OTA更新过程中断,从而导致更新失败。确保设备在更新过程中有稳定的网络连接。

4. **证书问题**:如果使用HTTPS进行OTA更新,证书验证失败可能导致更新失败。检查服务器证书是否有效,以及设备是否正确配置了证书。

5. **ESP32硬件问题**:硬件故障或不稳定的硬件性能可能导致OTA更新失败。检查硬件连接和性能。

6. **ESP-IDF版本问题**:确保您使用的ESP-IDF版本与您的项目兼容。不兼容的版本可能导致OTA更新失败。

7. **OTA配置问题**:检查您的OTA配置是否正确,包括OTA分区、OTA数据接收和处理等。

8. **日志中提到的MAC地址问题**:日志显示系统尝试读取默认的基MAC地址,这可能表明设备的MAC地址未正确设置或EFUSE损坏。确保设备的MAC地址设置正确。

9. **ESP32的OTA API使用问题**:检查您的代码中是否正确使用了ESP-IDF的OTA API,包括`esp_ota_begin()`, `esp_ota_write()`, 和`esp_ota_end()`等函数。

10. **固件烧录问题**:如果固件烧录到错误的分区或烧录过程中出现问题,也可能导致OTA更新失败。

解决这些问题的一般步骤可能包括:

- 重新生成固件文件并确保其完整性。
- 检查网络连接的稳定性。
- 验证服务器证书和设备上的证书配置。
- 检查ESP-IDF版本和OTA配置。
- 检查硬件连接和性能。
- 使用ESP-IDF的OTA API进行调试,确保API调用正确。

如果修改为HTTP OTA可以成功,但使用HTTPS时失败,重点检查HTTPS相关的配置和证书问题。确保服务器的SSL/TLS配置正确,并且设备上的证书链是完整的,没有过期或撤销。
举报

更多回帖

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