本文主要是介绍ESP32 OTA APP版本号设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文讲述ESP32设置APP的版本号用于OTA版本对比。
在ESP-idf的native_ota_example
中, 有一段代码演示如何检查应用程序的版本并防止无限的固件更新。只有新版本的应用程序才会进行OTA。版本检查是在收到第一个固件映像包之后执行的,其中包含有关固件版本的数据。申请版本可从以下三个地方选取:
- 如果在项目
PROJECT_VER
文件中设置PROJECT_VER
变量,则使用它的值。 - 否则,如果
$PROJECT_PATH/version.txt
存在,它的内容将用作PROJECT_VER
。 - 否则,如果项目位于Git存储库中,则使用
git describe
的输出.
否则,PROJECT_VER
将为1
.
在native_ota_example
中,$PROJECT_PATH/version.txt
用于定义应用程序的版本. 更改文件中的版本以编译新固件。
这里我们采用第二种方法,即使用$PROJECT_PATH/version.txt
文件来定义版本号。
Note:
native_ota_example
中没有版本号大小检查,它看到不同的版本就会下载。当本地设备是比OTA服务器版本号更高的时候,也会下载OTA服务器的旧版进行更新。这个需要自行添加版本号大小检查。
我们需要首先在make menuconfig
的Application Manager
菜单中,取消Exclude PROJECT_VER from firmware image
和Exclude PROJECT_NAME from firmware image
的选项。
然后在项目文件夹根目录下新建一个version.txt
,内容为1.1.0
。
编译之后用二进制模式打开bin文件,就可以在文件头里面看到项目名称和版本号了。
当然,千万别忘了在make menuconfig
的Partition Table
中,选择Factory app, two OTA definition
这篇关于ESP32 OTA APP版本号设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!