Forum: Mikrocontroller und Digitale Elektronik Bugs in AVR und ARM


von Michael Stather (Gast)


Lesenswert?

Es gibt ja z.B. bei der i386-Architektur einige Probleme durch Bugs in
den Przessoren, die vom Compiler umgangen werdne müssen.
Ist das bei AVR und ARM auch so, oder weisen diese durch die einfachere
Architektur keine größeren Fehler auf.

Werden eventuell gefundene Fehler durch einzelne Revisionen korrigiert,
oder werden Compiler-Workarounds eingesetzt?

Vielen Dank schonmal für Eure Hilfe!

von Schoasch (Gast)


Lesenswert?

Hast du schon einmal Errata Sheets gesehen? Hier sind diese Bugs
dokumentiert und meistens auch ein Lösung wie man diese Bugs dann
umgehen kann.

von Michael Stather (Gast)


Lesenswert?

Ja ich habe sie angeguckt.
Ich meinte eher wie die Bugs in diesen Architekturen gehandhabt werden,
also sind in den Compilern Workarounds eingebaut oder werden die Chips
einfach in neuen Revisionen gefixt?

von A.K. (Gast)


Lesenswert?

Frag ich mich ja, auf welche Errata du dich beziehst. Gib mal einen Tip,
welchen Bug ein Compiler bei AVR berücksichtigen sollte? Wenn
beispielsweise ein EEPROM unterhalb 900KHz Takt nicht mehr recht
funktioniert oder der ADC in bestimmten Konstellationen Mist baut, was
soll der Compiler denn da machen?

Gleiche Frage für die von die erwähnten x86-er übrigens. Unter den
diversen Bugs beispielsweise der K8 Prozessoren ist kein einziger
dabei, an dem Compiler irgendwas drehen könnte. Systemdesign, BIOS,
Betriebssystem ja, aber nicht der Compiler.

von Entnervter (Gast)


Lesenswert?

Ein berühmter Bug in x86 ist der fdiv-Bug im Pentium, durch den
Fließkomma-Divisionen zu fehlerhaften Ergebnissen führen konnten. Es
gibt noch eine ganze Reihe anderer Bugs in den Assembler-Instruktionen,
die durchaus vom Compiler umgangen werden können. Beim AVR habe ich
bisher noch nicht von sowas gehört.

von Robert Teufel (Gast)


Lesenswert?

Also die meisten Bugs sind bei ARM und AVR wohl nicht Architektur / Core
spezifisch sondern eher in Peripherals oder noch schlechter in analogen
Bloecken zu finden.
Bei Architektur Bugs koennte evtl. der Compiler was machen aber die
gibts kaum noch, AVR und ARM7 sind soweit ich weiss beide seit ca. 10
Jahren auf dem Markt, irgendwann lass mal gut sein mit neuen Bugs.
Die Chips basierend auf diesen Architekturen sind zwischen 10 Tagen und
10 Jahren auf dem Markt ;-)
Also mit Compilern geht insgesamt wenig, mit studieren der Errata
Sheets allerdings ne ganze Menge.

Robert

von A.K. (Gast)


Lesenswert?

Mit dem FDIV-Bug bin ich durchaus vertraut. Allergings hat der nicht so
sehr bei den Compilerherstellern für Aktivität gesorgt, als vielmehr
bei Intel. Und hat ein für alle Mal mit der unseligen Tradition
gebrochen, diese Errata Sheets nur gegen Maulkorb NDA rauszurücken.

Generell gilt bei x86, dass alles was Anwendungsprogramme betrifft,
Sache des Prozessorherstellers und ggf. des Betriebssystems ist, nicht
des Compilers.

"Es gibt noch eine ganze Reihe anderer Bugs in den
Assembler-Instruktionen, die durchaus vom Compiler umgangen werden
können."

Beispiel aus neuerer Zeit? Den letzten dieser Art fand ich beim K6, bei
dem der Beschreibung nach die fehlerhafte Konstellation vermieden werden
kann. Indes schrieb AMD trotzdem "Workaround none", fand also diese
Vorstellung nicht so prickelnd.

Was AVR angeht, oder auch ARM: Sonderlich komplex sind die Cores diese
Teile ja nicht und der ARM7-Core ist auf dem Weg über technisch sehr
ähnliche ältere ARM-Cores im Wesentlichen bald 2 Jahrzehnte alt. Die
x86-Bugs, die öfter mal Programme ausser Tritt bringen konnten,  sind
auch eher in den komplexeren Teilen angesiedelt (ebd. Divider, Branch
Target Cache [K6, der war weitaus ärgerlicher als FDIV], Caches/TLBs,
SMP-Support, usw.).

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.