begin process at 2012 05 30 05:08:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Variables déclarées mais supprimées par le compilo car non utilisées


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Variables déclarées mais supprimées par le compilo car non utilisées

jeudi 25 mars 2004 à 12:00:16 | Variables déclarées mais supprimées par le compilo car non utilisées

SilverSurfeur

Mon problème est le suivant :

j'ai un fichier St72324.h qui définit des variables pour chaque port de mon micro. Le fichier est le suivant :


typedef unsigned short word;
typedef unsigned char byte;

#pragma DATA_SEG DEF_PERIPH


byte PADR;
byte PADDR;
byte PAOR;
byte PBDR;
byte PBDDR;
byte PBOR;
byte PCDR;
byte PCDDR;
byte PCOR;
byte PDDR;
byte PDDDR;
byte PDOR;
byte PEDR;
byte PEDDR;
byte PEOR;
byte PFDR;
byte PFDDR;
byte PFOR;
byte resrd0[15];
byte SPIDR;
byte SPICR;
byte SPICSR;


Mais le problème, c'est que le copilateur me supprime les variables non utilisées dans la suite du programme. S'il me fait ca, ca me met le bordel dans tous mes ports et mon appli ne fonctionne plus

J'ai bien penser faire un truc bourrin genre un fichier C appelé au début qui met 0x0 pour chaque port mais il y a qq variables (en particulier resrd0[15]) qui ne doivent pas etre changées.

Est ce que qqun aurait une idée, soit pour désactiver cette optimisation (un #pragma peut etre...), soit pour qu'il m'assigne bien toutes ces variables ???

Merci d'avance pour toutes vos réponses...

Simon
jeudi 25 mars 2004 à 17:20:23 | Re : Variables déclarées mais supprimées par le compilo car non utilisées

LordBob

Membre Club
pour déterminer ton probleme il nous faudrais le code du fichier qui utilise cet header !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
vendredi 26 mars 2004 à 09:02:57 | Re : Variables déclarées mais supprimées par le compilo car non utilisées

SilverSurfeur

voici le code qui appelle ce header :


/** \file Display.c
* \brief Ce fichier contient toutes les fonctions pour l'affichage
* \author Simon BRIZARD
* \version 1.0
* \date 25/03/04
*
* L'affichage comprend les LEDS et le petit écran LCD
* Au démarrage, il faut utiliser la fonction Display_Init pour
* configurer l'écran LCD.
* Pour tout ce qui est assignation des ports, il suffit de modifier
* les #define contenus dans le fichier Display.h.
*/

#include ".\Sources\St72324.h"
#define EXT_DISPLAY
#include ".\Sources\Display.h"
#include ".\Sources\Display_LCD_Carac.h"

/** \def PORT_DR_I2C
*
* L'adresse du registre de donnée du port supportant l'I2C
*/
#define PORT_DR_I2C &PADR

/** \def PORT_DDR_I2C
*
* L'adresse du registre de direction du port supportant l'I2C
*/
#define PORT_DDR_I2C &PADDR

/** \def PORT_OR_I2C
*
* L'adresse du registre d'option du port supportant l'I2C
*/
#define PORT_OR_I2C &PAOR

/** \fn ECTrame_I2C_Driver
* \brief Envoi de données pour le driver
* \version 1.0
* \pre Lancement de la fonction Display_Init
* \param <B>ByteCount</B> : Nombres d'octets contenus dans le tableau MTAMPON
* \param <B>MTAMPON</B> : Données à transferer par l'I2C
* \todo Voir le passage de PxDR_I2C_PORT, PxDDR_I2C_PORT et PxOR_I2C_PORT
* par #define plutot que par variable
*
* Cette fonction envoie les données passées en paramètre par l'I2C.
* L'adresse et la sous adresse du driver sont envoyées directement
* (il n'y a pas besoin de les passer dans le tableau MTAMPON).
*
* <B>Historique : </B>
* - 25/03/04 : Ajout de tout le code assembleur écrit par Eloi
* Adresse et sous-adresse du driver définit par #define
* - 23/03/04 : Création de la fonction (en assembleur et en C) car la fonction en assembleur ne fonctionnait pas
* - 22/03/04 : Création de la fonction (tout en assembleur)
*/
void ECTrame_I2C_Driver(byte ByteCount, byte* MTAMPON)
{
byte Txbuf;
byte I2C_Registre;
byte Datai;
byte BitCount;
PxDR_I2C_PORT = PORT_DR_I2C;
PxDDR_I2C_PORT = PORT_DDR_I2C;
PxOR_I2C_PORT = PORT_OR_I2C;
SPICSR = 0x1;
PFOR = 0x2;
}


Il n'est pas complet mais ca suffit pour comprendre mon problème.

Il faut d'abord savoir que la zone mémoire DEF_PERIPH se trouve de l'adresse 0x0 à 0x80. Donc, si le code fonctionnerait, il devrait etre écrit 0x1 à l'adresse 0x23 et 0x2 à l'adresse 0x11.

Mais le compilateur supprime toutes les variables définies entre PAOR et PFOR et toutes les variables entre PFOR et SPICSR car elles ne sont pas utilisées.

Au final, à l'exécution du code, il y a 0x2 à l'adresse 0x3 et 0x1 à l'adresse 0x4.

Est ce que qqun aurait une idée pour que toutes ces variables soient définies meme si elles ne sont pas utilisées ?

Sur un conseil, j'ai essayé de mettre volatile devant chaque variable mais ca ne marche pas...


Cette discussion est classée dans : fichier, variables, byte, déclarées, utilisées


Répondre à ce message

Sujets en rapport avec ce message

Variables "partagées" [ par sebastienbro ] Bonjour, je voudrais savoir comment partager une variable entre plusieur fichier .cpp. J'ai essayé avec un .h, dans lequel j'ai mis juste ma variable. Probleme c++ lire une byte Binaire =26 ou =13 [ par WINACreve ] Situation: Je fait un programme qui ouvre n'importe quel fichier et lit chacune de ces bytes 1 par 1 et garde en mémoire leurs valeur.Problème #1: lor Récupération de varaiables dans un fichier txt [ par jujunio ] Mon pb est le suivant :Je n'arrive pas à récupérer les valeurs de variables déclarées dans un fichier txt.voici le fichier .txt dont je veux récupérer récupération de variables dans un fichier .txt [ par jujunio ] Voici mon pb. Je voudrais récupérer des valeurs de variables qui sont dans un fichier .txt et je ne sais pas du tout comment faire?voici le fichier .t Récupération d?un ensemble de variables d?environnement sous MFC [ par alarbi ] J'ai écris une application type ControlBox avec MFC.Cette application appel à l'aide de la fonction system un fichier point Bat : Pour l?instant les a Les pointeurs, aide SVP [ par jb60 ] Bonjour,J'ai fait une source avec plusieurs fichier *.cpp et plusieurs fichiers *.hDans un fichier main.cpp, j'ai créé un pointeur BYTE *LesOctets;Je declaration de variables [ par Darkan ] Bonjour a tous!J'aimerais savoir s'il y avait possibilité de déclarer des variables dans un autre fichier que dans le fichier principal.Lorsque j'essa [VC++] SDI... : Comment utiliser des variables, déclarées dans le CMainFrame, dans le CDocumentView [ par cardise ] Bonjour, Mon programme, pour faire simple, calcule le contour d'un circuit électrique via des fonctions réflexes du CMainFrame et doit afficher le rés question sur les variables [ par Kernox ] Bjr,Je doit lire un fichier txt de plusieurs lignes et avec des lignes dune longeur differente.Je veux savoir comment peut ton faire quelque chose com pb de définition de variables [ par minet03 ] Coucou, j'ai fait un fichier variables.cpp où je met toutes mes variables dedans. J'inclue ce fichier dans tout mes autres fichiers car ils en ont tou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales