Что-то такое выдаёт(студия 6.1):
{
while(1)
{
int16_t f1;
f1 = Add_Sample_Ufa(1449);
0000021E LDI R24,0xA9 Load immediate
0000021F LDI R25,0x05 Load immediate
00000220 CALL 0x00000122 Call subroutine
00000222 MOVW R28,R24 Copy register pair
f1 += Add_Sample_Ufa(2050+f1);
00000223 SUBI R24,0xFE Subtract immediate
00000224 SBCI R25,0xF7 Subtract immediate with carry
00000225 CALL 0x00000122 Call subroutine
00000227 ADD R28,R24 Add without carry
00000228 ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(1451+f1);
00000229 MOVW R24,R28 Copy register pair
0000022A SUBI R24,0x55 Subtract immediate
0000022B SBCI R25,0xFA Subtract immediate with carry
0000022C CALL 0x00000122 Call subroutine
0000022E ADD R28,R24 Add without carry
0000022F ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(1+f1);
00000230 MOVW R24,R28 Copy register pair
00000231 ADIW R24,0x01 Add immediate to word
00000232 CALL 0x00000122 Call subroutine
00000234 ADD R28,R24 Add without carry
00000235 ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(-1451+f1);
00000236 MOVW R24,R28 Copy register pair
00000237 SUBI R24,0xAB Subtract immediate
00000238 SBCI R25,0x05 Subtract immediate with carry
00000239 CALL 0x00000122 Call subroutine
0000023B ADD R28,R24 Add without carry
0000023C ADC R29,R25 Add with carry
f1 = Add_Sample_Ufa(-2052+f1);
0000023D MOVW R24,R28 Copy register pair
0000023E SUBI R24,0x04 Subtract immediate
0000023F SBCI R25,0x08 Subtract immediate with carry
00000240 CALL 0x00000122 Call subroutine
--- P:\AVR_GCC\optimize_test_as6\optimize_test_as6\Debug/.././optimize_test_as6.cpp
00000242 MOVW R28,R24 Copy register pair
f1 += Add_Sample_Ufa(-1453+f1);
00000243 SUBI R24,0xAD Subtract immediate
00000244 SBCI R25,0x05 Subtract immediate with carry
00000245 CALL 0x00000122 Call subroutine
00000247 ADD R28,R24 Add without carry
00000248 ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(-2+f1);
00000249 MOVW R24,R28 Copy register pair
0000024A SBIW R24,0x02 Subtract immediate from word
0000024B CALL 0x00000122 Call subroutine
0000024D ADD R28,R24 Add without carry
0000024E ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(1454+f1);
0000024F MOVW R24,R28 Copy register pair
00000250 SUBI R24,0x52 Subtract immediate
00000251 SBCI R25,0xFA Subtract immediate with carry
00000252 CALL 0x00000122 Call subroutine
00000254 ADD R28,R24 Add without carry
00000255 ADC R29,R25 Add with carry
f1 = Add_Sample_Ufa(2055+f1);
00000256 MOVW R24,R28 Copy register pair
00000257 SUBI R24,0xF9 Subtract immediate
00000258 SBCI R25,0xF7 Subtract immediate with carry
00000259 CALL 0x00000122 Call subroutine
0000025B MOVW R28,R24 Copy register pair
f1 += Add_Sample_Ufa(1456+f1);
0000025C SUBI R24,0x50 Subtract immediate
0000025D SBCI R25,0xFA Subtract immediate with carry
0000025E CALL 0x00000122 Call subroutine
00000260 ADD R28,R24 Add without carry
00000261 ADC R29,R25 Add with carry
f1 += Add_Sample_Ufa(3+f1);
И так далее...
То есть что-то там считается.
Отключил антивирус, откатил полностью системный диск (на состояние до установки AS 6.0), переустановил AS 6.1 ещё раз.
Может и правда с системой что-то, странно это.
дальше только поверх "скользит"
Скользит? Как это?
показывает на вызов функции увеличение счетчика команд на пару циклов всего - что неверно.
На все расчёты показывает что-то в районе ~17000 тактов.
Код странный местами:
void main()
{
while (1) {
// расчёты....
//TODO:: Please write your application code
break;
}
}
break зачем? Из main-а выход? Куда?