发布日期:2024-07-18 15:30 点击次数:142 |
咱们使用STM32芯片建造居品时,偶而需要自带升级功能。因此,建造时除了需要准备基本的应用代码外APP开发业务,还得准备一套升级代码。时时称前者为IAP代码或BOOT代码,后者称之为APP代码。一般来讲,这两套代码基于两个工程完成并生成相应的施行文献,初度烧录时往往但愿两套代码团结在沿途进行烧录,这么肤浅、省事。
这里就该需求,诓骗ST提供的用具软件STLINKUtility来示范下团结经由。
因为仅仅模拟两个不同地址区的文献团结,是以这里的两个工程代码确凿不异,也很浮松,仅仅存放的地址空间不同。
我使用的建造板是STM32L476RGNucleo板。代码功能齐是禁受按键,每收到1次按键看成,就打印出目下方位使命区。当收到3次按键后则从现时使命区跳往另一使命区。
两个工程的内存及中断矢量安排如下两幅图:
除了上头的设立各异外,两个工程的代码确凿不异,仅仅输出教唆有别。
这里使用的是IAR IDE环境,基于上头两个工程折柳生成IAP.HEX和APP.HEX两个施行文献。
然后开放STLINKUtility用具,相接建造板,将芯片擦除干净。接着,APP开发业务运转烧录,先烧IAP.hex文献。【其实先烧录谁无所谓】
之后,将现时IAP.HEX文献关闭,再调APP.hex文献进行烧录。详确此次烧录时礼聘跳过FLASH的擦除操作,因为刚运转也曾全擦,况兼前边也曾写了IAP代码。
到此,两个工程的代码齐写进芯片了。
当今,先在VIEW菜单里点击下Device Memory,然后在File菜单里礼聘文献另存操作。你礼聘HEX或BIN技术齐不错。
使用BIN技术的话详确烧录时给出正确的肇端地址。这个另存出来的文献即是团结过的文献了,不错平直拿来烧录。
底下是我基于团结文献烧录的测试界限。跟实践预期恶果不异,每按键1次作念1次输出,3次后跳转,这么往返操作。
操作很浮松,也很肤浅。之前偶尔也会有东谈主问起这个话题。此次整理本文作念考证时,界限在作念团结时老是失败。因为之前有考证过,降服这个操作是可行的。自后怀疑可能是我电脑系统方面的原因,换成亲里那台电脑测试起来就很顺畅,来回考证屡次齐泛泛。看来,我那台电脑该重装或换掉了。