Autor Tema: Compiladores de C / Optimización del código  (Leído 9541 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado togarha

  • PIC12
  • **
  • Mensajes: 87
Re: Compiladores de C / Optimización del código
« Respuesta #15 en: 13 de Febrero de 2007, 03:44:46 »
Buenas,

Tienes razon sispic, yo tambien he puesto que el asm te lleva al atajo (es decir, a hacerlo todo un poco mas facil), pero tambien es verdad que hay que saber como se hacen las cosas de manera un poco mas facil. Por ejemplo, lo mismo que tu has querido hacer es mucho mas sencillo sin necesidad de usar ningun tipo de optimizacion:

Viva la funcion: memcpy

---  c:\pic30-build\build_20061107\src\standardc\sxl\memcpy.c  -----------------------------------
 00280  780180     mov.w 0x0000,0x0006
 00282  E00002     cp0.w 0x0004
 00284  320003     bra z, 0x00028c
 00288  E90102     dec.w 0x0004,0x0004
 0028A  3AFFFD     bra nz, 0x000286
 00286  7859B1     mov.b [0x0002++],[0x0006++]
 0028C  060000     return

Esta en la libreria del C30, tampoco usa demasiados ciclos (esta claro que mas que el asm), pero no esta del todo mal, y no tienes que seguir tanto hilo de programa, que cuando tienes 60k de codigo, pues en asm es MUYYYYY tedioso...

Un saludo,

Desconectado togarha

  • PIC12
  • **
  • Mensajes: 87
Re: Compiladores de C / Optimización del código
« Respuesta #16 en: 13 de Febrero de 2007, 04:00:03 »
Por cierto, el mismo codigo que has puesto tu, con optimizacion:

17:                for( i = 0; i < 5; i++) a = b;
 00318  EB4100     clr.b 0x0004
 0031A  FB8002     ze.b 0x0004,0x0000
 0031C  D00000     sl.w 0x0000,0x0000
 0031E  5780EA     sub.w 0x001e,#10,0x0002
 00320  788260     mov.w [0x0000+0x0002],0x0008
 00322  5001F4     sub.w 0x0000,#20,0x0006
 00324  7FB184     mov.w 0x0008,[0x0006+0x001e]
 00326  E84102     inc.b 0x0004,0x0004
 00328  514FE4     sub.b 0x0004,#4,[0x001e]
 0032A  36FFF7     bra leu, 0x00031a

Que sigue sin estar optimizado, pero es menos de la mitad que el anterior...

Siempre que se quiera usar velocidad hay que usar asm, pero un programa no tiene porque necesitar velocidad en todas las funciones. Cuando se quiera hacer cosas criticas es mejor morir a asm siempre, pero cuando la velocidad no sea importante, es mucho mas comodo el C...

Un saludo,

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
Re: Compiladores de C / Optimización del código
« Respuesta #17 en: 13 de Febrero de 2007, 05:53:02 »
Tienes razon mientras funcione .  :lol:

Por cierto como haces para que optimice .

Desconectado togarha

  • PIC12
  • **
  • Mensajes: 87
Re: Compiladores de C / Optimización del código
« Respuesta #18 en: 13 de Febrero de 2007, 06:33:36 »
Buenas,

En las opciones de compilacion del proyecto, en la parte del C30 hay una lista desplegable en que la ultima opcion es optimizacion (es la version comercial, no se si en la version de estudiante tambien existe...)

Un saludo,

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Compiladores de C / Optimización del código
« Respuesta #19 en: 14 de Mayo de 2010, 21:47:05 »
Ja! Estaba buscando sobre optimización de C30 y encontré estos comentarios. Porque es tan horrible el código generado por C30?  :8} No entiendo porque para borrar una variable carga 0 en W0 y luego lo transfiere  :shock: Modifico la configuración de la optimización del proyecto y deja de funcionar  :shock:

No hay nada como el assembler!  :D :D :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Compiladores de C / Optimización del código
« Respuesta #20 en: 17 de Mayo de 2010, 18:22:15 »
ajá entonces el C30 también tiene bugs...

CCS ya puede dormir tranquilo :D
.


 

anything