工具/软件:Code Composer Studio
嘿,
在我进行C2000软件开发的第一个步骤时,我发现编译器在编译的代码中添加了一些NOP。 优化设置为-O3,我使用6.2。
示例:
我为计时测试制作了C代码:
GpioDataRegs.GPATOGLE.ALL = 0x8000万;
f_reg_result = AdcaResultRegs.ADCRESULT0;
f_reg_result += AdcaResultRegs.ADCRESULT1;
f_reg_result += AdcaResultRegs.ADCRESULT2;
f_reg_result += AdcaResultRegs.ADCRESULT3;
f_reg_result += AdcaResultRegs.ADCRESULT4;
f_reg_result += AdcaResultRegs.ADCRESULT5;
f_reg_result += AdcaResultRegs.ADCRESULT6;
f_reg_result += AdcaResultRegs.ADCRESULT7;
v_result = f_reg_result / 8;
GpioDataRegs.GPATOGLE.ALL = 0x8000万;
装配体的结果如下:
174 GpioDataRegs.GPATOGLE.ALL = 0x8000万;
082c2f: 1E06 MOVL @0x6,符合
082c30: 761F002C MOVW DP,#0x2C
175 f_reg_result = AdcaResultRegs.ADCRESULT0;
082c32: E2C4.03万 UI16TOF32 R3H,@0x0
176 f_reg_result += AdcaResultRegs.ADCRESULT1;
082c34: E2C4.0201万 UI16TOF32 R2H,@0x1
177 f_reg_result += AdcaResultRegs.ADCRESULT2;
082c36: E2C4.0002万 UI16TOF32 R0H,@0x2
176 f_reg_result += AdcaResultRegs.ADCRESULT1;
082c38: E71.0009万B ADDF32 R3H,R3H,R2H
082c3a: 7700 NOP
177 f_reg_result += AdcaResultRegs.ADCRESULT2;
082c3b: E71.0001万B ADDF32 R3H,R3H,R0H
178 f_reg_result += AdcaResultRegs.ADCRESULT3;
082c3d: E2C4.0203万 UI16TOF32 R2H,@0x3
082c3f: 7700 NOP
082c40: E71.0009万B ADDF32 R3H,R3H,R2H
179 f_reg_result += AdcaResultRegs.ADCRESULT4;
082c42: E2C4.0104万 UI16TOF32 R1H,@0x4
082c44: 7700 NOP
082c45: E71.0005万B ADDF32 R3H,R3H,R1H
180 f_reg_result += AdcaResultRegs.ADCRESULT5;
082c47: E2C4.0005万 UI16TOF32 R0H,@0x5
082c49: 7700 NOP
082c4a: E71.0001万B ADDF32 R3H,R3H,R0H
181 f_reg_result += AdcaResultRegs.ADCRESULT6;
082c4c: E2C4.0106万 UI16TOF32 R1H,@0x6
082c4e: 7700 NOP
082c4f: E71.0005万B ADDF32 R3H,R3H,R1H
182 f_reg_result += AdcaResultRegs.ADCRESULT7;
082c51: E2C4.0007万 UI16TOF32 R0H,@0x7
082c53: 7700 NOP
082c54: E71.0001万B ADDF32 R3H,R3H,R0H
082c56: 7700 NOP
183 v_result = f_reg_result / 8;
082c57: E84F8018 MPYF32 R0H,#0x3e00,R3H
082c59: 761F02A0 MOVW DP,#0x2a0
082c5b: E203万 MOV32 @0x0,R0H
082c5d: 761F01FC MOVW DP,#0x1fc
184 GpioDataRegs.GPATOGLE.ALL = 0x8000万;
082c5f: 1E06 MOVL @0x6,符合
这种NOP的原因是什么?
此致,
Thomas。