工具/软件:TI C/C++编译器
我在使用ASM功能时遇到一个奇怪的问题。 我有一个用c编写的程序,它包含几个功能。 我想重写ASM中的一个函数。 作为第一次尝试,我复制CCS生成的ASM代码,这是通过使用CCS中的Disassembly (分解)窗口实现的。 但这一功能的作用要低得多。 当函数用C写入时,它使用大约2.3万个周期。 当我用ASM代码替换它时,它使用大约15万个周期。 我不明白为什么ASM代码运行速度要慢得多?
下面是有关我的计划的一些信息:
1)整个程序以C语言编写,我在TMX320C6678演示板中运行。 程序在单核模式下运行。
2)我使用_itoll (TSCH,TSCL);来测量此函数消耗的时间。
3)在此函数中,它从输入缓冲区读取数据,执行一些乘法和加法,然后将数据写入输出缓冲区。 因此它不会调用任何其他函数。
4)我对ASM代码所做的唯一更改是更改其中标签的名称。
5)文本部分放置在L2/SRAM中,所有其他部分放置在多核共享内存中。
谢谢!