STM32F407ZET6 IAP Ymodem 基于ST官网例程

1.简介

根据官网提供的串口升级IAP源码en.x-cube-iap-usart.zip,经修改后适用于F407系列芯片


2.运行环境

  • Windows10
  • STM32CubeMX Version 6.11.0
  • STM32CubeIDE Version 1.15.0
  • STM32F407ZET6 192KBytes Ram, 512KBytes Flash 168MHz Freq

3.基础知识

        (1).什么是IAP?

 IAP,即In Application Programming,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写。

        (2).STM32程序烧在哪?

默认情况下,使用的是ST原厂的BootLoader程序。使用ST-Link烧写时,通过跳线Boot0=1, Boot1=0,按下复位键,从系统存储器启动BootLoader,程序下载完成后跳线Boot0=0,Boot1=x,STM32从Flash中启动。


IAP升级需要自己编写Boot程序和App程序,将Boot程序和App程序烧写到Flash。Boot程序先启动,然后引导App程序启动,通过更换不同版本的App程序达到升级应用程序的效果。

        (3).Flash扇区分布

STM32F40x和F41x系列的Flash的扇区(Sector)分布是类似的,不同型号的Flash只是多几个扇区或者少几个扇区,up主用的STM32F407ZET6的Flash是512KB的,也就是最大寻址到Sector7 0x08060000 - 0x0806FFFF


4.BootLoader程序

BootLoader 可以理解为引导程序,它的主要作用是启动的App程序。换言之BootLoader 是一个程序,App也是一个程序, 只要设置正确的栈顶指针Stack Pointer,都是可以独立运行的。


经验证,CubeIDE编译后最简单的Booloader程序略大于16KBytes小于32KBytes,因此划分Sector 0 和 Sector 1 作为BootLoader程序的烧写区。


5.App程序

App程序是用户编写的逻辑运行程序,用于执行业务逻辑,不赘述。


划分Sector 2 和 Sector 3作为App程序的烧写区。本文章使用的是Demo程序,编译后的bin文件比较小,约18KBytes,Sector2+Sector3 = 16K+16K = 32K,完全够用。根据程序需要可划分更大的扇区或者划分出App1(备份)App2(升级)


APP bin文件生成


6.结果验证

        (1).SecureCRT基础设置
        (2).SecureCRT升级操作

7.源程序获取

        (1).官网IAP源程序
        (2).阿里云盘
        (3).其它

摸鱼时间,持续更新中...

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win10和STM32F407ZET6可以通过多种通信方式进行通信,其中常用的包括UART、SPI、I2C、USB等。 UART通信是最常用的一种通信方式。在STM32F407ZET6上,有多个UART口可供使用。你可以通过将STM32F407ZET6的UART口连接到计算机上的串口或USB转串口模块上,实现与计算机的通信。在Windows 10上,你需要安装串口驱动程序,然后使用串口调试工具(如TeraTerm、Putty等)来进行通信。 SPI通信是一种高速的串行通信方式,适合用于短距离高速通信。在STM32F407ZET6上,也有多个SPI口可供使用。你可以通过将STM32F407ZET6的SPI口连接到计算机上的SPI接口上,实现与计算机的通信。在Windows 10上,你需要使用专门的SPI通信库,如SPI库或者STM32CubeMX等来进行通信。 I2C通信是一种基于总线的串行通信方式,适合用于短距离低速通信。在STM32F407ZET6上,也有多个I2C口可供使用。你可以通过将STM32F407ZET6的I2C口连接到计算机上的I2C接口上,实现与计算机的通信。在Windows 10上,你需要使用专门的I2C通信库,如I2C库或者STM32CubeMX等来进行通信。 USB通信是一种高速的通信方式,适合用于大数据量的传输。在STM32F407ZET6上,有多个USB口可供使用。你可以通过将STM32F407ZET6的USB口连接到计算机上的USB接口上,实现与计算机的通信。在Windows 10上,你需要使用专门的USB通信库,如USB库或者STM32CubeMX等来进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值