Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1938 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Imposer l'emplacement mémoire de certaines variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Imposer l'emplacement mémoire de certaines variables

n°1067362
Caedes
Posté le 30-04-2005 à 23:57:22  profilanswer
 

Bonjour à tous !
 
Je programme en ce moment un petit logiciel en C sur ARM. Dans ce dernier j'utilise une librairie de décodage d'un fichier MP3 qui nécéssite une instance pour travailler. Cette dernière se déclare sous la forme  

Code :
  1. INSTANCE xx;
  2. CHANNEL c1;
  3. CHANNEL c2;


et ces 3 variables doivent être globales.
Sur la plateforme j'ai peu de RAM (32 Kb), cependant je bénéficie d'une RAM externe pour sauvegarder temporairement les instances de mon décodeur.
 
En fait j'ai besoin de sauvegarder mes instances en les copiant en RAM externe et les restituer par après. C'est très simple à faire. Cependant j'aimerais, lorsque les instances ont été sauvegardées, me servir de la place libre en RAM rapide pour faire autre chose. Et là j'ai besoin que la zone sont contigue.
 
Comment puis-je m'assurer que mes 3 variables xx, c1 et c2 soient bien l'une à côté de l'autre (hormis analyser à chaque fois le log du linker).
 
Si cette foutue lib fonctionnait avec des pointeurs j'aurais pu d'abord déclarer ma zone contigue et puis faire pointer l'instance dedans mais ici ce n'est pas possible.
 
J'espère que c'est clair [:ddr555]
Merci :)


Message édité par Caedes le 01-05-2005 à 00:00:26
mood
Publicité
Posté le 30-04-2005 à 23:57:22  profilanswer
 

n°1067492
cricri_
Posté le 01-05-2005 à 09:50:41  profilanswer
 

utilise un tableau, ou bien une structure "packé" peut-être ?

n°1067642
chrisbk
-
Posté le 01-05-2005 à 14:35:48  profilanswer
 

oué, une structure est forcement contigue en mémoire mais le compilo a le droit de laisser parfios des trois entre les membres. En utilisant les options de pack (la facon de faire depend de ton compilo) tu peux virer ces "trous"


---------------
NP: HTTP Error 764 Stupid coder found
n°1067647
Emmanuel D​elahaye
C is a sharp tool
Posté le 01-05-2005 à 14:49:51  profilanswer
 

chrisbk a écrit :

oué, une structure est forcement contigue en mémoire mais le compilo a le droit de laisser parfios des trois entre les membres. En utilisant les options de pack (la facon de faire depend de ton compilo) tu peux virer ces "trous"


Si l'architecture le permet et parfois au prix d'une réduction des performances...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067649
chrisbk
-
Posté le 01-05-2005 à 14:53:42  profilanswer
 

ah bin c'est pas trop conseillé, generalement, mais parfois y'a besoin


---------------
NP: HTTP Error 764 Stupid coder found
n°1067687
++fab
victime du syndrome IH
Posté le 01-05-2005 à 15:41:28  profilanswer
 

chrisbk a écrit :

ah bin c'est pas trop conseillé, generalement, mais parfois y'a besoin


 
quand donc ?  [:petrus75]

n°1067747
chrisbk
-
Posté le 01-05-2005 à 17:02:17  profilanswer
 

++fab a écrit :

quand donc ?  [:petrus75]


 
parfois quand tu veux directement 'mapper' une structure à des données stockées dans un fichier (pratique déconseillée, cela dit)


---------------
NP: HTTP Error 764 Stupid coder found
n°1067759
bjone
Insert booze to continue
Posté le 01-05-2005 à 17:15:36  profilanswer
 

ou aussi, quand tu veux dialoguer avec un bios ou autre.

n°1067839
printf
Baston !
Posté le 01-05-2005 à 19:01:56  profilanswer
 

Ou pour implémenter un protocole de communication, tout simplement.


---------------
Un matin je me lèverai et il fera beau.
n°1067902
chrisbk
-
Posté le 01-05-2005 à 19:51:09  profilanswer
 

ou pour faire des gratins de pomme de terre


---------------
NP: HTTP Error 764 Stupid coder found
mood
Publicité
Posté le 01-05-2005 à 19:51:09  profilanswer
 

n°1067906
cricri_
Posté le 01-05-2005 à 19:54:16  profilanswer
 

vi, comme printf ;)
Chrisbk : les patates au barbuc y a que ça de vrai !! ...  :pt1cable:  :whistle:

n°1067910
chrisbk
-
Posté le 01-05-2005 à 19:55:02  profilanswer
 

Citation :

Chrisbk : les patates au barbu y a que ça de vrai


 
 
[:le kneu] t'as de drole de gout


Message édité par chrisbk le 01-05-2005 à 19:55:18

---------------
NP: HTTP Error 764 Stupid coder found
n°1067917
cricri_
Posté le 01-05-2005 à 19:58:11  profilanswer
 

Au Barbecue je voulais dire ...   :lol:

n°1067930
printf
Baston !
Posté le 01-05-2005 à 20:09:49  profilanswer
 

Les structures packées sous la cendre, c'est super bon [:huit]


---------------
Un matin je me lèverai et il fera beau.
n°1067943
bjone
Insert booze to continue
Posté le 01-05-2005 à 20:27:21  profilanswer
 

avec du camembert fondu  :p  
mm c'est l'été c'est l'époque des barbeuks :D

n°1070426
Caedes
Posté le 03-05-2005 à 14:13:47  profilanswer
 

Euh, une structure n'arrange rien.
En effet l'API utilise la variable xx directement. Or si je la mets dans une structure l'API devrait utiliser S.xx par exemple...

n°1070486
Emmanuel D​elahaye
C is a sharp tool
Posté le 03-05-2005 à 14:56:55  profilanswer
 

Caedes a écrit :

Euh, une structure n'arrange rien.
En effet l'API utilise la variable xx directement. Or si je la mets dans une structure l'API devrait utiliser S.xx par exemple...


#define xx S.xx


ou plutôt, car ce sera probablement un pointeur:

#define xx (pS->xx)



Message édité par Emmanuel Delahaye le 03-05-2005 à 14:58:07

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Imposer l'emplacement mémoire de certaines variables

 

Sujets relatifs
Récupérer toutes les variables d'un postMonter une image en mémoire
Comment récupérer des variables ASP qu'on envoie à FLASH ?Problème concaténation variables [RESOLU]
[Résolu]Transmission de variablesVariables partagées entre sessions
Insérer une animations flash et choisir son emplacementInsérer une animations flash et choisir son emplacement
Probléme avec des variables globalesPB transfert variables FLASH -> PHP : "monLoadVar.send"
Plus de sujets relatifs à : Imposer l'emplacement mémoire de certaines variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR