Autor Tema: Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL  (Leído 12663 veces)

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

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp



Como seguramente muchos sabreis, los compiladores XC de Microchip están basados en GCC, un compilador libre y gratuito con licencia GPL. Sea como sea, Microchip parte de GCC, le mete sus apaños y lo comercializa, además a precios abusivos, por ejemplo la versión PRO Workstation para PIC32 cuesta unos 1200 euros, de vergüenza.

Lo bueno de la licencia GPL, es que si coges esos fuentes y los modificas, tienes la obligación de facilitar los fuentes modificados, y eso Microchip lo cumple por supuesto. TODOS los fuentes de los compiladores XC (XC8, XC16 y XC32), se pueden descargar de la web de Microchip, y ahí, editando el fuente correspondiente podemos ver como limitan la optimización en función del tipo de licencia, FREE, STANDARD o PRO.

Ante todo, dejar claro que TODO lo que voy a contar es LEGAL, partimos de un compilador gratuito como es GCC, aunque modificado por Microchip, y simplemente vamos a deshacer lo que Microchip ha hecho, y todo ello a partir de los fuentes que la propia Microchip proporciona. El paquete GCC se compone de varios productos, que hay que compilar por separado (gmp, ppl, cloog, libelf, zlib, binutils y GCC ) para finalmente enlazarlos todos creando el ejecutable GCC, y ahi, SI, hay unas librerías de Microchip, librerías que se instalan automáticamente al instalar MPLABX y XC32. Lo que quiero decir es que el compilado final modificado no lo puedo facilitar, pero si las instrucciones para compilar todo el paquete y obtener el compilador libre, sin limitaciones. Los precompilados de cada paquete, hasta la compilación final que lo enlaza todo, si que los podré facilitar porque son parte de GCC, no son propiedad de Microchip.

Todos los pasos que voy a seguir y documentar están basados en la información que dan en la web de Jubatian, solo que a mi me gusta documentar las cosas de manera más detallada, con capturas de pantalla, todo bien mascado sin presuponer nada:
http://www.jubatian.com/articles/turning-on-optimizations-in-microchips-xc32/


1.- Útiles necesarios.

1.- Cygwin: entorno de desarrollo y compilador emulando un entorno Linux bajo Windows. https://www.cygwin.com/
     Para Windows 32 bits --> https://www.cygwin.com/setup-x86.exe
     Para Windows 64 bits --> https://www.cygwin.com/setup-x86_64.exe

2.- Fuentes compilador XC de Microchip: http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html
     XC32 v1.40 ---> http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.40-src.zip
     XC16 v1.25 ---> http://ww1.microchip.com/downloads/en/DeviceDoc/v1.25.src.zip

3.- MPLABX de Microchip http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html
      V3.15 para Windows 32/64 bits: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLABX-v3.15-windows-installer.exe

4.- Compilador XC32 gratuito de Microchip: http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html
     v1.40 para Windows http://www.microchip.com/mplabxc32windows

5.- Librerias pic32mx de Microchip, se instalan automáticamente al instalar el compilador XC32, en el subdirectorio pic32mx de la instalación.



2.- Instalación.

2.1- Ejecutamos la instalación de Cygwin

     Seleccionamos instalar desde Internet > Siguiente.
     


Dejamos el directorio de instalación por omisión que muestra C:\cygwin64



Seleccionamos el directorio donde queremos que se descarguen los ficheros de instalación, yo he elegido C:\cygwin64\instalacion



Aqui lo dejamos por omisión, Direct Connection.



Seleccionar el sitio de descarga, en principio cualquiera vale.




Paquetes a instalar: hacen falta gcc, make, binutils, automake, autoconf, bison, flex, e iconv. Escribimos uno a uno esos paquetes en la ventana Search y pinchamos sobre cada uno en Default para que cambie a Install. La instalación ocupará aproximadamente 1 Gb.

Si faltase algo más tarde se puede añadir, no hay problema. No recomiendo que seleccioneis que se instale todo (All), porque creo que son tropecientos mil Gigas. Le damos a Siguiente.




Y ahí estará un rato descargando e instalando paquetes.





2.2- Descargamos e instalamos MPLABX y XC32. Voy a documentar la compilación de XC32, pero sirve igual para hacerlo con XC8 y XC16.


2.3- Descargamos y descomprimimos los fuentes de XC32 de la web de Microchip, en el directorio C:\Cygwin64\fuentes. Este es el directorio de mi instalación de Cygwin, si lo habeis llamado de otra forma, colgar el subdirectorio fuentes en el raiz de vuestra instalación y descomprimir ahí los fuentes de XC32.


2.4- Copiamos las librerías de Microchip, que encontraremos en el subdirectorio pic32mx de la instalación de XC32. De estas librerías solo necesitamos los contenidos de los subdirectorios lib e include.

Copiaremos los contenidos siguientes (ocupa unos 850 Mb):

pic32mx\lib\ ---> C:\Cigwin64\usr\lib\
pic32mx\include\ ---> C:\Cigwin64\usr\include\








3.- Configuración de Cygwin.


Una vez instalado Cygwin, ejecutamos el terminal Cygwin





Vereis que se abre una ventana DOS, con un entorno Linux, que responde a todos los comandos Linux, me bajo al directorio raiz con cd/ o subdirectorio a subdirectorio con cd.., y visualizo el contenido con ls -l.

Ahí está todo el entorno de desarrollo, incluido el compilador de C GCC, para poder recompilar XC32 que es a su vez una modificación del propio GCC. Quien ya conozca Linux esa ventaja que tiene, aunque con cuatro comandos básicos, para este caso, es más que suficiente, el CD para cambiar de directorio, el LS para visualizar el contenido y poco más. La estructura de directorios como se ve es la típica de Linux, etc, var, usr, tmp, lib, dev, home.... todo muy familiar para cualquier linuxero.

Los subdirectorios fuentes e instalacion los cree yo, para almacenar los fuentes de XC32 y los paquetes de instalación de Cygwin. También habrá que crear un directorio para los compilados, definiendo unas vías con variables de entorno para que la compilación localice librerías y cabeceras (archivos .h).





Ahora toca añadir las variables de entorno para que el proceso de compilación localice librerías y cabeceras (archivos .h) al compilar.
Así que abrimos de nuevo el terminal de Cygwin y tecleamos cada una de estas dos lineas, podeis hacer un copiar-pegar para ir más rápido.

export CPPFLAGS="-I c:/cygwin64/usr/include"
export LDFLAGS="-L c:/cygwin64/usr/lib"





Para comprobar que se han añadido basta con teclear export, y veremos nuestras variables de entorno en la lista, junto a muchas más propias de Windows.




Lamentablemente, parece que al cerrar el terminal y volverlo a abrir esas variables de entorno se pierden y nos toca volver a teclearlas. Se podrían añadir a la lista de variables de entorno de Windows, pero teniendo en cuenta que probablemente todo el proceso de compilación lo haremos del tirón en un solo día, mejor dejarlo así. Como digo, si cerrais y abris de nuevo el terminal al teclear de nuevo export, vereis que las variables de entorno ya no están.




En cuanto a la configuración de Cygwin, esto es todo lo que hay que hacer, pasemos a otro tema.



4.- Modificación de los fuentes de XC32 para eliminar las restricciones por licencia.

En este paso modificaremos los fuentes de GCC, en los que Microchip añadió sus apaños para restringir las opciones de optimización según el tipo de licencia.

El fuente concreto en el que se comprueba la licencia es mchp.c, desde este programa Microchip llama a un programa propio llamado xclm en el que usando un algoritmo SHA-256 calcula el tipo de licencia según el código almacenado en un fichero de  licencias que se supone lo proporciona Microchip cuando compramos el producto, no así cuando usamos la versión FREE.

Los tipos de licencia posibles son FREE, Standard y PRO para XC32, y además para XC32++ tenemos FREE y FULL. XC32++ es para trabajar con C++. Aquí podeis ver el tipo de optimizaciones disponibles según licencia, además con la PRO y la XC32++ FULL tenemos mips16 y lto. Mips16 permite compilar en 16 bits, lo que reduce el objeto aún más, hasta un 26%, sobre lto de momento desconozco su utilidad.




Editando el fuente mchp.c, nos encontramos en las lineas 1238 a 1271 la rutina que comprueba la licencia y en base a ella permite los diversos niveles de optimización que he indicado en la imagen anterior.

Las variables nullify_O2, nullify_O3 y nullify_Os se corresponden con los niveles de optimización 2, 3 y s, y, las variables nullify_mips16 y  nullify_lto se corresponden con mips16 y lto.  Poniendo la variable correspondiente a cero, se autoriza ese nivel de optimización, por eso en la rutina inicialmente todas están a 1, osea pendientes de autorizar según licencia. Cuando la licencia es PRO, como podemos ver en el fuente, todas esas variables se ponen a cero, pero si la licencia es la Standard solo se pone a cero la variable nullify_O2 para autorizar hasta el nivel dos de optimización.

Código: [Seleccionar]
#ifndef SKIP_LICENSE_MANAGER
  nullify_O2     = 1;
  nullify_O3     = 1;
  nullify_Os     = 1;
  nullify_mips16 = 1;
  nullify_lto    = 1;
#endif /* SKIP_LICENSE_MANAGER */

  if (mchp_profile_option) {
    flag_inline_small_functions = 0;
    flag_inline_functions = 0;
    flag_no_inline = 1;
    flag_optimize_sibling_calls = 0;
  }

  require_cpp = (strstr (save_decoded_options[0].arg, "cc1plus")!=NULL);
  mchp_pic32_license_valid = pic32_get_license (require_cpp);

    if (require_cpp && !((mchp_pic32_license_valid == PIC32_VALID_CPP_FREE) ||
                         (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL)))
      {
        error  ("MPLAB XC32 C++ license not activated");
        inform (input_location, "Visit http://www.microchip.com/MPLABXCcompilers to acquire a "
               "free C++ license");
       }
    if ((mchp_pic32_license_valid == PIC32_VALID_PRO_LICENSE) ||
        (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL))
      {
        nullify_lto = nullify_mips16 = nullify_O2 =  nullify_O3 = nullify_Os = 0;
      }
    else if (mchp_pic32_license_valid == PIC32_VALID_STANDARD_LICENSE)
      {
        nullify_O2 = 0;
      }


En esta linea que marco a continuación, es exactamente donde se llama al programa XCLM de Microchip para calcular el tipo de licencia, usando un algoritmo SHA-256, y devuelve en la variable mchp_pic32_license_valid un dígito que indica el tipo de licencia autorizado.

require_cpp = (strstr (save_decoded_options[0].arg, "cc1plus")!=NULL);
  mchp_pic32_license_valid = pic32_get_license (require_cpp);

    if (require_cpp && !((mchp_pic32_license_valid == PIC32_VALID_CPP_FREE) ||
                         (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL)))
      {
        error  ("MPLAB XC32 C++ license not activated");
        inform (input_location, "Visit http://www.microchip.com/MPLABXCcompilers to acquire a "
               "free C++ license");
       }
    if ((mchp_pic32_license_valid == PIC32_VALID_PRO_LICENSE) ||
        (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL))
      {
        nullify_lto = nullify_mips16 = nullify_O2 =  nullify_O3 = nullify_Os = 0;
      }
    else if (mchp_pic32_license_valid == PIC32_VALID_STANDARD_LICENSE)
      {
        nullify_O2 = 0;
      }


Ese dígito en mchp_pic32_license_valid será el siguiente según tipo de licencia.

0 = licencia FREE
1 = licencia Standard
2 = licencia PRO
4 = licencia no C++
5 = licencia C++ FREE
6 = licencia C++ FULL


La modificación a realizar es bastante obvia, forzamos en la variable mchp_pic32_license_valid el dígito que queramos según la licencia que nos interese y arreglado. Personalmente no me gusta borrar nada de los fuentes originales, ni modificar lineas, prefiero siempre AÑADIR poniendo un comentario que indique que ese añadido es mío, así que para activar la licencia PRO o la C++ FULL, solo tenemos que añadir una linea tras la llamada a la rutina que calcula la licencia.

Para activar una licencia PRO, añadiriamos esta linea de código en la linea 1255.

mchp_pic32_license_valid = pic32_get_license (require_cpp);
mchp_pic32_license_valid = 2;  // añadido por planeta9999


Y si queremos activar la licencia de C++ completa:

mchp_pic32_license_valid = pic32_get_license (require_cpp);
mchp_pic32_license_valid = 6; // añadido por planeta9999



Y eso es todo, salvamos el fuente y ya lo tenemos casi todo listo para empezar a compilar todos los paquetes de GCC, previo a la compilación y enlazado final que nos dará un nuevo XC32 completo sin limitaciones, GRATUITO y LEGAL.

Nos vamos a ahorrar un pico, porque la versión PRO cuesta 1200 euros y la versión XC32++ FULL se va a los 1500 euros.



5.- Creando estructura de subdirectorios para la compilación.

En este paso simplemente vamos a crear unos subdirectorios donde se irán creando los objetos de las compilaciones que vayamos haciendo de los diversos paquetes que componen GCC.

En concreto hay que compilar gmp, ppl, cloog, libelf, zlib, binutils y finalmente GCC, asi que para tenerlo todo un poco ordenado vamos a crear un subdirectorio para cada paquete, utilizaremos por ejemplo la nomenclatura [componente]_build. He decidido crear el subdirectorio compilados colgando del raiz de Cygwin, y dentro de ese subdirectorio uno para cada paquete, lo veis en esta imagen. Zlib no se puede compilar fuera del directorio de los fuentes, así que no he creado el subdirectorio zlib_build en compilados porque no serviría.

Con esto hemos llegado al final de la configuración del entorno. Lo siguiente ya será empezar a compilar cada paquete por separado y el paso final con el enlazado de todos ellos y la compilación de GCC.





6.- Cumpliendo con GPL.

Según los requerimientos de la licencia GPL en la que está basado GCC, aquí facilito la descarga del fuente modificado, que es como ya comenté el programa mchp.c. La modificación es un añadido en la linea 1255, para habilitar en cualquier caso todos los niveles de optimización que permite GCC. He puesto el código 2 que activa la licencia PRO, pero se puede modificar poniendo un 6 para activar XC32++.

Si editais el fuente, os encontrareis este añadido en la linea 1255.
mchp_pic32_license_valid = 2;  // añadido por planeta9999, 2 = XC32 PRO, 6 = XC32++ FULL

Enlace descarga fuente mchp.c modificado, reemplazarlo en los fuentes de Microchip XC32 v1.40 antes de compilar.
https://mega.nz/#!hIVkHIrC!Ey4mXwZsHirHA7Pw18kx_zkXr7mTvCMWAspl_c9XuhM



7.- Compilando paquetes gmp, ppl, cloog, libelf, zlib y binutils.

         (contenidos en preparación)



8.- Enlazado y compilación final de GCC.

         (contenidos en preparación)



9.- Pruebas del nuevo XC32 sin limitaciones sobre MPLABX.

         (contenidos en preparación)






Y por hoy hasta aquí. Seguiremos, si alguien quiere ir haciendo camino y probando no es complicado ....


 :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/ :-/


« Última modificación: 25 de Enero de 2016, 15:07:31 por planeta9999 »

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #1 en: 21 de Enero de 2016, 21:12:23 »
Yo lo voy a probar con el XC16, pero ojo el XC8 no es GCC, asi que no hay los fuentes

Gracias por el tutorial planeta se ve muy bien
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #2 en: 21 de Enero de 2016, 21:21:10 »
A ver si todo mundo que usa pic32 hacen esto y obligamos a microchip a que lo ponga gratuito como debe ser.

Así que muy bueno el trabajo, pero.... esa carpeta de tu menú inicio XXX que es, uiuiui :D :D

Un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado EdoNork

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 616
    • ElektroQuark
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #3 en: 22 de Enero de 2016, 03:12:57 »
Jajaja, veo que te has animado al final a compilar tu mismo. Me alegro mucho.
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 KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #4 en: 22 de Enero de 2016, 03:23:21 »
Si, yo no se si es correcto el tema este de compilarlo uno mismo, supuestamente uno debe de liberar el codigo modificado por la licencia que posee GCC, en la pagina que decia planeta999 hay otras aproximaciones para hacerlo creer como "legal".

Desconectado Snaut

  • PIC12
  • **
  • Mensajes: 57
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #5 en: 22 de Enero de 2016, 05:12:15 »
Excelente trabajo! Muy bueno  ((:-))

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #6 en: 22 de Enero de 2016, 05:45:44 »
Buen aporte.  ((:-))

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #7 en: 22 de Enero de 2016, 07:45:03 »
Si, yo no se si es correcto el tema este de compilarlo uno mismo, supuestamente uno debe de liberar el codigo modificado por la licencia que posee GCC, en la pagina que decia planeta999 hay otras aproximaciones para hacerlo creer como "legal".


¿ Que problema hay en modificar y compilar GCC ?, por supuesto que liberaré el código fuente modificado, es además muy simple, la llamada al chequeo de licencia que añadió Microchip a los fuentes de GCC está en el programa mchp.c de XC32. En concreto en la linea 1254 de la versión 1.40, está la llamada al programa de Microchip xclm que calcula el tipo de licencia usando el algoritmo SHA-256.

mchp_pic32_license_valid = pic32_get_license (require_cpp);

A la vuelta de esa llamada, en la variable mchip_pic32_license_valid, tendremos un dígito que indica el tipo de licencia:

0 = licencia FREE
1 = licencia Standar
2 = licencia PRO
4 = licencia no C++
5 = licencia C++ FREE
6 = licencia C++ FULL


La modificación es tan simple como insertar una linea a la vuelta de la llamada a la rutina que indica el tipo de licencia, forzando la que nos interese. Por ejemplo para activar una licencia PRO, añadiriamos esta linea de código en la linea 1255.

mchp_pic32_license_valid = pic32_get_license (require_cpp);
mchp_pic32_license_valid = 2;  // añadido por planeta9999


Y si queremos activar la licencia de C++ completa:

mchp_pic32_license_valid = pic32_get_license (require_cpp);
mchp_pic32_license_valid = 6; // añadido por planeta9999


Recompilamos los fuentes y arreando, licencia PRO o C++ completa activadas. Lo que no me queda claro es si la PRO y la C++ se activan a la vez, o si C++ implica C, o como va esto.

Dentro del fuente que he indicado, en las lineas 1238 a 1271, está toda la rutina de activación de licencia, o para ser más exactos se define el tipo de optimizaciones permitidas según el tipo de licencia. Las variables nullify_O2, nullify_O3 y nullify_Os se corresponden con los niveles de optimización 2, 3 y s. Lo de mips16 y lto no se a que se refiere. Para autorizar cada una de ellas, basta con ponerlas a cero, así lo hace cuando se encuentra con una licencia PRO, con la licencia Standar solo autoriza hasta el nivel 2 de optimización, dejando además sin autorización mips16 y lto. Con la versión FREE, supongo que solo se autoriza la optimización hasta el nivel 1, lo que deja unos tamaños de objeto enormes, en comparación con el nivel 3 de optimización de la versión PRO.

Código: [Seleccionar]
#ifndef SKIP_LICENSE_MANAGER
  nullify_O2     = 1;
  nullify_O3     = 1;
  nullify_Os     = 1;
  nullify_mips16 = 1;
  nullify_lto    = 1;
#endif /* SKIP_LICENSE_MANAGER */

  if (mchp_profile_option) {
    flag_inline_small_functions = 0;
    flag_inline_functions = 0;
    flag_no_inline = 1;
    flag_optimize_sibling_calls = 0;
  }

  require_cpp = (strstr (save_decoded_options[0].arg, "cc1plus")!=NULL);
  mchp_pic32_license_valid = pic32_get_license (require_cpp);

    if (require_cpp && !((mchp_pic32_license_valid == PIC32_VALID_CPP_FREE) ||
                         (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL)))
      {
        error  ("MPLAB XC32 C++ license not activated");
        inform (input_location, "Visit http://www.microchip.com/MPLABXCcompilers to acquire a "
               "free C++ license");
       }
    if ((mchp_pic32_license_valid == PIC32_VALID_PRO_LICENSE) ||
        (mchp_pic32_license_valid == PIC32_VALID_CPP_FULL))
      {
        nullify_lto = nullify_mips16 = nullify_O2 =  nullify_O3 = nullify_Os = 0;
      }
    else if (mchp_pic32_license_valid == PIC32_VALID_STANDARD_LICENSE)
      {
        nullify_O2 = 0;
      }



En resumen según el tipo de licencia se autoriza lo siguiente:

Licencia FREE --------> optimización 0 y 1.
Licencia Standar -----> optimización 0, 1 y 2.
Licencia PRO ---------> optimización 0, 1, 2, 3 y s. Además autoriza mips16 y lto que no se para que sirve.
Licencia C++ FULL --> optimización 0, 1, 2, 3 y s. Además autoriza mips16 y lto que no se para que sirve.




« Última modificación: 22 de Enero de 2016, 09:19:52 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #8 en: 22 de Enero de 2016, 08:07:37 »
Yo lo voy a probar con el XC16, pero ojo el XC8 no es GCC, asi que no hay los fuentes

Ah, no sabía que XC8 no es GCC, ya veo que los fuentes no están en la web de Microchip. Dentro de lo malo, lo bueno es que la licencia completa comprada de XC8 es muy barata, porque con XC32 nos vamos mínimo a los 1200 euros para la versión PRO monopuesto.


Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #9 en: 22 de Enero de 2016, 08:09:49 »

Así que muy bueno el trabajo, pero.... esa carpeta de tu menú inicio XXX que es, uiuiui :D :D

Un saludo


Jeje, esa es la carpeta del administrador que crea Windows cuando se instala. Desde hace años, cuando instalo Windows, me acostumbré a poner como nombre de equipo XXXX y nombre de administrador XXX. No tengo material sensible  :-) :-)




Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #10 en: 22 de Enero de 2016, 09:03:29 »
Citar
Jeje, esa es la carpeta del administrador que crea Windows cuando se instala. Desde hace años, cuando instalo Windows, me acostumbré a poner como nombre de equipo XXXX y nombre de administrador XXX. No tengo material sensible  :-) :-)

Vale en ese caso me apunto al hilo jeje, esto me interesa bastante, arreglaría una de las cosas que no me gustan de microchip y que me parece un robo.

Un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #11 en: 22 de Enero de 2016, 09:29:27 »
.


¿ Alguien ha utilizado la compilación con XC32 activando MIPS16 ?, por lo que leo en los foros de Microchip sirve para indicarle al compilador que compile en 16 bits en vez de en 32 bits, y en ese caso el tamaño del objeto se reduce en un 26%.

Y LTO sigo sin saber que es, al igual que MIPS16 solo se activa para la licencia PRO y la C++ FULL.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #12 en: 22 de Enero de 2016, 09:51:53 »
.


¿ Alguien ha utilizado la compilación con XC32 activando MIPS16 ?, por lo que leo en los foros de Microchip sirve para indicarle al compilador que compile en 16 bits en vez de en 32 bits, y en ese caso el tamaño del objeto se reduce en un 26%.

Y LTO sigo sin saber que es, al igual que MIPS16 solo se activa para la licencia PRO y la C++ FULL.

Yo lo he usado, se usa por ejemplo en el ejemplo del bootloader por MSD, que te ponen el ejemplo en MIPS16 y dices tú como es posible que te ponga un ejemplo que solo se puede usar con la versión pro? Y lo entendí luego cuando adapte el ejemplo para poder usarlo en modo free. ya que sin mips16 en los pic32 de 16KB no entra y el los de 32Kb se comía el 90 % de la memoria, sin dejar espacio para nada. Así que no me quedo otra que activar el mes de prueba para usarlo. Y aún así tuve que cambiar de micro e irme a 256KB porque incluso el de 128 se me quedo pequeño con el  bootloader y mi código, algo que nunca me había pasado  :?

Por otro lado, cuando activas el nivel de optimización pierdes la opción de debug.

Un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #13 en: 23 de Enero de 2016, 12:57:51 »
.


Actualizado el hilo principal.
Termino de configurar Cygwin añadiendo las variables de entorno e indico que hay que modificar en los fuentes para activar la licencia PRO o la XC32++ FULL.

Ya esta casi todo listo para empezar a compilar los diversos paquetes de GCC, previo a la compilación y enlazado final que nos dará el ejecutable de XC32 sin limitaciones de optimización, gratis y legal.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re:Compilador XC32 PRO 100% libre y gratuito, sin limitaciones y LEGAL
« Respuesta #14 en: 23 de Enero de 2016, 15:14:00 »
yo esperare a que este terminado el tutorial para hacerlo todo junto, no quiero quedarme a medias.

un saludo.
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw


 

anything