TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: JuanEZWon en 28 de Diciembre de 2011, 19:13:54
-
Hola comunidad todopic. el problema que tengo es que cuando utilizo el asm en linea (_asm _endasm) el compilador C18 no optimiza el codigo. y me parece muy raro porque en CCS si lo optimiza sin importar cuanto codigo en ASM coloque. por ejemplo:
si compilo esto:
void Funcion(void)
{
Par += 2;
Impar += 2;
}
me genera esto en ASM:
74: void Funcion(void)
75: {
76: Par += 2;
04EA 0E02 MOVLW 0x2
04EC 0100 MOVLB 0
04EE 27B2 ADDWF 0xb2, F, BANKED
77: Impar += 2;
04F0 0100 MOVLB 0
04F2 27B3 ADDWF 0xb3, F, BANKED
78: }
04F8 0012 RETURN 0
Osea un código optimizado.
Pero si lo compilo así con código asm poniendo por ejemplo un NOP:
void Funcion(void)
{
Par += 2;
_asm nop _endasm
Impar += 2;
}
me genera un codigo sin ninguna optimizacion
74: void Funcion(void)
75: {
76: Par += 2;
04EA 0E02 MOVLW 0x2
04EC 0100 MOVLB 0
04EE 27B2 ADDWF 0xb2, F, BANKED
77: _asm nop _endasm
04F0 0000 NOP
78: Impar += 2;
04F2 0E02 MOVLW 0x2 //FAIL. vuelve a cargar 2 en el registro W siendo que ya esta cargado consumiendo un ciclo extra
04F4 0100 MOVLB 0
04F6 27B3 ADDWF 0xb3, F, BANKED
79: }
04F8 0012 RETURN 0
Ademas otra duda que tengo es que no entiendo porque el compilador tiene que andar colocando esa instruccion de MOVLB 0 siendo que en el CCS no mas la coloca una vez al principio.
bien, perdonen las molestias y espero algo de ayuda. gracias de antemano
-
Hola a todos, tengo una problema, he instalado mplab c18, pero no se ni como se abre el programa, lo tengo instalado en esta ruta de la computadora, C:\Program Files\MCC18, pero no se creo ningun acceso directo, aunque hay un monton de archivos dentro a los que les di enter y nada.
Ayuda. o es que que tengo que tener instalado MpLab 8.50 y el c18 es una expansion de este.
Muchas gracias a todos quienes respondan.
Javier - Ecuador
-
el MPLAB es el IDE y el C18 es el compilador. Es decir, el MPLAB es el entorno grafico, y el C18 compila lo que tu le digas que haga por lo cual necesitas ambos.