mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bugs in AVR und ARM


Autor: Michael Stather (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael Stather (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Entnervter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.