Tool/software:
Dear Experts,
I have problems with the following code:
void someFunc(int32_t someInt32, uint16_t index) { float fl1 = (float)someInt32; float fl2 = (float)someGlobInt16Array[index]; ... }
which gets compiled to:
MOV32 R1H,XAR2 I16TOF32 R3H,*+XAR6[AR0] ... I32TOF32 R1H,R1H
Like described in TMS320C2834x Errata, the result of the I16TOF32 instruction also gets loaded into the R1H register.
The compiler doesn't take care of this instruction by filling in NOPs.
If I put in 5 NOPs, the behavior is gone.
MOV32 R1H,XAR2 NOP NOP NOP NOP NOP I16TOF32 R3H,*+XAR6[AR0]
Is there a suggested workaround?
Thanks!