• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问STM32F1配合GPRS进行程序升级的流程是怎样的?

chenbourne 2018-08-28 浏览量:928
请问STM32F103配合GPRS进行远程 程序升级的流程是怎样的?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • ST有参考程序,你可看一下关键代码,至于是通过GPRS、串口、RS485、USB等各种方式获取程序数据都是可以的

    我的做法是在外面有个Flash存储器,下载的程序先放到Flash中,下载完成后进行升级

    具体做法如下:

    1.boot程序放在复位默认开始的地址,

    2.应用主程序放在Boot程序后面,且完整的存储区开始的地方

    3.每次复位,运行boot程序,在boot程序中检查是否需要更新程序,如果不需要,就跳转到应用车险开始的地址,执行正常程序。如果需要更新,(1)需要检查程序数据的完整性,(2)程序完整,则开始删除应用程序程序,(3)删除完成后,执行写入,将外部Flash存储的程序,写入CPU内对应的Flash内,(4)清除更新程序标志,(5)重启CPU

    4.在应用程序中,除了执行正常的程序外,还要接受程序更新操作,即接收新的程序数据,并写入外部Flash中,写完后,记录更新程序标志,然后重启;

    大概的流程就这些,有一些细节需要注意,这些细节不影响功能,但会增加程序的可靠性

    (1)如何保证收到的程序文件是本身的

    (2)如何保证程序的完整性

    • 发布于 2018-08-28
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:10
  • 得要写两个代码,一个是升级单片机内部程序的代码Bootloader。另一个代码是单片机主要执行的功能程序(比如控制温度,采集数据等)。然后使用GPRS模块连接到云平台上,自定义一个协议。单片机收到升级程序的协议后,跳转到Bootloader区域执行从GPRS获取数据并写入功能程序区域flash中,全部数据接收完毕后,跳转到功能程序区域执行就可以了。建议你看看原子的串口IAP实验程序。
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 你需要把程序定义为两个部分,以64K单片机为例,前20K为BOOT程序,后44为应用程序。

    boot程序,上电直接运行,如果需要升级程序,则更新后44K的flash。如果不升级,直接跳转,进入后44K程序。

    APP程序,实现你的设计功能。

    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 就是一个串口的iap,只不过在封装一下,通过一些命令控制
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32在内部flash开一块区域,然后将升级固件放在那里,下载完固件之后重启,设置一个启动位置即可
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 要写一个bootloader的程序,通过这个程序进行片上Flsh的读写
    • 发布于2018-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 估计是通过STM32 IAP+串口的形式实现的,不过以GPRS这种低数据带宽和高出错率的特点,拿来进行IAP升级,我不敢想象那个成功率有多低。

    • 发布于2018-08-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 通常要自己做一个IAP,根据IAP的协议进行数据的传输并且烧录
    • 发布于2018-09-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种都是通过串口IAP来实现的,根据你的IAP数据把程序下载到对应的flash位置
    • 发布于2018-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • GPRS做升级有点困难,因为GPRS的数据出错率太高,建议你用wifi来做
    • 发布于2018-09-22
    • 举报
    • 评论 0
    • 0
    • 0

  • GPRS与STM32 的连接基本上都是串口连接,所以和串口升级差不多。STM32需要有足够的Flash区域,接收到数据并校验正确后写入Flash,更新完成后修改Bootloader要启动的Flash地址即可。
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问STM32F1配合GPRS进行程序升级的流程是怎样的?