FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [June 2010 Threads] IAR tasks.c linker errorPosted by Peter Eisenhower on June 4, 2010 I am using IAR cortex M3 Kick Start to work with the energyMicro EFM32 G290F128.
I am using all the files from the freeRTOS website to start my project. I used the configuration files and source code from that demo and moved it into a project I have been working on.
When I go to build my project I get the following error:
Error[Li005]: no definition for "vApplicationStackOverflowHook" [referenced from C:\repo\Embedded\Energy Micro Sandbox\Telit\Debug\Obj\tasks.o]
I put a #error in the StackMacro.h file to make sure the function was being declared and it is. What doesnt make sense to me is that a macro is defined in StackMacro.h taskFIRST_CHECK_FOR_STACK_OVERFLOW() and that macro has a function definition and declartion in it (extern void vApplicationStackOverflowHook...). But that macro is then called within another function. I did not think that was even possible.
I can fix this error by pulling out the macro and making it a function in the task.c file but i dont thing that is the correct fix.
If someone undestands this error I would greatly appreciate the help.
Thanks, Peter
RE: IAR tasks.c linker errorPosted by Richard Damon on June 4, 2010 the extern void vApplicationStackOverflowHook in the macro is a function DECLARATION not a DEFINITION. It tells the compiler how to call the function, but not what is in it. FreeRTOS does not include a definition of this function, because it doesn't know what you want to be done once the error occurs. You program needs to provide the definition of this function, which could be as simple as just an infinite loop.
RE: IAR tasks.c linker errorPosted by Peter Eisenhower on June 4, 2010 Fantastic thanks a bunch.
RE: IAR tasks.c linker errorPosted by Peter Eisenhower on June 4, 2010 That fixed it. The only file I did not copy from the demo was main and thats where vApplicationStackOverflowHook was defined.
thanks again, Peter
RE: IAR tasks.c linker errorPosted by Richard on June 4, 2010 Thanks to Richard_Damon for his excellent support - as always.
Anything that starts vApplication is intended for definition by the application code. These are always optional, with settings in FreeRTOSConfig.h being used to either enable or disable the option.
Regards.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|