UltraFast™ Embedded Design Methodology Guide
Dieser Leitfaden ist nach wichtigen Funktionsbereichen gegliedert, die bestimmten Fähigkeiten innerhalb von Entwicklungsteams zugeordnet sind.
Das AMD Embedded Software Ecosystem ermöglicht Entwicklern, ihren Weg von der Idee zu marktreifen Embedded-Systemen zu beschleunigen. Mit einer umfassenden Suite von Tools, Laufzeiten und Umgebungen ist dieses Ökosystem darauf zugeschnitten, die Funktionen des Embedded-Produktportfolios von AMD nahtlos zu nutzen, darunter AMD Zynq™ 7000 SoCs, Zynq UltraScale+™ MPSoCs und adaptive Versal™ SoCs, MicroBlaze™ Prozessor- und MicroBlaze V Prozessorkerne. Unser Angebot basiert auf fortschrittlichen Funktionen, darunter wegweisende Treiber für Sicherheits- und Virtualisierungssoftware, die sich in die Struktur von Zynq- und Versal-Chips einfügen. Diese Synergie ermöglicht es, intelligente, miteinander verbundene und unterschiedliche Systeme zu entwickeln, die den Anforderungen moderner Embedded-Anwendungen gerecht werden.
Linux® ist das häufigste Betriebssystem, das von AMD Produkten verwendet wird. AMD bietet EDF Linux OS und das Embedded Development Framework (EDF), eine Yocto Project™-basierte Umgebung und Linux-Distribution, die Quellcode und Yocto Rezeptdateien aus unserem GIT-Repository enthält, wodurch Linux-Unterstützung für AMD Chips über interne Build-Systeme oder Tools von Drittanbietern ermöglicht wird. EDF Linux OS ist ein maßgeschneidertes, nicht kommerzielles Linux-Entwicklungsprojekt, das für die Entwicklung von adaptiven Versal™ SoCs, Zynq™ UltraScale™ MPSoCs, Zynq 7000 SoCs und MicroBlaze™ Prozessoren von AMD konzipiert ist.
Die Unterstützung des Linux-Kernels in AMD EDF-Versionen verfolgt den LTS-Kernel.
AMD bietet derzeit zwei Tools für die Entwicklung und Bereitstellung eingebetteter Linux-Lösungen. Das erste ist AMD EDF, das auf dem Open-Source Yocto Project™ basiert, und das zweite ist PetaLinux, das durch AMD EDF ersetzt wird. Beide Tools bieten eine schnelle Möglichkeit, ein eingebettetes Linux-Image zu erstellen, wobei EDF auch erweiterte Anwendungsfälle unterstützt.
AMD Open-Source-Linux-Flows:
Die vereinheitlichte Softwareplattform AMD Vitis™, das Software Development Kit (SDK) und die Ökosystem-Partner-Tools bieten eine große Auswahl an Entwicklungsumgebungen, die eine SoC-ähnliche C/C++-Programmierung der Zynq- und Versal-Plattformen ermöglichen.
RTOS, Hypervisoren und Bare-Metal
Das Zephyr Project ist ein skalierbares Echtzeit-Betriebssystem (RTOS), das mehrere Hardwarearchitekturen unterstützt, für ressourcenbeschränkte Chips optimiert und mit Blick auf Sicherheit entwickelt wurde.
Das Zephyr OS basiert auf einem kleinen Kernel, der für den Einsatz auf ressourcenbeschränkten Systemen konzipiert wurde: von einfachen eingebetteten Umgebungssensoren und LED-Wearables bis hin zu hochentwickelten Smartwatches und IoT-Wireless-Gateways.
Weitere Informationen zum Zephyr Project finden Sie unter: https://www.zephyrproject.org/
Das Zephyr Project Repository von AMD finden Sie unter: https://github.com/Xilinx/zephyr-amd
FreeRTOS ist ein marktführendes RTOS von Amazon Web Services, das mehr als 35 Architekturen unterstützt und 2017 alle 3 Minuten heruntergeladen wurde. Es wurde professionell entwickelt, unterliegt einer strengen Qualitätskontrolle, ist robust, wird fortlaufend unterstützt und kann kostenlos in kommerzielle Produkte integriert werden, ohne dass Ihr proprietärer Quellcode offengelegt werden muss (Referenz: https://www.freertos.org/RTOS.html).
Weitere Informationen zu FreeRTOS finden Sie unter https://www.freertos.org/RTOS.html.
Weitere Informationen und Unterstützungsressourcen für FreeRTOS zu AMD Produkten finden Sie unter AMD FreeRTOS
| Prozessor | Gerät |
|---|---|
| 64-Bit Arm® Cortex®-A72 Anwendungsprozessoreinheit (APU) und 32-Bit Cortex-R5 Echtzeitprozessoreinheit (RPU) | Adaptive Versal SoCs |
| 64-Bit Arm Cortex-A53 Anwendungsprozessoreinheit (APU) und 32-Bit Cortex-R5 Echtzeitprozessoreinheit (RPU) | Zynq UltraScale+ MPSoCs und Kria™ SOMs |
| 32-Bit ARM Cortex-A9 Anwendungsprozessoreinheit (APU) | Zynq 7000 SoC-Chips |
| 32-Bit MicroBlaze Prozessor | Alle Chip-Familien von AMD |
| Anbieter | Produkt | Zynq 7000 SoC | Zynq UltraScale+ MPSoC | Adaptive Versal SoCs | MicroBlaze | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Cortex-A9 | Cortex-A53 | Cortex-R5 | VCU | Mali-400 | Cortex-A72 | Cortex-R5F | AIE | |||
| AMD | Bare-Metal | J | J1 | J | J | J | J | J | J | J |
| AMD | FreeRTOS | J | J1 | J | N | N | J | J | J | J |
| AMD | Zephyr6 | N | J4 | J4 | J4 | J4 | ||||
| BlackBerry | QNX Neutrino | J | J | N | J | J | J | N | N | N |
| QNX OS for Safety | J | J | N | J | J | J | N | N | N | |
| Wind River | VxWorks | J | J | J | N | J | J | J | N | N |
| Green Hills | INTEGRITY-178 | N | J | N | N | N | J | N | N | N |
| INTEGRITY | J | J | N | N | N | J | N | N | N | |
| u-velOsity | N | N | J | N | N | N | J3 | N | N | |
| Siemens | Nucleus | J | J | J | N | N | N | J4 | N | N |
| PX5 | PX5 RTOS | N | J | J | N | N | N | N | N | J |
| Microsoft | Azure RTOS | J | J | J | N | N | N | N | N | J |
| ETAS | ETAS RTA-OS | J | J | J | N | N | N | N | N | N |
| Sysgo | PikeOS | J | J | N | N | N | N | N | N | N |
| PikeOS for MPU | N | N | J | N | N | N | N | N | N | |
| Lynx | LynxOS-178 | N | J | N | N | N | N | N | N | N |
| Weston Embedded | Cesium Cs/OS2, OS3 | J | J | J | N | N | N | N | N | N |
| DDC-I | Deos | J | J | N |
N | N | N | N | N | N |
| RTEMS | RTEMS | J | J | J | N | N | J | J | N | J |
| eForce | uC3 | J1 | J1 | N |
N | N | N | N | N | N |
| ENEA | OSE | J | J | N |
N | N | N | N | N | N |
| eSOL | eT-Kernel | J | J | N | N | N | N | N | N | N |
| Silicon Labs | Micrium uc/OS-II/OS-III5 | J | J1 | J | N | N | N | N | N | N |
| Sciopta | Sciopta RTOS | J1 | J1 | J | N | N | N | N | N | N |
| Wittenstein | SafeRTOS | J1 | N | N | N | N | N | N | N | N |
| Segger | embOS | J1 | N | N | N | N | N | N | N | N |
Die meisten RTOS bieten eine gewisse Zertifizierung für verschiedene Sicherheitsstandards. Wenden Sie sich an den Betriebssystemanbieter, um zu ermitteln, ob Ihre spezifischen Anforderungen erfüllt werden.
Weitere Informationen und unterstützende Ressourcen finden Sie im AMD Wiki unter: Embedded Software Ecosystem.
AMD stellt seinen Kunden und Partnern Schlüsseltechnologien, Dokumentation und Unterstützung zur Verfügung, um fortschrittliche Systemdesigns mit mehreren Betriebssystemen für unsere Produkte zu ermöglichen. Zu den Angeboten unseres Ökosystems gehören:
| Hersteller | Produkt | Adaptive Versal SoCs | Zynq UltraScale+ MPSoC | Zynq 7000 SoC |
|---|---|---|---|---|
| AMD | Xen Hypervisor | J | J | N |
| BlackBerry | QNX Hypervisor | J | J | N |
| Wind River | Helix Virtualization Platform | J | J | N |
| Sysgo | PikeOS Hypervisor | N | J | J |
| Green Hills | Integrity Multivisor | J1 | J1 | N |
| Lynx | LynxSecure Separation Kernel Hypervisor | J | J | N |
| Dornerworks | SEL4 | J | J | N |
| Siemens | Nucleus Hypervisor | N | J | J |
| General Dynamics Mission Systems | OKL4 Microvisor | N | J | N |
Weitere Informationen und unterstützende Ressourcen finden Sie im AMD Wiki unter: Embedded Software Ecosystem.
AMD stellt zusätzliche Bibliotheken und Bare-Metal-Treiber bereit. Diese Bibliotheken wurden speziell für AMD Chips entwickelt.
Weitere Informationen und Support-Ressourcen für Bare-Metal-Treiber und -Bibliotheken finden Sie im AMD Wiki unter: Bare-Metal und Bibliotheken.
Open-Source Linux ist das beliebteste Betriebssystem, das auf eingebetteter Hardware ausgeführt wird, und AMD bietet seit der Einführung des AMD Virtex™ II Pro FPGA im Jahr 2001 Unterstützung für Linux auf seinen FPGA- und adaptiven SoC-Chips. Neben PetaLinux- und Yocto-Build-Umgebungen bietet AMD kommerzielle Unterstützung für AMD Chips von mehreren Drittanbietern, darunter Certified Ubuntu® von Canonical Ltd.
Im Yocto-Projekt heißt es: „Das Yocto-Projekt ist ein Open-Source-Kooperationsprojekt, das Entwicklern dabei hilft, benutzerdefinierte Linux-basierte Systeme für Embedded-Produkte zu erstellen, unabhängig von der Hardware-Architektur. Das Projekt bietet eine flexible Auswahl von Tools und einen Bereich, in dem Embedded-Entwickler weltweit Technologien, Software-Stacks, Konfigurationen und Best Practices gemeinsam nutzen können, mit denen maßgeschneiderte Linux-Images für Embedded-Chips erstellt werden können.“ Das AMD Embedded Development Framework basiert auf dem Yocto Project. Mehr über AMD EDF erfahren.
Beide Flows bieten alles, was Sie für die Anpassung, Erstellung und Evaluierung von Embedded-Linux-Lösungen auf AMD Verarbeitungssystemen benötigen. Die Lösung ist auf die Beschleunigung der Designproduktivität zugeschnitten und arbeitet mit den Hardware-Designtools von AMD zusammen, um die Entwicklung von Linux-Systemen für adaptive Versal SoCs, Zynq UltraScale+ MPSoCs, Zynq 7000 SoCs und MicroBlaze Prozessoren zu vereinfachen. Die PetaLinux-Tools wurden jedoch inzwischen durch AMD EDF ersetzt. Weitere Informationen finden Sie auf der Seite AMD PetaLinux Tools:
| Anbieter | Produkt | Distribution | Adaptive Versal SoCs | Zynq UltraScale+ MPSoC | Zynq 7000 SoC | MicroBlaze |
|---|---|---|---|---|---|---|
| AMD | AMD EDF | Yocto | J | J | J | Y* * nur MicroBlaze V |
| PetaLinux | Yocto | J | J | J | J | |
| Yocto | Yocto | J | J | J | J | |
| Canonical | Ubuntu | Debian | J1 | J | N | N |
| Wind River | Wind River Linux | Yocto | J | J | J | N |
| Foundries.io | FoundriesFactory | Yocto | J | J | N | N |
| Siemens | Sokol Flex OS | Yocto | N | J | J | N |
| Sokol Omni OS | Debian | N | J | N | N | |
| TimeSys | Linux-Services | Yocto | J | J | J | N |
| MontaVista | CGX/CGE | Yocto | N | J | J | N |
| ArchLinuxARM | ArchLinuxARM | k. A. | N | N | J | N |
Weitere Informationen und unterstützende Ressourcen finden Sie im AMD Wiki unter: Embedded Software Ecosystem.
QEMU (Quick Emulator) ist ein plattformübergreifender Open-Source-Systememulator. Es handelt sich um eine ausführbare Datei, die auf einem x86-Linux-Betriebssystem ausgeführt wird. QEMU kann ein vollständiges System emulieren (allgemein als Gast bezeichnet), z. B. eine AMD ZCU102- oder VCK190-Platine.
Die Emulation umfasst die Prozessoren, Peripheriegeräte und andere Hardware auf der Entwicklungsplatine, sodass Sie ein Betriebssystem oder andere Anwendungen auf der virtualisierten Hardware starten können.
QEMU kann auch über Schnittstellen wie CAN, Ethernet und USB mit dem Host-Computer interagieren, sodass reale Daten vom Host in Echtzeit auf der Gastmaschine verwendet werden können.
Xen ist ein Typ-1-Hypervisor, der vom Xen-Projekt definiert, verwaltet und der Open-Source-Community bereitgestellt wird. Xen ermöglicht die Ausführung mehrerer Instanzen von Betriebssystemen oder Bare-Metal-Anwendungen auf AMD Zynq UltraScale+ MPSoCs. Weitere Informationen zum Xen-Hypervisor finden Sie auf der Einführungsseite zum Xen-Projekt.
U-Boot ist ein Open-Source Universal Boot Loader, der in der Linux-Community häufig verwendet wird. AMD stellt einen GIT-Baum unter https://github.com/Xilinx/u-boot-xlnx bereit, der einen U-Boot für die Ausführung auf AMD Platinen enthält.
Arm Trusted Firmware bietet eine Referenz auf sichere Software für die ARMv8-A-Architektur sowie Implementierungen verschiedener Schnittstellenstandards wie PSCI (Power State Coordination Interface) und Secure Monitor Code für die Schnittstelle zu normaler Software. Der AMD Arm Trusted Firmware-Port ist veröffentlicht und verfügbar unter https://github.com/Xilinx/arm-trusted-firmware.