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.
¿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 ?.
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.
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.