ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
27 января
1567473 Топик полностью
Idler (Сегодня, 19:30, просмотров: 53) ответил SciFi на Не будет. Вот:
Это фича свежего GCC. Вот IAR во всех вариантах: видно что первые 2 - целиком в FPU, вторые - процессорные, во много раз дольше. 
470       tempf2 = (float)I_LED * 0.001f;
   \      0x28C   0x.... 0x....      LDR.W    R10,??DataTable8_29
   \      0x290   0xF8BA 0x0000      LDRH     R0,[R10, #+0]
   \      0x294   0xEE00 0x0A10      VMOV     S0,R0
   \      0x298   0xEEB8 0x0A40      VCVT.F32.U32 S0,S0
   \      0x29C   0xEDDF 0x0ACF      VLDR.W   S1,??proc_calibr_main_1
   \      0x2A0   0xEE20 0x8A20      VMUL.F32 S16,S0,S1

470       tempf2 = (float)I_LED / 1000.0f;
   \      0x28C   0x.... 0x....      LDR.W    R10,??DataTable8_29
   \      0x290   0xF8BA 0x0000      LDRH     R0,[R10, #+0]
   \      0x294   0xEE00 0x0A10      VMOV     S0,R0
   \      0x298   0xEEB8 0x0A40      VCVT.F32.U32 S0,S0
   \      0x29C   0xEDDF 0x0ACF      VLDR.W   S1,??proc_calibr_main_1
   \      0x2A0   0xEE80 0x8A20      VDIV.F32 S16,S0,S1			//это выполняется так же быстро

470 tempf2 = (float)I_LED * 0.001; \ 0x288 0x.... 0x.... LDR.W R10,??DataTable8_29 \ 0x28C 0xF8BA 0x0000 LDRH R0,[R10, #+0] \ 0x290 0xEE00 0x0A10 VMOV S0,R0 \ 0x294 0xEEB8 0x0A40 VCVT.F32.U32 S0,S0 \ 0x298 0xEE10 0x0A10 VMOV R0,S0 \ 0x29C 0x.... 0x.... BL __aeabi_f2d \ 0x2A0 0x.... 0x.... LDR.W R2,??DataTable8_30 \ 0x2A4 0x.... 0x.... LDR.W R3,??DataTable8_31 \ 0x2A8 0x.... 0x.... BL __aeabi_dmul // !!! \ 0x2AC 0x.... 0x.... BL __aeabi_d2f // !! \ 0x2B0 0xEE08 0x0A10 VMOV S16,R0 470 tempf2 = I_LED * 0.001; \ 0x288 0x.... 0x.... LDR.W R10,??DataTable8_29 \ 0x28C 0xF8BA 0x0000 LDRH R0,[R10, #+0] \ 0x290 0x.... 0x.... BL __aeabi_ui2d // !! \ 0x294 0x.... 0x.... LDR.W R2,??DataTable8_30 \ 0x298 0x.... 0x.... LDR.W R3,??DataTable8_31 \ 0x29C 0x.... 0x.... BL __aeabi_dmul // !!! \ 0x2A0 0x.... 0x.... BL __aeabi_d2f // !! \ 0x2A4 0xEE08 0x0A10 VMOV S16,R0