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.

奇怪问题

为了解决标准<math.h>库cos函数占用cycle数多得问题,采用查表法,现由两种做法,具体描述如下:用法1,定义cos值静态数组cost_list[257](存257个cos值),定义查表函数ROm_cos(int angle),该函数用来进行余弦函数值的映射,其中angle是取整后的角度值,将ROm_cos和cos_list 定义在A.c函数中,在B.c函数中调用A.c的Rom_cos函数,运行程序,在main函数中调用B.c,这样程序运行中显示cost_list形成函数调用,并且该段求余弦值的程序花费27000多个cycle;用法2,将Rom_cos和cost_list定义在头文件中,在main函数中直接调用Rom_cos函数,则同一段程序花费3000个cycle;

 然而在实际应用中,应该是采用用法1,但是这样回花费非常多得cycle,不知道以上两种做法区别在哪里,怎样解决用法1,谢谢!

  • 你好,你可以对比一下2种方法下的map文件,确认cost_list存放的段位置,另外可以使用CCS中的profile功能,分别对2种方式进行profile,可以通过profile的结果找到具体的程序开销情况,再结合代码及map文件进行分析。谢谢!