[dÚvida - memÓria pic18]


#1

Bom pessoal, estou com problemas pra alocar o vetor que eu gostaria, não consigo nem com 250. Coloquei abaixo o meu código refatorado, pra ficar melhor de enteder, também coloquei LINKER SCRIPT que eu fiz. Eu tô usando o MPLABX, e o compilador é o C18. Alguém, por favor, saberia me explicar o que por quê?

CÓDIGO COMPLETO
http://pastebin.com/t5GC2UDz
CÓDIGO NO LINKER SCRIPT
http://pastebin.com/GZ6CRdu3


#2

Caramba, fa tempo que não mexo com PIC, mas exatamente que erro esta dando, aonde?
PS.: Seja mais direto, explique melhor seu problema… Vc usa 3 vetores, explique melhor o que cada um faz, no geral qual seu objetivo, as vezes ha outra maneira…


#3

Opa, você então saberia me explicar o Script linker? O objetivo é alocar um vetor de 1000 posições. E simular a função do algoritmo de escalonamento de disco SSTF


#4

Caralho 1000 posições, meu cérebro travou no 1000, não são tantos CPU`s que te memoria pra 1k*, vamos ver se o 18F4550 tem: são 32kB para programa, 2048B SRAM e 256B EEPROM… se voce quer 2 posições precise de um bit, 16 posições um byte (ou 8 bits)… 1000 posições = 62,5B, agora estamos falando em bits, sim ou náo (0 ou 1) se vc tem um vetor de 1k de posições em inteiros (como no seu programa, que na verdade são 1250 ou mais) um inteiro ocupa dois bytes, ou seja, 16 vezes o bit… 1662,5=1000… para 250 posições 250/816=500…como se usa EEPROM(a não ser que se troque) para armazenamento vc está com um deficit de 50% (tente com 100 elementos no vetor e com certeza vai conseguir)… não sei se a conta esta certa pq estou meio tonto, mas o raciocínio segue…vc esta com pouca memoria.