Erreur [1300] cadre de pile trop grand

L

lopex

Guest
Salut, je crois que cette question a déjà été parlé. Je veux un vecteur de grande unsigned char [50] [10] = {{0,1,2}, {0,2,6}}; Ce vecteur est constant. Ceci est pour PIC18F4520, Merci C18, Lopex
 
Salut, Votre vecteur est définit pas comme constante. Quel compilateur?
 
Vous n'avez pas dit comment vous avez été déclaré cela, ou si vous désirez que ce soit une constante ou non. Cependant, l'erreur Stack indiquerait vous déclaré comme une variable fonction locale (non constante). Pour régler ce problème ajoutez le mot clé 'overlay' de votre déclaration:
Code:
 superposition unsigned char big_vector [50] [10] = {{0,1,2}, {0,2,6}};
 
Si sa constante, elle devrait être:
Code:
 ROM unsigned char [50] [10] = {{0,1,2}, {0,2,6}};
ou
Code:
 ROM unsigned char [50] [10] = {{0,1,2}, {0,2,6}};
désolé, je ne suis pas au travail pour le vérifier correctement ... omble [50] [10] sont de 500 octets, et dans un PIC18 toutes les banques ram sont 256 octets ... donc si vous voulez que le vecteur dans la mémoire RAM, vous devez "fusible" pour les banques (avec le script linker et les données # pragma) il ya beaucoup d'exemples ot ce sens ...
 
Merci, avec un
Code:
 # pragma Romdata bigvector
et
Code:
 ROM vecteur unsigned char [50] [10];
Je l'ai fait à résoudre le problème.
 

Welcome to EDABoard.com

Sponsor

Back
Top