【问题标题】:cortex m4f havard (architecture) "programming itself" possible?cortex m4f havard(架构)“编程本身”可能吗?
【发布时间】:2018-08-19 07:45:23
【问题描述】:

我有一个 STM32F446 处理器(带有 FPU 的 Cortex M4,哈佛架构),我计划用它构建一个“迷你电脑”(屏幕、键盘)。

是否可以在设备本身上对 assembler 进行编程,并让它在没有外部硬件帮助的情况下使用该代码对其进行编程/闪存或执行该代码?如果可以,怎么做?

感谢您的回答。

【问题讨论】:

  • 真正的哈佛架构计算机更多的是一种学术概念,而不是现实世界中任何有用的东西。这些绝不是哈佛架构,请阅读文档。 “修改后的哈佛”是指冯诺依曼在一个或多个总线上带有交易标签。请参阅总线规格(阅读文档)。以及简单地尝试一下......
  • 这显然是 stackoverflow.com/questions/44443619/… 的副本,应该保持关闭状态。
  • @Chris Stratton 我认为这不是“如何写入闪存”之类的问题的重复,因为我想知道的是如何将写入的代码放在闪存上执行 / 如果您需要特别注意如何编写以便稍后执行该代码。抱歉,如果我的问题表述不清楚。您知道我可以如何更改问题以便更清楚吗?
  • 这正是另一个问题的意义所在。但如果我的回答没有解决你的问题,你不应该接受它,现在应该撤消它。此外,您不应该将答案编辑为问题 - 这不是 stackoverflow 的工作方式。

标签: assembly arm cortex-m stm32f4


【解决方案1】:

武器根本不是哈佛建筑。因为它们只有一个地址空间。一个或多个总线是否可以访问此地址空间并不重要。

回答您的问题,您可以进行软件编程。闪存

【讨论】:

  • 不! cortex M3、M4、M7 和 M33 使用哈佛架构。哈佛架构用于分离对不同内存的访问,尽管它使用相同的地址空间。
  • 它被称为“修改后的”哈佛架构。哈佛架构必须有独立的地址空间
【解决方案2】:

是的,有可能。

首先,要意识到 ARM Cortex-M 部件并不是真正的哈佛架构,而是一种实现冯诺依曼编程模型的哈佛式优化

至于具体如何操作,答案是您阅读了适用的 ST 应用说明,了解在该特定处理器上写入闪存。

在此过程中,您可能会了解到它附带了一个能够写入闪存的 ROM 引导加载程序,而且在实际实践中通常通过 SWD/JTAG“外部”写入闪存相当于将数据缓冲区上传到 RAM使用一小段代码进行实际编写,并触发该代码在处理器上执行,然后再将控制权返回给 SWD/JTAG 适配器。

【讨论】:

  • 这个问题仍然是重复的,还是我们应该重新打开并在您的答案中添加指向stackoverflow.com/questions/44443619/… 的链接?
  • 实际上我认为它是重复的,我只是想涵盖那个奇怪的汇编行的可能含义
  • 如果值得发布的不仅仅是评论以解释为什么它是重复的,那么它可能应该重新打开。在这种情况下,我过去所做的是以“这基本上是[link] 的副本,但是等等等等”开始我的回答。回答然后关闭它以便其他人无法回答看起来很糟糕,即使在这种情况下实际上没有什么可说的了。现在重新打开问题。
  • 不,真的不是。您只是浪费了每个人的时间来重新打开一个低质量且明显的副本。如果我在发布之前找到了那个链接,我永远不会有。我对答案的扩展最多只是指出它也有资格被关闭为“不清楚你在问什么”
  • 我以为您是在说这个问题的一部分值得回答(但仍然认为这至少不是真的)。无论如何,它不会被 Roomba 自动删除并获得赞成 + 接受的答案,因此作为重复关闭并不会真正减少这个低质量问题的污染。如果人们想了解哈佛,而不是意识到他们只需要编写闪存,这对他们来说是一个有用的答案。
猜你喜欢
  • 2020-11-12
  • 1970-01-01
  • 2018-04-27
  • 2018-12-02
  • 2022-01-10
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多