0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

APM32F103_IAP的简单实现_固件传输

Geehy极海半导体 来源:21ic 作者:21ic 2022-12-07 14:50 次阅读

前言

最近拿到了一块APM32F103VC的MINI开发板,在学习了一段时间后发现其有非常丰富的外设资源,主频能达到96Mhz。最近在项目中使用到了IAP(In Application Programming)功能,特来评估一下APM32F103的IAP实现方式。

在应用编程IAP(In-Application Programming)是应用在Flash程序存储器的一种编程模式。它可以在应用程序正常运行的情况下,通过调用特定的IAP程序对另外一段程序Flash空间进行读/写操作,甚至可以控制对某段、某页甚至某个字节的读/写操作,这为数据存储和固件的现场升级带来了更大的灵活性。

话接上回,我们学习了如何进行对目标Flash进行编程后,基本已经完成了IAP的知识储备,随时可以完成IAP功能。打个比方,会Flash编程,就是会向一个池塘里面倒水了,但是现在有一个问题,我们往池塘倒的水从哪里来?即我们的程序数据从那里给到我们。

那我们本章节就我们程序的来源以及处理的一些方式进行一起探讨。

1 “水”的来源

我们的固件可以保存在云端,也可以保存在我们的PC上。这个主要取决于我们的应用场景。若我们的产品主要在客户的手上,为了考虑客户的使用便捷性,将固件保存在云端,然后在一个合适的时间推送至我们的产品进行升级,这是一种方式。若考虑到产品的稳定性,那我们可以要求客户一定要在特定的场景下进行固件升级,如需要接入升级的主机设备(如PC),才能进行固件升级。

ea556510-75e5-11ed-8abf-dac502259ad0.png

2 承载“水”的“路径”

既然我们决定了我们程序的下发的源头,我们一般也会选择使用那种方式了传输我们的固件数据。就像运水到我们的池塘,是用空运还陆运还是海运等方式。如远程升级的方式可以选择以太网、WIFI、蓝牙等方式。若使用有线传输的方式我们可以选择USART、I2C、SPI、USB等。

升级方式的选择也受限于我们的主控MCU,如APM32F103VCT6就没有WIFI、蓝牙等功能,所以我们可以选择USART、I2C、SPI、USB等,若我们选择APM32F407/107我们也可以选择使用以太网。

3 运输“水”的方式

就像运水到我们池塘,我们选择使用陆运的方式后,依旧可以继续选择使用的是小汽车运,还是货车运。不同的运输方式会有不一样的要求,这就是我们选择传输固件的“协议”。

就比如我们选择使用USART的方式进行固件升级,那我们也可以选择使用Xmodem协议,还是Ymodem,或者是我们自创的协议。

而这个协议是保证我们固件传输数据的准确的。怎么说呢?比如带校验码、环回重复发送等功能。

4 小结

说了那么多,总结下来就是我们在IAP升级过程中,升级使用的通信接口通信协议也是我们需要关注的。一般而言,通信的接口限制我们的应用场景,通信协议是保证我们在IAP升级过程中固件数据准确的有力保证。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3587

    浏览量

    93585
  • 开发板
    +关注

    关注

    25

    文章

    4942

    浏览量

    97175
  • IAP
    IAP
    +关注

    关注

    2

    文章

    163

    浏览量

    24246

原文标题:APM32芯得 EP.14 | APM32F103_IAP的简单实现_固件传输

文章出处:【微信号:geehysemi,微信公众号:Geehy极海半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    APM805F应用于太阳能草坪灯升压芯片

    概述 APM805F 是一款高性能的太阳能草坪灯升压控制芯片,内部集成开关型驱动电路、光控开关、电池过放电保护电路、欠压关断锁定电路、肖特基二极管等。 APM805F 可以利用太阳能电池的能源来进行
    发表于 08-29 18:01

    第二章:RLM 适配 HZHY AI300G 的固件开发

    STM32F103 USB 转 LoRa 固件开发描述。RLM(Red LoRa Module)。
    的头像 发表于 07-30 16:41 251次阅读
    第二章:RLM 适配 HZHY AI300G 的<b class='flag-5'>固件</b>开发

    STM32F103xC,STM32F103xD,STM32F103xE中文资料

    电子发烧友网站提供《STM32F103xC,STM32F103xD,STM32F103xE中文资料.pdf》资料免费下载
    发表于 06-17 14:12 1次下载

    32位基于ARM核心的带512K字节闪存的微控制器STM32F103xC, STM32F103xD, STM32F103xE数据手册

    电子发烧友网站提供《32位基于ARM核心的带512K字节闪存的微控制器STM32F103xC, STM32F103xD, STM32F103xE数据手册.pdf》资料免费下载
    发表于 05-24 14:33 0次下载

    请问怎么基于stm32实现IAP功能?

    以下boot leader 是设想最简单的功能,就是跳转到下一块程序地址为0x08008000,截图: 然后APP是从0x0800 8000 开始的,也在网络上的教程更改了偏移,但是boot一跳转就卡死,不知道怎么实现IAP
    发表于 05-20 06:59

    芯海通用 MCU 应用笔记 :CS32F103 系列 MCU IAP 升级指南

    本应用笔记旨在帮助指导用户针对芯海 CORTEX-M3 MCU CS32F103 系列单片机 IAP 应用的快速开发。本应用笔记实现了 CAN 和 USART 两种接口方式来开发 IAP
    发表于 05-16 11:40

    STM32F1 IAP操作读保护选项字节设置,APP使用系统复位跳转后无法运行IAP的原因?

    最近调试一个程序,是基于STM32F1做的IAP,升级前后需要修改选项字节,FLASH_EraseOptionBytes函数内OB->RDP=RDP_Key语句实现读保护的解除,如果我
    发表于 05-13 08:09

    通过iap的方式对stm32f405进行升级,usb dfu数据传输出错的原因?

    想通过iap的方式对stm32f405进行升级,用usb传输 dfu格式; 在数据传输过程中,发现源文件和传到设备上的数据匹配不起来,有人遇到过吗??求助!!!! 是usb dfu
    发表于 04-28 08:56

    STM32F103RE只有挂调试器IAP程序才能正常跳转吗?

    最近在开发一款基于STM32F103RET6的产品,要求支持固件升级,目前是基于USART1的IAP,Toolchain是IAR。 IAP的程序是参考官方的例程做的,大体没变,只是BS
    发表于 04-25 07:03

    极海APM32F003F6U7芯片特性

    APM32F003F6U7车规级MCU,宽温幅、高精度、低温漂且极具性价比,是成本敏感型汽车应用的优质选择。
    的头像 发表于 04-15 12:39 799次阅读

    STM32F103能用U盘升级固件吗?

    STM32F103 能用U盘升级固件吗,如果有大侠用过,给指导一下操作方法
    发表于 04-12 07:46

    CKS32F4xx系列产品的串口IAP功能详解

    IAP(In Application Programming)即在应用编程,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升
    发表于 04-05 15:11 503次阅读
    CKS32<b class='flag-5'>F</b>4xx系列产品的串口<b class='flag-5'>IAP</b>功能详解

    stm32f1使用IAP升级后STemwin显示图片速度变慢的原因?

    我使用STM32F103VET6进行IAP升级。 现在将512K的flash划分为以下四个区域: 0x8000000——0x800B400的45K为bootloader区,存放IAP升级程序
    发表于 03-29 08:08

    STM32单片机实现固件在线升级(IAP

    1,固件升级方案综述单片机的固件升级方式有很多种。1、ICP:简单说就是在单片机开发时使用烧录器升级程序,比如使用J-Link烧录单片机程序。2、ISP:在单片机内部实现了基于通信接口
    的头像 发表于 12-16 08:00 5005次阅读
    STM32单片机<b class='flag-5'>实现</b><b class='flag-5'>固件</b>在线升级(<b class='flag-5'>IAP</b>)

    在GD32F103移植STM32F103代码

    使用相同FLASH和管脚数量相同的芯片,例如GDF103C8T6移植STM32F103C8T6程序。虽然两个款芯片的寄存器地址以及架构基本相同。但是需要注意的是GD32F10x主频是108兆,但是STM32
    的头像 发表于 12-15 13:37 1586次阅读
    在GD32<b class='flag-5'>F103</b>移植STM32<b class='flag-5'>F103</b>代码