STM32F103 串口-IAP程序升级】的更多相关文章

STM32F103 串口-IAP程序升级 通常情况下我们给STM32系列的单片机烧录程序文件的时候,使用SWD.J-link或者通过设置BOOT引脚后,使用串口进行程序下载,这样的方式直接一次性将程序文件下载到单片机的flash中,比较适合绝大部分的应用.但是有些应用中产品装配完成后,下载口不便引出的情况下,或者是某些设备需要具有远程更新程序情况下,使用串口IAP的方式将会更加便捷. 一般我们常见的51单片机内部的flash空间,只能使用下载器进行烧录程序.芯片自身无法擦写内部flash空间.这…
起因: 串口IAP升级在正点原子的例程中有讲解,正点原子的方法是:在RAM中开辟一个120K的数据空间,用来存放bin文件,bin文件通过串口一次性发送到单片机,然后再实现程序的跳转.但是这种方法在实际项目中并不实用,因为没用文件校验,不能保证bin文件的完整性,如果贸然跳转,将会是设备陷入到永远无法正常工作的状态,除非返厂,重新烧写程序: 因为项目需要,但是又不想自己写上位机(偷懒),因此就是用成熟软件自带Ymodem协议进行数据传输. Ymodem协议简介: 参考:https://blog.…
一.IAP简介 IAP是应用编程,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级,后续产品发布后,更新程序我只需要把.bin文件通过串口发送给芯片就可以执行更 新,很方便产品的维护工作.对于应用IAP的项目,整个项目需要有两个项目的代码,第一个项目程序不执行正常的功能,通过串口或者USB等通信来接收对第二个项目代码,并且执行更新第二 部分的代码,称这个程序为Bootloader程序,第二个项目的程序是我们产品要实现的功能程序,即产品功能程序.针对我的工程项目,当芯…
1. IAP(bootloader)程序 1.1 内部Flash地址分配 /* Start of the Flash address */ #define STM32_FLASH_BASE 0x08000000 /* End of the Flash address */ #define STM32_FLASH_END_ADDRESS 0x081FFFFF //Flash Size 2MB /* Define the IAP application size */ #define IAP_FLA…
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 2.3 Keil工程IAP的相关设置 2.3.1 修改Flash地址 2.3.2 使用自己的链接脚本 2.3.3 下载固件 3 Application 3.1 启动流程 3.2 IAP中的引导部分 3.3 关于 VTOR 3.4 Keil工程设置 3.4.1 Flash地址设置 3.4.2 hex2…
最近在面试的时候遇到一个关于IAP远程程序升级的问题,由于之前所做的项目没有涉及到远程升级需求,当时一脸懵呆,不过回答的还是不错的,今天针对STM32F103系列调试了IAP的程序,这里做一下小结,如有不妥的地方,欢迎大家及时 提出宝贵建议. 之前网上有很多关于IAP远程升级的讲解,个人觉得有一篇帖子写的非常好, http://m.blog.csdn.net/u013165704/article/details/72828249大家可以先看一下这篇帖子,这里就不在重复,正所谓"站在巨人的肩膀上,…
源:http://blog.csdn.net/yx_l128125/article/details/12992773 (扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP  再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发) 一.在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号: startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F1…
STM32的IAP功能确实方便,以前对此如何实现有所了解,但是一直没去测试,这两天来练了下,可谓困难重重,搞了两天问题也一一解决,下面做些简要的笔记 IAP就是在线应用编程,方便程序升级,可以不用打开产品,直接通过串口升级,那么就需要一个引导程序(大神们喜欢称bootload),一个APP程序(实际产品的工作程序) 减小测试难度,我设计了3个程序,一个bootload程序,一个LED闪烁程序,一个KEY+LED点动程序,我的目的就是用两个不一样的APP程序,互相升级,方便验证结果 我手里的开发板…
什么是IAP? IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级. 在重新编程过程中可以使用任意类型的通信协议,如UART.I2S.SPI等.这篇笔记分享的是使用UART方式IAP. 串口IAP实验 先理一理流程(本实验是以STM32F103ZET6为例): 1.实验说明 做这个实验需要准备两个keil工程,一个工程用…
  (扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP  再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后发) 一.在进入主题之前我们先了解一些必要的基础知识----stm32系列芯片的种类和型号: startup_stm32f10x_cl.s 互联型的器件,STM32F105xx,STM32F107xx startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,S…