GNU/Linux >> Znalost Linux >  >> Linux

Mohu dosáhnout funkčnosti podobné přerušením v uživatelském prostoru Linuxu?

Pokud rozumím vaší otázce, zní tento článek jako to, co hledáte. Článek se jmenuje:Ovladače zařízení v uživatelském prostoru.

úryvek

Ovladače UIO

Linux poskytuje standardní rámec UIO (User I/O) pro vývoj ovladačů zařízení založených na uživatelském prostoru. Rámec UIO definuje malou komponentu kernel-space, která plní dva klíčové úkoly:

  • a. Uveďte oblasti paměti zařízení do uživatelského prostoru.
  • b. Zaregistrujte se pro přerušení zařízení a poskytněte uživatelskému prostoru indikaci přerušení.

Komponenta kernel-space UIO pak zpřístupní zařízení prostřednictvím sady položek sysfs jako /dev/uioXX. Komponenta uživatelského prostoru vyhledává tyto položky, čte rozsahy adres zařízení a mapuje je do paměti uživatelského prostoru.

Komponenta uživatelského prostoru může provádět všechny úlohy správy zařízení včetně I/O ze zařízení. Pro přerušení však potřebuje provést blokovací read() na položce zařízení, což má za následek, že komponenta jádra uspí aplikaci v uživatelském prostoru a probudí ji, jakmile je přijato přerušení.

Nikdy předtím jsem to nedělal, takže vám nemohu nabídnout o moc více rad, ale myslel jsem si, že by to mohlo být užitečné při vašem hledání.


Ve stejném duchu jako @RBerteig obsahuje BeagleBone Black 32bitové mikrokontroléry Programmable Real-Time Unit (PRU).

Nezdá se, že by existovala obrovská komunita, která tyto věci plně využívá. Nejsem si ani jistý, zda na to existuje dobrý kompilátor. Výhody oproti sestavě SBC a mikrokontroléru nebo desky mikrokontroléru jsou v tom, že kód PRU může pocházet z hlavního ARM a sdílená paměť je docela pohodlná.

Nemohu říci, že jsem to použil, nebo dokonce, že jsem na svých BeagleBone Blacks dosud spustil více než jen některé příklady, ale potřeby vyjádřené v této otázce mohou být jednou z věcí, které mohou vývojáře s těmito potřebami postrčit směrem k Černá a pryč od Pi.


Linux
  1. Linux – Může mít jeden uživatel více souborů Crontab?

  2. Změňte uživatelské jméno v systému Linux

  3. Jak můžete identifikovat čipovou sadu USB zařízení v Linuxu?

  1. Jak napsat ovladač zařízení linux block v uživatelském prostoru?

  2. Linux, proč nemohu psát, i když mám skupinová oprávnění?

  3. Jak mohu přiřadit počáteční/výchozí heslo uživateli v Linuxu?

  1. Linux – jaké jsou hodnoty vlastnosti přerušení stromu zařízení?

  2. Linux su příkaz

  3. Jak zjistím, zda je zařízení iscsi připojeným souborovým systémem Linux?