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.

[参考译文] AWRL1432:在热复位后保留存储器

Guru**** 1456330 points
Other Parts Discussed in Thread: AWR1843, AWRL1432
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1349049/awrl1432-retain-memory-after-warm-reset

器件型号:AWRL1432
主题中讨论的其他器件:AWR1843

您好!

在下面的帖子中、提到 RAM3中的数据将在热复位后保留。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1304010/awrl6432-will-the-data-in-internal-memory-be-cleared-after-watchdog-reset/4961327

但我不清楚 RAM3的存储器范围是多少? 是下表中的银行3吗? 如果没有、您会解释一下吗?

谢谢。

克里斯

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

    Chris、您好!

    是的、RAM3和组3是相同的。  

    此致、

    詹姆斯

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

    James:

    组3的范围是0x460000到0x47FFFF。

    我尝试了 mmWave_L_SDK_05_04_00_01\examples\drivers\watchdog\watchdog_reset。 加载测试代码后、我将0x460000和0x470000处的值更改为非零。 WDT 演示运行后、我挂起 M4内核、 在 CCS 内存查看器中发现0x460000和0x470000处的值变为零。

    您可以帮助再次检查吗?

    谢谢。

    克里斯

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

    James:

    客户发现、如果只调用 SOC_triggerWarmReset API、则可以保留组3存储器内容。

    我再次检查了看门狗复位演示 ,并在 handleWdtRst()之前发现, bank3中的值被保留,但在这个 API 之后, bank3中的值将清零。 在  handleWdtRst()之后,RBL 将再次运行以重新加载闪存。 这是否清除了银行3中的值? 0x460000处没有应用代码或数据。 为什么会将其清零?

    谢谢。

    克里斯

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

    Chris、您好、我将与我的团队核实这一点。

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

    Chris、您好!

    请查看 SDK 中的看门狗示例文档。 该示例中有两个功能演示。 我相信有一个旗帜来决定走哪条路。

    您要完成的路由将在热复位时从闪存执行整个重新加载、因此不会保留 RAM3。

    此致、

    时间

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

    TIM:

    客户想要在应用程序中的热复位后保存一些数据/标志。 在 AWR1843上、客户使用了保留的内存来实现该功能。

    您可以建议如何在 AWRL1432中实现它吗?

    谢谢。

    克里斯

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

    尊敬的 Tim:

    有任何意见吗?

    谢谢。

    克里斯

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

    Chris、您好!

    很抱歉耽误你的时间。 如果使用常规热复位、则可以在热复位期间保留数据段。 查看示例中的 linker.cmd 文件、并注意代码:

    extern uint32_t __LOAD_DATA_START;
    extern uint32_t __LOAD_DATA_END;
    extern uint32_t __RUN_DATA_START;

    /* Copying the data section from load memory to run memory location.*/
    uint32_t data_size = ((uintptr_t)&__LOAD_DATA_END - (uintptr_t)&__LOAD_DATA_START);
    memcpy((void*)&__RUN_DATA_START,(void*)&__LOAD_DATA_START,data_size);

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

    TIM:

    可以。 我也怀疑这会导致清除。 但我试图修改 cmd 文件(见下文)、并让测试应用程序根本不使用组3。 使用新的测试应用程序、组3仍清零。

    使用新的热复位测试应用程序(使用以下 cmd 文件)进行测试步骤

    1.将映像刻录到闪存

    2.打开 EVM 的电源。 在 CCS 中连接 M4。 加载符号。 将0x460000处的值改为0xAAA。

    3.继续在 CCS 上运行。 请参阅 CCS 控制台上的打印。

    4.打印停止并参阅下面的内容后、在 CCS 中停止 M4内核并检查 0x460000处的值、然后变为0。

    您可以帮助检查测试过程中是否漏掉了任何东西吗?

    e2e.ti.com/.../1538.linker.cmd

    谢谢。

    克里斯

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

    Chris、您好!

    热复位示例中使用的是哪种路径? 是否调用了 handWdtRst()函数? 如果是、将执行完全复位而不保留存储器。 注释掉以下代码部分将只允许进行常规热复位:

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

    TIM:

    可以。  调用 handleWdtRst()。 但在此 API 中、它  最后调用热复位 SOC_triggerWarmReset ()。 为什么说将执行完全重置?

    谢谢。

    克里斯

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

    Chris、您好!

    请阅读以下位置的文档: MMWAVE_L_SDK_05_04_00_01/docs/api_guide_xwrL64xx/ EXAMPLES_DRIVERS_WATCHDOG_RESET_MODE.html  

    由于 在  SOC_triggerWarmReset ()调用之前 handleWdtRst ()中执行的序列,引导加载程序实际上从闪存执行了整个重新加载。 如果我们不在 handleWdtRst()中执行整个序列,并且只调用 SOC_triggerWarmReset (),那么我们将只执行真正的热复位。

    此致、

    时间

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    引导加载程序实际上从闪存执行了完整的重新加载。
    、但我试图修改 cmd 文件(见下文)并让测试应用程序完全不使用组3。 [/报价]

    TIM:

    应用映像不使用存储体3、因此我认为即使是 RBL 也将闪存内容复制到 RAM、但也不会清除存储体3、因为它仅会根据段信息将闪存内容复制到内部存储器。

    谢谢。

    克里斯

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

    Chris、

    我认为、从闪存重新加载后、存储器将无效、即使没有加载。

    我能更好地理解热复位后尝试节省的内存量吗?

    此致、

    时间

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

    TIM:

    您可以再次咨询 RBL 团队吗? 我认为 RBL 只会根据 RPRC 信息复制闪存数据。

    谢谢。

    克里斯

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

    Chris、您好!

    让我来检查一下、然后给您回复。

    此致、

    时间

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

    TIM:

    您可以提供帮助吗? 客户寻求反馈。

    谢谢。

    克里斯

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

    Chris、您好!

    在通过此流程时、我们的 RBL 会初始化存储器... 因此、在该流程中、存储器区域应设置回0x0。

    此致、

    时间

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

    蒂姆·,

    感谢您的答复。 似乎组3不能在本例中使用。

    客户在 AWRL1432热复位后是否可以使用任何寄存器来保存一些标志?

    此致、

    克里斯

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

    Chris、您好!

    这也是我的下一个问题。 我不相信、但请与该团队核实。 我会在下周回复。

    此致、

    时间

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

    TIM:

    有更新吗?  

    谢谢。

    克里斯

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

    Chris、您好!

    您是否可以在 HWASS RAM 0x60000000中实际尝试相同的过程、看看是否可以看到数据被保留?

    此致、

    时间

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

    TIM:

    我在手势识别.c 中找到以下代码。

    因此、我尝试了0x60067FFC 和0x60040000上的存储器。 这些存储器可在执行看门狗测试代码后予以保留。 但在上述存储器初始化之后、这些存储器将被清除。 我将与客户进行核实、看看在他们的应用程序中的内存初始化前检查值是否可行。

    谢谢。

    克里斯

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

    谢谢 Chris、

    请告诉我们客户说了什么

    时间