如何实现ESPith SDK x(脚本可编程控制器)的OTA功能

作为支持远程连接互联网的物联网设备,本地或远程ota升级也是脚本编程控制器的一个重要功能,因为不能保证继电器完全没有bug,在利用bug,如果没有ota升级接口,很难让客户通过串口升级固件,控制器只能回厂升级,成本高,影响大。

此外,客户可能有一些个性化功能无法通过中文编程实现,需要升级控制器固件才能实现。

这两种情况需要通过本地或远程OTA功能来解决。

这几天花了一点时间完成这个功能,现总结如下:
(1)ESP8266的FLASH可以存储两个固件,名称分别为user1.bin到user2.bin,两个固件的地址由地址0x0000处存储的引导程序boot.bin决定,且存储地址不同不同的闪光灯容量。
例如,Flash 容量为 1Mbyte 的 ESP8266-01S,存储地址分别为 0x01000 和 0x81000,FLASH 容量为 4Mbyte 的 ESP8266-07S,存储地址分别为 0x01000 和 0x101000。

(2)通过函数system_upgrade_userbin_check的返回值获取当前程序正在运行的user1.bin或user2.bin,进行固件升级,到另一个固件存储区写入完整的固件,例如如果当前运行的是存储的在user1.bin的0x1000处,然后到地址0x81000(ESP8266-01S)或0x101000(EPS8266-07S)写入固件user2.bin,写入完毕后,再通过函数system_upgrade_flag_set(0x02)通知SDK写入完成后,SDK 设置系统参数,以便 ESP8266 启动时引导到另一个固件。

3)官方推荐的做法是通过http协议将固件下载到云服务器到内存中,我没有使用这个方案,主要是出于两个考虑,一是这个方案是否经过严格验证,以及是否有充分考虑数据验证以避免升级到砖块,我对此表示怀疑。其次,这个程序要求控制器能够连接到外部网络,从服务器下载固件,这并不容易做到。

我目前正在使用delphi开发一套固件升级软件,该软件作为TCP客户端直接连接到控制器,或者连接到云服务器的TCP网关然后传输到控制器,然后根据一帧数据 512 字节,用于将固件推送到控制器。

接下来可以将这套逻辑移植到服务器上,客户可以通过浏览器打开网页将固件推送到控制器。

4)数据的完整性得到充分验证,第一帧数据做crc32校验,固件写入flash然后读出与写入的值进行比较,同时计算出值的crc32,与上位机发送的crc32的值相比,读写数据是相同的,crc的值也相同,则认为该帧数据写入成功;
同时对每一帧数据的crc32值再进一步做crc32值,得到总的crc32值,与上位机发送的总crc32值进行比较,该值与调用函数system_upgrade_flag_set之前的值相同( 0x02) 以允许 SDK 切换到启动固件。

(5)写入两个不同固件区的固件user1.bin、user2.bin不一样,对于RTOS sdk开发,需要修改Makefile变量APP的值生成user1.bin、user2 .bin,分别是上位机根据控制器返回当前运行的该存储区域的固件,选择另一个存储区域的固件发送给控制器。上位机根据控制器返回的当前运行固件的存储区域,选择另一个存储区域的固件。

如果两个存储区域使用相同的固件,ESP8266 将无法正常启动。

如何实现ESPith SDK x(脚本可编程控制器)的OTA功能

如何实现ESPith SDK x(脚本可编程控制器)的OTA功能

以上就是如何实现ESPith SDK x(脚本可编程控制器)的OTA功能的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1248594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 20:38:21
下一篇 2025年12月9日 20:38:27

相关推荐

  • 上位机串口通讯收不到下位机回复?如何排查和解决?

    上位机串口通讯收不到下位机回复的解决之道 在上位机与下位机通过串口进行通讯时,出现上位机发送命令后多次收不到下位机回复的情况,可能由以下原因引起: 1. 硬件问题 小艺 华为公司推出的AI智能助手 549 查看详情 排除硬件问题,可使用第三方工具(如UartAssist)进行测试,确认硬件是否能够及…

    2025年11月26日 java
    100
  • Java中如何开发机器人?ROS2通信接口

    java与ros2通信的核心策略包括使用java客户端库、直接操作dds层、jni桥接和web接口。首先推荐使用或构建java版ros2客户端库,它封装了dds复杂性,提供创建节点、发布/订阅话题等高级api,如社区项目ros2_java;其次可直接基于dds协议通信,利用rti c++onnext…

    2025年11月25日 java
    000
  • 官方案例!欧姆龙温控器modbus通讯实操

    实验设备:e5cc-rx2asm-002、s8jc-z10024c、485转232的usb接线。 二、实验目的 利用串口调试工具COMMIX,读取温控器当前温度值并设置温控器的目标温度值,同时将温控器切换至初始设定菜单。 三、硬件接线 温控器的13(+)和14(-)485端子连接至485-232转换…

    2025年11月8日 行业动态
    000
  • 纳米摩擦发电机-单电极模式调理电路

    为啥一个电极也有电? 如图,是王中林教授课题组做的单电极摩擦纳米发电机。通过皮肤与材料的不断接触,就可以让灯变亮。然而电源输出的只有一根导线啊,学math的表示很难理解。 放心,没啥解释的,我也没有搞明白。 被知乎劝退了 下面这个回答是为什么TENG里面都是用LED做实验的: 因为LED属于为数不多…

    2025年11月8日 行业动态
    000
  • C#实例——上位机helloworld

    今天我重新开始学习c#上位机编程,尝试了一个简单的hello world示例,参考了https://mculover666.blog.csdn.net/article/details/80650063这篇文章,并在电脑上重新操作了一遍。 创建新的“Windows窗体应用程序” 在窗体上添加两个按钮和…

    2025年11月8日 系统教程
    000
  • ADMX3652-便携六位半电压表

    adi最近悄悄发布了一个令人惊叹的便携式测量硬件——一个六位半的仪器,真是让人眼前一亮。可惜的是,它并没有开源,未来是否会开源还是个未知数。 六位半的精度表示测量值的第一位仅限于正负号和0/1,称为½位,而其他位数可以显示0到9,称为一位。因此,六位半的数字电压测量模块可以显示从-1999999到1…

    2025年11月8日 行业动态
    000
  • R-Plan上位机 – find file (2)

    在我的新专辑《r-plan》中,我介绍了关于《cmd》和《rtt ota pack》的工具,链接为《r-plan上位机-cmd console & rtt ota pack (1)》。今天,我将详细介绍一个新开发的功能——《find file》。在linux开发中,我们通常使用grep和fi…

    2025年11月7日 系统教程
    000
  • OPC-DA 在 Window7 下配置不得不说的步骤

    opc经典框架基于windows技术,通过com/dcom(分布式组件对象模型)实现软件间的信息交换。opc经典框架包括以下协议: OPC DA,规定了数据交换的标准,包括值、时间和质量信息。 OPC AE,规定了报警和事件类型消息的交换,以及变量状态和状态管理。 OPC HDA,规定了对历史数据和…

    2025年11月7日 系统教程
    000
  • 小鹏汽车VR遥操作机器人专利公布:可提高对机器人的控制精度

    11月26日,爱企查app显示,近日,广州小鹏汽车科技有限公司一项名为“一种基于vr头显的机器人遥操作系统、方法和设备”的发明专利公布。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 摘要 该专利属于机器人遥操作技术领域。该系统包含: Gi…

    2025年11月6日 科技
    500
  • 发布GR-2,从医疗康复到通用人形,傅利叶做对了什么?

    9月26日,傅利叶发布了自主研发的新一代通用人形机器人gr-2。立足于“为ai打造最佳具身载体”的产品愿景,gr-2在硬件、设计、开发框架等多个关键环节带来了令人瞩目的创新和提升,展现更灵活、更强劲、更开放的特性,满足各领域开发者、多元应用场景的需求。 在进军人形机器人领域前,傅利叶主攻医疗康复机器…

    2025年11月6日 科技
    100
  • 裕太微“基于ZYNQ的人脸检测加速设计方法”专利公布

    裕太微电子股份有限公司近日公开了一项名为“基于zynq的人脸检测加速设计方法”的专利,该专利申请公布日期为2025年3月14日,专利号为cn119625504a。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 本发明涉及一种人脸检测加速方案…

    2025年11月3日 科技
    100

发表回复

登录后才能评论
关注微信