Nios® II Prozessor Bare-Metal Developer Center
Die Seite Nios II Processor Bare-Metal Developer Center hilft Ihnen beim Einstieg in die Bare-Metal-Entwicklung ohne Betriebssystem (OS) oder Echtzeitbetriebssystem (RTOS).
Einführung
Bei der Bare-Metal-Entwicklung wird eine Software-Laufzeitumgebung ohne Betriebssystem (OS) oder Echtzeitbetriebssystem (RTOS) verwendet. Zur Unterstützung der Bare-Metal-Entwicklung bietet Intel eine Hardware-Abstraktionsschicht-Bibliothek (HAL) für den Nios II Prozessor innerhalb der Intel® FPGAs. Sie können diese Bibliothek als Gerätetreiberpaket für die Nios II Prozessorsysteme innerhalb der FPGA verwenden und eine konsistente Schnittstelle zu den Peripheriegeräten in Ihrem System bereitstellen.
Die folgenden Links sollen Ihnen beim Einstieg in die Bare-Metal-Entwicklung auf Intel FPGAs helfen. Wenn Sie zum ersten Mal Benutzer sind, empfehlen wir, die Ressourcen linear zu befolgen.
1. Voraussetzungen
Erstellen Sie Ihr My Intel-Konto
- Erstellen Sie Ihr My Intel-Konto auf der " My Intel"-Seite.
- Mit Ihrem My Intel-Konto können Sie Serviceanfragen stellen, sich für Schulungen anmelden, Software herunterladen, auf Ressourcen zugreifen und vieles mehr.
Designüberlegungen
Warum Bare Metal?
- Die Vorteile eines Bare-Metal-Ansatzes sind:
- Absolute Kontrolle über die Hardware
- Gesteigerte Effizienz
- Minimale Größe (sowohl Flash- als auch Speicherbedarf)
- Keine Abhängigkeit von anderen Quellcodes oder Bibliotheken
- Einfache Validierung und Analyse der Codeabdeckung
Sie können auch eine Bare-Metal-Entwicklung in Betracht ziehen, wenn Sie:
- Keine Multitasking- oder Multithread-Operationen erforderlich
- Sie führen ein Board-Bring-Up durch und müssen sich auf jedes einzelne Peripheriegerät konzentrieren
- Wiederverwendung von bestehendem Legacy-Code, der bereits als Bare-Metal entwickelt wurde
Bare-Metal-Überlegungen
Um eine Bare-Metal-Anwendung für den Nios II Prozessor zu entwickeln, müssen Sie mit der Entwicklung von Laufzeitfunktionen vertraut sein, um sicherzustellen, dass Ihre Anwendung die in Ihrem CPU-Subsystem verfügbaren Ressourcen effizient nutzt. Beispiele für das, was erforderlich sein kann, sind wie folgt:
- Fundierte Kenntnisse der Hardware-Plattform
- Entwicklung von Laufzeitfunktionen zur Verwaltung des Prozesses zwischen dem Kern und dem Cache-Subsystem, wenn Sie das CPU-Subsystem voll auslasten möchten, da eine typische Bare-Metal-Anwendung nur einen einzigen Kern verwendet
- Entwicklung von Funktionen zum Verwalten und Planen von Prozessen, zum Verarbeiten der Kommunikation zwischen Prozessen und zum Synchronisieren von Ereignissen innerhalb Ihrer Anwendung
Wenn Ihr geplantes Projekt nicht den Aufwand zulässt, den es erfordert, sich mit den oben genannten Punkten vertraut zu machen, wird empfohlen, eine kommerzielle Linux* oder RTOS-Lösung in Betracht zu ziehen.
Bare-Metal Alternativen
Unter Berücksichtigung der obigen Überlegungen ist es oft sinnvoll, ein Betriebssystem zu verwenden, um mit minimalem Aufwand die maximale Leistung aus dem Nios II Prozessor zu realisieren.
Die folgende Tabelle zeigt einen grundlegenden Vergleich zwischen einem Linux-Betriebssystem und RTOS.
Kriterien |
Linux-Betriebssystem |
RTOS |
---|---|---|
Hauptunterschied |
Die Aufgabenplanung im Linux-Betriebssystem basiert nicht auf Prioritäten, daher werden alle Threads fair behandelt. Diese Fairness-Richtlinie ermöglicht einen insgesamt hohen Computing-Durchsatz, hat jedoch den Nachteil einer unbegrenzten Dispatch-Latenz. Planungslatenzen in Linux summieren sich normalerweise mit der erhöhten Anzahl von Threads, die geplant und ausgeführt werden müssen. |
RTOS ist ein prioritätsbasiertes System und bietet eine präemptive Aufgabenplanung, um eine zeitnahe und deterministische Reaktion auf Ereignisse oder Unterbrechungen zu gewährleisten. Zeitkritische Threads mit hoher Priorität werden Threads mit niedrigerer Priorität vorgezogen. Threads in einem Echtzeitbetriebssystem weisen eine begrenzte Latenz auf. Ein Prozess oder Thread wird innerhalb eines bestimmten Zeitlimits ausgeführt. |
Anwendung |
Ideal für Anwendungen, die einen hohen Gesamtdurchsatz erfordern und nicht zeitkritisch sind. |
Ideal für Anwendungen, die eine sehr schnelle und vorhersehbare Reaktion erfordern. |
Ressource |
Erfordert erhebliche CPU-Ressourcen und einen großen Speicherbedarf. |
Geringes Gewicht und weniger Speicherbedarf. |
Codierungspraxis |
In der Regel keine Einhaltung strenger Codierungsrichtlinien. |
Hält sich an strenge Codierungsrichtlinien, da der Code kontinuierlich konsistent ausgeführt werden muss. |
Linux-Betriebssystem
Mit der Einführung einer Memory Management Unit (MMU) für den Nios II Prozessor steht Ihnen eine breite Palette von Linux-Anbietern zur Verfügung. Von kommerziellem Support, Branchenführern bis hin zu einer kostenlosen Open-Source-Distribution – Intels Embedded-Linux-Partner bieten das richtige Maß an Unterstützung für Ihr Linux-Projekt.
- RocketBoards.org – Beziehen Sie sich auf das Nios II Linux-Benutzerhandbuch für eine von der Community unterstützte Open-Source-Linux-Distribution
- LinuxLink von Timesys - Wählen Sie Intel FPGA vom Hersteller auf der Registerkarte "Board-Filter" aus
- Wind River - Wählen Sie auf der Registerkarte "Board Support Packages" Intel FPGA von Hardwareanbietern aus.
- Lösungen auf Systemebene (SLS) – Wählen Sie auf der Registerkarte "Downloads" die gewünschten Board-Support-Pkgs aus.
RTOS
Die Verwendung eines einfachen Echtzeitbetriebssystems ist einfach. Es ist vergleichbar mit der Verwendung von C-Bibliotheken von Funktionen, die bereits implementiert sind, anstatt diese Funktionen selbst zu schreiben. Einige RTOS bieten volle Unterstützung für alle Peripheriegeräte, während andere nur Unterstützung für eine Teilmenge bieten. In Fällen, in denen nur ein Teil der Peripheriegeräte vom von Ihnen gewählten Echtzeitbetriebssystem unterstützt wird, bietet der HAL Code die zusätzliche Unterstützung, die benötigt wird. Ausführliche Informationen finden Sie auf der Webseite des Nios II Prozessor-Ökosystems .
Eine kostenlose Evaluierung des MicroC/OS-II RTOS und der vollständige ANSI C Quellcode sind in der Nios II Embedded Design Suite (EDS) Installation enthalten. Einzelheiten finden Sie auf der Webseite Micrium MicroC/OS-II Real-Time Operating System .
Design-Flussdiagramm
Die folgende Abbildung veranschaulicht den allgemeinen Entwicklungsablauf Nios II Prozessorsystems.
Der Entwicklungsablauf des Nios II-Prozessors besteht aus drei Elementen:
- Hardware-Design
- Software-Design
- Systemdesign, das sowohl Hardware als auch Software umfasst
Sie beginnen Ihre Nios II Prozessorentwicklung mit der Entwicklung eines Systemkonzepts und der Durchführung einer Systemanforderungsanalyse. Als Nächstes erstellen und generieren Sie das System im Platform Designer und erzeugen eine .sopcinfo-Datei. Der Platform Designer umfasst Nios II Prozessorkerne, Standardkomponenten, benutzerdefinierte Anweisungen und Peripherielogik. Nach der Systemgenerierung können Hardware- und Softwareflüsse initiiert werden.
Für die Entwicklung Nios II Prozessorhardware müssen Sie:
- Integrieren Sie das Platform Designer-System in das Softwareprojekt Intel® Quartus® Prime.
- Zuweisen von Pin-Positionen.
- Konfigurieren Sie Timing-Anforderungen und andere Designeinschränkungen.
- Nachdem Sie das Hardware-Design kompiliert haben, laden Sie die .sof-Datei auf das Ziel-Mainboard herunter.
Für die Entwicklung von Nios II Prozessorsoftware müssen Sie:
- Entwickeln Sie Ihre Software mit den Nios II Software Build Tools (SBT) für Eclipse. Die Nios II Software umfasst die HAL, Peripherietreiber, Benutzer-C/C++-Anwendungscodes und benutzerdefinierte Bibliotheken.
- Laden Sie die .elf-Datei auf das Nios II Prozessorsystem auf dem Zielboard herunter, nachdem Sie die Anwendung und das Board Support Package (BSP) erstellt haben. Das Nios II Prozessorsystem steht zum Testen und Debuggen bereit.
Wenn Sie während des Tests feststellen, dass Ihre Software nicht den Spezifikationen entspricht, kehren Sie zum Anfang des Softwareablaufs zurück und überprüfen Sie die Anwendungscodes, Treiber und BSP, um eventuelle Fehler zu korrigieren und sicherzustellen, dass das Nios II Prozessorsystem korrekt ausgeführt wird.
Wenn die Hardware nicht den Spezifikationen entspricht, kehren Sie zum Schritt "Definieren und Generieren" des Platform Designer-Systems zurück und starten Sie sowohl den Hardware- als auch den Softwarefluss neu. Die für die Generierung der Anwendungssoftware erforderliche Schlüsseldatei ist die Platform Designer-Informationsdatei (.sopcinfo). Da diese Datei Hardwarekomponenten und Verbindungen beschreibt, müssen Sie diese Datei neu generieren, wenn Sie eine Hardwareänderung vornehmen. Das System ist vollständig, wenn sowohl die Software als auch die Hardware den Spezifikationen entsprechen.
2. Erste Schritte
Ziel-Mainboard auswählen
Wir empfehlen, die Entwicklung mit einem von Intel bereitgestellten Evaluierungs- oder Entwicklungskit zu beginnen, da die meisten verfügbaren Beispiele auf diese Mainboards ausgerichtet sind.
- Nios II Prozessor-Evaluierungskits:
- Kostengünstig, einfach zu bedienen
- Voller Designbeispiele, Tutorials und Softwarebeispiele
- Viele von der Nios II Prozessor-Community beigesteuerte Designbeispiele und Software auf der Intel FPGA Wiki-Site
- Beispiel: Intel® MAX® 10 FPGA Nios® II Embedded Evaluation Kit (NEEK)
- Intel FPGA Entwicklungskits:
- Alle neuen Kits enthalten vorgefertigte Designbeispiele für Nios II Prozessoren mit dem Titel Board Update Portal
- Erste Schritte Entwurf eines Prozessors und Ethernet Media Access Control (MAC) mit einer HTML-Webserver-Anwendung
Unter Alle Entwicklungskits finden Sie eine Liste der verfügbaren Mainboards. Um die Liste der Board-spezifischen Designbeispiele anzuzeigen, die im Design Store verfügbar sind, wählen Sie Ihr gewünschtes Development Kit aus dem Pulldown-Menü aus.
Installation Nios II Embedded Design Suite (EDS)
Um die Nios II Embedded Design Suite (EDS) zu installieren, müssen Sie zunächst die Intel® Quartus® Prime Software aus dem Download Center herunterladen. Die Intel FPGA Softwareinstallation und -lizenzierung enthält detaillierte Anweisungen zum Herunterladen und Installieren der Intel® Quartus® Prime-Software, einschließlich der Nios II EDS.
Das Nios II EDS ist ein umfassendes Entwicklungspaket für Nios II Softwaredesigns. Das Nios II EDS enthält nicht nur Entwicklungstools, sondern auch Software, Gerätetreiber, eine Bare-Metal-HAL Bibliothek, eine kommerzielle Netzwerk-Stack-Software und eine Evaluierungsversion eines Echtzeit-Betriebssystems.
Erstellen Sie Ihr erstes Nios II Prozessorsystem
Das AN 717: Nios II Hardware Development Tutorial und Nios® II Software Developer Handbook bieten eine Einführung in den Systementwicklungsablauf für den Nios II Prozessor. Mit der Intel® Quartus® Prime-Software und dem Nios II EDS erstellen Sie ein Nios II Hardwaresystemdesign und erstellen ein Softwareprogramm, das auf dem Nios II System läuft und Schnittstellen zu Komponenten auf Intel® Entwicklungsboards bildet.
3. Erstellen Sie Ihr eigenes Projekt
Arten von Bare-Metal-Projekten
Es gibt zwei verschiedene Arten von Projekten, die vom Nios II EDS verwaltet werden können.
Die folgende Tabelle veranschaulicht die Unterschiede zwischen den beiden Projekttypen, abgesehen von der Eclipse-GUI.
Feature |
GUI-basiertes Projekt |
Befehlszeilenbasiertes Projekt |
---|---|---|
Beschreibung des Projekttyps | Auf der grafischen Benutzeroberfläche (GUI) basierendes Projekt
|
Befehlszeilenbasiertes Projekt
|
Verwaltung von Projektquelldateien |
Quellen automatisch angeben, z.B. per Drag & Drop in das Projekt |
Quellen manuell mit Befehlsargumenten angeben |
Debuggen |
Ja |
Projekt in Eclipse-Umgebung importieren |
Integration mit benutzerdefinierten Shell-Skripten und Tool-Flows |
Nein |
|
Empfohlene Methode zum Erstellen des Projekts
Das Schreiben von Software für den Nios II Prozessor ähnelt dem Schreiben von Software für jede andere Mikrocontroller-Familie. Das Ändern von vorhandenem Code ist eine gängige, einfache Methode, um zu lernen, wie man Software in einer neuen Umgebung schreibt. Der Nios II EDS bietet viele Beispiele für Software-Design, die Sie untersuchen, modifizieren und in Ihren eigenen Programmen verwenden können.
Jedes Nios II Prozessor-Programmbeispiel besteht aus einem Anwendungsprojekt, optionalen Benutzerbibliotheksprojekten und einem BSP-Projekt.
- Anwendungsprojekt: besteht aus einer Sammlung von Quellcode sowie einem Makefile. Ein typisches Merkmal einer Anwendung ist, dass eine der Quelldateien die Funktion main( ) enthält. Eine Anwendung enthält Code, der Funktionen in Bibliotheken und BSPs aufruft. Das Makefile kompiliert den Quellcode und verknüpft ihn mit einer BSP und einer oder mehreren optionalen Bibliotheken, um eine .elf-Datei zu erstellen.
- User library project: ist eine Sammlung von Quellcode, der kompiliert wird, um eine einzelne Bibliotheksarchivdatei (.a) zu erstellen. Bibliotheken enthalten häufig wiederverwendbare, universelle Funktionen, die von mehreren Anwendungsprojekten gemeinsam genutzt werden können. Eine Sammlung gängiger arithmetischer Funktionen ist ein Beispiel.
- BSP-Projekt: ist eine spezialisierte Bibliothek, die systemspezifischen Support-Code enthält, wie z. B. die HAL, eine optionale benutzerdefinierte newlib C-Standardbibliothek, Gerätetreiber, optionale Softwarepakete und ein optionales Echtzeit-Betriebssystem.
Führen Sie die folgenden Schritte aus, um ein Softwareprojekt mit dem Nios II SBT zu erstellen:
- Ermitteln Sie das Hardware-Design, auf dem die Software ausgeführt werden soll. Unabhängig davon, ob es sich um ein Beispiel für ein Nios II Prozessordesign oder ein von jemand anderem entwickeltes Design handelt, benötigen Sie die SOPC-Informationsdatei (.sopcinfo).
- Generieren Sie eine BSP-Einstellungsdatei (settings.bsp) und als nächstes ein BSP-Makefile, nachdem Sie die von Ihrem BSP benötigten Funktionen definiert haben.
- Erstellen einer Benutzerbibliothek (optional). Wenn Sie eine benutzerdefinierte Softwarebenutzerbibliothek einschließen müssen, sammeln Sie die Quelldateien der Benutzerbibliothek in einem einzigen Verzeichnis, und generieren Sie ein Benutzerbibliotheks-Makefile.
- Schreiben Sie den Quellcode Ihrer Anwendung und generieren Sie ein Anwendungs-Makefile.
- Erstellen Sie das Softwareprojekt, um eine .elf-Datei zu erzeugen und die Anwendung auf Ihrem Mainboard auszuführen.
Das Nios II SBT enthält Tools zum Erstellen von Makefiles, die für die Erstellung Nios II C- und C++-Projekten von entscheidender Bedeutung sind. Es ist nicht notwendig, die generierten Makefiles zu verwenden, wenn Sie es vorziehen, Ihre eigenen zu schreiben. Wir empfehlen Ihnen jedoch, Ihre BSP-Makefiles mit dem SBT zu verwalten und zu modifizieren.
Weitere Informationen finden Sie im Handbuch für Nios® II Softwareentwickler.
4. Beispiele
Designbeispiele
Im Design Store von Intel finden Sie zahlreiche Designbeispiele, die Ihnen den Einstieg in Intel FPGA Produkte erleichtern. Alle Beispiele können als Ausgangspunkt für Ihre eigenen Designs verwendet werden, und einige Beispiele sind für bestimmte Entwicklungskits angepasst. Suchen Sie nach Beispielen für Nios II Prozessordesigns, indem Sie im IP Core Pulldown-Menü die Option Nios II auswählen. Sie können auch andere Suchkriterien filtern, z. B. Gerätefamilie, Entwicklungskit und Intel® Quartus® Prime-Softwareversion.
Wie starte ich eine Nios II Prozessoranwendung?
Um zu erfahren, wie man eine Nios II Prozessoranwendung startet, lesen Sie den Abschnitt Nios II Konfigurations- und Boot-Lösungen im Embedded Design Handbook.
Mit dem Nios II Prozessor stehen verschiedene Boot- oder Softwareausführungsoptionen zur Verfügung. Sie können den Nios II Prozessor so konfigurieren, dass er von verschiedenen Speicherorten aus bootet und Software ausführt.
Nios II vom Prozessor unterstützte Boot-Speicher:
- CFI-Flash (Common Flash Interface)
- Benutzer-Flash-Speicher (UFM) in Intel® MAX® 10 FPGA Geräten
- Serielles Flash-EPCQ-Konfigurationsgerät
- Quad Serial Peripheral Interface (QSPI) Flash
- On-Chip-Speicher (OCRAM)
Nios II Optionen für das Booten des Prozessors:
- Direkt ausführen
- Mit dem Bootkopierer vom Flash-Speicher in den Speicher kopiert
5. Zusätzliche Ressourcen
Support-Center
Hilfe ist nur einen Klick entfernt! Das Support-Center bietet technische Online-Ressourcen – von Schulungen über Designbeispiele bis hin zu Foren, die Sie durch jeden Schritt des Designprozesses führen.
Wissensdatenbank
Die Knowledge Base bietet eine Vielzahl von Supportlösungen, Referenzartikeln, Fehlermeldungen und Anleitungen zur Fehlerbehebung. Es ist auch vollständig durchsuchbar.
Intel FPGA Community
Die Intel Community ist eine Community-Website, die die Zusammenarbeit zwischen Intel FPGA Benutzern ermöglicht. Sehen Sie sich den Abschnitt Nios II Embedded Design Suite (EDS) unter FPGA Entwickler an. Verwenden Sie die Suchmaschine, um relevantes Material zu finden. Sie werden auch ermutigt, zu aktualisieren und einen Beitrag zu leisten.
Mein Intel
Mit Ihrem My Intel-Konto können Sie eine Serviceanfrage stellen, um Hilfe zu bestimmten Themen zu erhalten. Sie können es auch verwenden, um sich für Schulungen anzumelden und auf andere Ressourcen zuzugreifen. Eine Anmeldung ist erforderlich.
Grundlegendes Lernen - Schulungskurse
In der folgenden Tabelle sind die grundlegenden Schulungskurse aufgeführt, die Sie absolvieren können, bevor Sie mit der Entwicklung Ihres Designs beginnen.
Kurs |
Entwickelte Fähigkeiten |
---|---|
Der Nios® II Prozessor: Hardware-Abstraktionsschicht (34 Minuten Online-Kurs) |
|
Der Nios II Prozessor: Einführung in die Softwareentwicklung (30 Minuten Online-Kurs) |
|
Verwenden des Nios II Prozessors: Benutzerdefinierte Komponenten und Anleitungen (11 Minuten Online-Kurs) |
|
Verwendung des Nios II Prozessors: Hardwareentwicklung (27 Minuten Online-Kurs) |
|
Weitere Dokumentation und Ressourcen
Die folgende Dokumentation dient als primäre Referenz für den Nios II Prozessor.
- Das Nios II Software Developer Handbook beschreibt die grundlegenden Informationen, die für die Entwicklung von Embedded-Software für den Nios II Gen2 Prozessor benötigt werden. Die Kapitel in diesem Handbuch beschreiben die Nios II Prozessor-Softwareentwicklungsumgebung, die Nios II verfügbaren EDS-Tools (Embedded Design Suite) und den Prozess zur Softwareentwicklung.
- Das Embedded Design Handbook ergänzt die primäre Dokumentation für die Entwicklung von Embedded-Systemen. Sie beschreibt, wie die Tools am effektivsten eingesetzt werden können, und empfiehlt Entwurfsstile und -praktiken für die Entwicklung, das Debugging und die Optimierung von eingebetteten Systemen mit den von Intel bereitgestellten Tools. Das Handbuch stellt auch neuen Anwendern von Embedded-Lösungen von Intel Konzepte vor und trägt dazu bei, die Designeffizienz erfahrener Anwender zu steigern.
- Der Nios II Processor Reference Guide beschreibt den Nios II Gen2 Prozessor von einer allgemeinen konzeptionellen Beschreibung bis hin zu den niedrigen Details der Implementierung. Die Kapitel in diesem Handbuch beschreiben die Nios II Prozessorarchitektur, das Programmiermodell und den Befehlssatz.
- Das Benutzerhandbuch für eingebettete Peripherie-IP beschreibt die von Intel bereitgestellten IP-Cores, die nahtlos mit dem Nios II Prozessor zusammenarbeiten und in der Intel® Quartus® Prime-Designsoftware enthalten sind. Die IP-Kerne sind für Intel-Geräte® optimiert und können einfach implementiert werden, um die Design- und Testzeit zu verkürzen.
Eine vollständige Liste der Dokumentation zu Nios II Prozessoren finden Sie auf der Seite Nios II Prozessor-Support .
Engineer-to-Engineer-Videos
Entdecken Sie den Pool an Anleitungsvideos, die Ihnen von Intel® Ingenieuren zur Verfügung gestellt werden. Die Intel® FPGA Quick Videos enthalten Anleitungsvideos, die Ihnen bei der Entwicklung Ihrer FPGA Projekte helfen.
Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.