mikrocontroller.net

Forum: Compiler & IDEs WinAvr und der Code vor Main()


Autor: Mario EDUARDO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die LCD Libraray und das Testprogramm von Peter Fleury an mein 
4*20 Display angepaßt (4 bit Mode, PortC) , das will nicht 
funktionieren. Ich habe mir den Code im AS4 angesehen, und verstehe 
nicht was der Code soll. Habe daher 2 Fragen :

1) Kann mir jemand den SourceCode (stub) senden, der vom Linker vor der 
Funktion main() abgearbeitet wird. Habe mir den Source vom WinAvr 
heruntergeladen, kann aber mit den DateiTypen nichts anfangen.

2) Ich habe dieses Forum und Help schon durchsucht, aber
nichts gefunden, wie ich vom Compiler einen AssemblerOutput erhalte.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Sourcecode steht in avr-libc/crt1/gcrt1.S.

Teilweise könnten noch Funktionen aus der libgcc.a eingebunden
werden.  Deren Quellen findest Du in gcc/gcc/config/avr/libgcc.S.

(Die genauen Standorte im WinAVR mußt Du Dir bitte suchen.  Ich
hab' hier kein Windows.)

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mario,
Was funktioniert denn nicht beim Ansteuern des Display ?
Erscheinen schwarze Klötzchen auf dem Display ?

Läuft die lcd_init() Routine durch ? (Teste mit einer LED Ausgabe nach 
lcd_init() )

Die LCD library lässt sich schlecht in AS4 debuggen, weil AS4 keinen LCD 
controller simulieren kann.

Autor: EDUARDO Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter:
Vielen Dank!!!

Ja, schwarze Klötzchen in jeder 2ten Zeile bei einem
4 zeiligen Display.

Bis zu lcd-init bin ich gar nicht gekommen, da ich mal im AS4 ansehen 
wollte, was sich da so alles abspielt - klar - simulierender Weise! Das 
ist ja ein höchst perverser ObjectCode, bin halt 6502 und 68000er Code 
gewohnt.

Mein nächstes Problem war, daß die Einen in Worten, die Anderen in Byte 
zählen (LST und MAP Dateien). Wußte daher nicht wo ich im AS4 gerade bin 
und wer sich da verlaufen hat.

Soweit mal zum "Dampf ablassen" ...

Du meinst, daß ich nach lcd-init an einem Port eine Led
auf/abdrehen soll? Mach ich. Danke jedenfalls.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die GNU-Tools zählen komplett in Bytes, während Atmel wohl
teilweise Wortadressierung bevorzugt.  Das läßt sich beides
nicht ändern.  Atmel ist allerdings damit nicht konsequent,
da LPM/SPM wieder byteadressiert sind (was dieses @$!% RAMPZ
eingehandelt hat beim ATmega103/128).

Was vor main() passiert, ist aber in der (avr-libc) Doku einigermaßen
beschrieben. Du mußt das also vielleicht ja nicht unbedingt
komplett in der Simulation einzelschrittweise angucken, um das
Problem Deiner nicht funktionierenden Applikation zu debuggen.

Autor: EDUARDO Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank an alle,
genau das PORTC war teilweise defekt.
Anfängerfehler ...

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.