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.
最近在使用TI的库函数有些疑问想讨教一下:芯片型号为F280025/F280037;代码中使用memset来给数组清零,我们发现在长度256以内,速度是较快的,长度256大概时间为258个主频周期,但是当长度为257时,时间就要4636个主频周期,居然差了约18倍的时间,我们看到CCS编译的反汇编逻辑小于256长度为是要RPT处理,大于256为while循环处理,且一个工程对应的memset的库函数有2个string.h,且路径地址不一致,想问下其中的具体原因是什么。
图片内容为:
你可以用C:\ti\c2000\C2000Ware_5_04_00_00\libraries\dsp\FPU\c28\source\fpu32\utility路径下的memset_fast.asm,可以做到每个字一个时钟周期。
也可以用帖子里的方法,每个字0.5周期左右。
您好,您正在使用哪个版本的C28x工具以及命令行选项?针对v18.12提交了一项增强功能,允许在RPT中使用寄存器,并在v20.2中修复:sir.ext.ti.com/.../EXT_EP-9327
用的TI v22.6.1.LTS。我看这个增强是针对memcpy的,我没测试过这个函数。不过用memset时256字以上确实不会调用RPT,TI还没修复这个问题https://sir.ext.ti.com/jira/browse/EXT_EP-11505
你说得对。那是给我的。欢迎您关注memset增强sir.ext.ti.com/.../EXT_EP-11505这计划在编译器的下一个生产版本中实现。