项目交接里写着“芯片带有bootloader”,另一份说明却又列出一个应用固件文件。两者并不因为都与启动有关,就成了同一份代码。要读懂这句话,先看原资料说的是谁写入的程序、处于什么存储区域,以及它承担什么角色。
ST技术社区在2021年4月28日发布的STM32启动FAQ,在系统引导程序定义段说明:该程序由ST在生产时写入,位于内部系统存储区;其主要任务是通过可用的串行外设,把应用程序下载到内部Flash。[1] 本文只使用这一定义,不提供进入引导程序或下载固件的步骤。
同一篇FAQ另把主Flash列为用户固件通常所在的位置,并单独讨论从用户主Flash启动。因此,“系统引导程序已经存在”和“项目应用已经写入并验证”并不是等价描述。前一句说明厂家提供的代码对象,后一句则涉及具体项目的内容与实际进展;不能由前一句自动推出后一句。
这里还有一个容易混淆的词:项目自己维护的引导代码,也可能被笼统叫作bootloader。仅凭这个名字,无法认定它就是FAQ中的ST系统引导程序。本文据定义作出的资料整理是,把厂家系统代码、用户应用以及项目另行提供的代码名称分清楚,避免将文件的作者和用途互相替换。这个解释不声称某一项目必然包含第三类代码。
原FAQ还将AN2606列为系统存储区启动模式的参考资料,并说明其中涉及引导程序版本与限制。对读者而言,这表明一篇概述与具体型号的完整说明承担不同任务;看到FAQ列出接口名称,不能据此断言每个型号、每种配置都提供完全相同的能力。本文没有进一步核查各芯片的接口矩阵。
日期和产品类别也不能被省略。FAQ明确不涵盖STM32微处理器,本文不把其微控制器说明套给微处理器,更不把2021年的概述写成2026年全部型号的启动清单。页面后续留言中的提问也没有被当作厂家已经确认的技术结论。
这样阅读之后,一份交接文字可以更准确地说明自己指向哪段程序,而不会把“存在系统引导程序”直接写成“应用已能运行”。应用版本、实际写入和验证结果仍是各自需要证据的事项。本文没有修改启动选项、保护状态或硬件连接,也不提供地址、引脚设置及烧录命令。
信息来源
本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。