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.
我本来想通过ePWM6 来Trigger CLA Task6 执行修改
EPwm6Regs.CMPA.half.CMPA 的行为,如下图,从ePWM6 计数器触发中断属于硬件行为,
但明显修改 EPwm6Regs.CMPA.half.CMPA 的行为受到CPU 运行时的影响,这跟我对CLA 的理解不一样啊,是我有什么地方理解不对吗?
前面我做过测试,我把系统里面所有中断(除了ePWM6 和 CLA Task6 中断) 都关掉,统计这两个中断进入的次数,他们分别是相等的,说明是按单次准确触发的,但问题是为啥CLA 的运行总是不及时?
我感觉吧,即便我这里配置了:
Cla1Regs.MPISRCSEL1.bit.PERINT6SEL = CLA_INT6_EPWM6INT;
需要进到ePWM 的ISR 去走一趟才会真正触发CLA,也就是要经过CPU 中转一把才会触发CLA 的任务,如果此时CPU正在干其他事情,CLA 任务是不能得到及时触发的;
也就是不能真正的通过硬件中断直接走底层触发CLA 任务;;
你好,CLA1_INTx的优先级确实是在中断优先级中比较低的,基本外设中断的优先级全都高于CLA1_INTx。可能这点会影响CLA中断的执行。
不知道你说的“通过硬件中断直接走底层触发CLA 任务”是类似什么样的方式?
我并不关心CLA1_INTx, 我关心CLA 的Task 能不能不受到CPU 的执行的影响;
我的意思是说,通过EPWM6 来触发CLA Task6,能不能直接通过硬件触发,但貌似不行呢;
另外,我想使用CLASin 和 CLACos,我添加了cla0_math_library_fpu32.lib,提示不兼容,怎么办?
"C:/E/Material/DSP_Code/ti_f28069/libs/FPUfastRTS/rts2800_fpu32_fast_supplem
ent.lib<sin_f32.obj>" specifies ISA revision "C28FPU32", which is not
compatible with ISA revision "C2700" specified in a previous file or on the
command line
我到哪里能找到一个与C28FPU32 的CLAmath 库啊?
这个报错找了很久,没找到靠谱的回答。不知道你的库路径是不是从C2000WARE中复制出来的,如果是C2000WARE中的,选择的库文件应该也是没错的。
这样的话可以试一下换其他库文件:C:\ti\c2000\C2000Ware_4_00_00_00\libraries\math\CLAmath\c28\lib
以及参考一下这个帖子的做法:e2echina.ti.com/.../c28fpu32-is-not-compatible-with-isa-c2700-c2800-is-not-compatible-with-isa-c2800
CLASin() 的问题,也解决了,主要还是我偷懒,给CLAmath Table 分配到CLAProg 的内存了,
要确保CLAsin 分配在CLARAM0, CLARAM1, CLARAM2 中的一个,由于我想把CLARAM2,CLARAM0 给CPU 用,所以我就分配到了CLARAM1 上,也就是代码里面这么设置:
claMemCopy(&Cla1funcsLoadStart, &Cla1funcsLoadEnd, &Cla1funcsRunStart);
claMemCopy(&CLA1mathTablesLoadStart, &CLA1mathTablesLoadEnd, &CLA1mathTablesRunStart);
Cla1Regs.MMEMCFG.bit.RAM2E = 0;
Cla1Regs.MMEMCFG.bit.RAM0E = 0;
Cla1Regs.MMEMCFG.bit.RAM1E = 1;
CMD 文件这样设置:
CLA1mathTables : LOAD = FLASHBA,
RUN = CLARAM1,
LOAD_START(_CLA1mathTablesLoadStart),
LOAD_END(_CLA1mathTablesLoadEnd),
LOAD_SIZE(_CLA1mathTablesLoadSize),
RUN_START(_CLA1mathTablesRunStart),
PAGE = 1
最后map 文件里面看到:
00008c00 230 (00008c00) _CLAsinTable
00008c00 230 (00008c00) _CLAsincosTable
00008c00 230 (00008c00) _CLAsincosTable_Sin0
这样,CLA 三角函数运行起来看来没什么问题了;