如何实现的升级程序.pdf

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
说明 这节提供给用户一份实现更新STM32 的程序(兼容 STM32f103 全系列),主要说明STM32 是如何实现的升 级程序. 后面的章节都是在这节的基础上进行优化. 测试 1.说明 BootLoader 作为引导程序,负责把接收的程序文件写 入flash,然后加载执行. STM32F10xTemplate 是用户程序,这套程序采用串口 升级进去.然后执行 2. BootLoader 程序到单片机( 自行 ) 3.调整开发板拨动开关如下:电脑串口和STM32 串口1 通信 4.打开串口调试助手 发送 updata start 单片机擦除flash 以后返回wait updata... 5.发送程序文件STM32F10xTemplate 用户程序的 bin 文件 用户程序每隔1S 打印 run user 6.在用户程序执行的时候再次发送 updata start 等待返回 wait updata... 可以再次发送程序文件,执 行更新. 发送程序文件 整体说明 首先用户需要明白,无论 单片机实现更新程序, 实质上就是把程序文件写到单片机的存储里面 然后调用单片机提供的函数运行而已!! 对于当前的STM32 程序而言就是把程序文件从 0这个位置开始,把程序文件写到里面 然后把0这个地址给一个函数执行. 1. 完BootLoader 以后,当用户发送 updata start 程序擦除用户程序运行区的flash 2.当用户发送程序文件时 把接收的程序从0这个位置开始,把程序文 件写到flash 里面 3.当检测到接收到用户程序,打印下有没有错误信息, 然后重启 4.一旦有了用户程序,则加载用户程序 5.在用户程序里面,如果接收到updata start 则设置 一个更新标志(存储在flash 里面) 6.BootLoader 判断有更新标志以后,擦除用户程序运 行区的flash 然后就是如此循环 细节说明(bin 文件) 1.什么是bin 文件? 大家肯定知道hex 文件 打开这节的hex 文件和bin 文件 (我使用的UltraEdit 这个 ) 注意看hex 文件和bin 文件的区别 hex 比bin 文件多了前面一部分,和后面一部分 大家 单片机程序应该都知道是 hex 文件 但是大家了解整个的 过程不 其实咱用 的时候首先单片机需要知道 的 这段程序 到哪个地址上(把程序数据写到哪个 Flash 地址) 所以hex 文件的前面部分就是地址信息,就是告诉芯 片我后面的代码段存储到哪个地址上 当然为了保险起见,数据需要加校验,其实hex 文件的 最后一位就是校验位 像51 单片机,STM32 的串口 , 的时候需要断电 上电,或者复位一下,其实咱的单片机里面有一段程序 (接收单片机程序,写入Flash) 就是咱所说的 bootloader 记不记得都是先点一下 的 按钮,然后再 复位单片机 其实点一下 , 就一直串口输出 命令呢!单片机一启动是先执行里面内嵌的 bootloader, bootloader 一检测到 命令,就开始执行 操作 了,接收 过来的数据,然后写到Flash 里面 写完了,有的单片机重启下才运行,有的就直接运行了 好,现在说bin 文件为啥去掉了前面的地址信息 记住,咱自己更新的时候咱就规定好了程序的运行位 置 咱们是直接把程序文件写入了相应的地址里面. 2.如何制作bin 文件 2.1 概述 在做升级之前,上面的flash 存储位置是事先规定好的 stm32 的flash 地址是从0开始,默认 程序的时候都是把程序文件从0x0

文档评论(0)

183****7931 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档