Tool/software: Code Composer Studio
Hi , I want to know the register push time when the ISR server between C28x and CLA .
then i put a "EPwm5Regs.AQSFRC.bit.OTSFB = 1;" to test the time. but the result is different with what i know from the assembler.
the PWM sets
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.RLDCSF = 3;
then I saw the C28 assembler as follow,
00a000: 761B ASP
00a001: FFF0 PUSH 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
it just need 14 instruction sets and plus the "EPwm5Regs.AQSFRC.bit.OTSFB = 1;" with 8 instruction are 22 sets totally.
but what i test is that it need 36 sets.
And with CLA task takes 19 sets.
is there something wrong with my thought? or there are some instruction that CPU execute but i can't see it from the CCS debug windows.
Thank you.