Hi everyone,
A student of mine find this problem when trying to do some complex math jobs in two different task.
I checked Hwi_disp_asm.s28. SYS/BIOS only save&restore the fixed-point registers and FPU32 registers.
dispatchMain .macro ; body of dispatcher ; At this point, the following registers have already been saved: ; ** Automatic interrupt context save (see SPRU513C) ** ; ST0, T, AL, AH, PL, PH, AR0, AR1, DP, ST1, DBGSTAT, PC, and IER. ; ** Pushed on stack so far ** ; XAR4 clrc page0,ovm spm 0 ; Save C context push ar1h:ar0h push xar6 push xar7 push xt .if (.TMS320C2800_FPU32 == 1) ; Save 28FP registers mov32 *sp++, stf ; Save FPU status reg mov32 *sp++, r0h ; Save floating point regs mov32 *sp++, r1h ; only r0h-r3h required here mov32 *sp++, r2h mov32 *sp++, r3h setflg rndf32=1 .endif ; align sp since acc is two words mov ah,@sp asp push acc ; Place intNum in register 'al' mov al, ar5 sub al, #0xd00 ; al has vect id * 2 lsr al, #1 ; al has vect id movl xar4, #_ti_sysbios_family_c28_Hwi_dispatchC__I lcr *xar4 .endm
When wil TI fix this bug?