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.

[参考译文] AM2432:XIP 和自定义闪存使用

Guru**** 2773145 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1617565/am2432-xip-and-custom-flash-usage

器件型号: AM2432
主题: SysConfig 中讨论的其他器件

您好、

在公司的定制电路板上使用 XIP 时遇到一些问题。  我们使用闪存选择指南中列出的定制闪存存储。 闪存同时在从闪存和 RAM 运行的应用程序中工作、因此 到目前为止似乎运行良好。 但是、我们仍有一些问题有待解决:

 

1) 我们的板对 OSPI 使用内部环回模式。 是否可以将 PHY 调优与内部环回模式结合使用、或者是否需要外部环回模式(连接了 LBCLKO 和 DQS 引脚)? 如果我们在引导加载程序中禁用 PHY 并启用 DAC、XIP 仍在我们的电路板上工作、但我们想知道是否可以使用 PHY 调优并 使用更快的时钟速度。

 

2) PHY 调优算法是否经常运行、或者在 OSPI 被打开时、在器件引导期间仅运行一次?  我们的目标是长时间运行设备、操作环境和情况在运行时可能会有所不同。

 

3) 是否可以在应用程序端使用用于 XIP 的同一闪存进行读取/写入操作?  

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

    尊敬的 Jani:

    1)。 PHY 模式需要外部环回模式或 DQS 模式、因为具有 DDR 时序的内部 PHY 环回和内部焊盘环回时钟模式受已知勘误表的影响。 有关此勘误的更多信息、请参阅 i2249 勘误表。 目前支持以下时钟拓扑:

    2)。 随着 MCU+ SDK 11.02 的发布、我们引入了一项名为 Validate OTP 的新功能。 考虑到不同的操作环境和情况、此功能用于闪存读取、在 OTP 验证失败时重新运行 PHY 调优算法。 此外、可以在引导加载程序中启用 PHY、因为次级引导加载程序 (SBL) 只读取 DM 应用映像、不会执行任何写入操作、并且我们支持用于读取操作的 PHY 模式。

    3)。 是的、可以在应用程序端使用同一个闪存进行读取/写入操作。 请参阅 OSPI 闪存 XIP 示例OSPI 闪存 IO 示例

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

    尊敬的 Aryamaan:

    感谢您的回复! 我有一些后续问题:

    1) 我们的闪存使用 SDR 模式 (1S-1S-4S)、我们已将输入时钟频率配置为 133MHz。 勘误表是否也影响 SDR 模式或仅影响 DDR 模式? 将 PHY 调优数据刷写到闪存中后、我就可以使用 PHY 模式。 根据我的测试、在 SysConfig 中切换 PHY 启用/禁用开关会影响 XIP 性能。 我想知道在我们的当前配置中使用具有内部环回的 PHY 模式是否足够、以及是否没有任何外部连接。

    2) 感谢您的信息! 我将对此进行介绍。

    3) 我尝试查看 OSPI 闪存 XIP 示例、但这似乎将所有代码放入 MSRAM 而不是闪存。 当我尝试将所有代码和只读数据放入闪存时、它似乎不起作用。 在应用程序方面、我尝试将所有驱动程序初始化代码放入 RAM 中、但从闪存加载的第一个代码地址似乎失败(初始化后)。 是否支持将可执行代码放置在闪存上、在 SBL 中初始化闪存以及在应用程序端对闪存执行读取/写入操作?

    section3.$name                        = "Code and Read-Only Data";
    section3.load_memory                  = "FLASH";
    section3.output_section.create(2);
    section3.output_section[0].$name      = ".text";
    section3.output_section[0].palignment = true;
    section3.output_section[1].$name      = ".rodata";
    section3.output_section[1].palignment = true;

    -Jani

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

    尊敬的 Jani:

    1)。 是的、由于闪存使用 SDR 模式、并且 SDR 模式没有勘误表、因此可以将 PHY 模式与当前配置的内部环回一起使用。

    3)。 请允许我花些时间回复您、了解是否支持将可执行代码(使用 ospi 和闪存驱动程序)放在闪存上。

    此致、

    Aryamaan Chaurasia

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

    尊敬的 Jani:

    3)。 只包含带有只读数据的非关键代码的可执行代码可存储在闪存存储器中。 包括闪存操作在内的代码必须从 MSRAM 执行、并且不能针对 XIP 存储在闪存存储器中。

    此致、

    Aryamaan Chaurasia  

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

    尊敬的 Aryamaan:

    感谢您的回答! 这些答复帮助我们弄清了问题。

    -Jani