STM32 hex文件,确定是否需要自定义bootloader

问题描述 投票:0回答:1

可以以某种方式确定十六进制文件(我知道是编译的/旨在在 STM32F405 上工作)是否可以闪存到空白的 STM32F405 芯片,或者该十六进制文件是否只是需要自定义引导加载程序的“固件更新”运行,因此只能在已经具有该特定引导加载程序的芯片上进行闪存?

我可以尝试将其闪存到空白芯片上,但目前我没有 STM32F405 原型板,因此如果可能的话,我想在为此任务构建 PCB 之前了解这一点。

这是十六进制文件的开头(按照下面评论中的建议发布)

:020000040800F2
:10000000F8F40120690200089528000897280008E4
:100010009B2800089F280008A32800080000000073
:10002000000000000000000000000000A9280008F7
:10003000A728000800000000AB280008AD28000831
:10004000830200088302000883020008830200087C
:100050008302000883020008DD280008EF2800085A
:100060000129000813290008252900088302000837
:10007000830200088302000883020008CD280008DC
:10008000830200088302000883020008830200083C
:100090008302000883020008830200083729000851
:1000A000830200088302000883020008830200081C
:1000B000830200088302000883020008830200080C
:1000C00083020008830200088302000883020008FC
:1000D000C5280008D528000883020008830200080C
:1000E00089290008830200088302000883020008AF
:1000F00083020008830200088302000883020008CC
:1001000083020008B5280008830200088302000863
:1001100083020008830200088302000883020008AB
:10012000830200088302000883020008BD2800083B
:10013000830200088302000883020008830200088B
stm32 microcontroller
1个回答
0
投票

英特尔 HEX 格式在此维基百科页面上进行了深入解释。

我们从第一条记录开始分析。

:020000040800F2
:记录类型为'04',指定扩展线性地址。数据字段包含 32 位地址“0800”的高 16 位。引用维基百科页面:

类型

00
记录的绝对地址由最新
04
记录的高 16 个地址位与
00
记录的低 16 个地址位组合而成。

因此,以下代码字节位于0x0800xxxx。根据数据表,这是闪存的第一个 64 KiB 页。

以下字节的规则模式看起来像向量表。

如果您的十六进制文件大于约 190 KiB,我们可以期待另一个带有“0801”的扩展线性地址记录,依此类推。

根据您的引导配置,我们可以假设此代码不需要特定的引导加载程序来运行。

© www.soinside.com 2019 - 2024. All rights reserved.