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

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

3天内不再提示

IAP代码和APP代码合并烧录过程示范

茶话MCU 来源:茶话MCU 作者:茶话MCU 2021-01-02 18:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们使用STM32芯片开发产品时,有时需要自带升级功能。因此,开发时除了需要准备基本的应用代码外,还得准备一套升级代码。通常称前者为IAP代码或BOOT代码,后者称之为APP代码。一般来讲,这两套代码基于两个工程完成并生成相应的执行文件,首次烧录时往往希望两套代码合并在一起进行烧录,这样方便、省事。

这里就该需求,利用ST提供的工具软件STLINKUtility来示范下合并过程。

因为只是模拟两个不同地址区的文件合并,所以这里的两个工程代码几乎一样,也很简单,只是存放的地址空间不同。

我使用的开发板是STM32L476RGNucleo板。代码功能都是接受按键,每收到1次按键动作,就打印出目前所在工作区。当收到3次按键后则从当前工作区跳往另一工作区。

两个工程的内存及中断矢量安排如下两幅图:

e43ef9b2-445e-11eb-8b86-12bb97331649.png

e488793e-445e-11eb-8b86-12bb97331649.png

除了上面的配置差异外,两个工程的代码几乎一样,只是输出提示有别。

e4cd8632-445e-11eb-8b86-12bb97331649.png

这里使用的是IAR IDE环境,基于上面两个工程分别生成IAP.HEX和APP.HEX两个执行文件。

然后打开STLINKUtility工具,连接开发板,将芯片擦除干净。接着,开始烧录,先烧IAP.hex文件。【其实先烧录谁无所谓】

e528d3f2-445e-11eb-8b86-12bb97331649.png

之后,将当前IAP.HEX文件关闭,再调APP.hex文件进行烧录。注意这次烧录时选择跳过FLASH的擦除操作,因为刚开始已经全擦,而且前面已经写了IAP代码。

e5656fce-445e-11eb-8b86-12bb97331649.png

到此,两个工程的代码都写进芯片了。

现在,先在VIEW菜单里点击下Device Memory,然后在File菜单里选择文件另存操作。你选择HEX或BIN格式都可以。

e59cc6a4-445e-11eb-8b86-12bb97331649.png

使用BIN格式的话注意烧录时给出正确的起始地址。这个另存出来的文件就是合并过的文件了,可以直接拿来烧录。

下面是我基于合并文件烧录的测试结果。跟实际预期效果一样,每按键1次做1次输出,3次后跳转,这样往返操作。

e61d1778-445e-11eb-8b86-12bb97331649.png

操作很简单,也很方便。之前偶尔也会有人问起这个话题。这次整理本文做验证时,结果在做合并时总是失败。因为之前有验证过,坚信这个操作是可行的。后来怀疑可能是我电脑系统方面的原因,换成家里那台电脑测试起来就很顺畅,来回验证多次都正常。看来,我那台电脑该重装或换掉了。

原文标题:IAP代码与APP代码合并烧录示例

文章出处:【微信公众号:ST MCU 信息交流】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    2313

    文章

    11191

    浏览量

    374580
  • IAP
    IAP
    +关注

    关注

    2

    文章

    169

    浏览量

    26178
  • 代码
    +关注

    关注

    30

    文章

    4976

    浏览量

    74370

原文标题:IAP代码与APP代码合并烧录示例

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    新手必看:一文读懂什么是芯片烧录及程序下载全过程

    嵌入式开发中的烧录、下载、编程本质都是将二进制程序写入芯片非易失性存储器。主要分离线与在线烧录,主流技术有 ICP、ISP、IAP,分别适配调试、批量烧录与远程升级。标准流程为擦除、编
    的头像 发表于 04-09 14:53 197次阅读
    新手必看:一文读懂什么是芯片<b class='flag-5'>烧录</b>及程序下载全<b class='flag-5'>过程</b>

    IC烧录总是出错?可能是烧录座不匹配

    深夜产线芯片烧录报错,排查代码、电源、烧录器后仍无果,不起眼的烧录座往往是症结所在。烧录座常因被当作 “标准件” 而被低估,封装迭代下,物理
    的头像 发表于 02-04 11:13 500次阅读

    如何正确配置AG32 MCU,实现FLASH或者代码加密?

    功能主要包括两种方式:Lock fash(锁定Flash)和代码加密(Code Encryption),它们可以在烧录过程中通过特定工具和配置启用。 方式一:Lockflash Lockflash
    发表于 01-22 15:01

    芯片编程器使用指南:如何避免芯片烧录过程中的常见错误

    芯片烧录失败多源于细节疏漏,使用编程器需规避常见错误。首要确保芯片与编程器适配,核查封装、电压协议并验证芯片 ID;重视环境与连接,做好静电防护、保障电源稳定及触点清洁;规范文件流程,严格版本核对
    的头像 发表于 12-30 10:59 622次阅读

    芯片烧录原理是什么?一文读懂芯片程序烧录过程

    芯片烧录是向芯片存储单元写入二进制代码的精密操作,核心是借烧录器以特定电压和时序改变浮栅晶体管电荷状态。全过程分五步:建立连接核对芯片 ID,擦除存储器原有数据,按协议将程序文件逐位写
    的头像 发表于 12-25 14:20 830次阅读

    如何给Gokit3烧录程序(MCU+FlyMcu版)

    高效地将程序上传至Gokit3。值得一提的是,Gokit3底板已集成了CP2102GMR型号的USB转串口芯片,这为整个烧录过程提供了便利,使得与计算机的连接更加
    的头像 发表于 12-17 18:46 577次阅读
    如何给Gokit3<b class='flag-5'>烧录</b>程序(MCU+FlyMcu版)

    快速上手!带你用LVGL工具完成乐鑫科技ESP32-S3 2.8寸串口屏UI开发!代码完全开源!

    还在为嵌入式显示界面的开发而烦恼吗?配置环境复杂、移植LVGL困难、烧录过程频频出错——这些问题我们都懂。今天,我们将手把手带你走完启明云端ESP32-S32.8寸串口屏的完整开发流程,让你快速实现
    的头像 发表于 10-30 18:04 2393次阅读
    快速上手!带你用LVGL工具完成乐鑫科技ESP32-S3 2.8寸串口屏UI开发!<b class='flag-5'>代码</b>完全开源!

    ota升级完成后,bootloader没有将download区的新代码搬运到app区?

    ota升级完成后,bootloader没有把download区的新固件搬运到app区,版本也改了,可以保证是和上次的版本不一样,也没有打印任何错误的信息,可以明确的是它能正确把固件烧录
    发表于 09-29 10:04

    AT32 MCU如何使用IAP

    协议(如自定义协议)与上位机软件通信 。 App工程设置 :App工程则是实际的功能代码工程。在IAP过程中,这部分
    发表于 08-08 17:13

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智云平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智云平台,烧录ESP8266固件,移植
    的头像 发表于 07-15 18:54 1392次阅读
    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、<b class='flag-5'>代码</b>生成、<b class='flag-5'>代码</b>移植)

    AT32 IAP using the USART

    ,并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到 IAP 的 main 函数,如图标号①所示;在执行完 IAP 以后(即将新的 APP 代码写入 AT32 的 FLASH
    发表于 07-11 10:51

    机智云配网教程 第二期:生成MCU代码包与调试

    在上一期中,我们介绍了机智云GAgent固件的烧录过程,并在测试中完成了机智云开发者账号的注册及数据点的创建。接下来,我将继续为大家讲解如何生成MCU代码包。数据点创建登录机智云开发者中心,进入智能
    的头像 发表于 06-28 10:02 1025次阅读
    机智云配网教程 第二期:生成MCU<b class='flag-5'>代码</b>包与调试

    HarmonyOS 代码工坊的指尖开发,让 APP 开发所见即所得

    沙盘被直接搬入了移动设备本身。眼尖的开发者应该已经发现,最近华为应用市场“应用尝鲜”专区里,上架了一款名为“HarmonyOS 代码工坊”的新应用,下载量持续攀升。 开发者只需要下载“HarmonyOS 代码工坊”,就可以看到,这款 A
    的头像 发表于 06-24 12:08 932次阅读
    HarmonyOS <b class='flag-5'>代码</b>工坊的指尖开发,让 <b class='flag-5'>APP</b> 开发所见即所得

    程序烧录原理

    ,主要用于产品的远程升级。与ISP类似,IAP也可以在程序运行过程中实现程序的自我更新。IAP程序通常存放在芯片的特定区域,通过中断向量表的映射来实现程序的跳转和更新。 其他烧录方式
    发表于 06-17 11:29

    OLED代码分享

    OLED代码
    发表于 04-29 17:04 2次下载