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.

[参考译文] TDA4AEN-Q1:[J722S] J722S OSPI NOR 闪存、带 XIP 性能问题

Guru**** 2668435 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question

器件型号: TDA4AEN-Q1
主题: SysConfig 中讨论的其他器件

您好:

   根据案例信息 e2e.ti.com/.../tda4aen-q1-j722s-does-j722s-support-xip-mode-on-ospi-nor-flash、我已经启用在支持 XIP 模式的 OSPI NOR 闪存上运行 MCU 应用文本/ rodata。 NOR 闪存中的 MCU 应用文本/ rodata 执行。 但我遇到的问题是、MCU 负载占了 100%。

   我的 ADAS 功能 MCU 应用设计。 我创建了四个周期性任务。 任务有 10ms、20ms、100ms 和 200ms 任务。 在 20ms 任务中运行的所有大多数 ADAS 任务功能。 我必须测量 20ms 任务、需要更高的负载。 接近 90%的负载。 但如果将所有代码放入 DDR RAM 中、MCU 仅加载 40%。  

   我已查看并检查 SBL 是否启用支持 XIP 模式的 OSPI。 请检查以下项目。 我想知道、支持 XIP 模式的 OSPI 有任何限制吗? NOR 闪存中的文本/ rodata 代码执行有任何限制吗?(我的意思是不应该在 NOR 执行中计时关键代码。

   使 NOR 闪存 XIP 能够在 NOR 闪存中运行代码的用途是什么?

     1.检查显示的 SBL 日志、爬虫程序媒体时钟为 166.667MHz。  

[bootloader_profile]引导介质   :闪存
[bootloader_profile]引导介质时钟:166.667MHz
[bootloader_profile]引导映像大小 :1677 KB
[bootloader_profile]存在内核  :

     2.检查 OSPI 协议设置为 8-8-8 类型。

     3.启用 phy。

OSPI 协议= 0x1080808
OSPI_isPhyEnable = 0x1

     4.检查 OSPI PHY 调优数据是否启用并放置了 NOR 闪存扇区的最后一个。

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

    您好:

       或具有 XIP 的器件是否已完全启用。 如果配置正确、是否也存在 MCU 负载 100%问题的性能问题?

       下面我展示了 OSPI 闪存摘要。 这是与 AI 检查的。

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

    尊敬的专家:

     是我的客户。

    我认为这是 OSPI XIP 性能问题、即使我们知道时间关键型应用程序不应在带 XIP 的 OSPI 闪存中运行。

    XIP 的优势可以减少启动时间或实施 FOTA。  

    因此、唯一的方法是尝试提高 OSPI 闪存性能  

    一些评论、

    (1) 如何让 OSPI 在  带 166MHz 的 DDR 8S-8D-8D 模式下运行?

    (2) 您是否认为启用 RL2 也是不错的选择? 如果答案是肯定的、如何在 TDA4AEN 中启用它?

    https://confluence.itg.ti.com/display/MCUSWC2KSMCUM33/Improving+XIP+performance+with+OptiFlash

    (3) TDA4 是否支持“智能布局“? 我看到 AM26P 支持它。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/10_01_00_31/exports/docs/api_guide_am263px/SMART_PLACEMENT_GETTING_STARTED.html

    (4) 我看到 TDA4AEN 在 MCUSS 中有 512kB SRAM、带 R5 的 64kTCM RAM、我们是否可以将时间关键型应用加载到 SRAM 来改善时间关键型问题?

    谢谢你。

    Gibbs

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

    嗨、Gibbs、

    [报价 userid=“533255" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question/6132045

    (1) 如何让 OSPI 在  带 166MHz 的 DDR 8S-8D-8D 模式下运行?

    [/报价]

    J722S 不支持 PHY、因此有效速度受限、我们建议从 DDR 运行 ADAS 时序关键型任务。

    [报价 userid=“533255" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question/6132045

    (2) 您是否认为启用 RL2 也是不错的选择? 如果答案是肯定的、如何在 TDA4AEN 中启用它?

    https://confluence.itg.ti.com/display/MCUSWC2KSMCUM33/Improving+XIP+performance+with+OptiFlash

    (3) TDA4 是否支持“智能布局“? 我看到 AM26P 支持它。

    [/报价]

    在 J722S 上不受支持。 因此、无法实现智能放置。  XIP 也不支持 ASLO SysConfig。
    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j722s/11_01_00_04/exports/docs/mcu_plus_sdk_j722s_11_01_00_15/docs/api_guide_j722s/DRIVERS_OSPI_PAGE.html#autotoc_md517 

    [引用 userid=“533255" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question/6132045 ](4) 我看到 TDA4AEN 在 MCUSS 中具有 512KB SRAM、带 R5 的 64kTCM RAM、我们是否可以将时间关键型应用程序加载到 SRAM 中来改善时间关键型问题?

    是的、可以在此处放置时序关键型函数。但空间有限(MCU SRAM 部分由 SBL 使用)。

    此致、

    Karthik

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

    尊敬的 Karthik:

         1.因此 J722S 不支持 PHY。 DDR 8D-8D-8D 和 PHY 未来是否支持?

         2.我假设 OSPI XIP 已 166MHz 启用完全支持 OSPI0/DDR/8D-8D-8D/PHY 调优。 MCU 应用中的时序关键型任务仍然存在速度限制、对吧? 不建议在具有 XIP 的 NOR 闪存上运行这些时间关键型任务、对吗?

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

    尊敬的 Karthik:

     MCU SRAM 部分由 SBL 使用。

       -->对于这个评论、我有一个问题是 SBL 部分使用了 MCU SRAM。 您能告诉我 SBL 使用的器件吗?

       -->下面我从 TRM 文档中找到、其中使用了用于 MCU 域 R5F 的 ATCM/BTCM/MCU_MSRAM。 根据这些信息、我检查 SBL 链接器文件仅使用 0x43C40000 处的 OCM RAM。 下面的主 MCU 有一个来自 0x43C40000 的 256KB RAM。 BSL 器件使用的 BSL 代码。 因此、我认为 MCU 域 R5F 具有 512KB + 64KB 内部 SRAM、SBL 尚未使用。 只需再次与您确认即可。 谢谢!

    MCU 域 R5F 内部存储器:

    主 MCU R5F 内部存储器:

    SBL 唤醒域 R5F 链接器文件。

    移动数据

    /* R5F_VECS : origin = 0x00000000 , length = 0x00000040
    R5F_TCMA:origin = 0x00000040、length = 0x00007FC0
    R5F_TCMB0:origin = 0x41010000、length = 0x00008000 */
    OCM_RAM_VECS:原点= 0x43C40000、长度= 0x100
    OCM_RAM:原点= 0x43C40100、长度= 0x3ce00 - 0x100
    DDR:origin = 0xC2000000、length = 0x4000000
    }

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

     张胜顺

    不建议使用 XIP 在 NOR 闪存上运行这些时间关键型任务、对吗?

    如前所述、不建议从 XIP 运行时序关键型任务。

    我检查 SBL 链接器文件是否仅使用 0x43C40000
    处的 OCM RAM  

    是的、SBL 使用从 0x43C40000 开始的 OCM RAM、如您在链接器文件中观察到的那样。

    因此、我认为 MCU 域 R5F 具有 512KB + 64KB 内部 SRAM、SBL
    尚未使用该 SRAM

    您可以  为应用使用剩余的 MCU 域存储器 (512KB MCU SRAM + 64KB R5F TCM)。

    此致、

    Karthik

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

    您好、Karthik

    感谢您的答复。

    顺便说一下、这是概念说明。

    SBL 使用从 0x43C40000 开始的 OCM RAM、并在 TDA4EN 中的内部 SRAM 上运行。

    该存储器 (SRAM) 可以由每个不同的内核共享、正确吗?

    谢谢你。

    Gibbs

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

    尊敬的 Karthik:

       对于 OCM RAM (0x43C40000)、我们是否可以在 MCU 应用上通过在 SBL 跳转或退出时重新回收这些 RAM 来使用?

       我认为可以用于非初始 BSS 数据部分的 MCU 应用。 你怎么看?

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

    张胜顺

    [报价 userid=“533255" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question/6135792

    该存储器 (SRAM) 可以由每个不同的内核共享、正确吗?

    [/报价]

    是的、0x43C40000 处的 OCM RAM 是共享片上存储器。 所有内核 (MCU R5、主 R5、A72、DSP) 都可以通过互连访问它。

    [引述 userid=“642242" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591398/tda4aen-q1-j722s-j722s-ospi-nor-flash-with-xip-performance-question/6135849

    对于 OCM RAM (0x43C40000)、我们是否可以在 MCU 应用上通过在 SBL 跳转或退出时重新回收这些 RAM 来使用?

       我认为可以用于非初始 BSS 数据部分的 MCU 应用。 你怎么看?

    [/报价]

    是的 SBL 完成执行或跳转到 MCU 应用程序后、可以重复使用 OCM RAM 。 但是、您无法将此区域用于.text 或.rodata 等可加载段、因为这些段由加载器在应用程序加载时放置、这样做会与 SBL 自己的使用方式相冲突、并可能导致 SBL 崩溃。 该存储器只能用于不可加载的段、例如.bss、.stack 或其他未初始化的数据段。

    此致、

    Karthik