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.

[参考译文] TMS320F28379D:在2837xD 上的 CLA 中常量使用(警告#849-D)

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1339699/tms320f28379d-const-use-in-cla-on-2837xd-warning-849-d

器件型号:TMS320F28379D

当我尝试在2837xD 上的 CLA 中使用常量数据时、会收到此警告。 是否有权变措施或不可能将常量数据存储在 CpuToCla1MsgRAM 中?

       警告#849-D:CpuToCla1MsgRAM 部分包含不兼容的对象"myData"(数据)和"myConst"(const)、"myConst"将不包含在 CpuToCla1MsgRAM 中

显然你可以根据这个 帖子在2838xD 上吗? 我想 CLA 是不同的吗?

谢谢!

#pragma DATA_SECTION (MyData、 "CpuToCla1MsgRAM");

#pragma DATA_SECTION (myConst、   "CpuToCla1MsgRAM");

UINT16 MyData;

const UINT16 myConst;

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

    我可以通过定义存储器的另一个部分来拆分数据和常量、从而使它在没有警告的情况下进行编译

      CLA1_MSGRAMHIGH :origin = 0x001500、length = 0x000060  
      CLA1_CONST_MSGRAMHIGH:origin = 0x001560、length = 0x000020

    然后在部分中、

      CpuToCla1ConstRAM :> CLA1_CONST_MSGRAMHIGH、 page = 1

    然后更新以使用新章节

    #pragma DATA_SECTION (myConst、   "CpuToCla1ConstRAM");

    但我的 const 初始化不正确。 就像我做的一样

    CONST UINT16 myConst = 1;

    它不会获取初始化的值、它会被归零。 我必须执行一些特殊的操作来初始化它吗?

    有点思考

      .const_cla      :> RAMLS3、      页= 1

    与之相关的事情。 我在 CPU 到 CLA 段中不能有常量数据吗?

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

    将它们放在这里是有效的!

    CpuToCla1ConstRAM :> RAMLS3、 page = 1

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

    您好!

    仍需要将常量加载到闪存、否则该值在上电复位时丢失。

    您可以执行以下操作-

    CpuToCla1ConstRAM :  LOAD = FLASHx
                运行= RAMLS/MSGRAM
                RUN_START (_Cla1ConstRunStart)、
                Load_Start (_Cla1ConstLoadStart)、
                Load_Size (_Cla1ConstLoadSize)
    并按如下方式执行 memcpy -
      memcpy (((uint32_t *)&Cla1ConstRunStart、(uint32_t *)&Cla1ConstLoadStart、
          (uint32_t)&Cla1ConstLoadSize);
    此致、
    维纳