This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C129ENCPDT:固件驻留在同一闪存中时、通过 EPI 接口写入外部 NOR 闪存

Guru**** 2478765 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/690853/tm4c129encpdt-writing-to-external-nor-flash-via-epi-interface-when-firmware-is-residing-in-the-same-flash

器件型号:TM4C129ENCPDT

大家好、

简要概述我的问题

目前、我的固件驻留在外部 NOR 闪存上(通过 E.P.I)、工作正常。 但我想更新外部 NOR 闪存第一个扇区的一些元数据、我在这里面临这个问题。 我能够从外部闪存的第一个扇区读取数据、但到该扇区的接线会导致固件崩溃。

我的问题是、当主固件驻留在外部闪存上时、写入外部闪存是否有任何限制

注意:主固件位于扇区2之后,扇区1仅用于保存元数据

系统时钟:120MHz

NOR 闪存(64MB)和 SRAM (2MB)通过 EPI 连接、具有16位模式和共享并行线路

提前感谢

Prajnith

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Prajnith、

    如果我理解正确、您正在从 NOR 闪存执行代码、然后当您尝试覆盖代码时、它可能会使固件崩溃?

    固件更新处理是从 TM4C 还是从 NOR 闪存运行?

    在执行此操作时、NOR 闪存中是否执行固件?

    对我来说、它听起来像是在执行某个程序时覆盖了程序、这是一个大问题。 固件在更新时不应执行、否则 PC 或堆栈指针可能最终位于无效位置、从而使程序崩溃。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Prajnith、

    您是否能够解决此问题? 如果没有、我仍在等待我先前问题的反馈、谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ralph、

    代码位于 NOR 闪存中、但它位于扇区2中、我尝试写入 NOR 闪存的扇区1、因此我不会覆盖我的代码

    此致、
    Prajnith
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Prajnith、

    明白。

    NOR 闪存需要 TM4C 才能正常运行任何代码?

    由于 TM4C 是单核处理器、我可以想到的另一个想法是、由于 EPI 正忙于写入、因此扇区2中的固件无法正常执行、因为 EPI 总线将不可用。

    与此相关的是、如果扇区2中的固件在扇区1的写入操作完成之前停止、则问题可能只是通过加载正确的 PC 和堆栈值来恢复操作、从而完全恢复先前留下的操作。

    老实说、这不是我们之前看到的问题、因此很难根据描述来评论可能的根本原因。 如果我更详细地了解了在 NOR 闪存中执行的固件是什么、TM4C 如何从其中执行代码(即 TM4C 必须启动所有读取以正确执行? 那么、这种设置是如何的?)、写入扇区1的过程位于何处(即、它位于 NOR 闪存上还是 TM4C 上)、也许我可以提出其他想法。