代码之家  ›  专栏  ›  技术社区  ›  Anton Stafeyev

闪存组和处理器核心指令获取stm32f7

  •  0
  • Anton Stafeyev  · 技术社区  · 6 年前

    我正在通过smth32f746ng微控制器学习我的方法,并遇到了一些关于flash和使用OpenOcd写入flash的问题。

    所以opoenOCD默认写入地址为0x0的第一组闪存。 处理器可以通过ITCM总线或地址为0x08000000(ITCM)或0x00200000(AXIM)的AXIM访问闪存。我假设,当进程通过ITCM总线从比如0x08000000读取指令时,它会读取0x0闪存地址。

    问题是: 处理器启动时,哪个寄存器控制获取第一条指令的初始方式。它会使用ITCM或AXIM总线获取数据吗?

    如果有人能告诉我在docs的正确位置,那就太棒了。

    0 回复  |  直到 6 年前
        1
  •  1
  •   old_timer    6 年前

    设置向量表,该表中偏移量0x004处的地址是重置向量,它确定从何处获取第一条指令。所以这取决于你选择哪一个。

    ARM文档告诉您向量表是如何工作的。arm地址空间中的地址0x00000004是重置向量。ST文档会告诉您0x00000004映射到什么,具体取决于boot0引脚(如果存在,也可能是boot1)。ST文档告诉您0x00200000和0x08000000指向用户/应用程序闪存的ITCM和AXIM路径。

    因此,读取0x00000004以确定重置向量可能会一直通过其中一条总线,之后,向量表的偏移量0x004中的内容将决定第一条指令通过哪条总线获取。代码的其余部分决定了其余指令从何处获取/通过何处获取。

    推荐文章