mikrocontroller.net

Forum: Compiler & IDEs seltsames Verhalten im Speicher


Autor: see4far (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Bin vorhin auf ein sehr merkwürdiges Verhalten gestoßen.

In meiner CRC16-Funktion wollte ich

uIndex = uchCRCHi ^ *puchMsg++;

in eine andere Funktion auslagern:

unsigned calcIndex(unsigned char uchCRCHi, unsigned char Val) {
return (uchCRCHi ^ Val); }

Danach erfolgt dann der Aufruf über:

uIndex = calcIndex(uchCRCHi, *puchMsg++);

Jetzt hab ich folgendes Problem:
6mal kann ich den CRC-Wert richtig berechnen, beim 7. mal auch, aber
dabei werden dann scheinbar andere Speicherbereiche überschrieben.
Zumindest sind meine Datenpakete dann mit falschen Zeichen befüllt, die
Checksumme hintendran stimmt immernoch. Bei diesen Zeichen taucht dann
unter anderem auch die Checksumme wieder auf, aber in umgekehrter
Reihenfolge, erst LowByte, dann HighByte. Die anderen Zeichen kehren
auch immer wieder, aber sie wandern im Datenpaket aufwärts.

Ich finde das sehr seltsam. Eigentlich wollte ich größere Teile von der
CRC-Berechnung auslagern, dabei entdeckte ich dann das Problem. Ich muss
halt den CRC von einem Array und ein paar anderen Variablen zusammen
berechnen ... und da wollte ich eine Art CRCAddValue-Funktion
auslagern...

Kann mir einer sagen, wo ich da ansetzen muss. Bin relativ ratlos!!!

Gruß,
see4far

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kingt ein Bisschen, als sei dein Stack voll. Wäre das möglich?

Autor: see4far (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnte sein! wie stell ich das fest? und wie behebe ich das?

mfg
see4far

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.