code optimization do keil

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor Maurício » 19 Abr 2007 18:12

Esse arquivo REG935, se refere à qual máquina ?
Não conheço o integrado que ele faz referência.
É um arquivo próprio ?

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor Maurício » 19 Abr 2007 18:22

j.silvestre escreveu:
Código: Selecionar todos
}

buffer[0] = dec;
buffer[1] = uni;
buffer[2] = cent;
while(1){}

}



j.silvestre


while(1){}

Seu programa termina aqui. As variáveis não serão mais utilizadas. Sobreposição de variáveis. Otimização.

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor barboza » 20 Abr 2007 09:41

No documento da ARM que descreve como escrever codigos eficientes, tem o trecho abaixo.
Como a ARM e Keil é a mesma coisa agora, pode se aplicar ao compilador C51 tb.
Verifiquem!

When setting the debugging options, it is important to know that enabling any of them will
affect both codesize and performance significantly. The reason is that for debugging a
varying level of optimizations is disabled. This is necessary because some optimizations
produce code that cannot be described in debugging tables (so, for example, variables
may be displayed incorrectly, or it becomes impossible to set breakpoints at certain
places). Therefore, it is best to switch off all debugging when codesize and/or performance
are important.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor j.silvestre » 22 Abr 2007 09:26

pessoal o seguinte:

o reg935 é o header do p89lpc935 da nxp.

o while(1) era apenas para debug.

na verdade esta rotina faz parte de um programa maior.




sds

j.silvestre
j.silvestre
Byte
 
Mensagens: 260
Registrado em: 12 Out 2006 22:15

Mensagempor Abuda » 05 Mai 2007 15:25

Uso o Keil e nunca tive problemas com a otimização máxima, antes usava o Franklin que é um desastre na otimização.

A otimizaçào do keil é excelente tenho pelo menos dois programas complexos rodando no at89c55wd usando 95% da flash e 80% da RAM e na otimização máxima não dá nenhum problema
Abuda
Byte
 
Mensagens: 214
Registrado em: 04 Mai 2007 09:38
Localização: SP

Mensagempor Maurício » 06 Mai 2007 17:59

j.silvestre escreveu:pessoal o seguinte:

o reg935 é o header do p89lpc935 da nxp.

o while(1) era apenas para debug.

na verdade esta rotina faz parte de um programa maior.



A característica de uma variável local é a de ser criada e destruída, dentro do bloco onde ela foi criada. Enquanto o bloco estiver ativo, a variável tb estará, SE, ela for utilizada em algum outro lugar dentro daquele bloco.

O Keil está otimizando o seu código.

Eu, quando escrevo pro 51, uso o nível zero de otimização no primeiro DEBUG do programa. Se o programa rodar no nível zero, então, eu altero o nível para o default, nível 8, e recompilo.
Nesse nível de otimização, o Keil remove código duplicado, código inútil e otimiza tb a utilização das variáveis.

Como exemplo, vc pode criar duas funções, em que as 2 últimas instruções sejam idênticas. No nível zero, todas as instruções serão executadas. Das duas funções. No nível 8, o programa ao invés de seguir nas instruções da primeira função, pode usar as 2 últimas instruções da função dois. Porque ? Porque é mais simples introduzir um JMP no código do que acrescentar código redundante. É mais barato colocar um JMP, do que copiar o código, já que o JMP ocupa menos espaço pra ser excutado.

Alterou o programa ? Claro ! O programa foi OTIMIZADO! Mas, continua rodando igual ou melhor ao que foi no nível zero. Otimização. Só isso.

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Anterior

Voltar para 8051

Quem está online

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

x