Hinweise zur Adresszuordnung von Gerätetreibern im Linux-Kernel

Hinweise zur Adresszuordnung von Gerätetreibern im Linux-Kernel
#include <asm/io.h>
#define ioremap(Cookie,Größe) __arm_ioremap(Cookie, Größe, MT_DEVICE)
//Cookie gibt die physische Adresse an, Größe gibt die Zuordnungsgröße an. ioremap ordnet die angegebene physische Adresse einer freien virtuellen Adresse zu void __iomem *
__arm_ioremap(unsigned long phys_addr, size_t Größe, unsigned int mtype)
{
returniere __arm_ioremap_caller(phys_adresse, Größe, mtype,
__builtin_return_address(0));
}

1. Virtuelle Adresse nach Zuordnung von physischer Adresse

  • Virtuelle Adresse = ioremap (physische Adresse, Zuordnungsgröße);
  • Nach der Verwendung iounmap (virtuelle Adresse); //Lösche die Zuordnungstabelle

2.

ioread8(Adresse)/readb()
ioread16(Adresse)/readw()
ioread32(Adresse)/readl()

iowrite8(Wert, Adresse) / writeb
iowrite16(Wert, Adresse) / writew
iowrite32(Wert, Adresse) / writel
#include <asm/sizes.h>
SZ_4K
SZ_1M

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Eine einfache Möglichkeit, Linux-Code auf Windows zu portieren
  • Hinweise zur Speicherverwaltung von Linux-Kernel-Gerätetreibern
  • Hinweise zur Zeitverwaltung des Linux-Kernel-Gerätetreibers
  • Hinweise zum Zeichengerätetreiber des Linux-Kernel-Gerätetreibers
  • Hinweise zum virtuellen Dateisystem des Linux-Kernel-Gerätetreibers
  • Hinweise zum Systemaufruf des Linux-Kernel-Gerätetreibers
  • Sortierung der technischen Hinweise zum Linux-Kernel-Gerätetreiber-Kernel-Debugging
  • Hinweise zur Verwendung der verknüpften Liste des Linux-Kernel-Gerätetreibers
  • Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers
  • Hinweise zum erweiterten Zeichengerätetreiber des Linux-Kernel-Gerätetreibers
  • Linux-Kernel-Gerätetreiber. Zusammenfassung der Hinweise zum Lademechanismus von Linux-Kernelmodulen.
  • Gerätetreiber des Linux-Kernels – Zusammenfassung der grundlegenden Hinweise zum Linux-Kernel
  • Schritte zum Übertragen des neuen Kernels auf das Linux-System

<<:  Beispiel für das Herunterladen von Dateien mit vue+django

>>:  Beispiel für das Hinzufügen und Löschen von Bereichspartitionen in MySQL 5.5

Artikel empfehlen

Lösung für Linux CentOS 6.5 ifconfig kann IP nicht abfragen

Kürzlich sagten einige Freunde, dass sie nach der...

Erläuterung der Array-Verarbeitung in React und Redux

Dieser Artikel stellt einige häufig verwendete Fu...

Natives JS zum Erzielen eines coolen Paging-Effekts

In diesem Artikel wird anhand eines Beispiels ein...

Detaillierte Erläuterung des Grafikbeispiels für Vue-Überwachungsattribute

Inhaltsverzeichnis Was ist die Listener-Eigenscha...

Detaillierte Einführung in Protokolle im Linux-System

Inhaltsverzeichnis 1. Logbezogene Dienste 2. Geme...

border-radius ist eine Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...

Eine sehr detaillierte Erklärung der Linux C++ Multi-Thread-Synchronisierung

Inhaltsverzeichnis 1. Mutex 1. Initialisierung de...

Beispiel für die Bereitstellung eines Django-Projekts mit Docker

Es ist auch sehr einfach, Django-Projekte mit Doc...

Bereitstellung und Konfiguration des Apache-Dienstes unter Linux

Inhaltsverzeichnis 1 Die Rolle von Apache 2 Apach...

Über React Native, das keine Verbindung zum Simulator herstellen kann

React Native kann native iOS- und Android-Apps ba...

SVN-Installation und grundlegende Bedienung (grafisches Tutorial)

Inhaltsverzeichnis 1. Was ist SVN? 2. Methoden zu...