Freigeben über


Verwenden von Peripheriegeräten in einer Echtzeitanwendung

Wichtig

Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.

Echtzeitanwendungen (RTApps) können Peripheriegeräte zur exklusiven Verwendung zuordnen. Gehen Sie wie folgt vor, um Peripheriegeräte in einer RTApp zu verwenden:

  • Fügen Sie das Peripheriegerät dem Anwendungsmanifest hinzu.
  • Fügen Sie der Anwendung einen Interrupthandler (sofern erforderlich) sowie weiteren unterstützenden Code hinzu.
  • Fügen Sie Code hinzu, um sicherzustellen, dass sich jedes Peripheriegerät beim Start in einem bekannten guten Zustand befindet.

Wichtig

Hardwarespezifische Informationen zur Programmierung von Peripheriegeräten für eine RTApp finden Sie in der Dokumentation Ihres Hardwareherstellers. Informationen zum Registrieren von Basisadressen, Unterbrechungsnummern, Taktfrequenz, Samplinghäufigkeit und weiteren Details zum MT3620 finden Sie im MT3620 Datenblatt und im MT3620 M4 User Manual. Wenn Fragen bestehen, können Sie Details von Avnet per E-Mail Azure.Sphere@avnet.comanfordern.

Alle Ressourcen, die von einer RTApp verwendet werden, müssen im Anwendungsmanifest angegeben werden. In einer RTApp müssen Sie den Namen für die Ressource verwenden, die AppManifestValue in der JSON-Datei der Hardwaredefinition für den Zielchip zugewiesen ist. Der allgemeine Name, der der Ressource zugewiesen ist, kann in der Headerdatei mit der Hardwaredefinition nicht verwendet werden. Um z. B. den Wert zu finden, um I2C auf ISU0 auf MT3620-Hardware zu identifizieren, suchen Sie in der mt3620.json-Datei im Ordner "HardwareDefinitions", der im Ordner "Microsoft Azure Sphere SDK" installiert ist. Dieses Peripheriegerät ist in der JSON-Datei wie folgt definiert:

 {"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},

Beachten Sie, dass der Wert, der AppManifestValue für das I2C-Peripheriegerät zugewiesen ist, "ISU0" ist.

Gleichzeitig geladene Anwendungen können nicht die gleichen Ressourcen verwenden. Ressourcen werden exklusiv von einer einzelnen Anwendung verwendet. Beim Laden der Anwendung werden vom Azure Sphere-Betriebssystem mehrere wichtige Aufgaben ausgeführt:

  • Konfiguration von Multiplexing, um die dem Peripheriegerät zugeordneten Pins für die angeforderte Funktion zu konfigurieren
  • Einrichten der Kernzuordnung, einschließlich Konfiguration von Firewalls, damit die Anwendung Zugriff auf die Register hat, die den angeforderten Peripheriegeräten zugeordnet sind
  • Überprüfung des Manifests. Sollte die Anwendung Ressourcen beanspruchen, die bereits von einer anderen App beansprucht wurden, wird die Anwendung nicht geladen.

Der Rest dieses Abschnitts enthält ausführliche Informationen zur Verwendung bestimmter Peripheriegeräte.

Hinweis

Das Azure Sphere-Betriebssystem setzt keine Peripheriegeräte beim Start zurück. Ihre Anwendungen sollten sicherstellen, dass Peripheriegeräte beim Starten oder nach dem Neustart in einem bekannten Zustand sind.

Ein Geräteneustart wird ausgelöst, wenn eine neue Anwendung, die Peripheriegeräte verwendet, installiert wird und die folgenden Bedingungen erfüllt sind:

Wenn ein Geräteneustart initiiert wird, warten Sie, bis der Neustart abgeschlossen ist und das Gerät reaktionsfähig wird.

Thema Beschreibung
Verwenden von ADCs in Echtzeitanwendungen Beschreibt die Verwendung von ADCs (Analog-to-Digital Converters, Analog-Digital-Konverter) mit Azure Sphere.
Verwenden von GPIOs in Echtzeitanwendungen Beschreibt die Verwendung von GPIO (General Purpose Input/Output, allgemeine Eingaben/Ausgaben) mit Azure Sphere.
Verwenden von GPTs in Echtzeitanwendungen Beschreibt die Verwendung von universellen Timern (General Purpose Timers, GPTs) mit Azure Sphere.
Verwenden von I2C in Echtzeitanwendungen Beschreibt die Verwendung von I2C (Inter-Integrated Circuit) für die serielle Kommunikation.
Verwenden von I2S in Echtzeitanwendungen Beschreibt die Verwendung von I2S (Integrated Interchip Sound) mit Azure Sphere.
Verwenden von PWM in Echtzeitanwendungen Beschreibt die Verwendung von PWM (Pulse-Width Modulation, Pulsweitenmodulation) mit Azure Sphere.
Verwenden von SPI in Echtzeitanwendungen Beschreibt die Verwendung von SPI (Serial Peripheral Interface) für die serielle Kommunikation.
Verwenden von UARTs in Echtzeitanwendungen Beschreibt die Verwendung von UARTs für die serielle Kommunikation.
Verwenden externer Unterbrechungen in Echtzeit-fähigen Anwendungen Beschreibt, wie externe Unterbrechungen in einer RTApp verwendet werden, um auf externe Signale zu reagieren.
Verwenden von Watchdog-Timern in Echtzeit-fähigen Anwendungen Beschreibt die Auswirkungen der Verwendung von Watchdog-Timern auf den MT3620-Echtzeitkernen.