No me entiende estas linea el compilador
Página 1 de 1.
No me entiende estas linea el compilador
Hola amigos.
Retomé el tema de Piklab y SDCC que lo tenía abandonado.
Me bajé la ultima version de SDCC, las Gputils e instalé Piklab de los repositorios de Debian (0.15.7).
Tras crear un proyecto nuevo con plantilla incluida, sin meter nada de código me encontré que no compilaba, primero no me encontraba el .h de mi Pic.
Lo pude arreglar buscando y encontré https://pic-linux.forosactivos.net/t417-problema-con-sdcc-y-piklab como solucion y ya por lo menos compila y linka creando el .hex etc.
El problema es que tengo que comentar la linea de la plantilla que dice:
que se me para el compilador en el "2007" y en esta otra linea no reconoce la palabra interrupt:
Si las comento compila y linka pero si no las comento no puede seguir y no se como arreglarlo.
Gracias por alguna pista.
Retomé el tema de Piklab y SDCC que lo tenía abandonado.
Me bajé la ultima version de SDCC, las Gputils e instalé Piklab de los repositorios de Debian (0.15.7).
Tras crear un proyecto nuevo con plantilla incluida, sin meter nada de código me encontré que no compilaba, primero no me encontraba el .h de mi Pic.
Lo pude arreglar buscando y encontré https://pic-linux.forosactivos.net/t417-problema-con-sdcc-y-piklab como solucion y ya por lo menos compila y linka creando el .hex etc.
El problema es que tengo que comentar la linea de la plantilla que dice:
- Código:
word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF;
que se me para el compilador en el "2007" y en esta otra linea no reconoce la palabra interrupt:
- Código:
void isr() interrupt 0 {
Si las comento compila y linka pero si no las comento no puede seguir y no se como arreglarlo.
Gracias por alguna pista.
Invitado- Invitado
Re: No me entiende estas linea el compilador
Sería mejor que pongas los errores que te tira SDCC.
Saludos.
Saludos.
diguito69- Participante
- Mensajes : 11
Fecha de inscripción : 04/07/2011
Edad : 39
Re: No me entiende estas linea el compilador
diguito69 escribió:Sería mejor que pongas los errores que te tira SDCC.
Saludos.
Pego aqui el error que da:
1.- Este es el prgrama totalmente vacio (sin código)
- Código:
/* Plantilla generada por Piklab */
#include <pic16f84a.h>
/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
typedef unsigned int word;
word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF;
//void isr() interrupt 0 { /* rutina de servicio de interrupciones */
/* << agregue el código de interrupción >> */
//}
void main() {
/* << agregue el código >> */
}
2.- Y este es el error que da:
- Código:
sdcc -mpic14 -p16f84a -V --debug -I/home/miguel/sdcc/ejercicios/ -I--use-non-free -c pr1.c
+ "/usr/local/bin/sdcpp" -nostdinc -Wall -I/home/miguel/sdcc/ejercicios/ -I--use-non-free -D__SDCC_PROCESSOR="16f84a" -DSDCC_PROCESSOR="16f84a" -D__SDCC_PIC16F84A -obj-ext=.o -D__SDCC=3_2_0 -DSDCC=320 -D__SDCC_REVISION=8008 -DSDCC_REVISION=8008 -D__SDCC_pic14 -DSDCC_pic14 -D__pic14 -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem "/usr/local/bin/../share/sdcc/include/pic14" -isystem "/usr/local/share/sdcc/include/pic14" -isystem "/usr/local/bin/../share/sdcc/include" -isystem "/usr/local/share/sdcc/include" "pr1.c"
pr1.c:9: syntax error: token -> '0x2007' ; column 14
*** Salida con estado: 1 ***
que como ves se queja de la linea 9.
Si comento esa linea el codigo queda asi:
- Código:
/* Plantilla generada por Piklab */
#include <pic16f84a.h>
/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
//typedef unsigned int word;
//word at 0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF;
//void isr() interrupt 0 { /* rutina de servicio de interrupciones */
/* << agregue el código de interrupción >> */
//}
void main() {
/* << agregue el código >> */
}
Y la compilacion asi:
- Código:
sdcc -mpic14 -p16f84a -V --debug -I/home/miguel/sdcc/ejercicios/ -I--use-non-free -c pr1.c
pr1.asm:101: mensaje: Page or Bank selection not needed for this device. No code generated.
+ "/usr/local/bin/sdcpp" -nostdinc -Wall -I/home/miguel/sdcc/ejercicios/ -I--use-non-free -D__SDCC_PROCESSOR="16f84a" -DSDCC_PROCESSOR="16f84a" -D__SDCC_PIC16F84A -obj-ext=.o -D__SDCC=3_2_0 -DSDCC=320 -D__SDCC_REVISION=8008 -DSDCC_REVISION=8008 -D__SDCC_pic14 -DSDCC_pic14 -D__pic14 -D__STDC_NO_COMPLEX__ -D__STDC_NO_THREADS__ -D__STDC_NO_ATOMICS__ -D__STDC_NO_VLA__ -isystem "/usr/local/bin/../share/sdcc/include/pic14" -isystem "/usr/local/share/sdcc/include/pic14" -isystem "/usr/local/bin/../share/sdcc/include" -isystem "/usr/local/share/sdcc/include" "pr1.c"
+ "/usr/local/bin/gpasm" -g -o "pr1.o" -c "pr1.asm"
sdcc -mpic14 -p16f84a -V --debug -Wl-c -Wl-m -I/home/miguel/sdcc/ejercicios/ -opr1.hex pr1.o --use-non-free
using default linker script "/usr/local/share/gputils/lkr/16f84a.lkr"
+ "/usr/local/bin/gplink" -I"/usr/local/bin/../share/sdcc/lib/pic14" -I"/usr/local/share/sdcc/lib/pic14" -I"/usr/local/bin/../share/sdcc/non-free/lib/pic14" -I"/usr/local/share/sdcc/non-free/lib/pic14" -I"/usr/local/bin/../share/sdcc/lib/pic14" -I"/usr/local/share/sdcc/lib/pic14" -I"/usr/local/bin/../share/sdcc/non-free/lib/pic14" -I"/usr/local/share/sdcc/non-free/lib/pic14" -c -m -w -r -o "pr1.hex" "pr1.o" "libsdcc.lib" "pic16f84a.lib"
*** Éxito ***
Parsing COFF file: /home/miguel/sdcc/ejercicios/pr1.cof
Device name: "16F84A"
Saludos
Invitado- Invitado
Re: No me entiende estas linea el compilador
Parece ser que alguien mas se ha topado con este problema.
En esta página pagina dan una solucion:
Sustituir esa linea conflictiva por esta:
En esta página pagina dan una solucion:
Sustituir esa linea conflictiva por esta:
- Código:
//typedef unsigned int kk;
//unsigned int kk at(0x2007 CONFIG = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF);
__code unsigned short __at(0x2007) _conf1 = _XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF;//0x1234;
Invitado- Invitado
Re: No me entiende estas linea el compilador
He probado esto y tambien lo acepta, otra cosa es ver lo que pase en la vida real cuando pase el programa al Pic.
- Código:
typedef unsigned int kk;
kk __at(0x2007) __CONFIG = (_XT_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF);
Invitado- Invitado
Re: No me entiende estas linea el compilador
Por lo que veo aca
Parece que estas usando la versión 3.2, a mi en la versión 3.1, me funciono a la primera.
Si es así, debe ser que cambiaron el parser y lo que antes era opcional, me refiero a los parentesís aca
Saludos.
- Código:
-D__SDCC=3_2_0
Parece que estas usando la versión 3.2, a mi en la versión 3.1, me funciono a la primera.
Si es así, debe ser que cambiaron el parser y lo que antes era opcional, me refiero a los parentesís aca
- Código:
__at(0x2007)
Saludos.
diguito69- Participante
- Mensajes : 11
Fecha de inscripción : 04/07/2011
Edad : 39
Temas similares
» Compilador Basic libre para PIC: GCBASIC
» QextSerialPort: Controlando el puerto Serie con Qt
» como compilar piklab, pikloops y pk2cmd para programar con pickit 2
» portar librerias del compilador CCS a SDCC
» Compilador CCS con wine
» QextSerialPort: Controlando el puerto Serie con Qt
» como compilar piklab, pikloops y pk2cmd para programar con pickit 2
» portar librerias del compilador CCS a SDCC
» Compilador CCS con wine
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.