mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM: (PXA270) Fast Interrupt mit Prozess "verknüpfen"


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hoffe das hier ist das richtige Forum. Also ich hab hier einen
PXA270 auf dem 2 Prozesse laufen sollen. Einer zum Messen und einer zum
Versenden der Daten. Der Messprozess soll aufjedenfall höchste Priorität
haben. Ich wollte ihn mit einem FIQ aktivieren. Das Problem ist jetzt,
das ich nicht weis wie ich dem OS oder dem Prozessor sagen kann , das er
bei einem Fiq an einem bestimmten Pin nur den Messprozess und bei allen
sonstigen IRQ's andere Prozesse auslösen soll.

Ich hab in der Reference Manual was von einer Interrupt Vektor Tabelle
gelesen. Kann ich da für den Fiq einfach den Einsprungspunkt einer
Funktion für meinen Messprozess eintragen?

Ich arbeite das erste mal mit Mikrocontrollern (und mit ARM Assembler)
und weis einfach nicht weiter...

danke im voraus.

PS: ich hab diese Frage schon in PC Programmierung gestellt... war wohl 
das falsche Forum.

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wie ich dem OS

Um welches OS handelt es sich denn?

Gruß,

Dominic

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gute Frage, hab ich glatt vergessen. Es ist ein Colibri PXA270 von 
Toradex. Auf ihm ist WinCE 5.0 installiert.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der Herstellerseite gibt es zwar ein Codebeispiel zur 
Interruptbehandlung unter WinCE, aber ich glaube nicht das es auch FIQ 
behandelt. Außerdem ist keine brauchbare Dokumentation vorhanden (der 
Hersteller kann beispielsweise für die Hardware Abstraktion Layer 
defines für WinCE festlegen... das bringt aber nichts wenn es keine 
Übersicht und Beschreibung zu diesen defines gibt).

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wirst Du Dich mit der Devicetreiberentwicklung unter Windows CE 
beschäftigen müssen - um Interrupts "auszuwerten" bedarf es eines 
Interrupthandlers, und so etwas wird unter Windows CE in Devicetreibern 
abgewickelt.

Am OS vorbei selbst in der Interrupttabelle herumzuschreiben ist hier 
wohl keine gute Idee.

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oje... ich hab gar keine Ahnung von Devicedriver Entwicklung. Ich wüsste 
gar nicht was der Treiber alles behandeln soll. Und dann muss ja auch 
die Kommunikation mit anderen Prozessen geregelt werden. Kann ein 
Treiber eigentlich für eine bestimmte Zeit in Echtzeit laufen oder kann 
die Ausführung eines Treibers unterbrochen werden? Die Interrupts kann 
man ja deaktivieren, aber nicht das mir das WinCE noch mit dem 
Prozessscheduler in die Quere kommt.

Ist es vieleicht möglich die Interruptregister so zu konfigurieren das 
ein Interrupt an einem Pin automatisch ein FIQ ist (und dann hoffentlich 
vom OS richtig behandelt wird)?

Autor: Dominic R. (dominic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurzes Googlen hat bzgl. Windows CE + FIQ das hier gefunden:
http://msdn2.microsoft.com/en-us/library/ms904915.aspx

Der PXA270 hat einen ziemlich mächtigen Interrupt Controller, mit dem es 
bestimmt möglich ist, einen von einem GPIO Input ausgelösten Interrupt 
als FIQ zu routen - im PXA270 Developer's Manual steht mehr dazu (Kap. 
24 GPIO Controller, Kap. 25 Interrupt Controller).

Gruß,

Dominic

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke

manchmal kommt man nicht auf die einfachsten suchanfragen. Ich werd es 
jetzt mal mit einer installable ISR und dem IRQ -> FIQ routing 
versuchen.

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.