Other Parts Discussed in Thread:CONTROLSUITE, C2000WARE
关于controlsuite和c2000ware里面例程的问题:
同样一个程序:sqrt
在controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Cpu1\cla_sqrt\cpu01里面的sqrt.cla文件中,程序的编写是fResult = __sqrt(fVal)。
而在C2000Ware_3_02_00_00\libraries\math\CLAmath\c28\examples\sqrt中的sqrt.cla文件中,程序的编写是fResult = CLAsqrt(fVal)。
我想知道的是为什么这两个会不同,__sqrt和CLAsqrt分别定义在哪个文件里面(ctrl+鼠标左键找不到)?
我最终的目标是atan2和expN两个函数,但在C2000Ware_3_02_00_00\libraries\math\CLAmath\c28\examples例程里面他们均由CLAatan2和CLAexpN函数一笔带过。
上图是controlsuite里面提供的全部cla例程,为什么没有CLA-MATH-LIB-UG.pdf里面说的atan2和expN函数?
BTW,我想问一下有没有关于28377d的CLA更全面一点的资料,就是包含配置函数使用规则等方面的内容。
小生感激不尽。
Susan Yang:
1 C2000Ware_3_02_00_00内的例程使用了函数库 cla1_math_library_datarom_fpu32.lib,而_sqrt是通用库,不建议使用
因为都是库函数,函数已经封装起来了,只提供了接口函数供用户使用2 您可以在 C2000Ware_3_02_00_00\libraries\math\CLAmath\c28\examples找到atan2和expN函数例程
3 关于CLA,我们有相关的培训视频,您可以参考一下
training.ti.com/cla-hands-workshop-part-1-introduction
edu.21dianyuan.com/…/270
,
user6432345:
谢谢你的耐心解答,我还有一些疑问,就是我在工程的property——c2000linker——file search path里面添加了cla1_math_library_datarom_fpu32.lib这个库,是不是就可以直接使用CLAatan2,CLAsin这样的函数了,但为什么我这里还是在报错,如下图
我已经导入了include路径,lib路径也导入了,还是有这样的问题。
,
Susan Yang:
请问您是否有包含下面的头文件?
#include "CLAmath.h"
#include "cla_shared.h"
,
user6432345:
哈哈这个问题已经解决啦,我现在还有最后一个问题,CLA中8个任务的优先级问题:
我在Cla1Task1-Cla1Task8分别编了8种数学运算。在主程序里面执行的时候,我编写的是:
Cla1ForceTask5();
…
Cla1ForceTask1();
…
Cla1ForceTask3();
…
Cla1ForceTask2();
两种情况:
1.如果我写的程序是Cla1ForceTask5andWait(),Cla1ForceTask1andWait(),Cla1ForceTask3andWait(),Cla1ForceTask2andWait()是不是就会像我上面写的那样,按照main程序中编写的顺序来进行?
2.但如果我写的程序是Cla1ForceTask5(),是不是main程序就不会等待CLA处理完当前的Task5,进而直接运行下面的Cla1ForceTask1(),Cla1ForceTask3(),Cla1ForceTask2(),当CLA处理完之后,会发现有3个任务等待执行,从而由优先级分配?如果是这样的话,我如果想严格按照main程序的顺序一个一个运行任务,是不是都要在后面加一个andWait?
,
Susan Yang:
我看您在下面的链接也发了相同的帖子
e2echina.ti.com/…/599019
请跟踪上述帖子的回复,谢谢
,
user5860441:
请问您这个问题怎么解决的?