Red Pitaya Startup – Exécution automatique de programme au démarrage. | ScieTech

Lucas

La Red Pitaya est une plateforme FPGA appréciée pour ses nombreuses applications, de la création rapide de prototypes à des utilisations en laboratoire. Configurer l’exécution d’un programme au démarrage sur cette plateforme est crucial pour automatiser des tâches et garantir l’autonomie des systèmes.

Résumé : Pour activer une fonction autonome sur une carte Red Pitaya, il faut pouvoir démarrer un programme automatiquement dès l’allumage. Ainsi, la carte fonctionnera de manière indépendante dans votre système ou laboratoire.

iconfinder_sign-info_299086-3301586

Information avant de commencer

Niveaux de difficulté : star-4263669star-4263669star_g-8508139star_g-8508139star_g-8508139

Prérequis :

  • Une carte Red Pitaya
  • La programmation en C

Logiciels gratuits utilisés dans ce tutoriel :

  • WinSCP
  • Putty
  • Advanced IP Scanner
  • Notepad++
  • Firefox

Mettre en place l’exécution automatique d’un programme sur Red Pitaya

Ce guide vous montre étape par étape comment configurer l’exécution automatique d’un programme en C sur votre Red Pitaya dès son démarrage.

Préparer la carte SD de votre Red Pitaya

Téléchargez l’image OS nécessaire et écrivez-la sur une carte microSD en utilisant un outil comme Etcher. Cette étape est vitale pour que votre Red Pitaya exécute les programmes au démarrage.

Installation et configuration initiale

Après avoir mis la carte SD dans la Red Pitaya, connectez-la au réseau. Utilisez Advanced IP Scanner pour trouver l’adresse IP de la Red Pitaya. Fixez ensuite une IP stable pour faciliter les futures connexions.

Se connecter à la Red Pitaya avec WinSCP

Utilisez WinSCP pour accéder aux fichiers internes de la Red Pitaya, nécessaires à la modification et au transfert des scripts.

Modification des paramètres réseau

Pour un accès stable, configurez une IP fixe en accédant à l’interface web de la Red Pitaya et ajustez les paramètres réseau.

Créer et lancer le programme en C

Vous allez écrire, compiler et tester un programme simple en C, exécuté automatiquement au démarrage de la Red Pitaya.

Écrire un programme C basique

Commencez avec un programme simple, comme un clignotement de LED, et ajoutez les commandes pour initialiser et utiliser l’API de la Red Pitaya.

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include redpitaya/rp.hint main (int argc, char **argv) {    unsigned int period = 1000000;     // Lancer le programme FPGA    system("cat /opt/redpitaya/fpga/fpga_0.94.bit > /dev/xdevcfg");     usleep(2);    // Initialiser l'API    if (rp_Init() != RP_OK) {        fprintf(stderr, "Red Pitaya API init failed!");        return EXIT_FAILURE;    }    rp_DpinSetState(1, RP_HIGH);     unsigned int retries = 1000;    while (retries--){        rp_DpinSetState(0, RP_HIGH);        usleep(period/2);        rp_DpinSetState(0, RP_LOW);        usleep(period/2);    }    // Libérer les ressources    rp_DpinSetState(1, RP_LOW);    rp_Release();    return EXIT_SUCCESS;}

Compiler le programme en C

Utilisez les commandes adéquates pour compiler votre programme en C. Cette étape est essentielle afin de s’assurer que le code est sans erreur avant de le paramétrer pour l’exécuter automatiquement. Par exemple :

gcc -g -std=gnu99 -Wall -Werror -I/opt/redpitaya/include -L/opt/redpitaya/lib votre_programme.c -lm -lpthread -lrp -o votre_programme

Tester le programme compilé

Lancez le programme pour vérifier qu’il fonctionne bien avant de le configurer pour l’exécution automatique. Utilisez les commandes dans le terminal pour tester son bon fonctionnement. Par exemple:

LD_LIBRARY_PATH=/opt/redpitaya/lib ./votre_programme

Diviser les blocs de code

Séparez les segments de code en sections claires et commentées pour expliquer leur rôle et assurer une bonne compréhension par les lecteurs.

Configurer le lancement automatique du programme

Cette partie du guide vous montre comment créer le fichier de service nécessaire pour démarrer automatiquement le programme en C à chaque démarrage de la Red Pitaya.

Créer le script startup.sh

Rédigez un script shell pour compiler et lancer le programme C automatiquement. Placez ce script dans un répertoire dédié pour qu’il soit exécuté au démarrage. Voici un exemple :

#!/bin/sh -egcc -g -std=gnu99 -Wall -Werror -I/opt/redpitaya/include -L/opt/redpitaya/lib /ScieTech/startup.c -lm -lpthread -lrp -o /ScieTech/startupLD_LIBRARY_PATH=/opt/redpitaya/lib /ScieTech/startupexit 0

Créer le fichier de service systemd

Rédigez et configurez un fichier de service systemd dans /etc/systemd/system. Ce fichier définit le script à exécuter et le moment de son exécution. Par exemple :

[Unit]Description=My start-up script[Service]ExecStart=/bin/bash /ScieTech/startup.sh[Install]WantedBy=multi-user.target

Activer le service au démarrage

Employez la commande systemctl pour activer le service créé et faire en sorte que le script startup.sh soit exécuté au démarrage de la Red Pitaya. Par exemple :

systemctl enable startup.servicereboot

Vérification et débogage

Vérifiez l’état du service pour vous assurer qu’il fonctionne bien. Débugguez d’éventuelles erreurs en consultant les logs et ajustant les commandes nécessaires. Utilisez :

systemctl status startup.service

FAQ et dépannage

Voici des réponses aux questions fréquentes et des solutions aux problèmes courants pour garantir une installation réussie.

Problèmes de connexion et d’adresse IP

Des solutions pour corriger les problèmes de connexion ou de détection de l’adresse IP de la Red Pitaya. Recommandations pour une configuration réseau stable.

  • Vérifiez que votre Red Pitaya est bien connectée au réseau et examinez les câbles.
  • Utilisez Advanced IP Scanner pour identifier l’adresse IP de votre Red Pitaya.
  • Configurez une adresse IP fixe pour éviter les changements d’IP dus au DHCP.

Erreurs durant le lancement du programme

Repérer et résoudre les erreurs courantes lors de l’exécution du programme. Utilisez les commandes de diagnostic disponibles pour y remédier. Par exemple :

  • Assurez-vous que les permissions d’exécution sont correctes en utilisant la commande chmod +x /votre_programme.
  • Vérifiez que toutes les dépendances sont bien installées.

Arrêter un programme en boucle infinie

Utilisez des commandes spécifiques pour interrompre un programme qui entrerait dans une boucle infinie. Reprenez le contrôle du terminal. Par exemple :

pkill -f votre_programme

Maintenant que vous savez comment lancer un programme au démarrage, vous pouvez créer vos propres applications.

N’hésitez pas à laisser un commentaire ou à me contacter si vous avez des questions sur ce tutoriel ou souhaitez que j’aborde un sujet spécifique.