【云隐】STM32F103C8T6实现串口IAP方式升级固件
首先下载官方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方式升级固件相关推荐
- 电子产品如何使用IAP方式升级程序
目录 1.ICP.ISP和IAP的概念 2.IAP升级程序的原理 3.IAP升级程序的流程 4.IAR环境下IAP的实现 4.1.BootLoader程序设计 4.2.User Application ...
- STM32F103/429串口IAP+Ymodem升级
起因: 串口IAP升级在正点原子的例程中有讲解,正点原子的方法是:在RAM中开辟一个120K的数据空间,用来存放bin文件,bin文件通过串口一次性发送到单片机,然后再实现程序的跳转.但是这种方法在实 ...
- MT7628学习笔记(30)——web方式升级固件
1.查询获取到的IP地址 在开发板终端执行以下命令: ifconfig 网卡名称解释 apcli0 是无线网卡的.eth0 或者 eth0.2 是有线网卡的地址. 2.输入IP地址进入web界面 输入 ...
- STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级
STM32 CUbeIDE 使用Ymodem协议进行串口IAP升级 1.Ymodem协议简介 2.Boodload程序 2.1 传输32K限制解决 3.APP程序 4.升级测试 5.工程文件下载 ...
- STM32F429实现USB通过IAP在线升级
1.目标 1.实现STM32对U盘文件的读取. 2.实现STM32拓展外部SDRAM. 3.实现STM32拓展外部Flash. 4.实现内存管理. 5.实现Fatfs文件系统,读写U盘和外部Flash ...
- STM32 10个工程篇:1.IAP远程升级(一)
清晨一大早起来开始撰写STM32 10个例程篇的第一章即串口IAP远程升级,虽然网络上有很多免费和付费的STM32教程,但是仍然不断地说服自己沉住气.静下心写一份独一无二的,这份独一无二中也凝聚了一名 ...
- gcc编译-hal库-stm32f4xx串口IAP升级
gcc编译-hal库-stm32f4xx串口IAP升级 gcc编译hal库方式实现STM32F4系列芯片IAP升级 1.Bootloader程序: 调用iap_load_app函数即可,输入参数为ap ...
- STM32F103C8T6核心开发板下,采用串口DMA方式向上位机连续发送数据的实例详解
STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据 文章目录 STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据 前言 一.DMA应用初步 ...
- CRC校验原理及STM32 IAP在线升级程序
CRC校验原理: 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据 ...
最新文章
- 【图解】2020年(下)软考准考证打印入口及注意事项
- python列表求平均值_python与统计概率思维
- 创建调用查询删除存储过程语法
- INSTALL_FAILED_INVALID_APK: Split lib_slice_X_apk was defined multiple times异常
- 谈工作没兴趣,空谈都有兴趣
- 看翁恺〈java语言〉视频有感
- 小米随身wifi驱动linux驱动下载,小米随身无线wifi电脑驱动下载|小米随身wifi驱动 v2.5 官方版 - 软件下载 - 绿茶软件园|33LC.com...
- 服务器u盘pe制作,u盘winpe启动盘制作
- 酷派大神F1联通版(8927W)刷MIUI 7,打造方便父母使用的老人机
- mysql 创建 unique key_MySQL-创建表时一起使用时,“ PRIMARY KEY”,“ UNIQUE KEY”和“ KEY”的含义...
- IoT上的缓冲区溢出漏洞
- 操作系统——MFC实现进程创建和通信4
- vue 校验表单报错:model is required for validate to wor
- 应用程序无法正常启动(0xc000007b)
- 领导力专题︱如何培养与提升领导力
- RaspberryPi+OneNET MQTT方式 数据上传和命令下发
- fckeditor上传突破_方法
- 如何做分销网站的关键词研究
- 传奇游戏源码 Linux版本 传奇源码 Linux版 三端源码和搭建, 然后打包生成APP
- Photoshop文字之——打造闪动电子文字特效
热门文章
- Docker网络和服务发现
- 中年职场危机,这是我看过最靠谱的建议
- Git :LF will be replaced by CRLF in readme.txt的原因与解决方案
- Java面向对象基础整理
- Android --- 在Andoird应用程序中打开相册却没有图片(夜神模拟器)怎么办?
- mysql varchar(max)_等价于MySQL中的varchar(max)?
- java comparable排序_Java使用Comparable解决排序问题
- AI:百度飞桨EasyDL多门视频课程,手把手教你如何定制高精度AI模型
- Dataset之BDD100K:BDD100K数据集的简介、下载、使用方法之详细攻略
- python中的with