TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: naho en 05 de Febrero de 2007, 16:23:59

Título: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 16:23:59
Hola a todos.

Un par de preguntita para los que programáis en C.

¿Qué programa usáis para hacer vuestros programas? Valga la redundancia.  :mrgreen:
¿Sobre que programa desarrolláis?
¿Hay alguna versión free de dicho programa?


Muchas gracias.
Título: Re: para los que programáis en C
Publicado por: PalitroqueZ en 05 de Febrero de 2007, 16:26:24
Hola naho. Yo empecé (y es la que uso actualmente) con el PIC C Compiler de CCS, es pago.
hay una versión gratuita llamada sdcc que se puede bajar de http://sdcc.sourceforge.net/index.php, esta no la conozco, recien la estoy bajando y la probaré a ver que tal es.

Salu2
Pedro
Título: Re: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 16:51:07
 :-/ Voy a echarle un vistazo a ver que tal.

Muchas gracias.
Título: Re: para los que programáis en C
Publicado por: maunix en 05 de Febrero de 2007, 16:51:49
Uso el C18 para los PIC18 únicamente.

Uso una versión comercial.

También tiene una versión estudiante que es FREE y no tiene limitaciones en la cantidad de líneas a compilar, simplemente no activa todas las optimizaciones una vez pasado el período de prueba.  Esta se baja de la página de Microchip.


Saludos
Título: Re: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 18:32:22



Estoy empezando y creo que con el PIC16F84 tengo más que suficiente :D

Muchas gracias.
Título: Re: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 19:11:27

Hola de nuevo.

He encontrado una versión demo del CSS C (http://www.ccsinfo.com/content.php?page=compdemo) pero me resulta muy complicado empezar con él. Cuando he ido a crear un nuevo proyecto me salen miles de opciones.

¿Alguien sabe donde hay una manual de CCS C?

Muchas gracias.
Título: Re: para los que programáis en C
Publicado por: maunix en 05 de Febrero de 2007, 19:14:54

Hola de nuevo.

He encontrado una versión demo del CSS C (http://www.ccsinfo.com/content.php?page=compdemo) pero me resulta muy complicado empezar con él. Cuando he ido a crear un nuevo proyecto me salen miles de opciones.

¿Alguien sabe donde hay una manual de CCS C?

Muchas gracias.

http://www.todopic.com.ar/foros/index.php?topic=14634.0
Título: Re: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 19:17:51
 :-/¡Que velocidad! :-/

Muchas gracias.

Pero lo que busco es un manual de como usar el CCS C
Título: Re: para los que programáis en C
Publicado por: jfmateos2 en 05 de Febrero de 2007, 19:18:45
Aquí (http://www.eupmt.es/cra/inform/Manual_Compilador_C_Para_PICs.pdf) tienes otro.

Suerte.
Título: Re: para los que programáis en C
Publicado por: naho en 05 de Febrero de 2007, 19:35:09
 :-) :-) :-)
Título: Re: para los que programáis en C
Publicado por: manwenwe en 07 de Febrero de 2007, 11:28:21
Uso el C18 para los PIC18 únicamente.

Uso una versión comercial.

También tiene una versión estudiante que es FREE y no tiene limitaciones en la cantidad de líneas a compilar, simplemente no activa todas las optimizaciones una vez pasado el período de prueba.  Esta se baja de la página de Microchip.


Saludos


Yo tengo la versión de estudiantes pues no me da para comprar la comercial :(. ¿Alguien puede decirme más o menos que diferencia existe a la hora de generar código?. Me refiero al tamaño del mismo... a que porcentaje de código se ahorra(de forma aproximada) con todas las optimizaciones¿?.

Saludos!
Título: Re: para los que programáis en C
Publicado por: vszener en 07 de Febrero de 2007, 11:51:05
Para programas medios o poco complejos, la optimización no tiene que preocuparte con el C18, ya para programas de más envergadura sí es un factor a tener en cuenta.


Suerte!!! ;)
Título: Re: para los que programáis en C
Publicado por: manwenwe en 07 de Febrero de 2007, 12:16:41
Citar
Para programas medios o poco complejos, la optimización no tiene que preocuparte con el C18, ya para programas de más envergadura sí es un factor a tener en cuenta.

Gracias vszener... pues mi caso es que estoy utilizando un PIC con 32kb de flash y me queda apenas un 5% y creo que no me llegará pero tambien creo que que no necesitaría más de un 10% extra de esos 32kb y realmente me parece una látima tener que migrar a un PIC de 48kb para dejarlo al 70%...

Probaré a llevarme el código a mi universidad a ver si tienen la versión de pago y consigo reducir algo el código....
Título: Re: para los que programáis en C
Publicado por: maunix en 07 de Febrero de 2007, 12:21:37
Yo tengo la versión de estudiantes pues no me da para comprar la comercial :(. ¿Alguien puede decirme más o menos que diferencia existe a la hora de generar código?. Me refiero al tamaño del mismo... a que porcentaje de código se ahorra(de forma aproximada) con todas las optimizaciones¿?.


Lamentablemente no te puedo responder semejante pregunta de una forma concisa.  Te puedo decir sí, que "depende" de tu código.

Porque? Porque si usas muchas constantes o strings similares el compilador las unirá.  Si tienes una cierta metodología para programar, el compilador buscará hacer 'funciones' de esos códigos que son redundantes y siempre iguales.

Puedes ahorrar 10%, 20%, 50%, todo depende te repito de cómo sea tu código.

De todas formas, es impresionante lo que se gana con las optimizaciones.

Saludos
Título: Re: para los que programáis en C
Publicado por: vszener en 07 de Febrero de 2007, 13:32:06
En tú caso es un programa complejo, dónde la optimización debe ser necesaria, tanto a nivel del compilador como a nivel del programador, revisarlo más de una vez para intentar hacerlo más optimizable.


Suerte!!! ;)
Título: Re: para los que programáis en C
Publicado por: manwenwe en 07 de Febrero de 2007, 13:47:55
En tú caso es un programa complejo, dónde la optimización debe ser necesaria, tanto a nivel del compilador como a nivel del programador, revisarlo más de una vez para intentar hacerlo más optimizable.


Suerte!!! ;)

Estaba utilizando la versión 3.02 para estudiantes... y acabo de probar a compilar en la 2.20 comercial, las dos en modo tradicional(no extendido)...

Resultado: 3.5% más de código. ¿Esto quiere decir que mi código está tan mal estructurado que ni siquiera con optimizaciones se consigue nada? o que ¿la versión 3.02 no comercial es mejor que la 2.20 comercial?.

Me temo que lo primero :( :( :(
Título: Re: para los que programáis en C
Publicado por: maunix en 07 de Febrero de 2007, 14:56:14
Estaba utilizando la versión 3.02 para estudiantes... y acabo de probar a compilar en la 2.20 comercial, las dos en modo tradicional(no extendido)...

Resultado: 3.5% más de código. ¿Esto quiere decir que mi código está tan mal estructurado que ni siquiera con optimizaciones se consigue nada? o que ¿la versión 3.02 no comercial es mejor que la 2.20 comercial?.

Me temo que lo primero :( :( :(

Creo que una comparación justa sería 3.02 comercial y 3.02 estudiante.

La versión 2.2 debe tener no menos de 3 años de antigüedad (no sabría decirte con exactitud).

Es muy muy difícil que te demos un vaticinio de qué es lo que falla en tu código para que no lo optimice tanto, de hecho hacer código "óptimo" para el compilador no es una tarea trivial.  Hay muchas cosas a tener en cuenta como el #pragma varlocate, como la definición y utilización del linker file, etc.  Estas cosas se pueden ver sobre los fierros o mejor dicho sobre el código fuente, con una clara explicación de qué es lo que quieres hacer con él.

Es una tarea ardua.  Puede que un código lo hagas en 1 semana para codificarlo y te lleve otra semana optimizarlo o incluso más.  Puede que incluso hasta tengas que recodificar mucho de tu código para que sea compilado en menor espacio.

Me llevó unos días aprender a usar el C18 y me llevó meses aprender los trucos para hacer el programa más óptimo.  En esto del aprendizaje aconsejo el conocer muy bien la arquitectura del pic que usarás, conocer de assembler también es muy importante, conocer mucho de las optimizaciones del compilador y visitar seguido el foro de Microchip donde se comentan cosas de muy bajo nivel que son realmente muy útiles compartir con otros.

Saludos
 

Título: Re: para los que programáis en C
Publicado por: manwenwe en 07 de Febrero de 2007, 15:15:19
Código: [Seleccionar]
Es una tarea ardua.  Puede que un código lo hagas en 1 semana para codificarlo y te lleve otra semana optimizarlo o incluso más.  Puede que incluso hasta tengas que recodificar mucho de tu código para que sea compilado en menor espacio.

Estoy dejando la optimización para el final pues como cada 2x3 me toca modificar cosas, creo que no merece la pena optimizarlo desde ya. De todos modos ya le estoy dando caña a la documentación de C18 para ver como funciona por dentro el compilador. Desde luego tengo claro que me llevará bastantes dias ir agrupando variables(para evitar el "banking"), pasar las cadenas de strings a ctes, mirar que funciones pueden ser estáticas,etc.

Saludos!
Título: Re: para los que programáis en C
Publicado por: maunix en 07 de Febrero de 2007, 15:20:47
Código: [Seleccionar]
Es una tarea ardua.  Puede que un código lo hagas en 1 semana para codificarlo y te lleve otra semana optimizarlo o incluso más.  Puede que incluso hasta tengas que recodificar mucho de tu código para que sea compilado en menor espacio.

Estoy dejando la optimización para el final pues como cada 2x3 me toca modificar cosas, creo que no merece la pena optimizarlo desde ya. De todos modos ya le estoy dando caña a la documentación de C18 para ver como funciona por dentro el compilador. Desde luego tengo claro que me llevará bastantes dias ir agrupando variables(para evitar el "banking"), pasar las cadenas de strings a ctes, mirar que funciones pueden ser estáticas,etc.

Saludos!

Sí , hay técnicas que responden a mejoras en la velocidad y otras a disminiuir el tamaño del código.  No siempre convergen.  A veces un código veloz no es precisamente el más breve.

Cada uno va elaborando su propio método que se adaptará al estilo propio de programar que tiene cada persona.

Saludos


Título: consulta sobre sdcc
Publicado por: el-zurdo en 22 de Febrero de 2007, 13:19:18
Hola naho. Yo empecé (y es la que uso actualmente) con el PIC C Compiler de CCS, es pago.
hay una versión gratuita llamada sdcc que se puede bajar de http://sdcc.sourceforge.net/index.php, esta no la conozco, recien la estoy bajando y la probaré a ver que tal es.

Salu2
Pedro


buenas..queria saber si la version gratuita sdcc del compilador CCS se puede utilizar para el PIC 16F873, ya que me he descargado otra version gratis que no me sirve. Muchas gracias
Título: consulta sobre sdcc
Publicado por: el-zurdo en 23 de Febrero de 2007, 15:44:22
hola..queria saber si alguien se bajo la version del sdcc y la utilizó.
Yo la descargue y veo que en la libreria esta el PIC que necesito (16F873),
pero no se bien como utilizar el programa..en el unico archivo ejecutable que
abro aparece una ventana de DOS.Hasta ahora solo he programado muy poco
en assembler utilizando el MPLab y necesito insertar unas lineas en C.
Les agradezco cualquier informacion..muchas gracias.Saludos

                 Luis
Título: Re: consulta sobre sdcc
Publicado por: maunix en 24 de Febrero de 2007, 10:38:58
el-zurdo, te puedo ayudar con unos links

El Manual
SDCC Manual (http://sdcc.sourceforge.net/doc/sdccman.html/)

La lista de correo, aquí está Scott Dattalo , creador del gpsim, gpasm y del puerto del SDCC para pics.
Lista de Correo de GNUPIC (http://www.gnupic.org/)

Saludos
Título: Re: para los que programáis en C
Publicado por: el-zurdo en 26 de Febrero de 2007, 13:23:13
Hola naho. Yo empecé (y es la que uso actualmente) con el PIC C Compiler de CCS, es pago.
hay una versión gratuita llamada sdcc que se puede bajar de http://sdcc.sourceforge.net/index.php, esta no la conozco, recien la estoy bajando y la probaré a ver que tal es.

Salu2
Pedro
------------------------------------------------------------------------------------------------------------
gracias palitroquez..no se por que no puedo enviarte un msj privado, ahi va mi respuesta:

buenas..gracias por la respuesta, encontraste algun plugin?
Por lo q vi tenes razon..solo puedo abrir 2 ventanas en MSDOS..
ejecutando el archivo sdcpp o el makebin dentro de la carpeta bin.
Lo unico que quiero hacer es obtener un archivo en assembler de un pequeño programa q tengo en c, por que el programa principal lo tengo en assembler.
Al parecer segun el manual debo usar la siguiente linea de comando:

For single source file 8051 projects the process is very simple. Compile your programs with the following command "sdcc sourcefile.c". This will compile, assemble and link your source file. Output files are as follows:
sourcefile.asm - Assembler source file created by the compiler.

Muchas gracias..saludos
Título: Re: para los que programáis en C
Publicado por: PalitroqueZ en 26 de Febrero de 2007, 13:30:01
te cuento el-zurdo que estuve viendo el sdcc (todavía lo tengo instalado en mi PC) y se me ocurrió ejecutar sdcc -help uff! montones de argumentos que tiene para escoger, con razón si trabaja para otros micros. estuve leyendo la parte de los pic, pero no entendí bien  :(, de acuerdo a la sentencia añadida él te generará el archivo correspondiente (asm, o, hex, etc.).

lo que hay que buscarse es si hay algún plugins que lo enlace al MPLAB, para que haga todo eso automático. así como hacen otros compiladores.

Salu2
Pedro
Título: Re: para los que programáis en C
Publicado por: PalitroqueZ en 26 de Febrero de 2007, 14:15:29
yo no se si es correcto seguir hablando del SDCC en este hilo, pero acabo de ver una página

http://particle.teco.edu/software/sdcc/sdccmigration.html

donde hablan de como migrar un código escrito en CCS a SDCC que verdadera perla esta ¿verdad?  :D

voy a seguir investigando...

Salu2
Pedro