完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
OTA的固件1.5MB不到, 运行OTA下载, 代码设计按照1%的递增显示进度,串口调试助手收到信息是每两秒才下载14KB。 平均每秒才7K。按照地址在网页浏览器下载, 每秒达到800多KB.
为什么这么慢呢? esp_err_t ota_finish_err = ESP_OK; esp_http_client_config_t config = { .url = OTA_FIRMWARE_UPGRADE_URI, .cert_pem = NULL, //(char *)server_cert_pem_start, }; esp_https_ota_config_t ota_config = { .http_config = &config, }; esp_https_ota_handle_t https_ota_handle = NULL; esp_err_t err = esp_https_ota_begin(&ota_config, &https_ota_handle); if (err != ESP_OK) { ESP_LOGE(TAG, "ESP HTTPS OTA Begin failed"); vTaskDelete(NULL); } esp_app_desc_t app_desc; err = esp_https_ota_get_img_desc(https_ota_handle, &app_desc); if (err != ESP_OK) { ESP_LOGE(TAG, "esp_https_ota_read_img_desc failed"); goto ota_end; } err = validate_image_header(&app_desc); if (err != ESP_OK) { ESP_LOGE(TAG, "image header verification failed"); goto ota_end; } i = 0; len = 0; percent = 0; while (1) { //vTaskDelay(1000 / portTICK_PERIOD_MS); err = esp_https_ota_perform(https_ota_handle); if (err != ESP_ERR_HTTPS_OTA_IN_PROGRESS) { break; } // esp_https_ota_perform returns after every read operation which gives user the ability to // monitor the status of OTA upgrade by calling esp_https_ota_get_image_len_read, which gives length of image // data read so far. len = esp_https_ota_get_image_len_read(https_ota_handle); if ((len - i) > 14336) { percent++; ESP_LOGE(TAG, "Image bytes read: %d, OTA : %d%%", len, percent); i = len; } } |
|
相关推荐
1个回答
|
|
OTA(Over-The-Air)下载速度慢的原因可能有以下几点:
1. 网络环境:Wi-Fi信号不稳定或连接质量较差可能导致下载速度降低。请确保设备连接到一个稳定的Wi-Fi网络。 2. 服务器限速:服务器端可能对下载速度进行了限制,导致下载速度较慢。可以尝试联系服务器管理员了解是否有限速设置。 3. HTTP客户端配置:检查ESP-HTTP-Client库的配置,确保没有设置错误的参数,如超时时间、连接数等。 4. 固件大小:虽然固件大小只有1.5MB,但在某些情况下,固件的压缩和解压缩过程可能会影响下载速度。 为了提高OTA下载速度,可以尝试以下方法: 1. 优化网络环境:确保设备连接到一个信号强、稳定的Wi-Fi网络。 2. 调整ESP-HTTP-Client配置:检查并调整ESP-HTTP-Client库的配置参数,如超时时间、连接数等。 3. 使用HTTPS:如果可能,尝试使用HTTPS连接,这可以提高数据传输的安全性,同时可能提高下载速度。 4. 服务器端优化:联系服务器管理员,了解是否有限速设置,或者尝试更换一个下载速度较快的服务器。 5. 固件压缩:在上传固件到服务器之前,可以尝试对固件进行压缩,以减小传输数据量。 6. 多线程下载:如果ESP-HTTP-Client库支持多线程下载,可以尝试使用多线程下载来提高下载速度。 7. 检查代码逻辑:检查OTA下载过程中的代码逻辑,确保没有不必要的延时或阻塞操作。 最后,请注意,实际下载速度还受到硬件性能、网络环境等多种因素的影响,可能无法达到浏览器下载的速度。但通过上述方法,应该可以提高OTA下载速度。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 14:24 , Processed in 0.597686 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191