第一,CLA中8个任务的优先级问题:
我在Cla1Task1-Cla1Task8分别编了8种数学运算。那么我在主程序里面执行的时候,如果我编写的是:
Cla1ForceTask5();
…
Cla1ForceTask1();
…
Cla1ForceTask3();
…
Cla1ForceTask2();
那么这8个task会按照我编写的顺序来进行吗,还是照样按照既定的优先级来运行?
第二,CLA中有很多集成在库里面的函数或者一些语句,比如__sqrt,__mdebugstop(),__mfracf32(),CLAexpTable,CLAINV1,CLAINV2,这些东西有pdf资料说明吗?我在官网找了好久都没有找到。。。
Green Deng:
你好,
1、CLA的task是由中断触发的,也就是说,执行哪一个task主要是看哪个task被触发中断了。如果两个中断同时到来,那么是按task的优先级来运行,task1的优先级最高,task8的最低。
2、你可以看下Wiki中的关于C2000 CLA Compiler的详细介绍:
processors.wiki.ti.com/…/C2000_CLA_C_Compiler
user6432345:
回复 Green Deng:
两种情况:
如果我写的程序是Cla1ForceTask5andWait(),是不是就会像我原问题里面写的那样,按照main程序中编写的顺序来进行?
但如果我写的程序是Cla1ForceTask5(),是不是main程序就不会等待CLA处理完当前的Task5,进而直接运行下面的Cla1ForceTask1(),Cla1ForceTask3(),Cla1ForceTask2(),当CLA处理完之后,会发现有3个任务等待执行,从而由优先级分配?如果是这样的话,我如果想严格按照main程序的顺序一个一个运行任务,是不是都要在后面加一个andWait?
user6432345:
回复 Green Deng:
好的,谢谢你的耐心解答
Green Deng:
回复 user6432345:
客气了,希望对你有所帮助