Falló la compilación con el compilador XC8: error, se habilitó el conjunto de instrucciones extendidas PIC18

0

Según las directrices de Microchip, descargué MPLAB X IDE 3.8v y también instalé el compilador XC8 versión 1.38. Escribí el siguiente código de ejemplo para los LED parpadeantes:

Configurar registros como este:

#include<xc.h>

// CONFIG1L
#pragma config WDTEN = OFF      // Watchdog Timer Enable bit (WDT disabled (control is placed on SWDTEN bit))
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable bit (Reset on stack overflow/underflow enabled)
#pragma config XINST = ON       // Extended Instruction Set Enable bit (Instruction set extension and Indexed Addressing mode enabled)

// CONFIG1H
#pragma config CP0 = OFF        // Code Protection bit (Program memory is not code-protected)

// CONFIG2L
#pragma config FOSC = ECPLL     // Oscillator Selection bits (EC Oscillator, PLL enabled, CLKO on RA6)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
#pragma config IESO = ON        // Two-Speed Start-up (Internal/External Oscillator Switchover) Control bit (Two-Speed Start-up enabled)

// CONFIG2H
#pragma config WDTPS = 32768    // Watchdog Timer Postscaler Select bits (1:32768)

// CONFIG3L

// CONFIG3H
#pragma config CCP2MX = DEFAULT // ECCP2 MUX bit (ECCP2/P2A is multiplexed with RC1)
#pragma config MSSPMSK = MSK7   // MSSP Address Masking Mode Select bit (7-Bit Address Masking mode enable)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.

Y mi código es:

#include<xc.h>

#include"config.h"

#define _XTAL_FREQ 8000000

void main()

{

  TRISB=0X00;

  PORTB=0X00;

  while(1)

  { 

    PORTB=0XFF;

    __delay_ms(1000);

    PORTB=0X00;

    __delay_ms(1000);

  }

}

El problema es:

  

config.h: 13: error: (1504) el conjunto de instrucciones extendidas PIC18 era   habilitado

pero no es compatible con este compilador

  

(908) exit status = 1

     

nbproject / Makefile-default.mk: 100: receta para destino
  'build / default / production / main.p1' falló

     

make [2]: Saliendo del directorio

     

'/Users/saiteja/MPLABXProjects/TEST.X/example.X'

     

nbproject / Makefile-default.mk: 84: receta para el destino '.build-conf'   fallado

     

make [1]: Saliendo del directorio

     

'/Users/saiteja/MPLABXProjects/TEST.X/example.X'

     

nbproject / Makefile-impl.mk: 39: la receta para el destino '.build-impl' falló

     

make [2]: *** [build / default / production / main.p1] Error 1

     

crea [1]: *** [.build-conf] Error 2

     

make: *** [.build-impl] Error 2

     

ERROR EN LA CONSTRUCCIÓN (valor de salida 2, tiempo total: 468ms)

    
pregunta Saiteja

1 respuesta

1

El error se explica por sí mismo ...

  

config.h: 13: error: (1504) el conjunto de instrucciones extendidas PIC18 era   habilitado

Significa que el compilador MPLAB XC8 (que se basa en el compilador HI-TECH C) no admite el conjunto de instrucciones extendidas de PIC18.

Cambia esta línea:

#pragma config XINST = ON

a esto:

#pragma config XINST = OFF

Y debería funcionar bien.

Información adicional:

  • enlace
  • Guía del usuario del compilador MPLAB® XC8 C:
  

El compilador admite todos los conjuntos de instrucciones para dispositivos PIC10 / 12/16 como   así como el conjunto de instrucciones estándar (legado) PIC18. El extendido   El modo de instrucción disponible en algunos dispositivos PIC18 no está actualmente   soportado. Asegúrate de configurar los bits de configuración para usar el PIC18   modo de instrucción heredada cuando sea apropiado.

    
respondido por el m.Alin

Lea otras preguntas en las etiquetas