Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
16 Elektronik 20 2024 EmbEddEd-SoftwarE allgemeiner Betriebssysteme Zusätzlich enthält der IMX9352 einen ARM-Cortex-M33-Prozessor mit maximaler Taktfrequenz von 250 MHz Dieser Prozessor ist für die Verwendung in Mikrocontrollern konzipiert für Echtzeitund Low-Power-Anwendungen Damit eignet sich der IMX9352 ideal für die Realisierung des Beispielsystems Für die Linux-Umgebung des Beispielsystems dient die Kernelversion 6 1 1-rt5 Dieser Kernel ist bereits mit dem PREEMPT RT-Patch modifiziert um ein besseres Echtzeitverhalten zu erreichen Der Patch verkürzt die Zeiträume in denen der Linux-Kernel nicht unterbrochen werden kann und reduziert so die maximale Verzögerung mit der der Kernel auf Interrupts reagiert [3] Außerdem wurden dem Kernel zusätzliche Treiber und Anpassungen von NXP Semiconductor und eine Konfiguration für das SoM sowie die Trägerplatine von Variscite hinzu - gefügt Der Linux-Kernel nutzt die beiden ARM-Cortex-A55-Prozessoren des MPSoCs Für die Echtzeitumgebung wurde die OpenAMP-Bibliothek für den ARM-Cortex-M33 im IMX9352 portiert und in eine FreeRTOSbasierte Firmware integriert Diese Firmware wird von der Linux-Umgebung in den Programmspeicher des Coprozessors geladen und parallel ausgeführt Mittels der Funktionen der OpenAMP-Bibliothek ist sie in der Lage Daten mit der Linux-Umgebung auszutauschen RPMsg Kommunikation mittels Shared Memory und Interprozessor-Interrupts Das RPMsg-Framework nutzt die Tatsache dass die kommunizierenden Prozessoren in einem Chip integriert sind Heterogene MPSoCs sind so aufgebaut dass die Prozessoren alle gemeinsam denselben Speicher nutzen Dadurch sind für die Kommunikation keine Busse oder seriellen Schnittstellen nötig wie es bei zwei separaten ICs auf einer Platine der Fall wäre Stattdessen wird ein spezieller Speicherbereich Shared Memory ausgewählt über den die Prozessoren Daten austauschen RPMsg OpenAMP – kurze Vorgeschichte zur Latenzmessung Asymmetrisches Multiprocessing AMP bedeutet Mehrere unterschiedliche Betriebssysteme werden auf einem heterogenen Multiprocessor-SoC betrieben OpenAMP ist ein Open Source Framework der Arbeitsgruppe Multicore Assocation MCA das standardisierte Implementierungen von AMP-Funktionen für Bare-Metaloder FreeRTOS-Umgebungen zur Verfügung stellt Es basiert auf dem Remoteprocund dem RPMsg-Framework Remote Processor Messaging im Linux-Kernel Remoteproc wird genutzt um von einer Host-Umgebung aus die Firmware für eine Remote-Umgebung zu laden und den Remote-Prozessor zu starten RPMsg dient zur Kommunikation zwischen verschiedenen Umgebungen in AMP-Systemen Asymmetrisches Multiprocessing auf einem i MX8X mit OpenAMP Embedded-Anwendungen müssen performant preiswert sicher und energieeffizient sein Deswegen werden immer mehr heterogene Multi-Processor-Systemon-Chip MPSoC eingesetzt da sie aus mehreren unterschiedlichen Prozessoren aufgebaut sind die jeweils für gezielte Anwendungen unabhängig voneinander verwendet werden können und dadurch ein breites Leistungsspektrum von Anwendungsfällen in der Industrie abdecken Auf den integrierten unterschiedlichen Prozessoren eines heterogenen MPSoC werden unterschiedliche Betriebssysteme eingesetzt z B Linux auf dem Cortex-A35 und ein RTOS oder Bare Metal auf einem Microcontroller wie dem Cortex-M4 Der Einsatz von AMP-Systemen bringt in der Praxis eine Menge Herausforderungen mit sich ➔ Die erste Problemgruppe ist die Interprozessorkommunikation und umfasst die Aufteilung des Speichers für die verwendeten Betriebssysteme und das Festlegen des Shared Memorys der von beiden Prozessoren zum Austausch von Daten genutzt werden soll ➔ Die zweite Problemgruppe stellt das Lifecycle-Management dar Es muss geklärt werden welcher Prozessor das Starten Laden und Herunterfahren der Firmware für andere Prozessoren übernimmt Wichtig ist hierbei dass der Coprozessor mit unterschiedlichen Firmwares geladen werden kann ohne andere Prozessoren zum Absturz zu bringen 2020 wurde bei Ingenics Digital die Entwicklung Umsetzung und Evaluierung von Asymmetric Multiprocessing anhand OpenAMP auf dem heterogenen MPSoC i MX8X erarbeitet Zu der Zeit gab es noch keinen allgemein anerkannten und standardisierten Lösungsansatz für die beiden Pro blemgruppen weshalb viele Firmen proprietäre Lösungen entwickelten In diese Lücke stieß das Projekt mit dem Ziel einen möglichst allgemeingültigen Ansatz für die Interprozessorkommunikation und das Lifecycle-Management auf AMPbasierten MPSoCs zu finden Auch hier bot OpenAMP vielversprechende Möglichkeiten zur Vereinfachung von Interprozessorkommunikation und Lifecycle-Management Ein geeigneter Entwurf sollte auf den MPSoCs i MX8X von NXP Semiconductor implementiert werden und auf relevante Eigenschaften wie Latenzzeiten oder Datendurchsatz evaluiert werden Zur Entwicklung wurde das SoM System on Module VAR-SOM-MX8X von Variscite basierend auf dem MPSoC i MX8X von NXP und zusätzlich ebenfalls von Variscite das Development-Board Symphony-Board eingesetzt Bild Das OpenAMP-Framework wurde erfolgreich auf den Cortex-M4 portiert und die RemoteProc-Komponente im eingesetzten Linux-Kernel erweitert um das Lifecycle-Management auf dem Embedded-Linux durchzuführen Für die Evaluierung des umgesetzten AMP-Systems wurden auf dem i MX8X die Anwendungsszenarien »Prozessdatenüberwachung« und »Hardwareinthe-Loop« auf Latenzzeiten und Datendurchsatz gemessen Die Messergebnisse zeigten hohe Ausreißer bei den Latenzzeiten deren Ursache im Rahmen des Projekts zunächst nicht ermittelt wurde da dies nicht das Ziel war Im Folgeprojekt auf einem i MX93 wurden dann diese Latenzen genauer untersucht Dr Richard Kölbl Ingenics Digital Für die Evaluierung der Interprozessorkommunikation diente das Systemon-Module VAR-SOM-MX8X von Variscite – bestückt mit dem MPSoC i MX8X von NXP Semiconductor Es sitzt auf einer Trägerplatine dem Symphony-Board ebenfalls von Variscite Bild Ingenics Digital