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.

[参考译文] AM263P4:XIP 存在问题、并且写入同一闪存导致启动延迟较长

Guru**** 2456570 points
Other Parts Discussed in Thread: AM263P4, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1488002/am263p4-having-trouble-with-xip-and-writing-to-the-same-flash-causing-long-delays-on-startup

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

工具与软件:

我将在 PROC159E2评估板上运行一些简单的 AM263P4基准代码。

基本工程是 ipc_notify_echo_am236px-cc_system_freertos_nortos、已移至闪存、代码中部分器件在 OCRAM 中运行、部分器件作为 XIP 运行。 代码启动时、它100%在 OCRAM 中运行、在程序执行的稍后部分调用 XIP 代码。 所有这些都在 CCS 中运行。

代码运行正常、完全按照预期在加载到闪存中时的要求运行、然后允许电路板从闪存引导。 然后、我们决定向代码中添加日志记录、这就是问题开始的地方。

为了 能够对远离任何程序代码的闪存专用区域进行读取和写入、使用了 SysConfig 创建闪存配置和相关的 OSPI 配置。 请注意、我不使用 LittleFS 或 FreeRTOS FAT;而只是常规的闪存读写调用。 代码构建正常、但在启动时、由于它从闪存启动、因此会有很长的延迟、在程序编程到闪存后实际开始执行之前、延迟时间大约为3-5 *分钟*。

如果设置了"Skip HW Init"标志、该延迟会消失、但不存在允许我擦除、读取或写入闪存的任何功能;它们始终返回故障。

如果有任何帮助、将不胜感激。

谢谢、祝您愉快。 :-D

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    然后决定将日志记录添加到代码中、这就是问题开始的地方。

    尊敬的 John:

    对闪存进行写入的方法有多种:

    1.使用 FOTA IP 写入闪存

    2.使用闪存 API、但这会导致 XIP 停机、因为这种写入将禁用 DAC 模式(XIP)、然后进行写入。

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

    此处显示了写入闪存的 FOTA IP 用法: software-dl.ti.com/.../EXAMPLES_DRIVERS_FOTA_OVER_CAN.html

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

    写入闪存并不是问题所在、而是使用 SysConfig 创建闪存和 OSPI 配置时、芯片可能需要3到5 *分钟*的时间才能到达内核0_0上的 main()。 启动是主要问题。

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

    你(John)好

    这不是预期行为、我相信配置有误、您能共享示例工程和 syscfg 吗?

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

    我很高兴、但不愿意公开。 有没有地方可以上传评论?

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

    尊敬的 John:

    您可以通过电子邮件/e2e 私人聊天与我分享

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

    我发现了问题。

     

    SBL OSPI 在8d-8d-8d 协议中配置闪存、然后将控制传输到应用

     

    在您的应用中、您将闪存配置重新配置为1-1s-8s

     

    由于闪存重新配置、由于某些应用程序代码位于闪存中、应用程序会在很长一段时间内处于停滞状态。

     

    解决此问题的方法是 在应用程序中启用 SKIP_HW INIT (小复选框)以及 r5F1_0应用闪存配置从 SBL OSPI syscfg 复制闪存配置到 应用程序 .

     即保持相同的协议8D-8D_8D

    闪存读取写入错误是因为您的应用程序使用的新闪存配置未在 OSPI 外设中配置、因为您已启用 skip_hw_init