Autor Tema: XC32 vs MikroC PRO PIC32  (Leído 3404 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
XC32 vs MikroC PRO PIC32
« en: 23 de Diciembre de 2015, 12:43:37 »
.

¿ Alguien está usando MikroC PRO para PIC32 ?.

Hasta ahora me he arreglado con C32 versión Full gratuita, pero ya necesito trabajar con algunos PIC32 que no están soportados por C32, así que o me paso a XC32 PRO o me busco otro compilador profesional.

XC32 en su versión free, tiene desabilitada la optimización, eso para juguetear en casa puede ser aceptable, pero no para uso profesional, porque un objeto no optimizado puede ocupar más del doble de flash.

El problema de XC32 PRO es el precio, una soberana barbaridad, 924 Euros +IVA para la versión Workstation PRO y 1343 Euros +IVA para el XC32++. Aparte, ni idea de si vale la pena XC32++ sobre XC32.

Por contra, MikroC PRO para PIC32 está en 299 dólares, y ahora mismo, aunque han tardado un huevo, ya soportan los PIC32MZ. El problema de pasarme a MikroC es la compatibilidad que pueda haber entre código fuente desarrollado para C32 o XC32, sobre todo librerías que uso en buena parte de mis programas, por ejemplo las que gestionan tarjetas Micro SD con FAT32, el Bootloader y otras.

¿ Alguien conoce el grado de compatibilidad entre C32-XC32 y MikroC PRO?. Si cambiando cuatro cosas de los fuentes, compila, me podría servir MikroC y me ahorro un pastizal, de lo contrario me tendré que rascar el bolsillo y gastarme los 1000 euros que cuesta XC32 PRO.

Es indignante, cuando te pillas los ARM STM32 de ST, y todo el entorno de desarrollo, incluido el compilador de C, es gratuito. Otra opción sería abandonar los PIC32 y meterme de lleno con los STM32, pero tengo tanto hardware y software desarrollado con PIC32 que eso sería muy complicado. Ni siquiera tengo acabado el bootloader encriptado por los STM32, aunque me faltaba muy poco.

 
« Última modificación: 23 de Diciembre de 2015, 12:51:16 por planeta9999 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:XC32 vs MikroC PRO PIC32
« Respuesta #1 en: 23 de Diciembre de 2015, 13:52:22 »
No se que decirte...

- XC32++ lo que vas a renegar hasta que te acostumbres a C++ (si es que siempre estuviste en C) no creo que valga la pena. Vas a perder bastante tiempo, ya que la programacion realmente no es la misma, y ya no queda tan facil para el usuario saber que hace exactamente C con las clases etc. Es todo otro lenguaje de programacion.

- mickroC si es mucho mas barato, pero por mucho. Pero estas limitado a unos cuantos PIC32, es decir no vas a poder elegir libremente el PIC que mejor se adapte a tu proyecto, sino que vas a tener que elegir los que son soportados, que no veo demasiados, mas que nada una misma flia con distintos valores de flash y ram, debe haber 3/4 familias soportadas.

- XC32, es realmente carisimo. Ni para una empresa creo que valga la pena tanta cantidad de dinero. Donde recuperarlo a no ser que se vendna muchos equipos mensuales sea algo que valga la pena. La unica ventaja es que tiene soporte para todos los micros incluso los mas nuevos.

Todas tienen sus pros y sus contras. Elegir creo que va a depender unicamente de vos.

Respecto a lo de ST, si no cambias no lo vas a hacer nunca. Si seguis pensando en que "tengo tantos proyectos con PIC32" entonces nunca vas a dejar PIC32, por que encima ahora pensas pagar un compilador para estos, cuando te enfrentes nuevamente a la decision vas a volver a lo mismo, lo de tener proyectos/hardware y ahora tambien compilador para PIC32.

Podes tranquilamente seguir con los proyectos viejos la programacion con lo que tenes, es decir que tengan PIC32 y que matener los programas que tenias o usabas. Y cambiar ya directamente aunque cueste un poco mas adaptarse a los STM32. Ahora si queres seguir con PIC32 y te sentis comodos con ellos, segui con ellos.

Es mi punto de vista, estoy seguro que alguien tendra otro distinto.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:XC32 vs MikroC PRO PIC32
« Respuesta #2 en: 23 de Diciembre de 2015, 14:02:37 »
Yo opino igual que Killerjc, y es la trayectoria que he seguido:

con los pic y los compiladores C32 todo perfecto, eran muy buenos incluso en su versión gratuita, ahora con los xc32, la optimizacion cada vez es peor y peor, XC32++ no merece la pena para nada, lo único que vas a usar de esto para tus proyectos es la flexibilidad que te ofrece el C++, como por ejemplo declarar variables donde quieras del codigo, por ponerte un ejemplo

¿pagar por un compilador gcc mas de 1000 euros? ni de coña

tampoco compraria MikroC ni soy partidario de usar un compilador distinto al que te ofrece el fabricante del micro.

por lo tanto, para micros de 32 bit, te recomiendo que te cambies de empresa y te olvides de los pic32, hay mucho donde elegir, si tienes decidido ST, pues a ST.
pero yo no me gastaría ese dinero en un compilador, y quedarte con la version free para proyectos profesionales no te va a servir, ya que la optimizacion cada vez es peor.

si no me crees, coge un pic32 de 32K y prueba a meterle un bootloader por MSD, o coge el mas pequeño que hay que es de 16K y prueba a meter una función que haga una división con decimales veras como vuela la memoria.

por lo tanto, mi consejo, que te migres de empresa, siempre hablando de los 32 bits, si tienes decidido ST, pues ST, es lo que hice yo con micros de 32 bits, ya que no me quedo mas remedio (a parte de muchos bug de pic32 con los que me he topado).

un saludo


« Última modificación: 23 de Diciembre de 2015, 14:20:59 por juaperser1 »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:XC32 vs MikroC PRO PIC32
« Respuesta #3 en: 23 de Diciembre de 2015, 14:12:13 »
he editado mi mensaje anterior, no se que ha pasado que se me ha enviado a la mitad y con cosas pegadas de otro lado

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:XC32 vs MikroC PRO PIC32
« Respuesta #4 en: 23 de Diciembre de 2015, 16:27:06 »
- XC32++ lo que vas a renegar hasta que te acostumbres a C++ (si es que siempre estuviste en C) no creo que valga la pena. Vas a perder bastante tiempo, ya que la programacion realmente no es la misma, y ya no queda tan facil para el usuario saber que hace exactamente C con las clases etc. Es todo otro lenguaje de programacion.

Este prácticamente lo he descartado desde un principio, porque el C++, incluso para PC siempre me ha parecido extremadamente complejo, y más aún para un microcontrolador.

Citar
- mickroC si es mucho mas barato, pero por mucho. Pero estas limitado a unos cuantos PIC32, es decir no vas a poder elegir libremente el PIC que mejor se adapte a tu proyecto, sino que vas a tener que elegir los que son soportados, que no veo demasiados, mas que nada una misma flia con distintos valores de flash y ram, debe haber 3/4 familias soportadas.

No lo veo tan limitado, soporta unos 132 micros PIC32. Ahí están todos los que me intereran, no soportados por C32, como la serie 1 y 2 con PPS y 256K de flash y los PIC32MZ. Ahora mismo ando con un proyecto importante, en principio opté por el 150 de 128K que si soporta C32, pero ahora el cliente quiere añadir un puerto serie más, y no tengo más remedio que saltar a un TQFP64, probablemente un 150 o un 170 de 256K o 512K, y esos ya no están soportados por C32.

Citar
- XC32, es realmente carisimo. Ni para una empresa creo que valga la pena tanta cantidad de dinero. Donde recuperarlo a no ser que se vendna muchos equipos mensuales sea algo que valga la pena. La unica ventaja es que tiene soporte para todos los micros incluso los mas nuevos.

Si que es una pasta, pero no tardaría mucho en amortizarlo, aunque si tengo lo mismo con MikroC me ahorro un dinero.


Citar
Respecto a lo de ST, si no cambias no lo vas a hacer nunca. Si seguis pensando en que "tengo tantos proyectos con PIC32" entonces nunca vas a dejar PIC32, por que encima ahora pensas pagar un compilador para estos, cuando te enfrentes nuevamente a la decision vas a volver a lo mismo, lo de tener proyectos/hardware y ahora tambien compilador para PIC32.

Podes tranquilamente seguir con los proyectos viejos la programacion con lo que tenes, es decir que tengan PIC32 y que matener los programas que tenias o usabas. Y cambiar ya directamente aunque cueste un poco mas adaptarse a los STM32. Ahora si queres seguir con PIC32 y te sentis comodos con ellos, segui con ellos.

Nunca veo el momento, me pasa lo mismo con pasar de Eagle a Altium, las ventajas son incuestionables, pero empezar un nuevo proyecto con un producto que desconozco supone compaginar aprendizaje con desarrollo y eso ralentiza mucho el proyecto, pero algún día lo tendré que hacer.

No se, ya veré que hago, me tienta mucho pasarme a los STM32, pero antes de ponerme con el proyecto que estoy desarrollando ahora tendría que terminar el bootloader encriptado. Luego sería todo un camino de rosas, entorno y compilador gratuitos, placas de desarrollo a precio de ganga, el precio de los micros creo que es parecido a los PIC32, ahí no hay mucho que rascar.
« Última modificación: 23 de Diciembre de 2015, 17:50:12 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:XC32 vs MikroC PRO PIC32
« Respuesta #5 en: 23 de Diciembre de 2015, 16:37:45 »
con los pic y los compiladores C32 todo perfecto, eran muy buenos incluso en su versión gratuita, ahora con los xc32, la optimizacion cada vez es peor y peor

Si la optimización es tan pésima deja de interesarme, pero desconozco si hay tanta diferencia entre C32 y XC32. Por ejemplo mi bootloader con tarjetas micro SD, que ocupa bastante por las librerías SD cuando se activa la opción de grabación, necesita una muy buena optimización o se come la flash de mala manera.


Citar
¿pagar por un compilador gcc mas de 1000 euros? ni de coña

Es caro, pero bueno, si se amortiza. Lo que no se es si realmente el paso de C32 a XC32, usando como base ambos GCC, supone que el compilador soporta un juego de instrucciones más amplio a nivel de asembler, o en muchos casos simplemente añade automáticamente el correspondiente linker script que define las características de un micro concreto.

Usado GCC con los STM32, en ningún momento se define el micro concreto cuando se llama al compilador, solo se indica la familia ARM, nada más, supongo que el resto está definido a nivel de linker script, por eso supongo que con XC32 podría pasar lo mismo, en ese caso se podría usar otro IDE, como Emblocks/Codeblocks, con una llamada a C32, porque desde MplabX no te admite seleccionar ciertos PIC32 con C32.

Por ejemplo, ¿ el juego de instrucciones de un PIC32MX150F256H es distinto al de un PIC32MX150F128B ?, porque si ambos tienen el mismo juego de instrucciones, en teoría C32 podría compilar para el primero simplemente modificando el linker script, y como MplabX no lo soporta, podría usar Emblocks/Codeblocks como IDE, configurando la llamada a C32 con el linker script correspondiente. Es algo que ronda la cabeza desde hace tiempo, ¿ realmente C32 no puede compilar para los nuevos micros, o la limitacion la impone el IDE y el sistema automatizado de linker script de MplabX ?.

Citar
tampoco compraria MikroC ni soy partidario de usar un compilador distinto al que te ofrece el fabricante del micro.

No he usado nunca MikroC, no puede opinar sobre ese compilador.


Citar
por lo tanto, para micros de 32 bit, te recomiendo que te cambies de empresa y te olvides de los pic32, hay mucho donde elegir, si tienes decidido ST, pues a ST. pero yo no me gastaría ese dinero en un compilador, y quedarte con la version free para proyectos profesionales no te va a servir, ya que la optimizacion cada vez es peor.

si no me crees, coge un pic32 de 32K y prueba a meterle un bootloader por MSD, o coge el mas pequeño que hay que es de 16K y prueba a meter una función que haga una división con decimales veras como vuela la memoria.

por lo tanto, mi consejo, que te migres de empresa, siempre hablando de los 32 bits, si tienes decidido ST, pues ST, es lo que hice yo con micros de 32 bits, ya que no me quedo mas remedio (a parte de muchos bug de pic32 con los que me he topado).

Sería lo ideal, pero ahora mismo estoy metido de lleno en un proyecto importante, y hacerlo con los STM32 me retrasaría mucho, tendría que aprender y desarrollar al mismo tiempo, es complicado. Ya veré lo que hago, si consigo terminar el bootloader encriptado, si que me plantearía resideñar el proyecto con los STM32.
« Última modificación: 23 de Diciembre de 2015, 17:50:41 por planeta9999 »

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2980
Re:XC32 vs MikroC PRO PIC32
« Respuesta #6 en: 23 de Diciembre de 2015, 16:48:19 »
Citar
Si la optimización es tan pésima deja de interesarme, pero desconozco si hay tanta difetencia entre C32 y XC32. Por ejemplo mi bootloader con tarjetas micro SD, que ocupa bastante por las librerías SD cuando se activa la opción de grabación, necesita una muy buena optimización o se come la flash de mala manera.

La optimización es cada vez peor en las versiones gratuitas, no es como antes de que saliera MPLABX y los nuevos compiladores, que con la versión gratuita practicamente podias hacer todo. supongo que lo hacen a posta para que lo compres.

ahora si lo vas a amortizar no cabe discusión, compratelo, tienes que barajar que si tienes mucha practica con PIC32 y migrar te va a costar tiempo (que se traduce a dinero) pues entonces compratelo, te va a salir rentable.

ahora 300 euros frente a 1000, es para pensarselo, si crees que con mikroC te puede servir... son 300 euros que puedes perder. No es una inversión demasiado grande y quizá te llevas una grata sorpresa, muchas veces compensa correr el riesgo.

un saludo

Desconectado EdoNork

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 616
    • ElektroQuark
Re:XC32 vs MikroC PRO PIC32
« Respuesta #7 en: 23 de Diciembre de 2015, 17:25:41 »
XC32 está basado en GCC y puede compilarse desde cero, con lo que te sale gratis. Busca un poco.
Mi blog sobre electrónica y cosillas afines: www.elektroquark.com
EQVideo en Youtube
El foro de KiCad en castellano.
Mi librería para KiCad ¡AQUÍ!

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:XC32 vs MikroC PRO PIC32
« Respuesta #8 en: 23 de Diciembre de 2015, 18:12:16 »
XC32 está basado en GCC y puede compilarse desde cero, con lo que te sale gratis. Busca un poco.


Lo intentaré, los fuentes están en la propia web de Microchip.
http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.40-src.zip

Y he encontrado varios sitios en los que dan instrucciones para compilarlo y obtener una versión limpia sin limitaciones, y totalmente legal.
http://www.jubatian.com/articles/turning-on-optimizations-in-microchips-xc32/
http://www.microchip.com/forums/m661830.aspx
http://www.microchip.com/forums/m897811.aspx

Lo que me extraña, es que nadie se haya molestado en hacerlo, y publicar el compilador ya listo para usar, aunque sea por P2P. Que uno se tenga que pegar el curro de trabajar con los fuentes, con toda esa ristra de instrucciones para sacar el compilador ya compilado y limpio, listo para usar.


 

anything