+ ram no at89c55wd

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

+ ram no at89c55wd

Mensagempor rebelk » 11 Abr 2009 14:22

estou desenvolvendo um programa em C no keil uv3 que estava funcionado perfeito ate o momento , só que tive que acrescentar mais umas funções , ai foi que começou minha dor de cabeça , o programa compila normal , não gera erro , mas o programa ficou louco , ate parece que o compilador não compila alguma parte do codigo , depois de tentar de varias maneiras e não consegui dei uma pesquisada aqui no forum
( http://www.asm51.eng.br/phpbb/viewtopic ... ultilizado )
e bate com o que esta acontecendo comigo , então baixei o nivel de otimização e para o minha surpresa o codigo ficou pior , o micro as vezes resetava sozinho , então deixei o nivel de otimização como estava anterior , nivel 8 .
fui para a net dei uma vasculhada e cheguei a uma conclusão , eu estava estrapolando o espaço da ram interna o uc , dei uma enxugada no codigo ultilizando ponteiros nas funções e dei uma enxugada nas variaveis locais , então reduzi para de237.5 para 222.5 de ram , nas minhas variaveis especifiquei todas para ( idata ) , ai o programa voltou a funcionar normal como antes . eu tinha ultilizado o limite da ram com as variaveis globais , não deixando ram para a pilha e para as chamadas das funções , mas para descobrir isso foi embora 4 dias , ufa!!!

obs; graças ao livro do Maurício cardoso ( que por sinal muito bom ) , foi a minha salvação .

então ao longo dessa pesquisa surgiram algumas duvidas

1º nos 256 bytes de ram é só ram sem incluir os resistros de funções especiais ou não?

2º vou substituir o uc at89c55wd pelo at89c51rc 32kb e 256 bytes de xram , alguém poderia me postar um exemplo de como criar variaveis na xram desse uc ( em c no keil ),pois ele possui um resistro especial para a configuração da ram e xram , pois estou querendo mudar todas as minhas variaveis globais para a xram , sei que vai ficar um pouco lento o acesso , mas isso não é problema .


antes
Program Size: data=237.5 xdata=0 code=12773
creating hex file from "ganovo"...
"ganovo" - 0 Error(s), 15 Warning(s).

depois
Program Size: data=222.5 xdata=0 code=12773
creating hex file from "ganovo"...
"ganovo" - 0 Error(s), 15 Warning(s).


fkleberp@ibest.com.br
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor rebelk » 11 Abr 2009 14:26

tinha esquecido , como faço para retirar essas partes de algumas funções que não são ultilizadas , o compilador fica só pertubando com as mensagens abaixo!
ele compila essas partes ou só mostra que não esta sendo ultilizada ?

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_READ_INT_AT24C16?GANOVO
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_WRITE_INT_AT24C16?GANOVO
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_LER_CHAR_AT24C16?GANOVO
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_ESCREVE_CHAR_AT24C16?GANOVO
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_LIMPA_LINHA?GANOVO
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16

Mensagempor rebelk » 11 Abr 2009 14:41

outra duvida , o que significa esse ( STATIC OVERLAYABLE )

MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 8044 ----
CONSTANT SIZE = 1291 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 56
IDATA SIZE = 136 ----
BIT SIZE = 19 35
END OF MODULE INFORMATION.
rebelk
Byte
 
Mensagens: 301
Registrado em: 15 Nov 2006 20:16


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x