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

  FORUM HardWare.fr
  Programmation
  C

  HELP Microchip PIC18

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

HELP Microchip PIC18

n°1013881
podone
Posté le 15-03-2005 à 21:04:05  profilanswer
 

Qui connait le développement avec ce micro 18F6720 ?
Je suis en train de m'arracher les cheveux avec le compilo. Il me fait des erreurs de pointeurs de pile quand la charge processeur s'amplifie.
J'en suis au deuxième bogue recencé.
Premier bogue (mais qui est selon moi un bogue de conception du processeur), erreur du pointeur de pile sur déclenchement interruption quand le programme principal entre ou sort d'une fonction quand la pile est multibanques et que FSR1H est différent de FSR2H.
Sur un appel de fonction le compilateur génère :
FSR2L = FSR1L
FSR2H = FSR1H
 
Sur sortie de la fonction :
FSR1L = FSR2L
FSR1H = FSR2H
 
Si une interruption intervient entre les 2 instructions la pile est fausse en entrée d'interruption (translation de FSR2 ou de FSR1 selon le cas)
 
Deuxième boque (toujours dans le cas multibanques et FSR2 proche du changement de banque)
SI par exemple on a la fonction  

Code :
  1. void MaFonction(LPMASTRUCT lpMaStruct)
  2. {
  3. MASTRUCT MaStruct;
  4.    MaStruct = *lpMaStruct;
  5. }


avec taille MASTRUCT = 10 octets, FSR1 = 0x70B et FSR2 = 0x6FC
le compilateur génère le pseudocode
WREG = 0xFC
FSR0L = *(FSR2 + WREG)
WREG = 0xFD
FSR0H = *(FSR2 + WREG)
*FSR2++ = *FSR0++ (10 fois)(incrémentations 16 bits)
FSR2L -= 10
Et pas de report sur les poids forts FRS2H
En sortie FSR2 = 0x7FC
 
Comme ce code est généré automatiquement par le compilateur, je n'ai trouvé aucune parade (sinon l'histoire de fou de passer au cribler des milliers de lignes de source C)
 
 

mood
Publicité
Posté le 15-03-2005 à 21:04:05  profilanswer
 


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

  HELP Microchip PIC18

 

Sujets relatifs
pb sur les fichiers et une fonction help me please tres urgenthelp! j'essaie de ne plus utiliser les tableaux et....
HELP J'AI BESOIN D'AIDEHelp Delphi - Concertisseur
HELP - Récupération de données d'une balance par le port série.[VisualC++ 6] Help ! Version Win32 release tombe en erreur
Requete SQL en ASP -- Help[TASM] Help Noob
Help add new => update[HELP] Connexion a une base de donnees access sous VB.NET
Plus de sujets relatifs à : HELP Microchip PIC18


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