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.

[参考译文] TMS320F28035:CLA RAM 编译

Guru**** 2394305 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/590327/tms320f28035-cla-ram-assigments

器件型号:TMS320F28035
主题中讨论的其他器件:C2000WARE

您好!

我们能否向客户推荐 F28035的特定 CLA 示例、以展示如何设置 RAM (识别 CLA 和 C28x 特定领域)? 客户需要在 ADC 的 EOC 之后启动 CLA 活动、然后生成一个 INT 到主内核。

他们正在研究 ControlSuite 示例  

HVACI_Sensorless_CLA_F2803x
HVPM_Sensorless_CLA_F2803x
旋转变压器 F28035_CLA

它们现在将 RAM 区域设置如下:

-Cla1Regs.MMEMCFG.bit.PROGE = 1;      //将 RAM 配置为 CLA 程序存储器
-Cla1Regs.MMEMCFG.bit.RAM0E = 1;    //将 RAM L1、F28035配置为 CLA 数据存储器0
-Cla1Regs.MMEMCFG.bit.RAM1E = 1;      //将 RAM L2、F28035配置为 CLA 数据存储器1.

但他们面临着一些问题。 RAM 区域似乎以非预期的方式改变了值。

谢谢、此致、

Alberto

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

    C2000Ware 中的任何 CLA 示例都将有所帮助。

    您发布的配置看起来正确。

    "RAM 区域以非预期方式改变值"是什么意思? 配置位是否发生变化? 系统中的 RAM 内容是否发生变化? RAM 内容是否未正确编程?

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

    它们正在取得进展,但仍然没有充分发挥作用。
    当使用 CLA 时、RAM 的组织结构如下:

    RAML0 :origin = 0x008000、length = 0x000800 /*片上 RAM (L0)*/
    RAML3. :origin = 0x009000,length = 0x001000 /*数据 RAM (L3)*/
    BOOT_RSVD:origin = 0x000000,length = 0x000050 // M0的一部分,引导 ROM 将此用于堆栈*/
    RAMM0 :origin = 0x000050、length = 0x0003B0 /*片上 RAM 块 M0 */
    RAMM1 :origin = 0x000400、length = 0x000400 /*片上 RAM 块 M1 */
    CLARAM0 :origin = 0x008800,length = 0x000400 /*片上 RAM 块 L1 */
    CLARAM1 :origin = 0x008C00,length = 0x000400 /*片上 RAM 块 L2 */
    CLA_CPU_MSGRAM:origin = 0x001480,length = 0x000080 /* CLA-R/W,CPU-R 消息 RAM *
    CPU_CLA_MSGRAM:origin = 0x001500,length = 0x000080 // cpu-R/W,cla-R 消息 RAM *



    ramfuncs :LOAD = FLASHD,
    运行= RAML0、
    load_start (_RamfuncsLoadStart)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    PAGE = 0

    Cla1Prog :load = FLASHC,//注意从 RAM 运行时,加载和运行可以是相同的*/
    运行= RAML3、
    load_start (_Cla1funcsLoadStart)、
    load_end (_Cla1funcsLoadEnd)、
    run_start (_Cla1funcsRunStart)、
    PAGE = 0

    /*分配未初始化的数据段:*/
    堆栈 :> RAMM0, PAGE = 1.
    ebss :> RAMM1, PAGE = 1.
    等斯梅姆 :> RAMM1, PAGE = 1.

    Cla1ToCpuMsgRAM:>CLA_CPU_MSGRAM page = 1.
    CpuToCla1MsgRAM:>CPU_CLA_MSGRAM PAGE = 1.

    ClaDataRam0 :> CLARAM0、 PAGE = 1.
    ClaDataRam1 :> CLARAM1、 PAGE = 1.
    CLAmathTables:> CLARAM1, PAGE = 1.
    CLA1mathTables:> CLARAM1, PAGE = 1.

    //
    //必须被分配给 CLA 具有写入访问权限的内存
    //
    CLAscratch :
    {*。obj (CLAscratch)
    。 += CLA_ScratchPad_size;
    *。obj (CLAscratch_end)}> CLARAM0、PAGE = 1


    它们需要具有更多用于用户程序的 RAM。 他们能否修改或移动 RAM 区域 RAML3、CLARAM0、CLARAM1、CLA_CPU_MSGRAM、CPU_CLA_MSGRAM?

    谢谢、
    Alberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alberto、L3是 F2803x 上唯一可用于程序存储器的 RAM 块。

    如果客户无法将所有 CLA 程序存储器装入 L3、则需要将 CLA 代码引导至 L3。

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

    客户可以将 L3用作 CLA 的程序存储器。
    他们还询问他们是否可以将未分配给 CLA 程序存储器的 L3存储器用作标准"CPU 数据存储器"。
    这是否可行?

    谢谢
    Alberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这应该是可行的。 C28x 只需重新分配或重新配置主器件。

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

    感谢您的反馈。
    您能提供有关如何重新分配此内存的示例吗?

    谢谢、
    Alberto
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -Cla1Regs.MMEMCFG.bit.PROGE = 0;
    -Cla1Regs.MMEMCFG.bit.RAM0E = 0;
    -Cla1Regs.MMEMCFG.bit.RAM1E = 0;

    向 Memcfg 寄存器中的这些位写入0将把存储器分配回 C28x。

    SAL