Forum: Mikrocontroller und Digitale Elektronik merkwürdiger bug in (vermutlich) avrasm2?


von Moritz E. (devmo)


Lesenswert?

Ich habe gerade mehrere merkwürdige Fehler bekommen, beim "Build"; der 
Macroassembler fängt an zu werkeln und irgendwann gibt er lauter Errors 
aus, und zwar in einer Endlosschleife, bei der nur ein Prozess-Beenden 
das AVR-Studio stoppen kann, wobei üblicherweise der Prozess vom Avrasm2 
in der Taskliste übrigbleibt und auch gekillt werden muss.

Nach Studium der Ausgaben ist rausgekommen, das zu anfangs ein Fehler 
"Wrong number of Arguments" kommt, und der Rest der Endlosfehlerausgabe 
aus Fehlern wie "xyz changed Pass(1)->(2), check forward reference", 
zumindest sinngemäß, besteht. Der Fehler Wrong-Number of Operands 
bestand aus der Zeile:
    tst    Rtemp, RKeyPress
Nach dem berichtigen hat er ohne Fehler und ohne Absturz regulär gebaut, 
sobald ich die falsche Zeile wieder einbaue lässt sich der Absturz 
reproduzieren. Ist das jemanden schon einmal untergekommen? Ich habe 
bestimmt schon tausende Wrong Number of Operands-Errors gehabt, einige 
hundert Builds hintermir, und ist noch nie vorher aufgetaucht. Wundert 
mich auch wie so eine simple Sache den Assembler entgleisen lässt...

Sollte man sowas den AVR leuten mitteilen, da es ja offenbar ein 
ziemmlich sporadischer Bug ist, und sie vielleicht ihn noch nicht 
kennen? Die Versionsinfo:

AVR Studio    4.14.589
GUI Version    4, 14, 0, 589
AVR Simulator    1, 0, 2, 1
ATMEGA644    69

Operating System
Major      5
Minor      1
PlatformID    2
Build      2600
Service Pack 2

Plugins:

AvrPluginAvrAsmObject  1, 0, 0, 46
AvrPluginavrgccplugin  1, 0, 0, 9
Stk500Dll      1, 0, 1, 10

AVRASM: AVR macro assembler 2.1.17 (build 435 Apr 10 2008 09:27:55)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der Befehl tst erfordert nur ein Argument!

also

tst temp

stellt fest, ob temp gleich null oder negativ ist.

Den Fehler des Programmes kann ich bestätigen. Etwas Ähnliches tritt 
auf, wenn Du z.B. clr Temp, x  (x ist ein beliebiger 8-Bit Wert) 
schreibst.

von Moritz E. (devmo)


Lesenswert?

also bei clr temp, x ging bei dir die buildausgabe auch in eine 
endlosschleife?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.