IAP升级(STM32)

IAP作用简述:将要升级的程序bin文件通过串口发送给STM32,STM32接收后存储到FLASH或者SRAM,用户通过事件(按键等)触发(也可延时自动触发)后将升级

文件夹作用:

Bootloader先烧录到stm32,作为引导接受串口bin文件升级包,以及跳转到用户程序执行

IAP_FLASH_LED工程用作生成存储到FLASH地址段内的用户程序bin文件,用于串口发送给STM32用作IAP升级实验

IAP_SRAM_LED工程用作生成存储到SRAM地址段内的用户程序bin文件,用于串口发送给STM32用作IAP升级实验

两部分设计,bootloader、APP代码设计,bootloader用于检查APP区代码是否需要更新,以及跳转到APP区执行APP程序

Bootloader设计

Bootloader程序中根据芯片启动流程,将用户执行程序存放在地址:0x08010000

//第一个应用程序起始地址(存放在FLASH)

制作APP用户程序的.bin文件

FLASH:

要制作flash区的用户程序,首先选择IROM1更改start的地址为0x810000(不重叠于bootloader区占用地址0x800000+size)

同时在程序初始化前加上跳转指令,跳转到FLASH指定的地址(0x08010000)

接下来继续编写需要存储在FLASH的用户程序。

SRAM

需要用到keil MDK自带的执行文件将程序编译构建生成的.axf文件转化为.bin文件

首先在keil MDK软件路径下找到fromelf.exe执行程序,复制其地址,点击keil魔术棒图标

选择User下,勾选Run #1,在横线内填入 刚才复制fromelf.exe执行程序的本地路径,在结尾加上

--bin -o  要工程生成的.bin文件路径 工程编译构建生成的.axf路径

完整为:

fromelf.exe执行程序的本地路径  --bin -o    要工程生成的.bin文件路径 工程编译构建生成的.axf路径

例如我的路径为D:\keil_5.39\ARM\ARMCC\bin\fromelf.exe,工程文件名为keil_project则完整为:

D:\keil_5.39\ARM\ARMCC\bin\fromelf.exe  --bin --output .\Objects\keil_project.bin .\Objects\keil_project.axf

勾选Run #1,填入脚本,目的是编译构建结束时将.axf文件转化为.bin文件

IAP升级(STM32)的更多相关文章

  1. STM32 Bootloader基于ymodem传输协议串口IAP升级详解

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...

  2. STM32 IAP 升级官方资料汇总

    整理了一下SMT32标准外设库进行IAP升级的官方demo: 标准库版本 STM32F10xxx in-application programming using the USART (AN2557) ...

  3. STM32IAP升级-----编写IAP升级遇到的问题总结

    IAP的源代码等资料我上传了,压缩包内有12个文件.,http://download.csdn.net/detail/f907279313/7524849(要积分的辛苦收集的你们就给点积分吧) 还有还 ...

  4. CH579(Cortex-M0)网络IAP升级介绍及问题解答--(持续更新) 网络升级

    CH579网络IAP升级的源码可以从码云(Gitee)上git clone下来. 码云地址:https://gitee.com/maji19971221/wch-ch57x 以下是一个朋友问的几个常见 ...

  5. STM32 IAP升级

    STM32 IAP在线升级,用Jlink设置读保护后前5K字节是默认加了写保护的,导致IAP升级时擦除和写入FLASH不成功,可以做两个boot,前5k为第一个boot程序,上电时负责跳转到APP还是 ...

  6. STM32 IAP 升级功能

    IAP In Application Programming 可通过USB,CAN,UART,I2C,SPI等接口实现 IAP流程 Bootloader程序:接收升级程序,更新到flash指定地址:跳 ...

  7. 【转】stm32 IAP升级程序

      一.什么是IAP,为什么要IAP       IAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经 ...

  8. 【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. BIN升级文件产生方法: 1.编 ...

  9. 【iCore1S 双核心板_ARM】例程十九:SD_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...

  10. 【iCore4 双核心板_ARM】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32

    实验现象及操作说明: 1.本例程共有两个代码包,APP和IAP,IAP程序功能实现将APP程序升级至STM32中. 2.直接上电或烧写程序将执行升级的APP应用程序. 3.按下按键上电或写程序将进行升 ...

随机推荐

  1. 【C#基础】Dynamic类型和正确用法

    前言 Dynamic类型是C#4.0中引入的新类型,它允许其操作掠过编译器类型检查,而在运行时处理. 编程语言有时可以划分为静态类型化语言和动态类型化语言.C#和Java经常被认为是静态化类型的语言, ...

  2. docker创建Tomcat

    安装docker 查找tomcat docker search tomcat 下载镜像 docker pull tomcat 查看下载的镜像 docker images 运行Tomcat docker ...

  3. idea properties文件乱码解决

    ​java文件是好的,但是遇到properties文件,默认就成了iso制式乱码了. 虽说不影响程序执行,但是看起来真的让人心烦. 问题点是出在properties文件是GBK的,需要单独设置一下. ...

  4. MYSQL8以上修改初始root密码的方法

    很遗憾的告诉你,你网上查到的各种改my.enf ,各种update,在新版MYSQL中,统统失效. 解决方法,如下: 1. [root@yisu-5f735cb14d716 ~]# service m ...

  5. 部署SkyWalking

    SkyWalking部署说明 二进制包部署 1.下载地址 https://dlcdn.apache.org/skywalking/9.4.0/apache-skywalking-apm-9.4.0.t ...

  6. docker容器间互相访问 docker bridge网络

    方式一.虚拟ip访问安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问. [root@33fcf82ab4dd / ...

  7. gdb 初次运行卡住 Starting program: [New Thread 0x1103 of process 843]

    安装完后gdb一般会有提示: ==> gdbgdb requires special privileges to access Mach ports.You will need to codes ...

  8. 实时社群技术专题(一):支持百万人超级群聊,一文读懂社群产品Discord

    本文由腾讯产品体验设计师volihuang分享,原题"千万级增长,实时社交产品Discord拆解",本文收录时有内容修订和大量排版优化. 1.引言 对于大多数人而言,对即时通讯IM ...

  9. 飞书lark机器人 自动化发版

    飞书lark机器人 自动化发版 #1 介绍 开发飞书机器人接收消息并调用构建接口, 实现自动化发版 发送指令 -> 机器人接收指令 -> 调用jenkins-job远程构建与部署 jenk ...

  10. Solution -「JZOJ #5457」项链

    \(\mathscr{Description}\)   Private link.   给定一条有 \(n\) 个点的圆环和 \(m\) 中颜色, 求在位置旋转, 位置翻转, 颜色旋转等价的意义下, ...