步骤:

1.生成bin文件并将bin文件放到虚拟主机目录内

2.做一个php的页面分块读取该bin文件,以asc字符echo出来,并标记好头尾长度和校验。

3.GPRS协议栈连接主机路径,收到内容,将内容解析,校验,无误后保存到备份flash空间

4.全部保存完成后,做个标识在参数flash区,等待重新开机

5.做个bootloader,开机后检测是否有保存好的新版本号,如果有则覆盖旧版本,否则直接进入入口向量。

由于GPRS传输http协议的内容属于短连接,AT指令的情况多而复杂,很多需要判断处理,有较高的工作强度,这里的内容暂不公开。经过实际测试,升级一个几十k的bin文件需要大约5-10分钟左右,中间允许断电重开不影响继续升级,实际工作中的可靠性符合要求。

利用http协议使用普通的网站虚拟主机+安信可A6C GPRS模块实现对stm32的远程升级的更多相关文章

  1. 网站服务器、VPS和虚拟主机的联系与区别

     网站服务器是指在互联网数据中心中存放网站的服务器.主要用于网站的互联网中的发布.应用,是网络应用的基础硬件设施.简单的说服务器就是一台电脑,只是这台电脑因为要24 小时高速运行,所以配置要比一般的家 ...

  2. 如何导入大sql文件到虚拟主机mysql数据库

    大部分网站虚拟主机为了安全起见,都限制了通过命令或者phpMyAdmin导入大sql文件到mysql数据库,例如godaddy只允许站长通过phpMyAdmin上传不超过2m的sql文件,但实际上我们 ...

  3. SSL虚拟主机安全方案

    SSL虚拟主机安全方案 随着虚拟主机技术的发展,功能越来越丰富,已经不仅仅只是满足个人网站的需要,越来越多的小型电子商务网站也采用了虚拟主机来建站,如何为这些商户提供经济.方便的SSL解决方案,成为虚 ...

  4. 云服务器、VPS、虚拟主机三者之间的区别?

    更多精彩内容欢迎访问我的个人博客皮皮家园:https://www.zh66.club期待您的光临哦!我是皮皮猪,感谢各位光临,能为您排忧解难小站深感荣幸!祝您生活愉快! 什么是虚拟主机? 同云主机不一 ...

  5. LNMP添加、删除虚拟主机及伪静态使用教程

    一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问.LNMP 1.2的网站添加过程和LNMP 1.1的基本类似,但是增加了FTP和数据库的创建.LNMP1.2的防跨目录也由原来在php.in ...

  6. Vagrant安装完lnmp后,配置linux和windows共享文件并配置虚拟主机访问项目

    虚拟机目录下的Vagrantfile文件是vagrant的配置文件,如果想把虚拟机当作一台服务器,可以通过ip访问,需要修改配置文件进行配置. (1)第一步:打开虚拟机目录下的Vagrantfile文 ...

  7. WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机

    版本:win10系统 virtualbox:5.1.26 vagrant :1.9.7 centos 7.0 xshell/git 首先下载好对应版本的软件 配置vagrant和virtualbox ...

  8. 12.linux上Apache虚拟主机的建立和https协议网站建立

    一.Apache虚拟主机的建立   虚拟web主机 在同一台服务器上建立多个web站点,每个站点不独占用一台真正的服务器       1.建立dns解析 两个域名同一个ip               ...

  9. MQTT协议 局域网和广域网 云服务器和虚拟主机、VPS SSH和FTP、SFTP

     MQTT协议 MQTT协议就很好的解决了coap存在的问题.MQTT协议是由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议.MQTT协议采用发布/订阅模式,所有的物联网终端都通过TC ...

随机推荐

  1. 初始Redis与简单使用

    初始Redis: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...

  2. 笔记软件->"Typora"

    笔记软件->"Typora" 1 下载地址 www.typora.io 2 傻瓜安装后添加自定义样式 由于用户目录不同Users为当前系统用户名字 打开C:\Users\Ad ...

  3. SQL预处理

    每向数据库发送一条SQL语句,数据库中的SQL解释器就会将SQL语句转换成数据库底层命令,然后执行该命令完成相关的数据库操作.如果频繁的向数据库提交SQL语句,势必会增加数据库中SQL解释器的负担,进 ...

  4. sql函数实用——字符函数(sqlserver与mysql对比)

    1.获取长度 sqlserver写法:关键字:len()    获取参数的字符数量 select  Len('aksjdhh')    输出结果 7 select len('张无忌ooo')   输出 ...

  5. Git 连接github

    大概如下: 详细如下:如果使用本文命令,请仔细选择,因为添加一些相关命令以供参考. 1 本地仓库 1.1 创建git 仓库 git init # 初始化本地仓库 git --version # 查看G ...

  6. 个人博客-vue-blog

    http://47.100.126.169/zmengBlog/

  7. Ant Design 表单中getFieldDecorator、getFieldValue、setFieldValue用法

    Ant Design 表单中getFieldDecorator.getFieldValue.setFieldValue用法 一.getFieldDecorator getFieldDecorator是 ...

  8. BitSet 的使用

    BitSet 的简单介绍 BitSet,即位图,是位操作的对象,值只有 0 或 1(即 false 或 true). Java 的 BitSet 内部维护着一个 long 数组,默认初始化时数组的长度 ...

  9. Ado.net总结-Command(指挥官)

    Command 概述 在 System.Data.SqlClient 命名空间下,对应的 Command 类为 SqlCommand,在创建 SqlCommand 实例前必须已经创建了与数据库的连接. ...

  10. spring boot学习笔记(1)

    一.构建springboot项目 可以通过idea的springboot initialization来创建, idea的功能很强大,可以自己选择需要集成的插件. 完整的项目结构是这样的: DemoA ...