首先下载官方STM32F10X的IAP Bootloader源码,STM32F10x_AN2557_FW_V3.3.0。

源码包地址:http://download.csdn.net/download/yunyin_link/10151170

用Keil4打开工程代码STM32F10x_AN2557_FW_V3.3.0\Project\IAP\MDK-ARM\IAP.uvproj

第一步:因为我们是用的STM32F103C8T6  是64K Flash,所以特别重要的是修改Flash宏,如下图示,改为:STM32F10X_MD。

代码中对不同规格的Flash做了处理。

第二步:限定一下IAP BootLoader的Flash大小,如下图示:为 0x2FFF。所以应用层代码在 0x8003000位置。

如上则完成了我们BOOT工程的修改,可以进行编译烧录了,烧入后,连接我们的串口助手,会显示如下信息:

如上图,输入1,则是进行串口程序写入,输入2,则是串口程序读出,输入3,则是执行应用层程序。

接下来,我们编译一个简单的APP测试闪灯程序,需要注意程序几个关键的配置操作。

第一步:设置APP程序的写入位置,从0x8003000开始:

第二步:在程序开始处,重新设置一下中断向量表的位置,如下图示:初始化到0x8003000位置。

第三步,设置编译出BIN文件,如下图示,添加上一段编译指令。

E:\Software\Keil4.74\ARM\ARMCC\bin\fromelf.exe --bin -o ./output/test.bin ./output/test.axf

如果自己的路径有问题的,需要自己做一下调整。以上完成了所有操作可以编译后,会看到 test.bin文件。

最后,我们利用串口助手,以ymodem协议发送该bin文件,实现升级。

第一步:输入1,进行文件发送状态

完成后如上图,发送“3”,检查开发板指示灯是否闪烁,闪烁即代表成功执行了应用程序。

接下来,我将利用esp8266实现云端升级stm32f103c8t6固件。

【云隐】STM32F103C8T6实现串口IAP方式升级固件相关推荐

  1. 电子产品如何使用IAP方式升级程序

    目录 1.ICP.ISP和IAP的概念 2.IAP升级程序的原理 3.IAP升级程序的流程 4.IAR环境下IAP的实现 4.1.BootLoader程序设计 4.2.User Application ...

  2. STM32F103/429串口IAP+Ymodem升级

    起因: 串口IAP升级在正点原子的例程中有讲解,正点原子的方法是:在RAM中开辟一个120K的数据空间,用来存放bin文件,bin文件通过串口一次性发送到单片机,然后再实现程序的跳转.但是这种方法在实 ...

  3. MT7628学习笔记(30)——web方式升级固件

    1.查询获取到的IP地址 在开发板终端执行以下命令: ifconfig 网卡名称解释 apcli0 是无线网卡的.eth0 或者 eth0.2 是有线网卡的地址. 2.输入IP地址进入web界面 输入 ...

  4. STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级

    STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级 1.Ymodem协议简介 2.Boodload程序 2.1 传输32K限制解决 3.APP程序 4.升级测试 5.工程文件下载    ...

  5. STM32F429实现USB通过IAP在线升级

    1.目标 1.实现STM32对U盘文件的读取. 2.实现STM32拓展外部SDRAM. 3.实现STM32拓展外部Flash. 4.实现内存管理. 5.实现Fatfs文件系统,读写U盘和外部Flash ...

  6. STM32 10个工程篇:1.IAP远程升级(一)

    清晨一大早起来开始撰写STM32 10个例程篇的第一章即串口IAP远程升级,虽然网络上有很多免费和付费的STM32教程,但是仍然不断地说服自己沉住气.静下心写一份独一无二的,这份独一无二中也凝聚了一名 ...

  7. gcc编译-hal库-stm32f4xx串口IAP升级

    gcc编译-hal库-stm32f4xx串口IAP升级 gcc编译hal库方式实现STM32F4系列芯片IAP升级 1.Bootloader程序: 调用iap_load_app函数即可,输入参数为ap ...

  8. STM32F103C8T6核心开发板下,采用串口DMA方式向上位机连续发送数据的实例详解

    STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据 文章目录 STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据 前言 一.DMA应用初步 ...

  9. CRC校验原理及STM32 IAP在线升级程序

    CRC校验原理: 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据 ...

最新文章

  1. 【图解】2020年(下)软考准考证打印入口及注意事项
  2. python列表求平均值_python与统计概率思维
  3. 创建调用查询删除存储过程语法
  4. INSTALL_FAILED_INVALID_APK: Split lib_slice_X_apk was defined multiple times异常
  5. 谈工作没兴趣,空谈都有兴趣
  6. 看翁恺〈java语言〉视频有感
  7. 小米随身wifi驱动linux驱动下载,小米随身无线wifi电脑驱动下载|小米随身wifi驱动 v2.5 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  8. 服务器u盘pe制作,u盘winpe启动盘制作
  9. 酷派大神F1联通版(8927W)刷MIUI 7,打造方便父母使用的老人机
  10. mysql 创建 unique key_MySQL-创建表时一起使用时,“ PRIMARY KEY”,“ UNIQUE KEY”和“ KEY”的含义...
  11. IoT上的缓冲区溢出漏洞
  12. 操作系统——MFC实现进程创建和通信4
  13. vue 校验表单报错:model is required for validate to wor
  14. 应用程序无法正常启动(0xc000007b)
  15. 领导力专题︱如何培养与提升领导力
  16. RaspberryPi+OneNET MQTT方式 数据上传和命令下发
  17. fckeditor上传突破_方法
  18. 如何做分销网站的关键词研究
  19. 传奇游戏源码 Linux版本 传奇源码 Linux版 三端源码和搭建, 然后打包生成APP
  20. Photoshop文字之——打造闪动电子文字特效

热门文章

  1. Docker网络和服务发现
  2. 中年职场危机,这是我看过最靠谱的建议
  3. Git :LF will be replaced by CRLF in readme.txt的原因与解决方案
  4. Java面向对象基础整理
  5. Android --- 在Andoird应用程序中打开相册却没有图片(夜神模拟器)怎么办?
  6. mysql varchar(max)_等价于MySQL中的varchar(max)?
  7. java comparable排序_Java使用Comparable解决排序问题
  8. AI:百度飞桨EasyDL多门视频课程,手把手教你如何定制高精度AI模型
  9. Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
  10. python中的with