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.
03 2020 Elektronik 21 embedded Mit der stetigen Integration von Komponenten und Funktionen in moderne Embedded-Systeme gehören System on Chips SoCs mit mehreren Prozessorkernen mittlerweile zum Standard Meist ist ein SoC mit zwei bis acht Cortex-A-Prozessoren von Arm ausgestattet auf denen in der Regel Unix läuft Allerdings sind mit solchen Systemen harte Echtzeitanforderungen oder Anforderungen zur funktionalen Sicherheit nur schwer zu realisieren Deshalb integrieren Entwickler als Co-Prozessoren entweder spezielle Echtzeit Realtime RT -Prozessoren aus der CortexR-Familie oder klassische Mikroprozessoren aus der Cortex-M-Reihe Auf den Co-Prozessoren werden Sicherheitsoder Echtzeitaufgaben per BareMetal-Anwendung oder mithilfe von Echtzeit-Betriebssystemen Realtime Operating Systems RTOS umgesetzt Bare Metal bedeutet dass die Anwendung ohne Zwischenschicht wie ein Betriebssystem direkt auf den Prozessor zugreift Die Anwendung ist die einzige Software die auf dem Mikroprozessor oder Mikrocontroller ausgeführt wird Viele Mikrocontroller-Designs können als Bare-Metal-Programmierung betrachtet werden Strukturen mit einer Bare-Metal-Anwendung und einem vollwertigen Betriebssystem Operating System OS zum Beispiel Linux betreiben asymmetrisches Multiprocessing AMP Symmetrisches Multiprocessing SMP liegt dagegen vor wenn das Betriebssystem auf mehreren gleichartigen Kernen läuft Auf modernen komplexen SoCs gibt es ein Nebeneinander beider Systeme Das ist der Fall wenn Linux auf mehreren Kernen und parallel dazu ein RTOS sowie eine Bare-Metal-Anwendung laufen Bild 1 Hierbei sind jedoch einige Herausforderungen zu lösen Dazu zählen das Speichermanagement das Verteilen von Interrupts die Interprozessorkommunikation IPC sowie das LifecycleManagement des Co-Prozessors Eine Möglichkeit die Herausforderungen anzugehen ist die Open-SourceSoftware OpenAMP 1 zu verwenden OpenAMP ist standardisiert und wird dadurch von vielen SoC-Herstellern wie Xilinx oder NXP unterstützt Zusätzlich soll eine standardisierte Programmierschnittstelle API den Entwicklungsprozess für die Software vereinheitlichen OpenAMP kombiniert dazu bestehende Techniken mit neuen Entwicklungen und unterstützt das Verwenden von Linux RTOS und Bare-Metal-Anwendungen auf heterogenen sowie homogenen Systemen Management für den untergeordneten Prozessor Ein Bestandteil von OpenAMP ist das Lifecycle-Management des untergeordneten Prozessors Bild 2 Es beinhaltet das Laden der Prozessor-Firmware der Stromversorgung und des Taktsignals sowie die Kontrolle über das Reset-Signal Die Umsetzung basiert auf remoteproc einem Linux-Framework das hardwareübergreifenden Zugriff auf entfernte Prozessoren erlaubt Dem übergeordneten Prozessor ist dazu das Executableand-Linking-Format ELF der Firmware des untergeordneten Prozessors zur Verfügung zu stellen Bei einem RTOS oder Bare-Metal-Master ist sie in das ELF des Masters zu integrieren bei vorhandenem Dateisystem darin abzulegen Anschließend wird die Programmierschnittstelle get_ firmware eingebunden Ist der Master ein Linux-System wird die Firmware unter lib firmware in der Root Legende APU = Accelerated Processing Unit ADC = Analog-Digital-Wandler AMP = Asymmetrisches Multiprocessing ELF = Executable and Linking Format SoC = System on Chip FPGA = Field Programmable Array I O = Input Output IPI = Interprozessor Interrupt IPC = Interprozessorkommunikation OS = Operating System Betriebssystem API = Programmierschnittstelle RT = Realtime Echtzeit RPU = Realtime Processing Unit RP = Remote-Prozessor RTOS = Realtime Operating System Echtzeit-Betriebssystem SMP = Symmetrisches Multiprocessing