Linker-Problem

Gast #1195129
Hallo!

Programmiere gerade mit dem Pollin-Evalboard einen ATMEGA168-20PU.
Dazu nutze ich das AVRStudio4 und Ponyprog.

Auf der Suche nach fehlern habe ich mein Programm gerade im AVRStudio 
simuliert.

Dabei ist mir aufgefallen das im Disassembler der Programmcode sehr 
komisch angeordnet war.

So sind gewisse Zeilen die nur bedingt ausgeführt werden zwischen 
Initialisierungsbefehle gerutscht.

Wie kommt sowas? Wie kann man es abstellen?

Außerdem wird an einer Stelle durch das Verwenden der strcat()-Funktion 
aus der String.h eine unbeteiligte Variable manipuliert.

Wie kommt sowas? Wie kann man es abstelle`n?


Vielen Dank schonmal.

ciao
Mathias
Gast #1195153
>Wie kommt sowas? Wie kann man es abstellen?

Optimierung eingschaltet?

>Außerdem wird an einer Stelle durch das Verwenden der strcat()-Funktion
>aus der String.h eine unbeteiligte Variable manipuliert.

Buffer zu klein bzw. fehlende Null am Ende des/der Strings.

Oliver
Gast #1195182
Die Optimierung ist an.
Mir ist auch gerade aufgefallen das der Code zu dem der Simulator 
springt anscheinend garnicht ausgeführt wird.
Seltsam finde ich es allerdings trotzdem.

Der Fehler mit der stringfunktion ist behoben. Es war der buffer.
#1195207
Mathias wrote:
> Die Optimierung ist an.
> Mir ist auch gerade aufgefallen das der Code zu dem der Simulator
> springt anscheinend garnicht ausgeführt wird.
> Seltsam finde ich es allerdings trotzdem.

Nicht wirklich :-)
Wenn der Optimierung ganz Arbeit geleistet hat, dann gibt es keine 1:1 
Entsprechung mehr vom Maschinencode mit dem von dir geschriebenen 
C-Programm. Du darfst daher die Anzeige, die der Debugger aus dem C-Code 
ableitet nicht mehr für 100% bare Münze nehmen.

> Der Fehler mit der stringfunktion ist behoben. Es war der buffer.

Wie praktisch immer :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.