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.
你好
我想使用 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