Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Mobiles
Mobiles Forum d'entraide sur les mobiles, pda, Pocket PC, Smartphone, Palm,... : Hardware, système et programmation
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2007, 15h40   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 1
Points : 0
Points : 0
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,
mdelehaye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 10h48   #2
Invité de passage
 
Inscription : novembre 2007
Messages : 1
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2007
Messages : 1
Points : 1
Points : 1
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.
jeff51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 15h31   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 1
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 1
Points : 1
Points : 1
merci
samoil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h26.


 
 
 
 
Partenaires

Hébergement Web