Intel® SoC FPGA Centre de développement Bare-metal
Ressources pour vous aider à démarrer et à vous familiariser avec le développement bare-metal sur Intel SoC FPGAs.
Le développement bare-metal utilise un environnement d’exécution logicielle qui n’utilise pas de système d’exploitation (OS) ou de système d’exploitation temps réel (RTOS). Dans une configuration bare-metal, le système de traitement dur (HPS) du SoC FPGAs peut être utilisé. Intel propose des bibliothèques matérielles (HWLIB) composées d’interfaces de programmation d’applications (API) de haut niveau et de macros de bas niveau qui vous permettent d’exercer la plupart des périphériques HPS.
Vous pouvez accéder à diverses ressources pour vous aider à démarrer le développement bare-metal sur Intel® SoC FPGAs à partir des liens ci-dessous. Si vous utilisez les ressources pour la première fois, nous vous recommandons de suivre les ressources de manière linéaire.
1. Prérequis
Créez votre compte My Intel
- Créez votre compte My Intel à partir de la page My Intel.
- Votre compte My Intel vous permet de déposer des demandes de service, de vous inscrire à des cours, de télécharger des logiciels, d’accéder à des ressources, des cours de formation et plus encore.
Considérations de conception
Qu’est-ce que le Bare-metal ?
- Le métal nu représente les interfaces de registre réelles et les caractéristiques matérielles du système de processeur.
- Le développement bare-metal utilise un environnement d’exécution logicielle qui n’utilise ni système d’exploitation ni RTOS.
- Dans les configurations bare-metal, le HPS de SoC FPGAs peut être utilisé. Intel propose des HWLIB qui se composent d’API de haut niveau et de macros de bas niveau qui vous permettent d’exercer la plupart des périphériques HPS.
Pourquoi Bare-metal ?
- Les avantages de l’utilisation d’une approche bare-metal sont :
- Contrôle absolu du matériel
- Efficacité accrue
- Taille minimale (mémoire flash et encombrement mémoire)
- Aucune dépendance vis-à-vis d’autres codes sources ou bibliothèques
- Plus facile de prouver formellement l’exactitude et d’effectuer une analyse de la couverture du code
- D’autres raisons de choisir le développement nu sont :
- Besoin d’effectuer une mise en place de la carte et de se concentrer sur un périphérique à la fois
- Besoin de réutiliser le code hérité existant qui est déjà développé en métal nu
- Manque d’expérience avec un système d’exploitation ou un RTOS
Considérations sur le métal nu
Pour développer une application bare-metal pour le HPS, vous devez être familiarisé avec le développement des capacités d’exécution pour vous assurer que votre application utilise efficacement les ressources disponibles dans votre sous-système de processeur. Voici des exemples de ce qui peut être requis :
- Connaissance approfondie de la plateforme matérielle
- Développement de capacités d’exécution pour gérer le processus entre le cœur et le sous-système de cache si vous souhaitez utiliser pleinement le sous-système CPU, car une application bare metal typique n’utilise qu’un seul cœur
- Développer des fonctionnalités pour gérer et planifier des processus, gérer les communications inter-processus et synchroniser les événements au sein de votre application
Si votre projet planifié ne vous permet pas de déployer les efforts nécessaires pour vous familiariser avec les points ci-dessus, il est recommandé d’envisager d’utiliser une solution Linux* ou RTOS commerciale.
Alternative |
Avantages |
Commentaires |
---|---|---|
Linux | Mise en réseau, stockage, multitâche, communication interprocessus, synchronisation et plus encore. | Vous n’avez pas besoin d’être un expert du noyau Linux pour utiliser Linux dans votre projet. Par exemple, vous pouvez écrire une application d’espace utilisateur Linux et accéder directement aux registres de propriété intellectuelle (IP) FPGA, de la même manière qu’une application bare-metal. |
RTOS | Traitement multicœur, multitâche, communication interprocessus et synchronisation, en fonction du RTOS. | L’utilisation d’un simple RTOS est facile. C’est similaire à l’utilisation des bibliothèques C des fonctions déjà implémentées, au lieu d’écrire ces fonctions vous-même. |
Bootloader | Temps de démarrage plus rapide et accès aux fonctionnalités déjà implémentées dans le chargeur de démarrage, telles que le stockage de masse et la mise en réseau | Les chargeurs de démarrage disponibles sont : |
Diagramme de conception
Le diagramme de flux de conception typique pour le développement en métal nu est illustré ci-dessous :
Voici un résumé du flux :
- Commencez par une conception matérielle, qui comprend :
- Configuration HPS : paramètres de l’horloge, multiplexage et configuration des broches, paramètres DDR, périphériques connectés, etc.
- Contenu de l’infrastructure FPGA : cœurs IP instanciés dans le FPGA et FPGA configuration de broches, de contrôleur de mémoire et de boucle à verrouillage de phase (PLL)
- La conception matérielle est compilée avec les outils Intel® FPGA Complete Design Suite, qui génèrent les fichiers suivants :
- Fichier SOF : utilisé pour configurer la structure FPGA via diverses méthodes - programmeur externe, flash externe, chargeur de démarrage HPS ou même application HPS
- Handoff : contient les informations utilisées par le générateur de chargeur de démarrage de deuxième étape pour créer le chargeur de démarrage qui sera utilisé sur le HPS
- Fichier SOPCINFO : peut être utilisé pour créer automatiquement des fichiers d’en-tête avec les adresses IP logicielles FPGA
- Fichier SVD : contient des informations sur les registres IP logiciels FPGA afin que le débogueur ARM* Development Studio 5* (DS-5*) Intel SoC FPGA Edition puisse les afficher dans un format convivial pendant le débogage
- L’utilisateur écrit du code source personnalisé, à l’aide des HWLIB, et potentiellement en utilisant les fichiers d’en-tête de l’adresse IP FPGA
- L’utilisateur compile l’application bare-metal à l’aide des compilateurs bare-metal
- L’utilisateur débogue l’application bare-metal à l’aide de l’ARM DS-5 Intel SoC FPGA Edition
2. Mise en route
Sélectionnez la carte cible
- Nous vous recommandons de commencer votre développement à partir d’un kit de développement SoC fourni par Intel, car les exemples de mise en route bare-metal sont conçus pour fonctionner sur ces cartes.
- Pour voir les cartes SoC FPGA disponibles, visitez Intel® FPGA Boards.
Installer Intel SoC FPGA EDS
- L’EDS Intel SoC FPGA fournit les outils essentiels nécessaires à tout développement de FPGA SoC, y compris le bare metal. Reportez-vous à la section Logiciels et outils embarqués pour Intel® SoC FPGA pour plus de détails.
- Téléchargez l’édition Intel® SoC FPGA Embedded Development Suite (SoC EDS) Pro depuis le Centre de téléchargement FPGA.
- Processus d’installation et installation des outils pour Intel SoC FPGA EDS.
- Si l’ARM DS-5 Intel SoC FPGA Edition est utilisé pour le débogage et/ou le traçage d’applications bare-metal, vous devrez obtenir une licence. La licence est généralement incluse dans l’achat de votre kit de développement Intel SoC FPGA. Reportez-vous aux instructions de configuration de la licence du Guide de l’utilisateur du Intel® SoC FPGA Embedded Development Suite (SoC EDS).
Sélectionnez Outils de génération
- L’EDS Intel SoC FPGA fournit les outils de construction bare metal suivants :
- Intel SoC FPGA version de Mentor CodeSourcery – basée sur GCC, aucune licence requise
- ARM Compiler 5 – licence incluse avec la licence Intel SoC FPGA EDS
- D’autres suites d’outils de construction ciblant les plates-formes ARM peuvent être utilisées - accédez à l’écosystème pour les périphériques Intel® FPGA et Intel® SoC FPGA.
- Les exemples de projets de mise en route sont disponibles pour les compilateurs GCC et ARMCC fournis dans le cadre de l’EDS Intel SoC FPGA.
Sélectionnez les outils de débogage et de traçage
- L’EDS Intel SoC FPGA comprend l’ARM DS-5 Intel SoC FPGA Edition, qui prend entièrement en charge le débogage et le traçage des programmes bare-metal - licence requise
- Les exemples de projets de prise en main utilisent ARM DS-5 Intel SoC FPGA Edition pour le débogage et le traçage
Exercer l’application de mise en route
- Un exemple d’application de mise en route est disponible pour les périphériques Cyclone V, Arria V et Intel® Arria® 10, prenant en charge les compilateurs ARMCC et GCC.
- L’exemple d’application exerce les exercices suivants :
- HPS SDRAM, MMU, caches,
- Minuteries HPS, interruptions
- Ponts HPS vers FPGA
- FPGA IP logicielle : SysID
- FPGA interruptions
- Trouvez la documentation et les téléchargements vers la version dont vous avez besoin sur Rocketboards.org sur les sujets SoCEDS et ARM Development Studio.
3. Créer votre propre projet
Types de projets de métal nu
Il existe deux types de projets différents qui peuvent être gérés par l’ARM DS-5 Intel SoC FPGA Edition :
- Projets basés sur Makefile : le projet est géré en éditant manuellement le makefile, et l’ARM DS-5 Intel SoC FPGA Edition appelle simplement 'make all' et 'make clean' sur ce makefile pour construire et nettoyer votre projet, respectivement.
- Projets basés sur des plugins : L’ARM DS-5 Intel SoC FPGA Edition gère entièrement votre projet, y compris les fichiers à compiler, les options du compilateur, la construction et le nettoyage.
L’avantage d’un projet basé sur makefile est qu’il peut invoquer n’importe quel autre outil, pas seulement le compilateur bare-metal, offrant ainsi plus de flexibilité. Le seul avantage de l’utilisation d’un projet basé sur un plugin est que les paramètres sont facilement accessibles à partir de l’interface graphique ARM DS-5 Intel SoC FPGA Edition, par opposition à l’édition du fichier makefile avec un éditeur de texte.
Méthode recommandée pour créer votre propre projet
Nous vous recommandons de commencer à utiliser le script fourni pour créer automatiquement votre projet basé sur un plugin ou un fichier .
Le script effectue les actions suivantes :
- Créer un dossier de projet
- Créez un fichier de projet C, avec tous les paramètres de compilation requis
- Créez un fichier main.c simple, qui imprime simplement un message « hello world »
- Apportez tous les fichiers HWLIBs pertinents
- Créez le fichier system.h contenant les adresses de base des périphériques FPGA Fabric (nécessite l’installation préalable du logiciel Intel® Quartus® Prime, sinon cette étape sera ignorée)
- Créer une configuration de débogage pour le débogage de l’application
- Créer une configuration de débogage pour exécuter le chargeur de démarrage [facultatif]
- Créer un lanceur d’outils externe pour configurer FPGA fabric à partir de l’ARM DS-5 Intel SoC FPGA Edition [facultatif]
- Créer un lanceur d’outils externe pour régénérer le fichier system.h si nécessaire [facultatif]
Notez que tous les projets de mise en route décrits dans la section Getting Started ont été créés à l’aide de cette méthode.
Méthodes alternatives pour créer votre projet
Vous pouvez également créer vos propres projets en utilisant les alternatives suivantes :
- Option 1 : créez manuellement un makefile, puis reportez-vous à Arm* Development Studio* for Intel® SoC FPGA Edition pour trouver des instructions permettant de créer le projet dans l’ARM DS-5 Intel SoC FPGA Edition en tant que projet makefile. La création manuelle du fichier makefile dépasse le cadre de ce guide et vous oblige à vous familiariser avec tous les outils de construction et leurs options. Si un makefile est requis, la méthode recommandée consiste à utiliser le script fourni pour le créer.
- Option 2 : créez manuellement un projet basé sur un plugin à partir de zéro. Cela consiste à reproduire manuellement la procédure que le script fourni suit pour créer le projet. Notez que le script offre plus de fonctionnalités et constitue la méthode recommandée pour créer votre projet. Cette option est documentée à titre indicatif uniquement.
- Option 3 : Commencez par un projet existant et modifiez-le en fonction de vos besoins. Cela peut être fait surtout pour des tests et des expériences de courte durée, mais cette méthode n’est pas recommandée.
4. Exemples
Mise en route d’applications bare-metal
Tableau A. Cibler les cartes de développement Intel SoC et exercer :
- HPS SDRAM
- HPS MMU et caches
- Minuterie HPS, avec interruptions
- IP FPGA : SysID et PIO – boutons-poussoirs, commutateurs DIP (Double package In-line) et LED
- FPGA interruptions
Appareil |
Compilateur |
Exemple |
---|---|---|
Cyclone® V |
ARMCC (en anglais seulement) |
|
Cyclone® V |
GCC |
|
Arria® V |
ARMCC (en anglais seulement) |
|
Arria® V |
GCC |
|
Intel® Arria® 10 |
ARMCC (en anglais seulement) |
|
Intel® Arria® 10 |
GCC |
Exemples de métal nu inclus avec l’EDS Intel SoC FPGA
Tableau B. Cibler les cartes de développement SoC Intel® et disponible à partir du dossier d’installation FPGA <SoC >\embedded\examples\software\ :
Exemple de nom |
Description |
Appareil |
Compilateur |
---|---|---|---|
MatérielLib-16550 |
Utilise les API UART et d’interruption pour implémenter une application console. |
Cyclone V |
ARMCC (en anglais seulement) |
MatérielLib-ECCL2 |
Configure les tables MMU et affiche les capacités ECC du cache L2. |
Cyclone V |
ARMCC (en anglais seulement) |
HardwareLib-FPGA |
Configure FPGA HPS à l’aide d’un accès direct à la mémoire (DMA), ouvre les ponts H2F et communique avec un composant IP logiciel GPIO à l’intérieur de la structure FPGA. |
Cyclone V |
ARMCC (en anglais seulement) |
MatérielLib-SPI |
Communique avec une EEPROM SPI sur une carte externe. |
Cyclone V |
ARMCC (en anglais seulement) |
HardwareLib-Timer |
Configure les minuteries et les interruptions. |
Cyclone V |
ARMCC (en anglais seulement) |
HelloWorld-Baremetal | Imprime le message « hello world » en utilisant le semi-hébergement. | Cyclone V Arria V Intel Arria 10 |
ARMCC (en anglais seulement) GCC |
Exemples supplémentaires de métal nu
Tableau C. Cibler les cartes de développement SoC Intel et disponible sur la page des exemples de conception, tous utilisant le compilateur GCC :
Exemple |
Description |
Périphérique (fichier projet) |
Appareil (fichier readme) |
---|---|---|---|
DMA |
Initialise le DMA, effectue des transferts de mémoire à mémoire et zéro transfert de mémoire. |
||
ECC |
Configure et active l’ECC pour la RAM sur puce, le SD/MMC, l’interface périphérique série (SPI), le DMA et le cache L2. Injecte des erreurs simple/double bit et configure les interruptions pour les détections d’erreurs simple/double bit. |
||
GPIO |
Configure les entrées/sorties à usage général (GPIO) comme ports de sortie pour piloter les LED HPS et configure les GPIO comme ports d’entrée pour les boutons de commande HPS. |
||
I2C |
Communique via I2C avec écran LCD, mémoire EEPROM ainsi qu’entre deux modules I2C. |
||
Quad SPI |
Effectue la lecture et l’écriture sur le quad SPI en utilisant le mode d’E/S de bloc générique, le mode indirect et le mode DMA. Configure également la MMU et les caches. |
||
SD/MMC |
Initialise la carte SD/MMC, lit et écrit à l’aide de fonctions d’E/S par bloc. |
||
Minuterie |
Utilise des minuteries en mode Free-running, one-shot et watchdog. Effectue des mesures globales de la minuterie. |
||
Non hébergé | Utilise UART pour la sortie printf au lieu du semi-hébergement. Démontre également comment démarrer un programme bare-metal à partir d’une carte SD. | ||
SPI | Communique entre deux modules SPI connectés via l’infrastructure FPGA. | ||
Ponts HPS vers FPGA | Exerce les interfaces mappées en mémoire du système de processeur dur (HPS) exposés à la structure FPGA. Effectue des tests de mémoire en écrivant et en lisant la mémoire HPS à l’aide de divers ports du HPS et mesure les performances des mouvements de données. | Exemple |
Comment implémenter l’exécution sur place (XIP) sur Cyclone V FPGAs
Reportez-vous à la page Cyclone V QSPI XIP sur Intel FPGA Wiki pour obtenir des instructions complètes sur la façon d’exécuter une application bare-metal à partir du flash QSPI .
Comment démarrer des applications bare-metal sur Cyclone V FPGAs
Reportez-vous au chapitre Exemples de démarrage de la note d’application 709 pour obtenir des exemples sur le démarrage d’une application bare-metal SoC Cyclone V à partir de :
- SD/MMC
- QSPI
- FPGA
5. Ressources supplémentaires
Ressources d’assistance
L’aide est à portée de clic ! Les ressources d’assistance fournissent des ressources techniques en ligne, des cours de formation aux exemples de conception en passant par les forums, qui vous guident à chaque étape du processus de conception.
Base de connaissances
La base de connaissances fournit un grand nombre de solutions d’assistance, d’articles de référence, de messages d’erreur et de guides de dépannage. Elle est également entièrement consultable.
Communauté Intel
Intel Community est un site web communautaire qui facilite la collaboration entre Intel FPGA utilisateurs. Consultez les sections « Embedded Design Suite (EDS) » et « SoC Discussion ». Utilisez le moteur de recherche pour trouver du matériel pertinent. Nous vous encourageons également à mettre à jour et à contribuer.
Cours de formation
Vous trouverez ci-dessous des cours de formation de base que vous pouvez suivre avant de commencer votre développement bare-metal.
Ressource |
Type |
Compétences développées |
---|---|---|
Cours en ligne gratuit de 27 minutes |
|
|
Bibliothèques de programmation et de matériel SoC Bare-metal |
Cours en ligne gratuit de 28 minutes |
|
Cours de 8 heures dirigé par un instructeur / en classe virtuelle |
|
Apprentissage - Guide de l’utilisateur du SDE Intel SoC FPGA
Le Guide de l’utilisateur de SoC EDS est un document fondamental décrivant tous les outils et composants Intel SoC FPGA EDS. Nous vous recommandons fortement de consulter les sections suivantes relatives au développement du métal nu :
SoC EDS Section |
Description |
---|---|
Présentation et flux de développement matériel-logiciel. |
|
Comment installer le Intel SoC FPGA EDS et l’ARM DS-5 Intel SoC FPGA Edition. |
|
Options de licence pour le Intel SoC FPGA EDS et comment installer la licence. |
|
Comment démarrer le shell et l’utiliser pour accéder au reste des outils Intel SoC FPGA EDS. |
|
Opérations de base, telles que le démarrage de l’ARM DS-5 Intel SoC FPGA Edition, la gestion de projet bare-metal et le débogage. |
|
Vue d’ensemble des HWLIBs et comment accéder aux informations Doxygen incluses avec l’installation Intel SoC FPGA EDS. |
|
Vue d’ensemble des deux compilateurs bare-metal inclus avec l’EDS Intel SoC FPGA : ARMCC et GCC. |
Apprentissage - Guides de démarrage Intel SoC FPGA EDS
Les guides de démarrage SoC EDS sur le Wiki Intel FPGA sont un ensemble d’instructions de base pour vous aider à démarrer facilement avec le Intel SoC FPGA EDS.
Guide |
Description |
---|---|
Configurez la carte de développement Intel SoC. |
|
Exécutez certains des outils fournis avec le Intel SoC FPGA EDS. |
|
Importez, compilez et déboguez l’exemple d’application bare-metal Hello World fourni. |
Documentation et ressources supplémentaires
Manuels techniques de référence
Les manuels de référence technique contiennent des descriptions détaillées du matériel, notamment le comportement, les adresses de base, le mappage des interruptions et les registres de contrôle/état de tous les périphériques.
SoC Documentation Pages
Les pages de documentation du SoC fournissent un emplacement unique pour accéder à toute la documentation pertinente du SoC, telle que les manuels de référence technique, les fiches techniques et les notes d’application.
Autres ressources
Ressource |
Description |
---|---|
Téléchargez SoC FPGA EDS. |
|
Voir tous les kits de développement FPGA disponibles. Cliquez sur SoC Series Kits dans le volet de navigation de gauche pour voir les cartes prenant en charge un SoC FPGA. |
|
Accédez à divers exemples de conception. Cliquez sur Exemples de conception SoC dans le volet de navigation de gauche pour voir les exemples ciblant un SoC FPGA. |
|
Accédez à l’ensemble des cursus de formation Intel FPGA. Sélectionnez Développement logiciel dans le volet de navigation de gauche, puis recherchez « SoC » pour des cours spécifiques liés au FPGA SoC. Ou sélectionnez tout autre domaine d’intérêt. |
|
Accédez à l’intégralité du catalogue de formations Intel FPGA. Recherchez « SoC » pour obtenir des cours spécifiques sur le FPGA SoC. Ou sélectionnez tout autre cours qui vous intéresse. |
|
Consultez une présentation du Intel SoC FPGA EDS, notamment les nouveautés de la dernière version, les notes de version et l’historique des versions. |
|
Obtenez des liens vers diverses ressources liées aux FPGA SoC, telles que les systèmes d’exploitation, les outils de développement, les cœurs IP et les cartes. |
|
Accédez à plus de 200 vidéos créées par Intel FPGA ingénieurs. Certaines vidéos sont génériques, tandis que d’autres sont liées aux produits SoC FPGA. |
|
Collaborez avec d’autres utilisateurs Intel FPGA via ce site Web communautaire. Consultez les sections Embedded Design Suite (EDS) et SoC Discussion . Utilisez le moteur de recherche pour trouver du matériel pertinent. Tous sont encouragés à mettre à jour et à contribuer. |
Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.