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.

[参考译文] TMS320F28377D:LSxRAM 不足、无法执行 CLA 任务

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/849839/tms320f28377d-not-enough-lsxram-for-cla-tasks

器件型号:TMS320F28377D

你好

我想使用 CLA 任务来执行与 C28x 主内核并行的任务、但我面临一个问题:我没有足够的 RAM 空间用于程序。 对于这个、是否有任何解决方案、例如、针对 CLA 指令的某种类型的动态内存分配...

谢谢你  

Maite

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

    尊敬的 Maite:

    CLA 只能访问 LSxRAM、但 CPU 具有其他 RAM。 希望您也不会与 CPU 共享 LSxRAM?

    此致、

    Vivek Singh

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

    您好、Vivek、

    我将 RAMLS0到 RAMLS4用于 CLA 程序 、将 RAMLS5用于 CLA 数据、CPU 不使用该存储器。 我已经尝试优化我的代码、但它仍然不适合 RAM 空间。

    谢谢

    Maite

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

    如果要编写 C 代码、您要使用什么编译器开关进行优化? 您 还在寻找多少 RAM? 如果是小数据 RAM、则可以使用 CLAtoCPU MSG RAM、前提是您的应用中尚未使用该 RAM。  

    此致、

    Vivek Singh  

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

    您好、Vivek、

    它比 CLAtoCPU MSG RAM 的空间更多。 我已经尝试了所有级别的优化、但仍然不适合。 我已经检查了为 CPU1编译的相同代码所需的 RAM 比为 CLA 编译的 RAM 少大约3倍。 我还签入了汇编、CLA 编译器添加了大量 MNOP 指令。

    我要尝试从闪存加载到 RAM、并非所有代码都是如此、因为根据我的最终器件设置、并非所有代码都将被使用。 我将在.cmd 中使用 union 为两个不同的 CLA 程序段分配相同的 RAM 存储器。 我认为它可以起作用...

    谢谢你

    Maite

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

    你(们)好、Vivek

    从闪存加载到 RAM 中、只有在.cmd 文件中使用 union 的代码的某些部分可以正常工作。 但现在我面临另一个问题。 在 CPU1或 CLA1中执行的相同代码、在 CLA 中的持续时间约为 CPU 执行时间的1.5倍。 正如我在上一篇文章中所说的、CLA .asm 文件有很多 MNOP 操作... 这是原因吗?

    我还在.asm 文件中看到、CLA 使用 CPU-FPU (实际上是一个浮点单元)、而 CPU1使用(CPU-ALU)

    以下是 CLA .asm 文件行的示例:

    .dwpsn文件"../AFQ_CLA_funcs.cla"、行206、列5、IS_stmt、ISA 0
    MMOVZ16 MR0、@μ_ADAPT+3 ;[CPU_FPU]|206|
    MMOVIZ MR1、#65535 ;[CPU_FPU]|206|
    MLSL32 MR0、#16 ;[CPU_FPU]|206|
    MMOVXI MR1、#65535 ;[CPU_FPU]|206|
    MASR32 MR0、#16 ;[CPU_FPU]|206|
    MCMP32 MR1、MR0 ;[CPU_FPU]|206|
    MNOP ;[cpu_fpu]
    MNOP ;[cpu_fpu]
    MNOP ;[cpu_fpu]
    MBCNDD $C$L239、NEQ ;[CPU_FPU]|206|
    MNOP ;[cpu_fpu]
    MNOP ;[cpu_fpu]
    MNOP ;[cpu_fpu] 

    CPU 中的情况也是如此

    MOVW DP、#_ADAPTI+3 ;[CPU_ARAU]
    CMP @_调整+3、#-1 ;[CPU_ALU]|649|
    B $C$L4、NEQ ;[CPU_ALU]|649|
    

    是否有解决方案? 是否需要此 MNOP?

    谢谢你

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

    您好!

    很抱歉耽误你的回答。 是的、MNOP 将需要额外的周期、因此执行将需要更多的时间、并且正确操作可能需要 MNOP。

    此致、

    Vivek Singh