PIC18 en línea problema asm: sintaxis de expresión de error (195)

0

Estoy creando un firmware de cargador de arranque, y ahora quiero una aplicación simple (LED parpadea) para probar el cargador de arranque desde la aplicación.

Actualmente estoy haciendo:

    #include <stdio.h>
#include <stdlib.h>
#include <p18f25k50.h>


#pragma config FOSC = INTOSCIO
#pragma config FCMEN = OFF                         
#pragma config BORV = 3
#pragma config CPB = OFF
#pragma config CPD = OFF
/*
 *
 */

int main(int argc, char** argv) {

    int i, j;

    TRISC = 0xF0;

    LATCbits.LATC2 = 0;

    while(1) {

        if(!PORTBbits.RB3)
         _asm goto 0x1C _endasm


        LATCbits.LATC2=!LATCbits.LATC2;

        for(i=0;i<1000; i++) {
            for(j=0; j<10; j++) {

            }

        }

    }
    return (EXIT_SUCCESS);
}

Y, me sale

newmain.c:33: error: (195) expression syntax
(908) exit status = 1

El error me muestra la única línea de ensamblaje que tengo en mi código, que se supone que envía las instrucciones de MC al punto de entrada absoluto del cargador de arranque.

Después de intentar construir. Estoy usando MPlab X, con el compilador XC8 PRO.

¿Alguien tiene alguna idea de lo que está mal aquí?

Gracias de antemano.

    
pregunta Rorschach

1 respuesta

1

XC8 no usa esa sintaxis para el ensamblador en línea.
Lo que deberías tener es:

asm("GOTO 0x1C");

en su lugar.

    
respondido por el brhans

Lea otras preguntas en las etiquetas