工具/软件:Code Composer Studio
大家好,我想知道 C28x 和 CLA 之间的 ISR 服务器的寄存器推送时间。
然后、我放置"EPwm5Regs.AQSFRC.bit.OTSFB = 1;"来测试时间。 但结果与我从 汇编器中了解的情况不同。
PWM 设置
EPwm5Regs.CMPA.half.CMPA = PRD_500k+1;
EPwm5Regs.CMPB = PRD_500k+1;
EPwm5Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm5Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm5Regs.AQCTLB.bit.ZRO = AQ_SET;
EPwm5Regs.AQCTLB.bit.CBU = AQ_CLEAR;
EPwm5Regs.AQSFRC.bit.ACTSFA = 1;
EPwm5Regs.AQSFRC.bit.ACTSFB = 1;
EPwm5Regs.AQSFRC.bit.RLDSF = 3;
然后、我看到 C28 汇编器如下所示、
00a000:761B ASP
00a001:FFF0按 RB
00a002:ABBD MOVL * SP++、XT
00a003:A0BD MOVL *SP++,XAR5
00a004:C2BD MOVL * SP++、XAR6
00a005:C3BD MOVL * SP++、XAR7
00a006:E20000BD MOV32 * SP++,STF
00a008:E20300BD MOV32 *SP++,R0H
00a00a:E20301BD MOV32 * SP++,R1H
00a00c:E20302BD MOV32 * SP++,R2H
00a00e:E20303BD MOV32 * SP++,R3H
00a010:E6300600 SETFLG RNDF32=1、RNDF64=1
00a012:2942 CLRC OVM|PAGE0
00a013:5616 CLRC AMODE
它只需要14个指令集、加上 "EPwm5Regs.AQSFRC.bit.OTSFB = 1";8条指令 总共需要22个指令集。
但我测试的是 、它需要36组。
CLA 任务需要19组。
我的想法是否有问题? 或者 CPU 执行一些指令、但我无法从 CCS 调试窗口中看到它。
谢谢你。
