MPLAB XC16 no genera el archivo .HEX después de una compilación exitosa

1

Soy nuevo en MPLAB XC16 IDE. Estoy generando un simple código de LED parpadeante para comprender los conceptos básicos del microcontrolador PIC24FJ32GA002.

El archivo principal es el siguiente:

#include <xc.h>
#include <libpic30.h>

#define sysclock 96000000UL
#define FCY sysclock/4

// CONFIG2
#pragma config POSCMOD = XT             // Primary Oscillator Select (XT Oscillator mode selected)
#pragma config I2C1SEL = PRI            // I2C1 Pin Location Select (Use default SCL1/SDA1 pins)
#pragma config IOL1WAY = ON             // IOLOCK Protection (Once IOLOCK is set, cannot be changed)
#pragma config OSCIOFNC = OFF           // Primary Oscillator Output Function (OSC2/CLKO/RC15 functions as CLKO (FOSC/2))
#pragma config FCKSM = CSDCMD           // Clock Switching and Monitor (Clock switching and Fail-Safe Clock Monitor are disabled)
#pragma config FNOSC = FRCDIV           // Oscillator Select (Fast RC Oscillator with Postscaler (FRCDIV))
#pragma config SOSCSEL = SOSC           // Sec Oscillator Select (Default Secondary Oscillator (SOSC))
#pragma config WUTSEL = LEG             // Wake-up timer Select (Legacy Wake-up Timer)
#pragma config IESO = ON                // Internal External Switch Over Mode (IESO mode (Two-Speed Start-up) enabled)

// CONFIG1
#pragma config WDTPS = PS32768          // Watchdog Timer Postscaler (1:32,768)
#pragma config FWPSA = PR128            // WDT Prescaler (Prescaler ratio of 1:128)
#pragma config WINDIS = ON              // Watchdog Timer Window (Standard Watchdog Timer enabled,(Windowed-mode is disabled))
#pragma config FWDTEN = OFF             // Watchdog Timer Enable (Watchdog Timer is disabled)
#pragma config ICS = PGx1               // Comm Channel Select (Emulator EMUC1/EMUD1 pins are shared with PGC1/PGD1)
#pragma config GWRP = OFF               // General Code Segment Write Protect (Writes to program memory are allowed)
#pragma config GCP = OFF                // General Code Segment Code Protect (Code protection is disabled)
#pragma config JTAGEN = OFF             // JTAG Port Enable (JTAG port is disabled)


int main(void) {
    TRISB = 0xFFFF;

    while(1) {
        PORTB = 0xFFFF;
        __delay_ms(1000);
        PORTB = 0x0000;
        __delay_ms(1000);
    }

    return 0;
}

El proyecto se compila con éxito con este resultado de compilación:

make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/mohsi/MPLABXProjects/PIC24FJ32GA002.X'
make  -f nbproject/Makefile-default.mk dist/default/production/PIC24FJ32GA002.X.a
make[2]: Entering directory 'C:/Users/mohsi/MPLABXProjects/PIC24FJ32GA002.X'
"C:\Program Files (x86)\Microchip\xc16\v1.33\bin\xc16-gcc.exe"   main.c  -o build/default/production/main.o  -c -mcpu=24FJ32GA002  -MMD -MF "build/default/production/main.o.d"        -g -omf=coff -DXPRJ_default=default  -legacy-libc    -O0 -msmart-io=1 -Wall -msfr-warn=off  
"C:\Program Files (x86)\Microchip\xc16\v1.33\bin\xc16-gcc.exe"   system.c  -o build/default/production/system.o  -c -mcpu=24FJ32GA002  -MMD -MF "build/default/production/system.o.d"        -g -omf=coff -DXPRJ_default=default  -legacy-libc    -O0 -msmart-io=1 -Wall -msfr-warn=off  
"C:\Program Files (x86)\Microchip\xc16\v1.33\bin\xc16-ar.exe"   -omf=coff -r dist/default/production/PIC24FJ32GA002.X.a  build/default/production/main.o build/default/production/system.o      
make[2]: Leaving directory 'C:/Users/mohsi/MPLABXProjects/PIC24FJ32GA002.X'
make[1]: Leaving directory 'C:/Users/mohsi/MPLABXProjects/PIC24FJ32GA002.X'

BUILD SUCCESSFUL (total time: 6s)

Aún así, el proyecto solo compila el archivo .a en la carpeta carpeta de proyecto / dis / default / production :

AquíestánlaspropiedadesdelproyectoparamostrarqueestoyusandoelmicrocontroladorcorrectousandoSimulatorenMPLABXIDEusandoelcompiladorXC16:

Cualquier ayuda sería apreciada. Por contexto, necesito simular este microcontrolador en el simulador de Proteus. Así que necesito el archivo .HEX del proyecto.

    
pregunta Mohsin

1 respuesta

1

Solo está creando .a porque su tipo de proyecto es una biblioteca estática, cambie el tipo de proyecto para que sea una aplicación y generará el archivo hex.

    
respondido por el Colin

Lea otras preguntas en las etiquetas