Zur Erläuterung: ich arbeite an einem alten Projekt weiter, von dem ich
alle Optionen übernommen habe (bis auf die Pfade, die ich anpassen
musste).
Konkret ist das Problem mit dem Absturz folgender Code in einer
Switch-Anweisung:
case 4:
newsample = ADC12MEM1;
goto CCommon;
case 5:
newsample = ADC12MEM2;
goto CCommon;
case 7:
newsample = ADC12MEM4;
goto CCommon;
case 8:
newsample = ADC12MEM5;
goto CCommon;
case 10:
newsample = ADC12MEM7;
goto CCommon;
case 11:
newsample = ADC12MEM8;
goto CCommon;
case 13:
newsample = ADC12MEM10;
goto CCommon;
case 14:
newsample = ADC12MEM11;
CCommon:
break;
Die Variable newsample wird anschließend nicht verwendet, so das deshalb
dieser Code durch den folgenden ersetzt wurde, in dem die goto-Anweisung
durch break ersetzt ("ingelined") wurde:
case 4:
break;
case 5:
break;
case 7:
case 7:
break;
case 8:
break;
case 10:
break;
case 11:
break;
case 13:
break;
case 14:
break;
Obwohl sich dadurch außer der Codegröße nichts ändern sollte stürzt der
Code jedoch reproduzierbar ab und das anscheinend schon bei der ersten
Ausführung.
Dazu kommt noch das CSpy manchmal nicht will; zu ca. 10% kommt meist
"Target not found" und manchmal hilft dann nur ein Reset (des MC).
Ausserdem ist es so, dass das >>2, das ich zum schnellen Teilen durch 4
verwende, manchmal korrekt ausgeführt wird und manchmal (bzw. nur an
manchen Stellen im Code, auch wenn immer gleiche Datentypen verwendet
werden) nicht.
Sieht so aus, als müsste ich auf mspgcc umsteigen.
Gibt es hier Interessenten für eine IAR Embedded Workbench Vollversion
mit Dongle, Update (auf Vers. 1.26)?