Hola que tal amigos, estoy en el intento de empezar a hacer algunas pruebas con algunos PIC24 con RTOS. Uso MPLAB-X y no pude compilar el demo de ejemplo para los PIC24 así que decidí hacer un proyecto nuevo con solo lo básico para que pudiera compilar correctamente y a partir de ahi trabajar.
Después de unas horas corrigiendo errores y aprendiendo me queda un solo error que no pude sacar
. El compilador me arroja esto:
CLEAN SUCCESSFUL (total time: 1s)
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `D:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X'
make -f nbproject/Makefile-default.mk dist/default/production/Crear_Task_simple.X.production.hex
make[2]: Entering directory `D:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X'
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/_ext/1728301206/croutine.o.d -o build/default/production/_ext/1728301206/croutine.o ../Source/croutine.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/_ext/1728301206/list.o.d -o build/default/production/_ext/1728301206/list.o ../Source/list.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/_ext/1728301206/queue.o.d -o build/default/production/_ext/1728301206/queue.o ../Source/queue.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/_ext/1728301206/tasks.o.d -o build/default/production/_ext/1728301206/tasks.o ../Source/tasks.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/_ext/1728301206/timers.o.d -o build/default/production/_ext/1728301206/timers.o ../Source/timers.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -g -omf=elf -x c -c -mcpu=24HJ128GP502 "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/include" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC" "-ID:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Source" -MMD -MF build/default/production/Main.o.d -o build/default/production/Main.o Main.c
"C:\Program Files (x86)\Microchip\MPLAB C30\bin\pic30-gcc.exe" -omf=elf -mcpu=24HJ128GP502 -o dist/default/production/Crear_Task_simple.X.production.elf build/default/production/_ext/1728301206/croutine.o build/default/production/_ext/1728301206/list.o build/default/production/_ext/1728301206/queue.o build/default/production/_ext/1728301206/tasks.o build/default/production/_ext/1728301206/timers.o build/default/production/Main.o -Wl,--defsym=__MPLAB_BUILD=1,--heap=128,--stack=256,--script="C:\Program Files (x86)\Microchip\MPLAB C30\support\PIC24H\gld\p24HJ128GP502.gld"
build/default/production/_ext/1728301206/tasks.o(.text+0x48)c:\program files (x86)\microchip\mplab c30\bin\bin\..\bin/pic30-elf-ld.exe: Dwarf Error: found address size '236', this reader can not handle sizes greater than '4'.
: In function `.LM7':
: undefined reference to `_pxPortInitialiseStack'
build/default/production/_ext/1728301206/tasks.o(.text+0x5c): In function `.LM10':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0xca): In function `.LM24':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x1b2): In function `.LM64':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x256): In function `.LM82':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x260): In function `.LM85':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x29a): In function `.LM93':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x308): In function `.LM113':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x34a): In function `.LM119':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x3e8): In function `.LM139':
: undefined reference to `_xPortStartScheduler'
build/default/production/_ext/1728301206/tasks.o(.text+0x3fc): In function `.LM144':
: undefined reference to `_vPortEndScheduler'
build/default/production/_ext/1728301206/tasks.o(.text+0x414): In function `.LM151':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x4ae): In function `.LM174':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x4b8): In function `.LM178':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x4be): In function `.LM180':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x6a2): In function `.LM238':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x6fc): In function `.LM249':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/tasks.o(.text+0x720): In function `.LM259':
: undefined reference to `_vApplicationIdleHook'
build/default/production/_ext/1728301206/tasks.o(.text+0x7e8): In function `.LM295':
: undefined reference to `_pvPortMalloc'
build/default/production/_ext/1728301206/tasks.o(.text+0x7fa): In function `.LM297':
: undefined reference to `_pvPortMalloc'
build/default/production/_ext/1728301206/tasks.o(.text+0x814): In function `.LM299':
: undefined reference to `_vPortFree'
build/default/production/_ext/1728301206/tasks.o(.text+0xe8): In function `.LM29':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/tasks.o(.text+0xea): In function `.LM29':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/tasks.o(.text+0x160): In function `.LM47':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/tasks.o(.text+0x162): In function `.LM47':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/tasks.o(.text+0x194): In function `.LM58':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/tasks.o(.text+0x196): more undefined references to `_vPortYield' follow
build/default/production/_ext/1728301206/queue.o(.text+0x98)c:\program files (x86)\microchip\mplab c30\bin\bin\..\bin/pic30-elf-ld.exe: Dwarf Error: found address size '28', this reader can not handle sizes greater than '4'.
: In function `.LM22':
: undefined reference to `_pvPortMalloc'
build/default/production/_ext/1728301206/queue.o(.text+0xae): In function `.LM25':
: undefined reference to `_pvPortMalloc'
build/default/production/_ext/1728301206/queue.o(.text+0xd8): In function `.LM31':
: undefined reference to `_vPortFree'
build/default/production/_ext/1728301206/queue.o(.text+0xf0): In function `.LM36':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x11e): In function `.LM42':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x12c): In function `.LM45':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x140): In function `.LM50':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x144): In function `.LM52':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x162): In function `.L31':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x216): In function `.LM81':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x274): In function `.LM94':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x282): In function `.LM97':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x298): In function `.LM102':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x29c): In function `.LM104':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x2ba): In function `.L72':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x364): In function `.LM133':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x36c): In function `.LM135':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x38c): In function `.LM143':
: undefined reference to `_vPortFree'
build/default/production/_ext/1728301206/queue.o(.text+0x390): In function `.LM144':
: undefined reference to `_vPortFree'
build/default/production/_ext/1728301206/queue.o(.text+0x462): In function `.LM167':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x492): In function `.LM175':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x494): In function `.LM176':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x4c4): In function `.LM184':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x4ce): In function `.LM187':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x4e0): In function `.LM189':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x506): In function `.LM197':
: undefined reference to `_vPortEnterCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x51c): In function `.LM199':
: undefined reference to `_vPortExitCritical'
build/default/production/_ext/1728301206/queue.o(.text+0x118): In function `.LM41':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/queue.o(.text+0x11a): In function `.LM41':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/queue.o(.text+0x188): In function `.LM58':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/queue.o(.text+0x18a): In function `.LM58':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/queue.o(.text+0x24e): In function `.LM89':
: undefined reference to `_vPortYield'
build/default/production/_ext/1728301206/queue.o(.text+0x250): more undefined references to `_vPortYield' follow
build/default/production/_ext/1728301206/croutine.o(.text+0xa)c:\program files (x86)\microchip\mplab c30\bin\bin\..\bin/pic30-elf-ld.exe: Dwarf Error: found address size '122', this reader can not handle sizes greater than '4'.
: In function `.LM2':
: undefined reference to `_pvPortMalloc'
make[2]: Leaving directory `D:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X'
make[1]: Leaving directory `D:/Datos (Disco)/Electronica/Pruebas FreeRTOS/Crear Task simple.X'
make[2]: *** [dist/default/production/Crear_Task_simple.X.production.hex] Error 255
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 20s)
Creo que la fuente del problema es donde dice:
build/default/production/_ext/1728301206/tasks.o(.text+0x48)c:\program files (x86)\microchip\mplab c30\bin\bin\..\bin/pic30-elf-ld.exe: Dwarf Error: found address size '236', this reader can not handle sizes greater than '4'.
: In function `.LM7':
Pero no tengo idea que pueda significar. Les dejo el link por si quieren revisar es un .rar con el source del RTOS y el proyecto de MPLAB por si quieren revisar las configuraciones del proyecto. He visto en internet mucha info pero para PIC18 nada para PIC24 con C30.
Como verán el programa no tiene nada, solo los include y el main vacio, por ahora solo quisiera que compile correctamente para poder a partir de ahi comenzar a trabajar.
Link:
Proyecto y fuente de FreeRTOS - PIC24 - C30Desde ya muchas gracias.