IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mobiles Discussion :

Programmation d'un processeur soft-core Nios II sur FPGA Altera


Sujet :

Mobiles

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Par défaut Programmation d'un processeur soft-core Nios II sur FPGA Altera
    Bonjour,

    Dans le cadre de développement pour processeur soft-core Nios II, implanté sur un FPGA Cyclone d'Altera, j'ai rencontré le problème suivant:

    Le logiciel principal est écrit en C pur (sans middleware linux, ni windows embedded) et se base sur l'architecture suivante:
    un projet principal (type: C/C++ Application), au code très sommaire (juste le main() ), appelle toute une série de librairies statiques (en fait, des projets de type: Managed librairy project) qui, une fois compilées, s'insèrent dans le projet principal sous la forme fichiers binaires .a . Le développement est effectué dans l'environnement Altera NiosII IDE (qui se base sur Eclipse).

    Le problème rencontré est le suivant: lorsque, dans une fonction des librairies, on utilise un tableau dont l'indice est exprimé sous forme d'une variable, et non pas sous la forme d'une constante, comme dans l'exemple : for (i=0;i<10;i++) {
    tableau[i]=value[i];
    },
    alors le code se bloque, à chaque fois qu'on appelle la fonction de la librairie, depuis l'application principal. Par exemple, si on insère des printf avant et après la boucle for, le premier printf va s'afficher correctement mais pas le second (preuve que le code s'est bloqué à cet endroit).

    Y aurait-il une interprétation pour ce phénomène? Je pense qu'il doit y avoir une explication, dans la manière dont le compilateur gère la déclaration et l'utilisation des tableaux, au sein des librairies statiques. Utiliser des librairies dynamiques permettrait-il de résoudre ce problème selon vous?

    Merci de votre aide,

  2. #2
    Invité de passage
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut
    si tu peux rajouter des printf, je te conseille d'essayer ça :

    for (i=0;i<10;i++)
    {
    printf("valeur tableau[i]= %d \n", tableau[i]);
    printf("valeur value[i]= %d \n", value[i]);
    tableau[i]=value[i];
    }

    la tu pourras voir par exemple si il affecte les valeurs pour i=0, i=1.... et ainsi de suite car le problème est peut être un problème de taille.
    admettons que ton tableau "tableau" ou ton tableau "value" ait une taille inférieure à 10, par exemple 5, la boucle fonctionnera 5 fois et à la 6ème il plante. ces printf te permettrons de savoir s'il plante tout de suite ou pas.

  3. #3
    Invité de passage
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Par défaut
    merci

Discussions similaires

  1. [MultiCore] connaitre le nb de processeur ou core
    Par estacado dans le forum Général Java
    Réponses: 5
    Dernier message: 09/02/2008, 08h49
  2. Benchmark sur processeur multi-core
    Par Charlemagne dans le forum C++
    Réponses: 123
    Dernier message: 16/07/2007, 10h51
  3. Réponses: 3
    Dernier message: 07/05/2006, 11h12
  4. Lancer un programme au démarrage sous Feodra core 3
    Par nicolas66 dans le forum Administration système
    Réponses: 11
    Dernier message: 05/04/2006, 09h56
  5. Processeur Dual Core
    Par Oberown dans le forum Composants
    Réponses: 8
    Dernier message: 16/03/2006, 17h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo