版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:
</div>
<!--一个博主专栏付费入口-->
<!--一个博主专栏付费入口结束-->
<link rel="stylesheet" href="">
<link rel="stylesheet" href="">
<div class="htmledit_views" >
<p><a href="https://github.com/espressif/esp-idf" rel="nofollow">乐鑫最新的代码下载地址</a></p>
一、esp32 OTA的配置
我是在esp-idf\examples\system\ota\simple_ota_example例子上面修改的
进入simple_ota_example文件夹里面make menuconfig 选择partition Table ->Factory app,two OTA definitions
选择好之后保存退出。并且编译(我之前用的是esp8266不带系统的,做OTA的时候要生成2个文件,esp32这里生成的是一个文件。已经合并了,并且函数接口已经官方写好,使用非常简单)
二、程序修改
1、在例子里面 修改URL 为自己本机http服务器的地址
2、注释掉esp_https_ota_begin的如下代码(不同版本可能注释掉的不一样,我之前用的是3.1.3注释的不是这里)
这个是要配置服务器证书,我们用不到,在上面的的配置里面已经注释掉了 //.cert_pem = (char *)server_cert_pem_start,
三、启动HTTP 服务器
1、首先编译刚才配置好的工程,然后再工程里面会多出一个build文件夹,在CMD里面进入到build文件夹,在build里面新建一个文件夹get,然后把生存的simple_ota.bin文件拷贝进去,如下图 esp32生成的只有一个文件 ,他们文件合并了。
2、启动http服务
首先启动http服务一定要到build文件夹的路径,否则程序更新的时候回产生esp_ota_write failed! err=0x5379错误,如下图启动http服务
启动http服务之后就可以在浏览器上面打开,打开服务器运行后,构建目录的内容可以通过网址 http://localhost:8070/ 浏览到。
四、程序下载
程序的下载根据编译的结果下载四个文件就行,如下图
五、运行结果
从这里可以看到,更新是成功的,我在程序的开始还加了一个
const esp_partition_t *running = esp_ota_get_running_partition();
// Display the running partition
ESP_LOGI(TAG, "\n\nRunning partition: %s\n", running->label);
然后再串口上面可以看到 不断的更新,打印出来的信息是 Running partition: ota_0 和Running partition: ota_1 说明一直在不停的自动更新。
</div>
<!--一个博主专栏付费入口-->
<!--一个博主专栏付费入口结束-->
<link rel="stylesheet" href="">
<link rel="stylesheet" href="">
<div class="htmledit_views" >
<p><a href="https://github.com/espressif/esp-idf" rel="nofollow">乐鑫最新的代码下载地址</a></p>