Interruptlatenzzeiten bei Mikrocontrollern

Gast #1119699
Lesenswert?
• ▲
▼
Hallo,
ich benutze den ADuC7021 und habe dort 2 Interruptroutinen (eine für die 
schnellen Interrupts FIQ und eine für die langsamen Interrupts IRQ) in c 
implementiert (mit KEIL Vision 3.x). Im Datenblatt ist als maximale 
Interruptlatenzzeit 1,4 µsec angegeben. Gemessen habe ich aber 2,4 bis 
2,8 µsec. Woran kann diese längere Interruptlatenzzeit liegen?
Am KEIL Compiler, der vielleicht viele Register beim Einsprung sichert?
Oder weil ich dide Interruptroutine in c Implementiert habe? Würde eine 
Assemblerimplementation der Interruptroutine helfen?
Kann man im KEIL µVision 3 irgendwo einstellen, dass er beim 
Interrupteinsprung nur die aller nötigsten Register sichert? Oder habt 
ihr andere Tips und Tricks?
Danke
Gruß
Samuel
#1119713
Lesenswert?
• ▲
▼
Das Datenblatt gibt die Latenz bis zum ersten Assembler-Befehl des 
Handlers an. Du misst hingegen die Latenz bis zur ersten Zeile in C. 
Dazwischen liegt der Wasserkopf einer C-Funktion als Handler.

Speziell beim FIQ ist Assembler ziemlich hilfreich, weil man dort anders 
als in C vorrangig die automatisch umgeschalteten Register verwenden 
kann, ggf. vorinitialisiert mit irgendwelchen benötigten Basisadressen.

Apropos 1,4µs: Woraus ergibt sich das? Ein Datasheet dürfte das nicht in 
absoluter Zeit sondern in Takten angeben. Zudem scheint mir das 
ausserordentlich viel zu sein.

Wenn ein IRQ/FIQ-Handler auf ADuC schnell sein soll, dann sollte er als 
nativer ARM Code im RAM laufen.

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.