I think that you are using some function from the C Standard library - malloc or printf - but your Eclipse based environment does not provide the needed support. The C subroutine library depends on a handful of subroutine calls for operating system services. The newlib library provides a semi-hosted implementation of the standard C library. It is normal in the embedded world: for example the stdout - standard output - definition depends on the particular target the application is running on.
Moreover it seams that you are using reentrant version of the C function. I found some documentation on this topic in the newlib website:
Hmm I just open the demo project from the freertos site. Those project should work without any other files. I have installed all the updates and have no idea what could be wrong.
Start without Eclipse. Just install yagarto and ensure its bin directory is in the path. Next get a clean FreeRTOS and navigate to the makefile directory in a DOS prompt and type "make". What happens then?
So i installed yagarto once again to be shure that the bin directory is added to the path. I`ve compiled lpc2106 demo project because it has preconfigured bat files. Unfortunately the same error has occured. http://img254.imageshack.us/my.php?image=40183414.jpg
The same error is on two diffirent computers and os. Maybe I should try install some older version of yagarto? I dont know what to do now
I’m was intrigued by the paths that are visible in your image, which show “newlib build”. I don’t have this in my Yagarto installation so checked the yagarto.de WEB site and see the following message by the latest release: “This version of YAGARTO was built to support newlib with reentrant stubs. For more information take a look here. An example syscalls.c file will be provided too.”
Could you please tell me how to solve this problem? I have met the same when compiling the FreeRTOS demo for LPC2368 and I don’t know what to do next.
If you have the compiler and a make utility in your path, and you have not changed anything in the source code or makefile, then you should be able to open a command prompt, navigate to the directory that contains the makefile (Demo\ARM7_LPC2368_Eclipse\RTOSDemo), and simply type "make" to get the code to build.
The first time you will get a #error telling you to select one of the options in FreeRTOSConfig.h, it will be obvious when you see it.
Thanks Dave, but what exactly I have to do for using the undefined references like : _sbrk_r, _fstat_r, _isatty_r, _close_r, _lseek_r, _write_r, _read_r? From your link, what is the file syscalls.c for?
You can place the file in the same directory that the makefile is in, then add the file to the list of files within the makefile. The list of files is under the THUMB_SOURCE= variable, and each line must have a \ at the end of it (other than the last in the list).