# Compilador para PIC libre



## agustinzzz (Jul 24, 2009)

Desde hace un tiempo me inclino por el *software libre* y quisiera saber si alguien me puede orientar sobre algún compilador C/C++ para PIC que sea libre.

Estoy por desarrollar algunos proyectos en PIC 16/18 y el MPLAB el único "gratis" que permite es el CC5X pero éste no me permite programar en los PIC18.

También me interesaría saber cual es el compilador que están usando para sus proyectos actualmente.

Gracias. Saludos.[/b]


----------



## ELIUSM (Jul 24, 2009)

Hola!

Mmm, con libre te refieres a que o hay que comprarlo, o que el código sea libre?

Porque si es solo de lo primero, entonces volvería con el MPLab...... hace de todo, compila y graba. Yo uso MPLab solamente.

No te entendí bien por qué no te gusta... podrías explicar eso de que lo unico que tiene libre es lo del CC5X?

Ahora, puede ser que yo esté equivocado ya que hasta ahora lo unico que programo es assembler...

Saludos!


----------



## Moyano Jonathan (Jul 24, 2009)

GCC es un compilador libre y acepta algunos PIC18


----------



## electrodan (Jul 24, 2009)

El software libre NO tiene que ver con el precio. Tiene que ver con las libertades que el usuario posee. Creo que lo que creo que estás buscando es un programa gratis, y de esos estoy seguro de que hay bastantes.


----------



## ELIUSM (Jul 24, 2009)

Pero... el MPLab, ... no es gratis?


----------



## electrodan (Jul 24, 2009)

Que sea gratis no significa (ni mucho menos) que sea libre.


----------



## agustinzzz (Jul 24, 2009)

*ELIUSM:* con libre me refiero a software libre, como dice electrodan, libre no es lo mismo que gratis. Si bien el software libre es gratis no es lo mismo.

*electrodan:* estoy buscando algún compilador que se popular entre los usuarios de PIC (o al menos entre los foristas de aquí). Porque si bien hay muchos compiladores de C/C++ las instrucciones suelen cambiar bastante, quizás no cambien las sentencias * for, if, while *, pero si otras funciones.


----------



## Moyano Jonathan (Jul 24, 2009)

En caso de que uses Linux PIC C de CCS tiene un compilador por linea de comandos (Sin IDE) , para los micros de la línea baja media y 18F.

Eso si funciona bajo soft libre , el compilador en si no lo es.. sale algo de 80 dolares la licencia para linux.


----------



## electrodan (Jul 24, 2009)

Moyano Jonathan dijo:
			
		

> En caso de que uses Linux PIC C de CCS tiene un compilador por linea de comandos (Sin IDE) , para los micros de la línea baja media y 18F.
> 
> Eso si funciona bajo soft libre , el compilador en si no lo es.. sale algo de 80 dolares la licencia para linux.


Entonces estamos en la misma.


----------



## ELIUSM (Jul 25, 2009)

Volvimos a lo mismo.

Más encima, todavía no entiendo, por qué MPLab no es libre. Será que no es libre porque su código no es abierto?
Porque por lo demás, yo diría que es libre: no hay licencias que pagar, y cualquiera puede bajarlo....... entonces qué?

Y la verdad, es que les recomiendo usar MPLab... cuando empecé a usarlo, para mi desaparecieron todos esos programitas challa para programar PIC. Se puede programar en C y en Assembler, simular, grabar, compilar..............

Si creen que estoy hablando puras leseras, entonces no me tomen en cuenta y sigan con el tema.

Todo en buena!
Saludos!


----------



## Chico3001 (Jul 25, 2009)

Efectivamente ... MPlab no es libre por que su codigo es cerrado y solo el personal de Microchip puede hacerle modificaciones

En cambio en un software libre el codigo siempre se publica y cualquiera puede modificarlo a su gusto para adaptarlo a sus necesidades especificas

Ojo, como ya dijeron arriba software libre no es igual a software gratis.... es decir... *se puede cobrar por distribuir el software libre*, sin embargo en la practica casi nunca se hace de este modo, casi siempre los costos (si existieran) son por donaciones, o soporte tecnico de algun tipo


----------



## ELIUSM (Jul 25, 2009)

Muy bien, entendido!

Además de eso, quedé hablando puras bobadas, ya que ayer, experimentando, me enteré que el compilador C para MPLab no viene, y hay que pagar.

EDICIóN: MENTIRA. Acabo de instalar el Plugin CCS para MPLab. Que no sepa usarlo es otra cosa.

Empecé a usar un compilador C con crack, pero imagino que es ilícito publicarlo, aunque lo bajé de aqui mismo. Quisiera programar C en MPLab.

Para volver al tema inicial, alguien conoce un compilador libre para nuestro amigo que inició el tema?

Saludos!


----------



## electrodan (Jul 25, 2009)

La Definición de Software Libre


----------



## eidtech (Jul 25, 2009)

Libre significa que puedes hacer lo que quieras con el, modificarlo, regalarlo, VENDERLO, etc etc..

Lo unico que NO puedes hacer, es quitarle a otros usuarios la libertad de que hagan lo que quieran.

Es decir, puedes agarrar una distribución de GNU/Linux, la modificas, adaptas y la VENDES al precio que quieras, el usuario que la compre puede hacer lo que quiera con ella, modificarla, venderla, regalarla.

Esto es muy especifico para licencias GNU, puede haber otras licencias con algunas modificaciones, pero he recurrido al tipo GNU por que es de las mas distribuidas.


----------



## Ardogan (Jul 26, 2009)

La semana pasada estaba viendo justamente ese tema, para hacer una aplicación comercial con todo en regla; y si hay compiladores C para pic's libres.

Ví el small device C compiler (SDCC) (http://sdcc.sourceforge.net) que soporta algunos pic18 y pic16, y micros de otros fabricantes también.
Pero después el resto de los compiladores es licencia para esto, licencia para aquello, licencia por el compilador, para la actualización, más de 1 máquina?, etc, etc.
Hay versiones que arrancan desde U$S 150 (aprox, versiones de línea de comandos para pic's 18) y van hasta los U$S 1000 (un compilador C para pic24 por ejemplo).

Al ver que el tema de compiladores para pic está tan cerrado, empiezo a ver con más cariño los AVR que según lo que ví usan el avr gcc que es libre para todo el mundo.
Lástima que no he visto muchos comerciantes acá en Argentina que los ofrezcan. 

Así que la ventaja de uno es el punto flojo del otro, todo no se puede ¿no?.

Saludos


----------



## tortugatortuga (Ago 14, 2009)

Hola a todos. Alguien conoce un IDE para el compilador SDCC para Windows. Tipo lo que es Piklab en Linux. Aunque Piklab trae una versión para windows esta solo es a través de la línea de comandos. Alguien a probado eclipse con el plugin para pics?.

Un saludo


----------



## agustinzzz (Ago 14, 2009)

tortugatorrtuga, la verdad que estuve buscando por la web y lo mejor que puedes hacer es "conseguirte" el CCS para MPLAB (como hice yo) ya que hay mucha bibliografía y ejemplos del mismo.

Al parecer el mundo de los microcontroladores PIC aún no posee una alternativa gratis que sea eficiente o popular.

Saludos.


----------



## Ardogan (Ago 14, 2009)

Estuve viendo si había algún plugin de sdcc para mplab y surgió esto:

http://lne.byexamples.com/?p=21

Ese sería un plugin de sdcc para mplab. Desconozco si funciona o no.

También me topé con esta página del foro de microchip:

http://www.microchip.com/forums/tm.aspx?m=282269

donde se ve que hablan de un plugin para eclipse: http://eclipse-sdcc.sourceforge.net/ 

Si alguno experimenta con estos plugin's  y con el sdcc, comenten como les ha ido; es importante indagar sobre estas herramientas libres para tener una alternativa antes que pagar una licencia (o "conseguirlo").


----------



## tortugatortuga (Ago 15, 2009)

Ardogan gracias por molestarte en buscar esa información. En cuanto al plugin para MPLAB ya lo había probado y por lo menos la versión que yo me baje tenía bastantes errores por lo que la he descartado.

He encontrado este IDE que está en fase de desarrollo: http://mfpuentear.github.com/i4uc/ y la opción que mas me atrae es utilizar code::Blocks, es un IDE tanto para Windows como para Linux que soporta el compilador SDCC y es menos pesado que instalar eclipse. 

Un Saludo


----------



## Ardogan (Ago 15, 2009)

Epa!, que interesante... a ver....
Los screenshots están bonitos. Habrá que probarlo no? 

Traté de instalarlo en vista y me tiró un error. Después pruebo con Ubuntu. Ojalá soporte el ICD2 (programador de pics).


----------



## tortugatortuga (Ago 16, 2009)

Yo lo probe en XP y aunque no me dio error en la instalación encontre varios bug, habrá que esperar a que esté más desarrollado. Si tienes Ubuntu y el ICD2 la mejor opción es Piklab. Aquí tienes un tutorial paso a paso de como utilizar el ICD2 con el Piklab, espero qur te sirva.   

http://www.aquihayapuntes.com/progr...s-pic-en-c-con-ubuntu-utilizando-el-icd2.html


----------



## Ardogan (Ago 16, 2009)

Gracias tortugatortuga. Todavía estoy en etapa de transición, tengo que completar dos o tres proyectos con el mplab ide todavía, un par de ellos con USB en el cual uso los drivers de microchip (solo para windows, claro que después está libusb pero quería usar los programas de ejemplo que vienen con las librerías USB de microchip ). 
Probé con usar mplab ide + wine sobre ubuntu, pero no pude programar nada desde ahí, es lógico que el acceso a los puertos físicos traiga problemas, después de todo wine es un emulador.

El Piklab ya lo tengo instalado, cuando tenga que empezar algún proyecto de 0 voy a ver como se porta.

Aunque me parece que a la larga, según lo que vengo oyendo, convendría más pasarse a eclipse para programar cualquier cosa (pics, 8051, ARM, PC's, etc) usando plugins que andar con 3 o 4 aplicaciones distintas para hacer un proyecto típico de sistema embebido (programa micro + programa PC + documentación + seguimiento de cambios+...)
¿Ya usaste eclipse?, ¿que te pareció?.

Saludos


----------



## tortugatortuga (Ago 17, 2009)

Hola Ardogan. El eclipse lo probé hace tiempo, pero no para programar microcontroladores, lo utilice para hacer una aplicación de ordenador utilizando el compilador gcc. Y como te he dicho antes me pareció muy pesado en cuanto a recursos que consume y a espacio en disco. La razón de utilizar estos IDES de software libre para programar microcontroladores está centrado por mi parte en el uso del compilador SDCC que creo que es la única alternativa medio fiable para programar en C Pics con software libre. Estos IDES tan genéricos no te programar el microcontrolador directamente, simplemente te compilan el código y te generan el .hex, para que tú luego lo cargues al PIC con un programa de grabación aparte y para eso no me interesa algo tan pesado, he hecho pruebas con el Code::Bloks y me va bien. Y cómo último recurso siempre está utilizar el block de notas ó otro editor de texto y utilizar el SDCC por la línea de comandos. En fin si utilizas un compilador comercial todos estos problemas no los tienes, aunque claro está no es Software Libre. El SDCC me gusta por la cantidad de proyectos que se están haciendo con él, esos proyectos si te interesan los puedes continuar ó modificar a tus necesidades y nadie te llamará pirata por ello. El único programa de microcontroladores que me cuesta abandonar es Proteus. ¿Has probado ha instalarlo en Ubuntu por medio de wine?

Lo de los puertos físicos tienes razón, una cosa parecida pasa si utilizas un convertidor de USB-Serie para programar el PIC, los niveles de tensión no son suficientes y no funciona.

Saludos


----------



## Ardogan (Ago 18, 2009)

> Hola Ardogan. El eclipse lo probé hace tiempo, pero no para programar microcontroladores, lo utilice para hacer una aplicación de ordenador utilizando el compilador gcc. Y como te he dicho antes me pareció muy pesado en cuanto a recursos que consume y a espacio en disco.


Ajá, lo voy a tener en cuenta. La verdad que por ahora no tengo tiempo de andar probando cosas nuevas, así que te agradezco esta clase de comentarios, que ya los voy teniendo en cuenta para cuando logre hacerme un espacio para probar nuevos IDE's.
El eclipse escuché decir que es bueno cuando se desarrolla algo en equipo, para lograr una interacción integrada y coordinada entre los distintos programadores. ¿Vos probaste esas características?. 

Por ejemplo, ahora estoy por iniciar un proyecto nuevo con otros desarrolladores, somos 4 o más. Por ahí uno se encarga de la parte analógica (adquirir y procesar variables), otro de la interfaz con la PC, otro de meter un teclado y LCD, otro de manejar log's a una memoria externa... y la verdad no se muy bien si los IDE's para microcontroladores sean una buena opción; por ahí conviene algo más orientado a un equipo de desarrolladores que algo para un programador individual.
En fin, ni siquiera sé si el Eclipse puede servir para un proyecto con múltiples programadores, o si existe algo que esté orientado a eso.



> La razón de utilizar estos IDES de software libre para programar microcontroladores está centrado por mi parte en el uso del compilador SDCC que creo que es la única alternativa medio fiable para programar en C Pics con software libre


Si, los compiladores para PIC's no los veo con ganas de pasarse al mundo libre (jaja, suena como en la guerra fría). Hay una enorme cantidad de productos, pero en el mejor de los casos se puede conseguir alguna versión estudiantil o reducida.
Es interesante que con Atmel los compiladores son libres. Eso me hace empezar a verlos con más cariño.



> El único programa de microcontroladores que me cuesta abandonar es Proteus. ¿Has probado ha instalarlo en Ubuntu por medio de wine?


No, no creo que lo haga tampoco. Para depurar pics uso el ICD2 en vivo y en directo. Desconozco si habrá algún simulador de micros libre, que simule otros micros aparte del pic con esas características únicas de simular hardware y software.

Bueno, disculpen que desvié el tema de la conversión hacia IDE's de programación de micros. A lo mejor después hago un tema nuevo al respecto.

Saludos


----------



## tortugatortuga (Ago 19, 2009)

Hola Ardogan, con respecto a lo que me preguntas sobre los IDE´s a eso se le llama control de versiones. Hace un par de años trabaje junto a tres programadores más en una aplicación web con el Visual Studio.NET. Los códigos fuentes estaban alojados en un sevidor web al que accediamos desde nuestros respectivos lugares de trabajo. Cuando configuras el entorno para ello te permite que si un programador está trabajando en un archivo, otro lo edite y pueda sobreescribir su trabajo. En eclipse (Java) no se si tiene esa funcionalidad, trabaje poco con él, puede que si. En cuanto a los compiladores libres para Atmel, yo solo conozco el IDE WinAVR que utiliza el compilador GCC, (Quitando Arduino, claro) ¿Conoces tu alguno más?.

Depuradores libres para PICs, hay varios por ejemplo el más popular gpsim, pero ni punto de comparación a lo que se puede hacer con Proteus. Yo también tengo el ICD2 y es muy bueno tanto como programador como depurador, pero es muy comodo simular por software primero antes de pasar a la proto   no te parece...

Un saludo


----------



## Ardogan (Ago 21, 2009)

tortugatortuga dijo:
			
		

> Hola Ardogan, con respecto a lo que me preguntas sobre los IDE´s a eso se le llama control de versiones. Hace un par de años trabaje junto a tres programadores más en una aplicación web con el Visual Studio.NET. Los códigos fuentes estaban alojados en un sevidor web al que accediamos desde nuestros respectivos lugares de trabajo. Cuando configuras el entorno para ello te permite que si un programador está trabajando en un archivo, otro lo edite y pueda sobreescribir su trabajo. En eclipse (Java) no se si tiene esa funcionalidad, trabaje poco con él, puede que si. En cuanto a los compiladores libres para Atmel, yo solo conozco el IDE WinAVR que utiliza el compilador GCC, (Quitando Arduino, claro) ¿Conoces tu alguno más?.


No   



			
				tortugatortuga dijo:
			
		

> Depuradores libres para PICs, hay varios por ejemplo el más popular gpsim, pero ni punto de comparación a lo que se puede hacer con Proteus. Yo también tengo el ICD2 y es muy bueno tanto como programador como depurador, pero es muy comodo simular por software primero antes de pasar a la proto   no te parece...


Y si... la verdad hablé sin pensar mucho, jajaja. 
Al gpsim aparentemente lo usan con gputils, una especie de IDE para PIC's con ensamblador (desconozco si acepta un plugin de sdcc).
Hay varios simuladores para pic's en sourceforge.net , pero solo para un modelo específico (pic16f84).

Hace un ratito nomás vi que Meta (grande Meta ! ! ! !    ) posteó sobre un gcc para pic16:
http://pic-linux.foroactivo.net/pic-gcc-f22/lanzada-primera-version-de-pic-gcc-library-t80.htm

Muy interesante la charla don tortugatortuga. El sofware libre para desarrollo realmente nos hace libres de aprender, experimentar y probar cosas nuevas. 
Es bueno ver que hay un montón de gente a la que le interesa poner al alcance de todos, sin distinción de posición económica, herramientas para que todos puedan trabajar dependiendo mucho más su creatividad, capacidad y esfuerzo; que de cuanto dinero tienen en su bolsillo para acceder a herramientas.
¿ Se imaginan si al día de hoy estuviéramos pagando propiedad intelectual al que inventó un martillo, un serrucho, un clavo... ? Probablemente estaríamos todavía en la era de piedra.
Creo que solo el libre acceso al conocimiento y a las herramientas de trabajo nos puede asegurar un buen porvenir.

No digo que la gente no cobre por su producción intelectual, pero cuando veo casos de abuso corporativo de la propiedad intelectual (Microsoft cuando registró "hacer click con el mouse", los delirios de Disney, laboratorios farmacéuticos que dejan de fabricar medicamentos que funcionan porque venció la patente y ponen en su lugar uno que hace exactamente lo mismo con cambios mínimos para seguir cobrando precios altísimos, Monsanto con las semillas, etc, etc) no puedo dejar de pensar que estan atentando directamente contra el desarrollo y bienestar humano.

En fin, ojalá que el concepto "libre" se aplique no solo al soft, sino que de a poco podamos ir metiéndolo en otros aspectos de nuestra vida, educación libre, salud libre, servicios básicos libres, internet libre ! ! !   

Después de todo, soñar es libre ¿no?


----------



## electrodan (Ago 21, 2009)

Libre no es sinónimo de gratis. El trabajo de los demás hay que pagarlo. Hay gente trabajando del otro lado.


----------

