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.

[参考译文] AWRL6844:LPM 模式下的 L3存储器保留

Guru**** 2451970 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1507756/awrl6844-l3-memory-retention-in-lpm-mode

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

工具/软件:

您好团队:

我的客户设置如下、但 L3存储器看起来仍然没有保留、 我们能否提供有关如何保留 L3存储器的指导? 它们缺失了什么?

其中概述了 SysConfig

在 DPC_Execute 中

此致、

维克多·帕克

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

    您好、Victor、

    感谢您联系我们。 我想提出一些问题、以便更好地了解情况。  

    1. 他们正在运行哪个演示?
    2. 您能详细说明一下您提到未保留 L3时看到的行为吗? L3中存储的存储器是否在退出深度睡眠后损坏?
    3. 演示是否仅在低功耗模式下不起作用? 它是否在非低功耗模式下工作?

    此致、

    Vignesh K.

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

    您好、Vig、

    他们已经使用自己的应用程序进行了测试、但今天他们使用 SDK (v 6.0.4.1)演示对其进行了测试、并且也存在相同的问题。 它们使用0x80037220 (MmwMssMCB.dpcAoAObjSideInfo)地址作为 L3存储器和应用程序增加每帧中的值。 在 DPC_Execute()中有 Update_Counter_AT_ADDRESS()、并且每帧都会增加值。 然后、应用程序通过 Demo_transmitProcessedOutputTask ()中的 CAN 发送 CURRENT_VALUE。 现在、客户检查了独木舟中的 CURRENT_VALUE。

    当低功耗模式关闭时、系统会保留内存。

    当低功耗模式打开时、L3存储器似乎初始化为零、即使使用下面的 SysConfig 设置也是如此。

    此致、

    维克多·帕克

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

    您好、Victor、  

    是否有理由使用该确切地址?

    或者、您可以尝试使用 attribute 关键字:

    __attribute__((section (".bss.l3")) uint8_t CURRENT_VALUE = 0;
    此致、
    Vignesh K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vignesh:

    客户已在您的指导下进行测试、但结果相同。 请参阅以下代码。

    /*! 用于对象检测 DPC 的 L3 RAM 缓冲器*/

    uint8_t             gMmwL3[L3_MEM_size] __attribute ((section (".bss.l3"));

    #define TARGET_ADDRESS ((volatile uint8_t *)&gMmwL3[L3_MEM_SIZE - 1])  

    使用此代码、当禁用 LPM 时、它将正常工作。 启用 LPM 时、它不起作用。

    此致、

    维克多·帕克

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

    您好、Victor、  

    能否共享链接的命令?

    我将在本周结束时进一步研究这件事之后再回来。  

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    这是链接器命令文件。

    e2e.ti.com/.../0602.linker.cmd

    此致、

    维克多·帕克

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

    您好、Victor、

    感谢您提供此信息。 当我继续调试此问题时、我想知道客户在这里要实现什么目标。 似乎他们有兴趣使用 CAN。 您是否了解我们的 CAN 集成指南?  

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    我无法完全理解您的观点。 对于此问题、它们使用 CAN 通信来检查 L3存储器数据。 这些选项确认在禁用 LPM 模式时不存在问题。 这意味着、CAN 通信在测试时没有问题。 如果您能解释有关指导点的更多详细信息、我可以将其传达给客户。

    此致、

    维克多·帕克

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

    您好、Victor、

    我为这个混乱而道歉。 我不正确地理解了问题。  

    您能否执行以下操作:

    1. 在 CCS 中加载程序
    2. 下的 Power_sleep 函数内 /sources/drivers/power/v0/power_xwrLx4xx.c、在第687行设置断点并运行程序
    3. 一旦达到每当器件尝试进入 LPDS 时应出现的断点、请使用 CCS 中的存储器查看器检查以下地址:
      1. 0x5A04041C
        0x5A040014
        0x5A040430
        0x5A040434
        0x5A040438
        0x5A040670
        0x5A040674
        0x5A040678
        0x5A04067C
    4. 也在退出 LPDS 后检查上述地址。

    未保留 L3的可能原因是在 LPDS 之前或之后未正确配置值、而读取这些存储器地址将使我们能够确认这一点。

    此致、

    Vignesh K.

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

    尊敬的 Vignesh:

    感谢您分享调试点!  

    实际上、客户正在使用 SDK v6.0.4.1。 无论如何、它们在同一函数(PRCMSetPSCONDFTRTAOverride)设置断点、并在执行行之前和执行行之后检查地址。 两个值相同。 当它们在函数(PRCMSetSRAMRetention)处设置断点时、所有地址值也相同。

    0x5A04041C:00000003

    0x5A040014:000F000F

    0x5A040430 : 00070007.

    0x5A040434:00030003

    0x5A040438:0001001.

    0x5A040670:00070007

    0x5A040674:00030003

    0x5A040678:000F0003

    0x5A04067C:00070007

    我认为您提到的断点位置是"进入 LPDS 模式之前"。 如果您要查看"LPDS 模式"后的值、请引导我、确保客户确切需要在何处设置断点和检查值。

    此致、

    维克多·帕克

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

    嗨、Victor、  

    感谢您阅读这些值。 我们也应该在退出 LPDS 后对其进行观察。 最简单的方法是在 Power_sleep 函数中的以下代码行设置另一个断点:

    power_module.state = Power_exiting_DeepSleep;//line 531
    此致、
    Vignesh K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vignesh:

    他们已经测试过、但值看起来相同。 下一个调试步骤是什么? 这是我们可以 在你们这边重现的吗? 由于客户必须在月底展示低功耗模式演示、因此他们需要快速帮助。 如果你认为这是一个好主意,让我安排会议的实时共同调试下周初.

    0x5A04041C:00000003

    0x5A040014:000F000F

    0x5A040430 : 00070007.

    0x5A040434:00030003

    0x5A040438:0001001.

    0x5A040670:00070007

    0x5A040674:00030003

    0x5A040678:000F0003

    0x5A04067C:00070007

    此致、

    维克多·帕克

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

    您好、Victor、

    我的根目录是 POWER_LPDSresumehook 函数向 SOC_memoryInit 函数发出问题的 。 为了在 LPDS 之间保留 L3中的存储器、您必须从存储器 INIT 中删除 SOC_MEMINIT_DSS_L3_native _ram0_init|SOC_MEMINIT_DSS_L3_native RAM1_init。

    因此、进行以下修改:   

        //line 227 in power_management.c in the power_LPDSresumehook function
        SOC_memoryInit(SOC_MEMINIT_APPSS_SHARED_TCMA_BANK0_INIT|SOC_MEMINIT_APPSS_SHARED_TCMA_BANK1_INIT|SOC_MEMINIT_APPSS_SHARED_TCMB_INIT|SOC_MEMINIT_FECSS_SHARED_RAM_INIT|SOC_MEMINIT_APPSS_TPCC_INIT|SOC_MEMINIT_DSS_TPCC_INIT); 
     
    总之、L3被保留、但 SOC_memoryInit 函数在初始化中将其清除。 为了保持 该值、我们不得重新初始化 L3、这就是为什么我们从该函数中删除 SOC_MEMINIT_DSS_L3_native ram0_init|SOC_MEMINIT_DSS_L3_native RAM1_init 的原因。
    此致、
    Vignesh K.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vignesh:

    非常感谢您的解决方案! 现在、内存会保留! 顺便说一下、是否可以问为什么无论 SYSCFG 存储器保留设置如何、我们的代码都会重新初始化存储器? 该守则是否有任何用意?

    此致、

    维克多·帕克

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

    嗨、Victor、

    好问题、我相信 L3始终会重新初始化、因为我们通常不会在帧之间保留 HWA 存储器。 此外、一些存储器必须重新初始化才能取消选通时钟。  

    此致、

    Vignesh K.