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.

[参考译文] AM2732:我想为几个变量配置 NOINIT RAM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593955/am2732-i-want-to-configure-noinit-ram-for-few-variables

部件号: AM2732

TI 团队大家好、

我正在使用 pragma 配置 NOINIT RAM、但变量在复位后会初始化。

#pragma NOINIT (x)
#pragma location = 0x00147400 // RAM 中的存储器地址
uint32_t;

我还尝试了更改链接器文件以添加 noinit 段、但其无法正常工作。

我也在论坛上检查过、但没有在 https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1077304/tms570lc4357-no-init-memory-on-reset-for-storing-reset-information 上工作

您能为在我们的项目中配置 noinit 提供支持吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 shivang Joshi,

    我正在将您的查询发送给 合适的专家、您可能会收到延迟的回复   专家到本周都不在办公室。

    此致、

    Anil.

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

    尊敬的 Shivang:

    请参阅以下内容:  2.7.3.变量属性—TI Arm Clang 编译器工具用户指南

    此致、

    会面。

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

    尊敬的会议:

    我已经尝试过这种方法,但它不起作用,请告诉我,我需要选择哪个 RAM 位置? 我是否将变量保留在 DSS_L3 位置? 如示例中所述、我也尝试了该位置 0x100。

    我们还需要为该位置配置 MPU 吗?  

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

    尊敬的 Shiavang:

    已经尝试过这种方法、但它不起作用

    您能否详细说明您所面临的问题。

    您能告诉我需要选择哪个 RAM 位置吗?

    这取决于您的要求、我认为 DSS_L3 也应该没问题。  

    我们还需要为该位置配置 MPU 吗?  [/报价]

    您可以为该区域配置 MPU、并查看这是否有任何区别。

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

    大家好、

    我在 DSS_L3 部分下定义了 NOINIT RAM 存储器



    创建的部分:



    现在我已经声明了 2 个变量 xvar 和 yvar、我将变量放在该段下(尝试了段和位置方法)  

    这些变量在系统复位/热复位后不会保持其值。

    这两种方法都不起作用。

    此外、还在此基础上尝试了 MPU 配置、但无法正常工作。



    此致、
    Shivang Joshi

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

    尊敬的 Shivang:

    请共享为此生成的映射文件。

    此致、

    会面。

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

    尊敬的会议:

    请您分享您的电子邮件 ID、以便我可以使用安全的文件传输链接共享它。

    此致、
    Shivang Joshi  

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

    同时附加屏幕截图以供参考:

    变量:xvar

    变量:yvar

    从映射文件来看、它似乎放置正确。 我将通过邮件与您共享.map 文件。  

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

    我正在将此主题分配给另一位专家、请等待他们的回复。

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

    尊敬的 Shivang:

    请参阅以下 e2e 主题:

    (+) AM2732-Q1:软复位后直接丢失 AM2731 MSS L2 存储器数据 — Harman Sitara MPU 论坛 — Harman Automotive - TI E2E 支持论坛

    谨致问候、

    Ming

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

    您好 Ming、

    我无法访问上述链接、



    此致、
    Shivang Joshi

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

    尊敬的  Shivang:

    此帖子位于 Harman 内部论坛中。 如果您的同事可以访问 Harman 内部论坛、您可以要求他们提供帮助。

    我在这里发布结论、以防万一:

    -----

    我们已经确定了 RBL 清除 MSS_L2 的位置:StartMeminitTCMAAndL2 ()。

    从 DSS_L3 开始、至少 RBL 未清除它。 在 SBL 中、通过以下内容得到了明确:

    SoC_rcmStartMemInitDSSL3 (SOC_RCM_MEMINIT_DSSL3_MEMBANK_ALL);

    确保您没有在 SBL 中调用它。

    ---------------

    此致、

    Ming  

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

    您好 Ming、

    我们正在 SBL 中调用此函数、但我想了解一下如果我们不调用此函数、会产生什么影响? 是否会出现 ECC 错误?

    我尝试过注释、但 boad 没有启动、  

    另外还有  SOC_rcmStartMemInitDSSL3 ( SoC_RCM_MEMINIT_DSSL3_MEMBANK_ALL );
    在这个 API 中,我们正在初始化所有 DSSL3 银行,所以我们可以从初始化中排除一个银行吗? 如果是、则如何识别存储体地址及其大小。 根据手动设置、DSS_L3 大小为 3.5625MB。

    因此 0x88147400 在哪组 DSS_L3 (A、B、C 或 D) 下?

    此致、
    Shivang Joshi

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

    尊敬的 Shivang:

    是的。  SOC_RCM_MEMINIT_DSSL3_MEMBANK_ALL 的定义如下:

    #define SOC_RCM_MEMINIT_DSSL3_MEMBANK_ALL (SOC_RCM_MEMINIT_DSSL3_MEMBANK_ram0 |\
    SoC_RCM_MEMINIT_DSSL3_MEMBANK_RAM1 |\
    SoC_RCM_MEMINIT_DSSL3_MEMBANK_RAM2 |\
    SoC_RCM_MEMINIT_DSSL3_MEMBANK_RAM3)

    DSSL3_Banka (ram0) 从 0x88000000 开始、大小为 1MB

    DSSL3_Bankb (RAM1) 从 0x88100000 开始、大小为 1MB

    DSSL3_BANKA (RAM2) 从 0x88200000 开始、大小为 1MB

    DSSL3_BANKA (RAM3) 在 0x88300000 处开始、大小为 0.5625MB

    0x88147400 位于 DSS_L3 存储体的哪个存储体下。

    此致、

    Ming