Autor Tema: [SOLUCIONADO]Problema al cambiar de versión de compilador XC8(1.32) a (2.00)  (Leído 1999 veces)

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

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Hola a todos, en mi proyecto estoy usando las librerías genéricas de USART de micro chip, en la versión de XC8 1.32 compila bien, cambio a la versión de 2.00 de XC8 y me da error en la librería USART.
 el error es este:
Código: [Seleccionar]
Driver/USART/uread.c:20: error: (192) undefined identifier "USART_Status"
Driver/USART/uread.c:20: error: (196) struct/union required
Driver/USART/uread.c:24: error: (196) struct/union required
Driver/USART/uread.c:26: error: (196) struct/union required
Driver/USART/uread.c:30: error: (196) struct/union required
Driver/USART/uread.c:33: error: (196) struct/union required
Include\Common/GenericTypeDefs.h:356: warning: (1516) compiler does not support 64-bit integers on the target architecture
Include\Common/GenericTypeDefs.h:362: warning: (1516) compiler does not support 64-bit integers on the target architecture
Driver/USART/uwrite.c:19: error: (192) undefined identifier "USART_Status"
Driver/USART/uwrite.c:19: error: (196) struct/union required
(908) exit status = 1
(908) exit status = 1
nbproject/Makefile-default.mk:346: recipe for target 'build/default/production/Driver/USART/uread.p1' failed
nbproject/Makefile-default.mk:354: recipe for target 'build/default/production/Driver/USART/uwrite.p1' failed

El error también se produce a partir de la versión 1.32 con las versiones inferiores no me pasa, bueno solo he probado con la versión 1.31.
No alcanzo a comprender el error, según parece el compilador no llega a localizar la unión donde almacena los datos pero como digo, sin tocar nada con la versión 1.32 va bien
« Última modificación: 04 de Julio de 2018, 10:44:24 por Thulsa Doom »
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Problema al cambiar de versión de compilador XC8(1.32) a (2.00)
« Respuesta #1 en: 27 de Junio de 2018, 11:52:01 »
Que PIC estas usando?, por que segun las notas de cambio de version, es un cambio mayor. Han puesto una capa mas como para que se comporte como GCC, ademas dejo el estandar C90 para usar el C99. Y dentro de esto dice:

Citar
This initial release has limited C99-compliant libraries; furthermore, these libraries are only available for PIC18 devices and also for Enhanced Mid-range devices that are using the compiled (non-reentrant) stack model.

Y una parte importante a probar es:

Citar
C99 support
By default, the xc8-cc driver will compile for C99 conformance. You can use the -std option with this driver to explicitly specify the standard, choosing either c90 or c99. The previous xc8 driver builds for the C90 standard by default, although you can request the C99 language standard using the --std option (note the double dash), in which case the compiler will swap to using Clang as the front end. New types available with the C99 standard include a 64-bit long long integer types (currently implemented only for PIC18 devices) and boolean type, but not all other C99 features are yet implemented. Note also that 24-bit floating-point types are not permitted when building for C99.
If you would like to move towards the C99 standard for existing projects but want to minimise any changes to your source code, use the xc8-cc driver, set the language standard using -std=c99, and use the -mc90lib option (if you prefer to use the previous xc8 driver, use the equivalents: --std=c99 and --runtime=+c90lib). This will select the Clang front end, but use C90-compliant libraries and keep many of the code features (such as 24-bit floating-point types) as they were for the previous compiler. It is recommended that you use the new xc8-cc driver for new projects.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re:Problema al cambiar de versión de compilador XC8(1.32) a (2.00)
« Respuesta #2 en: 27 de Junio de 2018, 16:42:22 »
Uso el PIC18F4620 pero no entiendo muy bien lo que comentas, a ver si encuentro algo de info y me voy documentando
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 771
    • https://electronicadicto.wordpress.com/
Re:Problema al cambiar de versión de compilador XC8(1.32) a (2.00)
« Respuesta #3 en: 04 de Julio de 2018, 10:43:45 »
Hola, ya he resuelto el problema, no tiene nada que ver con el cambio de estándar, el problema era mío, tenía errores en el código, me hice un define para manejar el usart que lo llamé así y producía un conflicto con un enum que se llama de la misma manera, así como archivos de cabecera que faltaban incluir, ahora compila bien.

Saludos
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...