www.mikrocontroller.net

Forum: Compiler & IDEs Librarie erstellen mit Assembler / GCC und Interrupt


Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe eine .S Datei die verwendet wird für das Aswerten von
ein Signal am INT0 Interrupt. Daneben gibt es noch eine .c Datei.

Von diese .S und .c Dateien versucht eine Librarie zu erstellen mit
avr-ar anhand http://www.mikrocontroller.net/articles/Libraries.
Klappte.. Nur leider...

Das Interrupt wird NICHT angezeigt avr-nm und leider ist das
Intterupt (INT0) nicht in die Liste. Und es ist scheinbar auch nicht
in die Libarie drinnen, mein Program macht nicht viel..

Jemand eine Ahnung wie mann ein Interrupt doch im Librarie
drinnen bekommt?!?!

Ich habe noch versucht um über das Interrupt eine Routine
an zu rufen in das Librarie, leider wirft avr-gcc scheinbar
alle Register auf den Stack wenn ich im .lss File reinschau..

Mfg,

Robert (Niederlande)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISRs in einer Bibliothek sind nicht ganz einfach.  Das hängt damit
zusammen, dass die ISR ja (aus Sicht des Linkers) niemand ,,ruft'',
d. h. es gibt keine zuvor undefinierte Referenz, die durch Linken
der entsprechenden ISR aufgelöst würde.

Es müsste funktionieren, wenn man auf der Kommandozeile des Linkers
die entsprechende undefinierte Referenz mit der Hand erzeugt.  Das
geht mit der -u Option (vom Compiler aus -Wl,-u), wobei man der den
internen Namen des Vektors geben muss, also __vector_42, nicht
INT0_vect.  Welcher Name das genau ist, hängt von deinem Controller
ab.

Wäre es nicht einfacher, wenn du statt der Bibliothek lieber einfach
nur das entsprechende Objektmodul direkt auf der Linker-Kommandozeile
mit angibst?

Autor: Ro Ev (rev)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

Danke für die Tips. Werde mahl beide Optionen Versuchen. Die zweite ist 
denke ich am einfachstem...

Robert

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.