AVR: RAM-Inhalt bei Reset

(Firma: Funkenflug Industries) #5665196
Lesenswert?

Hallo Ihr...

Weiß jemand, ob beim AVR der SRAM-Inhalt erhalten bleibt, wenn der 
Controller crasht und deswegen neu startet? Oder initialisiert der AVR 
bei diesem Reset das komplette SRAM neu mit Null oder so?

Klar, wenn das RAM bei dem Controller-Amoklauf schon überschrieben wird, 
dann ist der Inhalt weg, aber das was dann noch drinsteht, ließe sich 
vielleicht für Debug-Zwecke nutzen wenn so ein Crash auftritt.

Danke euch!
#5665382
Lesenswert?

Ben B. schrieb:
> Weiß jemand, ob beim AVR der SRAM-Inhalt erhalten bleibt, wenn der
> Controller crasht und deswegen neu startet?

Da der AVR gar keine Reset-Quelle namens „Crash“ kennt, ist die Frage so 
sinnfrei.

Geben tut es Power on, Brown out, external, und Watchdog-Resets. 
Letzterer käme als „Crash“ - Reset in Frage.

Das Datenblatt sagt allerdings über den Inhalt des SRams nach einem 
Reset (vermutlich absichtlich) nichts aus, ergo ist alles möglich.

Oliver
Gast #5665454
Lesenswert?

Oliver S. schrieb:
> Bei einem Brown-out-Reset auch nicht?

Den kannst man durchaus auf eine Spannungs-Schwelle konfigurieren, wo 
der AVR noch tadellos funktioniert (z.B. 4,3V).

Du meinst wohl eher den Ausfall der Spannungsversorgung. Das hat dann 
aber nichts mehr mit dem RESET zu tun, sondern mit den "Operational 
Conditions".
#5665464
Lesenswert?

Ben B. schrieb:
> Oder initialisiert der AVR
> bei diesem Reset das komplette SRAM neu mit Null oder so?

Hi,
ein Power on Self Reset mit Hochzählen der Adressen etc. wie beim PC, 
davon wüsste ich nichts bei den ATMEL AVRs.
Zur Sicherheit wird nach dem Stackinit auch gleich eine Lösch-Routine 
angeschlossen. Dann ist das SRAM sicher mit Nullen überschrieben. So 
mach ich das.
(Sonst hatte ich beim ersten Zugriff auf das SRAM und Ausgabe 
Hieroglyphen auf dem Display. Erst bei weiterem Zugriff kamen dann die 
Daten, die aktiv ins SRAM geschoben worden waren auch richtig ins 
Display.)

ciao
gustav
Angehängte Dateien:
Gast #5665481
Lesenswert?

Oliver S. schrieb:
> Bei einem Brown-out-Reset auch nicht? Gewagte Annahme...

Solange der Bod Reset noch als solcher erkannt wird, "sollte" das 
gelingen.

Bei einem Power on Reset, wird man sich gar nicht mehr auf die Daten 
verlassen können.

Aber wie immer:
CRC/Prüfsumme kann die Zuverlässigkeit der Erkennung gültiger Datensätze 
verbessern.
Gast #5665484
Lesenswert?

Stefanus F. schrieb:
>> Nach dem Brown-Out-Reset ist das RAM trotzdem hinüber.
>
> Kann man das irgendwo nachlesen?

SRAM bekommt beim Unterschreiten der minimalen Betriebsspannung 
zufällige Werte.
Es ist egal, ob das vom Brownoutdetektor erkannt wird oder nicht. Gegen 
den Betriebsspannungsverlust kann der nichts machen. Er verhindert nur, 
dass der µC mit zu geringer Betriebsspannung weiterrechnet. Sobald die 
Spannung wieder hoch genug ist, resetiert der Brownout-Mechanismus den 
Controller. Dann ist der RAM-Inhalt aber schon beschädigt.
Gast #5665491
Lesenswert?

Nein schrieb:
> Stefanus F. schrieb:
>>> Nach dem Brown-Out-Reset ist das RAM trotzdem hinüber.
>>
>> Kann man das irgendwo nachlesen?
>
> SRAM bekommt beim Unterschreiten der minimalen Betriebsspannung
> zufällige Werte.
> Es ist egal, ob das vom Brownoutdetektor erkannt wird oder nicht. Gegen
> den Betriebsspannungsverlust kann der nichts machen. Er verhindert nur,
> dass der µC mit zu geringer Betriebsspannung weiterrechnet. Sobald die
> Spannung wieder hoch genug ist, resetiert der Brownout-Mechanismus den
> Controller. Dann ist der RAM-Inhalt aber schon beschädigt.

Die anderen beiden Speicher, EEPROM und Flash, sind da viel kritischer, 
als das SRAM
Gast #5665513
Lesenswert?

Michael A. schrieb:

> 4200 x 4 Bytes maximale Befehlslänge, da komme auf ich auf 16800 Bytes.
>
> Ah, ich sehe, Quellcode....

In den '90ern waren Code-Metriken in Mode. "Anzahl der Kommentarzeilen 
dividiert durch Anzahl der Programmzeilen" und sowas. Teilweise hingen 
davon die Prämien ab, entsprechen sah dann der Code ab.
#5665515
Lesenswert?

Nein schrieb:
> Flash

Im Flash (cseg) ist doch das Programm drin.

; ATtiny4313 memory use summary [bytes]:
; Segment   Begin    End  Code Data Used Size  Use%
;--------------------------------------------------
;[.cseg] 0x000000 0x0002a6 650   28  678 4096 16.6%
;[.dseg] 0x000060 0x000060   0    0    0  256  0.0%
;[.eseg] 0x000000 0x000000   0    0    0  256  0.0%
;Assembly complete, 0 errors. 0 warnings
;--------------------------------------------------

so sieht das beispielsweise aus.

ciao
gustav
Gast #5665551
Lesenswert?

Nein schrieb:
> Nach dem Brown-Out-Reset ist das RAM trotzdem hinüber.
> SRAM bekommt beim Unterschreiten der minimalen Betriebsspannung
> zufällige Werte.

Es geht doch um den Fall, dass die Spannung nur ein bisschen unter 4,3V 
sinkt und der Brown-Out Detektor auf 4,3V eingestellt ist. In diesem 
Fall haben wir kein Unterschreiten der minimalen Betriebsspannung, das 
RAM funktioniert noch, es gehen keine Daten verloren.
Gast #5665556
Lesenswert?

Karl B. schrieb:
> Hi,
> für das EEPROM sind laut Dabla Schreib-Lesezyklen mit ca. 100000
> angegeben oder so.

Ich sage:
Das EEPROM ist kritischer bei Spannungsabsenkung, als das RAM.

Und du sagst:
Gestern hat es geregnet. (100000 Zyklen)

Das eine hat doch mit dem anderen nichts zu tun!

Aber dennoch:
Schön dass du das Datenblatt gelesen hast.
Lies es bitte noch ausführlicher.

Denn:
Thomas E. schrieb:
> Deshalb ist bei
> EEPROM-Nutzung immer der BOD einzuschalten.
Das steht auch im Datenblatt.
#5665569
Lesenswert?

Arduino Fanboy D. schrieb:
> Ich sage:
> Das EEPROM ist kritischer bei Spannungsabsenkung, als das RAM.

Und woher stammt diese Erkenntnis? Ja, im EEPROM kann bei 
Spannungsabsenkung die Adresse, auf die der Schreibzeiger gerade zeigt, 
korrumpiert werden. Das steht extra (etwa verklausuliert) im Datenblatt, 
weil man das so nicht erwartet. Zum SRAM steht da schlicht gar nichts, 
weil dort niemand irgend eine definierten Inhalt nach einem Reset 
erwartet.

Oliver
#5665588
Lesenswert?

Karl B. schrieb:
> Stefanus F. schrieb:
>> (zumindest teilweise) NICHT initialisiert wird.
>
> Hi,
> also bei mir ist etwas Zufälliges drin dann. Manchmal hält es die Daten,
> manchmal auch nicht.

Das ist auch das, wovon ich grundsätzlich ausgehen würde, wenn mein 
Programm startet.

Karl B. schrieb:
> Stefanus F. schrieb:
>> Du meinst sicher das BIOS, nicht Windows ME.
>
> Hi,
> so in etwa sieht das aus, wenn man den Museumsrechner hochfährt:
>
> Das ist nicht der BIOS Schirm.

Und was davon ist jetzt der "Power on Self Reset mit Hochzählen der 
Adressen", von dem du sprachst?
#5665593
Lesenswert?

Thomas E. schrieb:
> Deshalb ist bei EEPROM-Nutzung immer der BOD einzuschalten.

Oliver S. schrieb:
> Ja, im EEPROM kann bei Spannungsabsenkung die Adresse,
> auf die der Schreibzeiger gerade zeigt, korrumpiert werden.
> Das steht extra (etwa verklausuliert) im Datenblatt,
> weil man das so nicht erwartet.

BTDT
Ich hab's nicht verbrochen, durfte aber anschließend für einem 
Großkunden das Nachflashen (bzw. Nachfusen) von einigen Tausend Geräten 
im Feld organisieren. :(
Gast #5665609
Lesenswert?

Oliver S. schrieb:
> Ja, im EEPROM kann bei
> Spannungsabsenkung die Adresse, auf die der Schreibzeiger gerade zeigt,
> korrumpiert werden.

Zumindest in dem Punkt besteht Einigkeit!

Oliver S. schrieb:
> weil dort niemand irgend eine definierten Inhalt nach einem Reset
> erwartet
Immerhin wurde eine .noinit Section eingeführt (AVR-gcc).
So dass dir eigene Experimente+Versuche möglich sind.

Oliver S. schrieb:
> Und woher stammt diese Erkenntnis?
Aus meinen Versuchen!

Thema dabei war:
Batteriewechsel, ohne Datenverlust.

Erkenntnis daraus:
Wenn der Maschinenstatus sagt: Power on Reset
Dann große Wahrscheinlichkeit, dass RAM Daten korrupt.

Wenn der Maschinenstatus sagt: BOD Reset
Dann große Wahrscheinlichkeit, dass RAM Daten ok.

Darum sagte ich auch:
Arduino Fanboy D. schrieb:
> Aber wie immer:
> CRC/Prüfsumme kann die Zuverlässigkeit der Erkennung gültiger Datensätze
> verbessern.

Nebenbei haben die Versuche ergeben, dass die Daten bei Absenkungen auf 
1,1V sehr zuverlässig erhalten bleiben.
Auch wenn die 1,1V über Stunden anliegen.



Meine Versuche habe ich mit ATMega328P angestellt.
Vermutlich wird die untere Grenze Exemplarstreuungen unterliegen und 
auch vom konkreten AVR Type abhängig sein.

Nein schrieb:
> Das RAM aber eben nicht (garantiert).
Eine Garantie kann man nicht darauf geben!
Wo habe ich das gemacht?
Die fantasierst du dahin.
#5665617
Lesenswert?

Stefanus F. schrieb:
> Es geht doch um den Fall, dass die Spannung nur ein bisschen unter 4,3V
> sinkt und der Brown-Out Detektor auf 4,3V eingestellt ist. In diesem
> Fall haben wir kein Unterschreiten der minimalen Betriebsspannung, das
> RAM funktioniert noch, es gehen keine Daten verloren.

Was ist denn das für ein an den Haaren herbeigezogener Fall?

Wenn die Spannung unter 4,3V fällt, schaltet der BOD auf Reset. OK. Und 
dann bleibt die Spannung bei 4,2V stehen, damit der RAM-Inhalt erhalten 
bleibt, oder was? Und irgendwann steigt die Spannung wieder an und alles 
ist wie vorher?
Hauptsache was schreiben, auch wenn es der größte Blödsinn ist.
Gast #5665621
Lesenswert?

Thomas E. schrieb:
> Wenn die Spannung unter 4,3V fällt, schaltet der BOD auf Reset. OK. Und
> dann bleibt die Spannung bei 4,2V stehen, damit der RAM-Inhalt erhalten
> bleibt, oder was? Und irgendwann steigt die Spannung wieder an und alles
> ist wie vorher?
> Hauptsache was schreiben, auch wenn es der größte Blödsinn ist.

Zumindest haben wir die GARANTIE(?), dass der Ram Inhalt oberhalb von 
1,8V erhalten bleibt. Auch wenn BOD auf 4,3V eingestellt ist.

Darum ist die Aussage "BOD ausgelöst = Ram korrupt" in dieser absoluten 
Weise falsch.
Gast #5665644
Lesenswert?

Arduino Fanboy D. schrieb:
> Zumindest haben wir die GARANTIE(?), dass der Ram Inhalt oberhalb von
> 1,8V erhalten bleibt.


Es gibt im Datenblatt ein Diagramm, dass die absolute 
Minimalbetriebsspannung in Abhängigkeit der Frequenz darstellt.
Die Aussage, dass 1.8V immer noch OK ist, ist eindeutig falsch.

Wenn der safe-operating-area-Bereich verlassen wird, ist das RAM-Inhalt 
als Defekt anzunehmen.
Alles andere ist grob fahrlässig.
Angehängte Dateien:
Gast #5665655
Lesenswert?

Nein schrieb:
> Es gibt im Datenblatt ein Diagramm, dass die absolute
> Minimalbetriebsspannung in Abhängigkeit der Frequenz darstellt.
> Die Aussage, dass 1.8V immer noch OK ist, ist eindeutig falsch.

Im (BOD) Resetzustand gibt es keine Taktfrequenz mehr.
Das Bild ist also für diesen Fall vollkommen irrelevant.


Wichtig ist die Aussage im Datenblatt, dass der µC statisch arbeitet. 
SRAM, nicht DRAM. Somit bleiben die Daten auch ohne Takt erhalten.
Gast #5665664
Lesenswert?

Arduino Fanboy D. schrieb:
>> Es gibt im Datenblatt ein Diagramm, dass die absolute
>> Minimalbetriebsspannung in Abhängigkeit der Frequenz darstellt.
>> Die Aussage, dass 1.8V immer noch OK ist, ist eindeutig falsch.
>
> Im (BOD) Resetzustand gibt es keine Taktfrequenz mehr.
> Das Bild ist also für diesen Fall vollkommen irrelevant.
>
> Wichtig ist die Aussage im Datenblatt, dass der µC statisch arbeitet.
> SRAM, nicht DRAM. Somit bleiben die Daten auch ohne Takt erhalten.

Ok. Nehmen wir an, das ist so.

Wer garantiert dir jetzt, dass die Spannung nicht doch bis auf 1.7V 
gefallen ist?

RAM-Inhalt nach der Rückkehr aus dem Brown-Out ist und bleibt 
undefiniert.
(Firma: Funkenflug Industries) #5665673
Lesenswert?

Meine Fresse, was ist denn hier los?

Also zu allererst mal finde ich es super lustig wie ihr euch über mein 
Assembler-Programm die Mäuler zerreißt. Nur so viel, wenn die 
Kernfunktionen fertig sind, dauert das Programmieren nicht viel länger 
als mit einer Hochsprache. Viele der verwendeten Funktionen waren vorher 
bereits fertig, das einzige was ich noch nicht hatte und erst recht 
zeitaufwendig basteln musste, waren die GSM-Funktionen. Aber das zu 
bauen hat echt Spaß gemacht, das war mit der Kerngedanke des Projekts... 
mal schauen ob ich das hinkriege oder nicht. Die Geschwindigkeit war 
auch kein Kriterium. 14,7 MHz sind für eine Alarmanlage ziemlich 
großspurig und werden definitiv reichen.

Wieso ich gefragt habe:
Ich halte es für möglich, daß das Programm irgendwann aus irgendwelchen 
Gründen mal crasht. Daher baue ich ein wenig Sicherheit ein, daß ich 
wenigstens weiß welche Funktion vor dem Crash als letztes ausgeführt 
wurde oder vom Watchdog abgebrochen wurde.

Ich mache das mit dem RAM löschen beim Start/Reset auch. Dann herrschen 
da stabile Zustände und das Programm hat egal nach was für einem 
Start/Reset/Crash immer die gleichen Ausgangsbedingungen. Aus der 
RAM-Lösch-Funktion habe ich nun die ersten beiden Bytes des RAM 
ausgenommen. Die scheinen sogar einen kurzen Verlust der 
Betriebsspannung zu überstehen, das ChipErase beim Programmieren 
überstehen sie nicht.

Der Crashtest war auch nicht besonders schwierig...
ldi r16,0x88
push r16
push r16
ret -> und tschüss.
Gast #5665674
Lesenswert?

Nein schrieb:
> Wer garantiert dir jetzt, dass die Spannung nicht doch bis auf 1.7V
> gefallen ist?
>
> RAM-Inhalt nach der Rückkehr aus dem Brown-Out ist und bleibt
> undefiniert.

Zum zweiten Mal:
Arduino Fanboy D. schrieb:
> Eine Garantie kann man nicht darauf geben!
> Wo habe ich das gemacht?
> Die fantasierst du dahin.



Zum dritten Mal:
Arduino Fanboy D. schrieb:
> Aber wie immer:
> CRC/Prüfsumme kann die Zuverlässigkeit der Erkennung gültiger Datensätze
> verbessern.
(Firma: Funkenflug Industries) #5665694
Lesenswert?

0x8888 liegt aber deutlich oberhalb des Programms in der unendlichen 
Leere des unbenutzten Flash. Also gibt das auf jeden Fall einen 
Amoklauf. Keine Ahnung was da im Flash drinsteht und auch keine Ahnung, 
was der AVR bei illegalen Opcodes macht. Intel-CPUs lösen einen 
Interrupt aus, der AVR hat sowas nicht.

Was ich aber als noch unschöner empfinde, sind Endlosschleifen. Wenn die 
vom Watchdog unterbrochen werden, weiß man ohne solche Sicherheiten 
niemals, an welcher Stelle das Programm vorher ausgeführt wurde.
#5665696
Lesenswert?

Das hat mit einem Reset nichts zu tun, da tritt gar keiner auf.

Was passiert, ist, daß du übers Flashende hinaus ein Programm ausführst. 
Das Verhalten dazu ist offiziell undefiniert, inoffiziell wird der 
Programmzeiger irgendwann überlaufen, und dann geht’s halt bei 0 wieder 
los. Dabei bleibt SRAM-Imhalt sehr wahrscheinlich erhalten. Garantieren 
kann das aber auch niemand.

Oliver
Gast #5665707
Lesenswert?

Verstehe das Problem nicht.

Auf das RAM zuzugreifen, ohne dort vorher Daten hingeschrieben zu haben 
(und sei es beim Initialisieren), ist doch üble Programmiertechnik.

Es wird immer einen Grenzbereich geben, wo einige Speicherzellen kippen 
und andere nicht allein durch die Serienstreuung, d.h. i.A. ist der 
Inhalt undefiniert -> fertig.
Gast #5665731
Lesenswert?

Ich denke, wenn man die Standpunkte etwas anders formuliert, wird die 
Sache möglicherweise etwas klarer und die Diskussion etwas entschärft.

Der Punkt bei der BOD ist doch, dass man nicht definitiv sagen kann, 
dass die Spannung bei ihrem Ansprechen so niedrig ist, dass das RAM 
seinen Inhalt verliert. Ich denke das wollte auch so niemand behaupten 
(korrigiert mich, falls ich mich da irre).

Es gibt ja verschiedene Level auf die man BOD-Ansprechschwelle stellen 
kann. Leider ist ja auch ein konkreter Typ nicht genannt, so dass man 
hier evtl. gewisse Unterschiede feststellen kann.

Die Aussage von Nein, ist, gemessen an seinem Datenblatt (magst Du das 
mal verlinken, bitte?) formal auch richtig. Es steht ja da 1,8V < Vdd. 
Allerdings hat er in seinem Zitat vielleicht übersehen, dass Fanboy 
ausdrücklich von "... oberhalb von 1,8V ..." spricht. Neins Antwort, 
dass "1,8V" nicht noch OK ist, bezieht sich also nicht darauf.
Ein Lapsus; kann mal passieren. :-)

Ich gehe im folgenden mal von einem ATMega328p aus. 
(ww1.microchip.com/downloads/en/DeviceDoc/ATmega328_P%20AVR%20MCU%20with 
%20picoPower%20Technology%20Data%20Sheet%2040001984A.pdf)

Danach lässt sich der BOD-Level (Seite 370) bis auf 1,8V herunter 
stellen und in der Anmerkung ist beschrieben, dass Typen, die für 1,8V 
Betriebsspannung spezifiziert sind auch genau darauf getestet werden, 
dass sie bei 1,8V den BOD-Reset auslösen.

Daraus ergibt sich eine differenziertere Betrachtung:
Wenn der uC mit 1,8V betrieben wird und der BOD-Level darauf eingestellt 
ist, kann man wohl begründet davon ausgehen, dass das RAM nicht mehr 
funktionieren muss sobald BOD ausgelöst hat.
Wenn aber der uC mit einer höheren Spannung betrieben wird, die über 
einem der höheren BOD-Level liegt, so wird das RAM noch funktionieren, 
sobald der BOD-Reset auftritt und solange, wie die Spannung noch über 
1,8V liegt.

Im Grunde war die Frage des TOs ja auch nicht auf den BOD-Fall bezogen, 
sondern einen "Crash" ohne das das näher charakterisiert wurde.

Stefanus F.s Einwand war insofern etwas lakonisch, denn er bezog sich 
auf den BOD-Reset, ohne aber einzugrenzen, ob er dabei davon ausgeht, 
dass die Spannung auf 1,8V abfällt, was ja nicht zwingend der Fall sein 
muss, oder nicht.
Insofern erweitert er den Fokus auf Resets auch auf BOD-Resets. Der 
Grund aber, warum das RAM seinen Inhalt verliert, liegt zu allererst 
nicht im Reset begründet (egal ob BOD oder nicht) sondern in der 
niedrigen  Betriebsspannung.
Man kann sich das zwar denken, muss es aber nicht und das hat, meiner 
Meinung nach, erst die Diskussion um den Betriebsspannungsbereich 
ausgelöst.

Ich hoffe das ist hilfreich.
(Firma: Funkenflug Industries) #5665734
Lesenswert?

Der schlimmste vorstellbare Crash wäre, wenn der Controller erst ein 
paar tausend Befehle kreuz und quer durch das Programm fliegt und erst 
dann ein Reset ausgelöst wird. Da rauszubekommen, an welcher Stelle das 
Unheil seinen Anfang nahm, wird schwierig.

Aber die Methode sollte zumindest Watchdog-Resets zuverlässig abfangen 
können. Wenn sie bei den restlichen Problemen nur vielleicht eine 
brauchbare Information liefert, dann ist das immer noch besser als 
nichts, also bleibt das so. ;)

Bislang läuft das Programm aber sehr zuverlässig. Habe bislang nur 
Tippfehler (falsche Puffergröße) oder einen buffer overrun produziert. 
Eine nur zum Debuggen verwendete Funktion hat eine SMS in den 
Speicherbereich der GSM-Variablen hineinkopiert und dort Chaos 
angerichtet. Solange die nur für LCD-Module verwendet wurde war's egal, 
für den Sende-Puffer eines USART (keine direkte LCD-Ausgabe) war's etwas 
ungünstig. Letzters habe ich länger suchen müssen weil der Fehler schwer 
reproduzierbar war. Aber sonst alles schick.
#5665738
Lesenswert?

Ben B. schrieb:
> 0x8888 liegt aber deutlich oberhalb des Programms in der unendlichen
> Leere des unbenutzten Flash. Also gibt das auf jeden Fall einen
> Amoklauf. Keine Ahnung was da im Flash drinsteht und auch keine Ahnung,
> was der AVR bei illegalen Opcodes macht.

Da steht das drin, was du da reinprogrammiert hast. Oder falls der 
Bereich durch den Programmer gar nicht angefasst wurde, 0xFF, was soweit 
ich weiß beim AVR ein NOP ist. Passiert also gar nix, bis dein AVR 
wieder bei 0 startet. Es werden also weder irgendwelche Register, noch 
der RAM angefasst. Einen Reset oder "Crash" gibt's da nicht. Was du 
unter "Crash" verstehst, definierst alleine du. Davon hängt dann ab, was 
nachher im RAM steht.
Wie oben schon geschrieben, solltest du aber davon ausgehen, dass da 
irgendwas zufälliges drin steht.

> Intel-CPUs lösen einen Interrupt aus, der AVR hat sowas nicht.

Eine Exception. Interrupts hat der AVR schon.
(Firma: Funkenflug Industries) #5665741
Lesenswert?

Nachtrag:

BOD war bei den Tests auf die höchste Stufe (4,3V glaube ich) 
eingestellt und der Reset wurde durch kurzzeitiges Abschalten des 
speisenden Netzteils (12V-Seite) ausgelöst, nach dem Erlöschen des 
LCD-Displays wieder eingeschaltet. Das haben die Daten im RAM 
überstanden, aber es ist wahrscheinlich, daß die Spannung am Controller 
nicht unter 1..2V abgesunken ist. Das wird reichen, damit das RAM 
funktionsfähig bleibt.

>> Intel-CPUs lösen einen Interrupt aus, der AVR hat sowas nicht.
> Eine Exception. Interrupts hat der AVR schon.
Klugscheißer. Wenn man etwas absichtlich missverstehen will, ist so eine 
blöde Bemerkung wohl garantiert.
Beitrag #5666029 wurde von einem Moderator gelöscht.
Beitrag #5666034 wurde von einem Moderator gelöscht.
Beitrag #5666071 wurde von einem Moderator gelöscht.
Beitrag #5666168 wurde von einem Moderator gelöscht.
Beitrag #5666269 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren