Linux Interrupt vs. Polling
Ich entwickle ein System mit einem DSP und einem ARM. Auf dem ARM gibt es ein Linux-Betriebssystem. Ich habe einen DSP, der Daten an den ARM sendet (Linux) - Im Linux gibt es ein Kernelmodul, das die vom DSP empfangenen Daten liest. Das Kernel-Modul wird durch einen Hardware-Interrupt zwischen dem DSP und dem ARM aufgeweckt, um die Daten zu lesen.
Ich möchte eine User-Space-App schreiben, die jedes Mal, wenn neue Daten vom DSP eingehen, die Daten aus dem Kernel-Space (dem Kernel-Modul) liest.
Die Frage ist:
Was ist ein besserer Ansatz, um dies zu tun, ein Software-Interrupt vom Kernel zum User-Space oder ein Polling vom User-Space (Lesen einer bekannten Speicheradresse mit dem Kernel) alle 10 ms.
Wissend, dass:
Die Daten vom DSP zum Kernel müssen in sehr kurzer Zeit eintreffen - 100us.Die Daten vom Kernel zum User-Space können 10ms bis 30ms dauern.Die Daten, die gelesen werden, werden als klein angesehen - ungefähr 100 Bytes.