历史上的今天
返回首页

历史上的今天

今天是:2025年08月12日(星期二)

正在发生

2021年08月12日 | STM32 | OpenBLT Bootloader的使用分享

2021-08-12 来源:eefocus

OpenBLT 简介

OpenBLT是一种开源引导加载程序,可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新,而无需专用的调试器硬件。

官网介绍页:

https://www.feaser.com/openblt/doku.php?id=homepage

源码下载页:

https://sourceforge.net/projects/openblt/files/

关于STM32的IAP、ISP、BootLoader相关的内容见往期笔记:

《STM32串口IAP分享》

《STM32的ISP下载的原理是什么呢?》


OpenBLT实践

下载源码,得到:

我们拿个ARMCM0_STM32G0_Nucleo_G071RB_Keil来跑跑看:

1、首先,编译OpenBLT BootLoader并使用ST-LINK下载OpenBLT BootLoader程序。OpenBLT BootLoader工程中我们需要可以关注如下信息:

boot程序的存放的flash的起始地址及最大size为8KB。实际占用为6.85kB:

所以这个size可以根据实际需要调整,稍微留出足够余量给boot程序即可。剩下的全给app。


2、编译APP demo程序。我们需要注意APP工程的如下信息:

APP的flash起始地址为0x8002800,下面使用MicroBoot工具下载app程序就是往这个地址写入app程序。


该app程序默认编译生成.axf后缀的调试文件,再经过formelf工具生成对应的.srec后缀的文件,这个文件就是我们要下载到板子里运行的可执行文件。这个后缀文件我们不经常看到。

.srec后缀的文件是一种FLASH格式的编程文件,是Motorola公司制定的一种烧写格式标准。SREC文件是描述地址与数据的文件。

其内容如:

(ps:关于hex文件、bin文件、axf文件的区别可移步至:《一文看懂hex文件、bin文件、axf文件的区别》)

3、使用openbltHost路径下的MicroBoot.exe工具下载.srec后缀的APP可执行程序:

然后点Browser去openbltTargetDemoARMCM0_STM32G0_Nucleo_G071RB_KeilProgbin路径下查找.srec后缀的文件,即可自动下载到板子里:

可以看到flash编程地址(下载地址)就是0x8002000地址。板子led闪烁,成功:

OpenBLT要点分析

无boot程序时,app程序存放于0x08000000,向量表也是位于这个地址。当存在有boot程序,我们的app程序在修改其起始地址的同时也要同步修改向量表地址。


第一种方法是修改SystemInit函数:

第二种方法是修改.sct文件。demo使用的就是第二种方法:

所以,如果我们的boot程序过大,在调整boot程序的预留空间大小的同时也要同步修改app这边的这些信息。


还需要注意的细节就是,boot程序的预留空间大小应为目标芯片扇区大小的整数倍,因为这是最小擦除单位。


如STM32G0系列的扇区大小为0x800(2 KB),boot程序的预留空间大小为0x2000(8KB),占4个扇区的大小。

推荐阅读

史海拾趣

ERA Transformers公司的发展小趣事

在电子行业中,ERA Transformers公司以其开创性的技术而闻名。该公司专注于研发和生产高效的电子变压器,以满足不断增长的电子设备需求。在一次研发过程中,公司工程师们面临了一个重大挑战:如何提高变压器的能效和稳定性。经过数月的深入研究与反复试验,他们终于开发出了一种新型的高效能变压器,该变压器采用了先进的材料和独特的设计,显著提高了能效和稳定性,这一创新技术的突破使得ERA Transformers公司在电子行业中崭露头角。

Advanced Illumination Inc公司的发展小趣事

品质是Ai公司发展的生命线。公司始终将品质管理放在首位,建立了严格的质量管理体系和检验流程。从原材料采购到产品出厂的每一个环节,公司都进行严格把控,确保产品的品质和性能达到最高标准。同时,公司还不断收集客户反馈,对产品进行持续改进和优化,以满足客户不断变化的需求。

General Microcircuits Corp公司的发展小趣事
在电桥和放大器电路中,使用高精度、低温度系数的电阻来减小因电阻变化引起的直流偏移。
Bestar Electric公司的发展小趣事

随着全球市场的不断变化和消费者需求的多样化,Bestar Electric开始加快国际化布局。公司通过在海外设立分支机构、开展国际合作等方式,进一步拓展国际市场。同时,公司还关注未来发展趋势,积极布局新兴领域,如人工智能、5G通信等,为公司的未来发展奠定坚实基础。

这些故事只是对电子行业公司发展历程的概括性描述,并不特指Bestar Electric公司的具体经历。每个公司的发展都有其独特之处,需要具体分析和了解。

ETA Electric Industry Co Ltd公司的发展小趣事

在市场不断拓展的同时,ETA Electric Industry Co Ltd非常注重产品质量管理。他们引入了国际先进的质量管理体系,并严格执行每一项质量控制标准。公司还设立了专门的质量检测部门,对每一批出厂的产品进行严格把关。这种对质量的极致追求,赢得了客户的广泛认可和信赖。

E-Z-HOOK公司的发展小趣事

随着全球化进程的加速推进,E-Z-HOOK公司开始积极拓展国际市场。他们通过参加国际展会、建立海外销售网络等方式,将产品推向全球各地。同时,公司还积极寻求与国际知名企业的合作机会,共同开发新技术和新产品。这些努力使得E-Z-HOOK公司的品牌影响力逐渐扩大,在全球范围内树立了良好的声誉和形象。

问答坊 | AI 解惑

说说模拟设计那点事儿和那几本书

我学习模电有一段时间了,向大家推荐几本自认为的\"宝典\",谈下自己使用它们的感受以及在学习模电过程中的体会,供后来者参考: 1. 拉扎维的《模拟CMOS集成电路设计》,我们研二模电课的教材,汪宁老师把这门课讲得可圈可点。当时没意识到有其他 ...…

查看全部问答>

LED寿命 试验方法

replyreload += \',\' + 377090;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

无法收到PBT_TRANSITION消息

在WinCE6下一个应用程序里,使用RequestPowerNotifications(hPowerNotificationMsgs, POWER_NOTIFY_ALL); 去请求power状态改变的通知。可是从开始菜单进入suspend的时候并没有收到任何power消息,但是按Power Button从suspend状态resume回来的时 ...…

查看全部问答>

RAS拨号监视消息

如何在RAS异步拨号时,得到当前拨号的状态,我写的消息和回调函数都可以在PC机上用,但在CE上都不能用(CE只支持消息),代码如下:消息的、 先注册了消息: const   UINT   WM_RASEVENT   =   ::Regist ...…

查看全部问答>

u-boot 的 配置问题.(从NAND启动)

提示的是 bad crc or nand 在网上查了下,应该是env的问题!麻烦各位有经验的朋友,说一下具体怎么改! 我用的是mini2440,page size应该是2048的,但是u-boot启动输出的还是512~已经进行过CONFIG_了…

查看全部问答>

VxWorks嵌入式国际认证培训班

        为满足各大企业及研发机构对嵌入式操作系统VxWorks人才需求,顺应广大学员学习嵌入式操作系统、获得国际认证证书、增强就业竞争力、取得高薪职位的要求,上海双实科技与上海张江信息技术专修学院继续合作举办VxWorks嵌 ...…

查看全部问答>

2407里面的WDCR寄存器是做什么用的呀??

2407里面的WDCR寄存器是做什么用的呀?? 一般如何设置它呢? …

查看全部问答>

为地下停车场能耗做做“减法”

                             ——介绍“按需照明”理念的实际应用 近年来,高层建筑、商业 ...…

查看全部问答>

【视频】教你学会使用塔式调试工具--K70+LCD

$(\'flv_JTZ\').innerHTML=(AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', \'http://player.youku.com/player.php/sid/XNTk4NDAwNjQ4/v.swf\', \'qu ...…

查看全部问答>

用BeagleBone Black做的掌上游戏机

自从米尔顿布拉德利的第一台使用可更换式游戏卡盒的Microvision掌上游戏机于1979年发布以后,已经过了35年的时间。从那时开始,掌上游戏机演变出了我们今天普遍使用的系统,比如任天堂3DS XL,PlayStation Vista和SNK的Neo-Geo X。之后不久任天堂又 ...…

查看全部问答>