(résolu)Prog sur PIC 18F452

Prog sur PIC 18F452 (résolu) - C - Programmation

Marsh Posté le 19-05-2011 à 13:18:29    

bonjour
 
je n'arrive pas à remplir plus de 52% de l'espace ROM de mon PIC.
Actuellement mon prog fait 16932 octets (~52%) dont 16384 octets qui sont placés entre les adresses $4000 et $7FFF , les 548 autres octets étant placés avant $4000.
Mon problème est que le simple fait de rajouter une ligne ex: (A=1;) dans une fonction, me génère l'erreur suivante:
Error[000]   : Can't find 0x4006 words (0x4006 withtotal) for psect text in segment CODE
Si j'ai bien compris, l'erreur indique que le PIC n'aurait pas assez de place, alors que seulement 52% environ de ROM sont utilisé.
Donc comment expliquer çà et comment y remédier.
 
Merci


Message édité par pitivier03 le 10-06-2011 à 11:10:59
Reply

Marsh Posté le 19-05-2011 à 13:18:29   

Reply

Marsh Posté le 07-06-2011 à 11:49:02    

Bonjour,
 
cela vient du fait que la mémoire libre est fragmentée en différents segments. Le problème que tu rencontres est que le code que tu cherches à placer ne trouve pas de segment de mémoire assez long. Voici les recommandations que j'ai trouvée sur Internet :  
 

Citation :

If the problem is that the memory is fragmented into many small free ranges:
 
* Do not define absolute variables or functions
  - if you must, ensure that are placed at the end of a bank or page
* Split large psects these into smaller ones
  - If the psect holds the code associated with a function, split the function into two; reduce
     array or structure sizes, where possible


 
tiens moi au courant


Message édité par Metatr0n le 07-06-2011 à 11:50:34

---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques
Reply

Marsh Posté le 10-06-2011 à 11:03:57    

Merci pour votre réponse.
 
J'ai réduit mes fonctions ou découpé les plus longues, mais je pense que l'erreur venait peut être du fait que certaines de mes variables étaient déclarées en 16 bits alors que j"en utilisais que 8.Bref, tout c'est arrangé mon prog fonctionne.


Message édité par pitivier03 le 10-06-2011 à 11:09:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed