更改地址 STM32F722 程序
Posted
技术标签:
【中文标题】更改地址 STM32F722 程序【英文标题】:Change Address STM32F722 Program 【发布时间】:2021-05-11 19:22:19 【问题描述】:我对@987654321@编程非常缺乏经验,想咨询ST-Link-Utility
的固件安装问题。
我有一个必须用自定义固件刷新的飞行控制器。
开发者提供的固件现在编译为十六进制文件,起始地址为0x8008000
。
我需要将它的起始地址更改为0x2000000
。
在不修改 hex 文件的源代码的情况下,是否有可能做到这一点? 在这种情况下我首先需要做什么?
【问题讨论】:
0x8'000'000 是闪存的开始。开发人员将其放置为 32 KiB 偏移量,可能是因为他有一些引导加载程序机制。 0x20'000'000 是 RAM 的开始,但你不能在那里永久拥有任何数据。你提到的0x2'000'000是一个无效的地址。 这个改变起始地址的要求是从哪里来的?开发者? 是的,来自开发者 也许你可以分享这个自定义固件的开发者的网站,以便我们看看? 【参考方案1】:开发者提供的固件现在编译为十六进制文件,起始地址为 0x8008000。我需要将它的起始地址更改为 0x2000000。
如果不重新编译/链接,这是不可能的。
例如,控制器必须知道在哪里可以找到向量表。并且位置是在十六进制的某个地方定义的。
【讨论】:
【参考方案2】:我希望我明白你所说的。
使用ST-Link-Utility
,您可以通过这种方式轻松更改Flash Address
的偏移量:
检查并告诉我。
【讨论】:
感谢您的回答。在这种情况下,我需要将地址 0x8000000 的内容移动到 0x2000000(对不起,但我不知道这在 STM32 编程中是否可行) 告诉我。你有一个Hex
文件和一个 STM32 微控制器?教程说你必须从0x02000000
地址编程STM32
?
是的,类似的。
看我提到的图片和红色咏叹调。之后,您打开 HEX
文件,您可以轻松更改 Address
字段的值。
我认为您的地址 (0x02000000) 无效。你必须确定这一点。以上是关于更改地址 STM32F722 程序的主要内容,如果未能解决你的问题,请参考以下文章