Librarie erstellen mit Assembler / GCC und Interrupt

Gast #524203
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)
Moderator Persönliche Seite #524268
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?

Antwort schreiben

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.

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.