I am trying to start a new development project using a PIC24 and FreeRTOS in MPLAB-X. Having fallen foul of the include path issue in MPLAB-X, I thought this was going to be easier. But, no such luck.
The PIC24 demo imports fine into MPLAB-X and compiles without errors. However, I want to place my project in my usual project directory, so attempted to transfer the project over. MPLAB-X is less then helpful in this, it seems.
So, started from a clean project and added the files from inside MPLAB-X, duplicated all the compiler and linker setting. Compiles without errors, but clearly something is missing. At the link step, I get the following list of errors:
build/default/production/_ext/1405245060/tasks.o(.text+0xc4): In function `.L7′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x152): In function `.LSM42′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x188): In function `.LSM53′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x228): In function `.LSM78′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x24c): In function `.L28′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x282): In function `.LSM89′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x290): In function `.LSM91′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x298): In function `.LSM92′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x318): In function `.LSM115′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x33a): In function `.L42′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x388): In function `.LSM128′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x3ac): In function `.L47′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x3b8): In function `.LSM130′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x43c): In function `.LSM158′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x440): In function `.LSM159′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x45c): In function `.L55′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x550): In function `.L70′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x55e): In function `.L70′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x582): In function `.L72′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x5f8): In function `.LSM212′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/tasks.o(.text+0x5fe): In function `.LSM213′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x60e): In function `.LSM215′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x630): In function `.LSM221′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x63c): In function `.LSM223′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/tasks.o(.text+0x660): In function `.L86′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x66c): In function `.LSM225′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/tasks.o(.text+0x722): In function `.LSM256′:
: undefined reference to `_vApplicationIdleHook’
build/default/production/_ext/1405245060/tasks.o(.text+0x754): In function `.LSM264′:
: undefined reference to `_vListInitialiseItem’
build/default/production/_ext/1405245060/tasks.o(.text+0x75a): In function `.LSM265′:
: undefined reference to `_vListInitialiseItem’
build/default/production/_ext/1405245060/tasks.o(.text+0x786): In function `.LSM272′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/tasks.o(.text+0x792): In function `.LSM274′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/tasks.o(.text+0x796): In function `.LSM275′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/tasks.o(.text+0x79a): In function `.LSM276′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/tasks.o(.text+0x79e): In function `.LSM277′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/tasks.o(.text+0x7ca): In function `.LSM286′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/tasks.o(.text+0x7d4): In function `.LSM287′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/croutine.o(.text+0x46): In function `.LSM12′:
: undefined reference to `_vListInitialiseItem’
build/default/production/_ext/1405245060/croutine.o(.text+0x4c): In function `.LSM13′:
: undefined reference to `_vListInitialiseItem’
build/default/production/_ext/1405245060/croutine.o(.text+0x84): In function `.L5′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/croutine.o(.text+0xa6): In function `.LSM24′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0xbc): In function `.LSM27′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/croutine.o(.text+0xc6): In function `.LSM28′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/croutine.o(.text+0xd6): In function `.LSM30′:
: undefined reference to `_vListInsert’
build/default/production/_ext/1405245060/croutine.o(.text+0xf2): In function `.LSM36′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0xfe): In function `.LSM38′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0x120): In function `.L13′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/croutine.o(.text+0x176): In function `.LSM55′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0x184): In function `.LSM57′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0x1b0): In function `.L21′:
: undefined reference to `_vListInsertEnd’
build/default/production/_ext/1405245060/croutine.o(.text+0x24e): In function `.LSM79′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/croutine.o(.text+0x25a): In function `.LSM81′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/croutine.o(.text+0x25e): In function `.LSM82′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/croutine.o(.text+0x262): In function `.LSM83′:
: undefined reference to `_vListInitialise’
build/default/production/_ext/1405245060/croutine.o(.text+0x280): In function `.LSM89′:
: undefined reference to `_uxListRemove’
build/default/production/_ext/1405245060/croutine.o(.text+0x28a): In function `.LSM90′:
: undefined reference to `_vListInsertEnd’
What am I missing? I’m stumped despite a good amount of effort to try to solve this.
Fails at linking step: PIC24 demo example
Fails at linking step: PIC24 demo example
Looks like you are missing FreeRTOS/Source/list.c in your project.
Fails at linking step: PIC24 demo example
That did it. Many thanks for your help.