# Compiling ARM7\_LPC2368\_ECLIPSE

**URL:** <https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394>\
**Category:** Kernel\
**Created:** [April 28, 2008, 10:25am UTC](https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394 "2008-04-28T10:25:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [April 28, 2008, 10:25am UTC](https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394/1 "2008-04-28T10:25:28Z")

</div>

**[ogibralta](https://sourceforge.net/u/ogibralta/)** wrote on [Monday, April 28, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/c3a90327/#6e03):

Hello,

I want to compile ARM7\_LPC2368\_ECLIPSE project with eclipse v3.3.2 but i have this error :

\*\*\*\* Build of configuration Default for project RTOSDemo \*\*\*\*

make all  
arm-elf-gcc -g -O1 -Tlpc2368.ld -I . -I …/…/…/Source/include -I …/…/…/Source/portable/GCC/ARM7\_LPC23xx -I …/…/Common/include -I ./webserver -I …/…/Common/ethernet/uIP/uip-1.0/uip -D ROWLEY\_LPC23xx -D THUMB\_INTERWORK -mcpu=arm7tdmi -D PACK\_STRUCT\_END=\_\_attribute\(\(packed\)\) -D ALIGN\_STRUCT\_END=\_\_attribute\(\(aligned\(4\)\)\) -fomit-frame-pointer -mthumb-interwork …/…/…/Source/portable/GCC/ARM7\_LPC23xx/portISR.o ./webserver/EMAC\_ISR.o main.o ./ParTest/ParTest.o ./LCD/portlcd.o …/…/Common/Minimal/BlockQ.o …/…/Common/Minimal/blocktim.o …/…/Common/Minimal/flash.o …/…/Common/Minimal/integer.o …/…/Common/Minimal/GenQTest.o …/…/Common/Minimal/QPeek.o …/…/Common/Minimal/dynamic.o ./webserver/uIP\_Task.o ./webserver/emac.o ./webserver/httpd.o ./webserver/httpd-cgi.o ./webserver/httpd-fs.o ./webserver/http-strings.o …/…/Common/ethernet/uIP/uip-1.0/uip/uip\_arp.o …/…/Common/ethernet/uIP/uip-1.0/uip/psock.o …/…/Common/ethernet/uIP/uip-1.0/uip/timer.o …/…/Common/ethernet/uIP/uip-1.0/uip/uip.o …/…/…/Source/list.o …/…/…/Source/queue.o …/…/…/Source/tasks.o …/…/…/Source/portable/GCC/ARM7\_LPC23xx/port.o …/…/…/Source/portable/MemMang/heap\_2.o&nbsp; boot.s -mthumb -nostartfiles -Xlinker -oRTOSDemo.elf -Xlinker -M -Xlinker -Map=rtosdemo.map  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(freer.o): In function `\_malloc\_trim\_r’:  
mallocr.c:(.text+0x2c): undefined reference to `\_sbrk\_r’  
mallocr.c:(.text+0x3c): undefined reference to `\_sbrk\_r’  
mallocr.c:(.text+0x48): undefined reference to `\_sbrk\_r’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(makebuf.o): In function `\_\_smakebuf’:  
makebuf.c:(.text+0x1c): undefined reference to `\_fstat\_r’  
makebuf.c:(.text+0xb2): undefined reference to `isatty’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(mallocr.o): In function `\_malloc\_r’:  
mallocr.c:(.text+0x2e8): undefined reference to `\_sbrk\_r’  
mallocr.c:(.text+0x388): undefined reference to `\_sbrk\_r’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(stdio.o): In function `\_\_sclose’:  
stdio.c:(.text+0xc): undefined reference to `\_close\_r’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(stdio.o): In function `\_\_sseek’:  
stdio.c:(.text+0x2a): undefined reference to `\_lseek\_r’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(stdio.o): In function `\_\_swrite’:  
stdio.c:(.text+0x6e): undefined reference to `\_lseek\_r’  
stdio.c:(.text+0x86): undefined reference to `\_write\_r’  
c:/winarm/bin/…/lib/gcc/arm-elf/4.1.1/…/…/…/…/arm-elf/lib/thumb/interwork\libg.a(stdio.o): In function `\_\_sread’:  
stdio.c:(.text+0xaa): undefined reference to `\_read\_r’  
collect2: ld returned 1 exit status  
make: \*\*\* [RTOSDemo.elf] Error 1

Somebody can help me ?

Thanks

---

<div class="post-metadata">

**Author:** ![chaalar](https://avatars.discourse-cdn.com/v4/letter/c/d6d6ee/32.png) [@chaalar](https://forums.freertos.org/u/chaalar)\
**Post date:** [April 28, 2008, 10:52am UTC](https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394/2 "2008-04-28T10:52:01Z")

</div>

**[chaalar](https://sourceforge.net/u/chaalar/)** wrote on [Monday, April 28, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/c3a90327/#6e03/f4a1):

Hi,

I think this demo is tested with toolchain GNUARM like other ARM7  
GCC demos though I’m not 100% sure. To build it with winarm, you need to  
include some extra code for system calls. I’m attaching inline my “syscalls.c”  
file. I don’t remember the exact web page which I found this code. You can use  
it to get rid of link errors. Or you can use gnuarm. Here arethe necessary steps  
in case you need them:

1) Save the attached file to somewhere in your project tree.  
2) Edit your makefile to include this file in the build process.  
&nbsp;&nbsp; For example you can add it under FREERTOS\_THUMB\_SRC.

I hope this helps.

Regards,  
Caglar

===========================================================================

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/  
/\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp; SYSCALLS.C:&nbsp; System Calls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp; most of this is from newlib-lpc and a Keil-demo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp; These are "reentrant functions" as needed by&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp; the WinARM-newlib-config, see newlib-manual.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp; Collected and modified by Martin Thomas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/

#include \<stdlib.h\>  
#include \<reent.h\>  
#include \<sys/stat.h\>

#include "Board.h"  
#define \_\_inline static inline  
#include "lib\_AT91SAM7X256.h"

static void my\_putc(char c)  
{  
&nbsp;&nbsp;&nbsp; while (!AT91F\_US\_TxReady((AT91PS\_USART)AT91C\_BASE\_DBGU));  
&nbsp;&nbsp;&nbsp; AT91F\_US\_PutChar((AT91PS\_USART)AT91C\_BASE\_DBGU, c);  
}

static int&nbsp; my\_kbhit( void )  
{  
&nbsp;&nbsp;&nbsp; if ((AT91F\_US\_RxReady((AT91PS\_USART)AT91C\_BASE\_DBGU)) == 0) return 0;  
&nbsp;&nbsp;&nbsp; else return 1;  
}

static char my\_getc( void )  
{  
&nbsp;&nbsp;&nbsp; return AT91F\_US\_GetChar((AT91PS\_USART)AT91C\_BASE\_DBGU);  
}

\_ssize\_t \_read\_r(  
&nbsp;&nbsp;&nbsp; struct \_reent \*r,  
&nbsp;&nbsp;&nbsp; int file,  
&nbsp;&nbsp;&nbsp; void \*ptr,  
&nbsp;&nbsp;&nbsp; size\_t len)  
{  
&nbsp;&nbsp;&nbsp; char c;  
&nbsp;&nbsp;&nbsp; int&nbsp; i;  
&nbsp;&nbsp;&nbsp; unsigned char \*p;  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; p = (unsigned char\*)ptr;  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; for (i = 0; i \< len; i++) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // c = uart0Getch();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // c = uart0GetchW();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while ( !my\_kbhit() ) ;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = (char) my\_getc();  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (c == 0x0D) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*p=’\0’;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*p++ = c;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ////// uart0\_putc(c);  
&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp; return len - i;  
}

\_ssize\_t \_write\_r (  
&nbsp;&nbsp;&nbsp; struct \_reent \*r,  
&nbsp;&nbsp;&nbsp; int file,  
&nbsp;&nbsp;&nbsp; const void \*ptr,  
&nbsp;&nbsp;&nbsp; size\_t len)  
{  
&nbsp;&nbsp;&nbsp; int i;  
&nbsp;&nbsp;&nbsp; const unsigned char \*p;  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; p = (const unsigned char\*) ptr;  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; for (i = 0; i \< len; i++) {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (\*p == ‘\n’ ) my\_putc(’\r’);  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my\_putc(\*p++);  
&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; return len;  
}

int \_close\_r(  
&nbsp;&nbsp;&nbsp; struct \_reent \*r,  
&nbsp;&nbsp;&nbsp; int file)  
{  
&nbsp;&nbsp;&nbsp; return 0;  
}

\_off\_t \_lseek\_r(  
&nbsp;&nbsp;&nbsp; struct \_reent \*r,  
&nbsp;&nbsp;&nbsp; int file,  
&nbsp;&nbsp;&nbsp; \_off\_t ptr,  
&nbsp;&nbsp;&nbsp; int dir)  
{  
&nbsp;&nbsp;&nbsp; return (\_off\_t)0;&nbsp;&nbsp;&nbsp; /\*&nbsp; Always indicate we are at file beginning.&nbsp; \*/  
}

int \_fstat\_r(  
&nbsp;&nbsp;&nbsp; struct \_reent \*r,  
&nbsp;&nbsp;&nbsp; int file,  
&nbsp;&nbsp;&nbsp; struct stat \*st)  
{  
&nbsp;&nbsp;&nbsp; /\*&nbsp; Always set as character device.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/  
&nbsp;&nbsp;&nbsp; st-\>st\_mode = S\_IFCHR;  
&nbsp;&nbsp;&nbsp; /\* assigned to strong type with implicit&nbsp;&nbsp;&nbsp;&nbsp; \*/  
&nbsp;&nbsp;&nbsp; /\* signed/unsigned conversion.&nbsp; Required by&nbsp;&nbsp;&nbsp;&nbsp; \*/  
&nbsp;&nbsp;&nbsp; /\* newlib.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \*/

&nbsp;&nbsp;&nbsp; return 0;  
}

int isatty(int file); /\* avoid warning \*/

int isatty(int file)  
{  
&nbsp;&nbsp;&nbsp; return 1;  
}

#if 0  
static void \_exit (int n) {  
label:&nbsp; goto label; /\* endless loop \*/  
}  
#endif

/\* "malloc clue function" from newlib-lpc/Keil-Demo/"generic" \*/

/\*\*\*\* Locally used variables. \*\*\*\*/  
// mt: "cleaner": extern char\* end;  
extern char end[];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\*&nbsp; end is set in the linker command&nbsp;&nbsp;&nbsp;&nbsp; \*/  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\* file and is the end of statically&nbsp;&nbsp;&nbsp;&nbsp; \*/  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\* allocated data (thus start of heap).&nbsp;&nbsp;&nbsp; \*/

static char \*heap\_ptr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\* Points to current end of the heap.&nbsp;&nbsp;&nbsp; \*/

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \_sbrk\_r \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
\* Support function. Adjusts end of heap to provide more memory to  
\* memory allocator. Simple and dumb with no sanity checks.

\*&nbsp; struct \_reent \*r – re-entrancy structure, used by newlib to  
\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; support multiple threads of operation.  
\*&nbsp; ptrdiff\_t nbytes – number of bytes to add.  
\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Returns pointer to start of new heap area.  
\*  
\*&nbsp; Note:&nbsp; This implementation is not thread safe (despite taking a  
\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \_reent structure as a parameter).  
\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Since \_s\_r is not used in the current implementation,  
\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the following messages must be suppressed.  
\*/  
void \* \_sbrk\_r(  
&nbsp;&nbsp;&nbsp; struct \_reent \*\_s\_r,  
&nbsp;&nbsp;&nbsp; ptrdiff\_t nbytes)  
{  
&nbsp;&nbsp;&nbsp; char&nbsp; \*base;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\*&nbsp; errno should be set to&nbsp; ENOMEM on error&nbsp; \*/

&nbsp;&nbsp;&nbsp; if (!heap\_ptr) {&nbsp;&nbsp;&nbsp; /\*&nbsp; Initialize if first time through.&nbsp; \*/  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; heap\_ptr = end;  
&nbsp;&nbsp;&nbsp; }  
&nbsp;&nbsp;&nbsp; base = heap\_ptr;&nbsp;&nbsp;&nbsp; /\*&nbsp; Point to end of heap.&nbsp; \*/  
&nbsp;&nbsp;&nbsp; heap\_ptr += nbytes;&nbsp;&nbsp;&nbsp; /\*&nbsp; Increase heap.&nbsp; \*/  
&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp; return base;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /\*&nbsp; Return pointer to start of new heap area.&nbsp; \*/  
}

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [April 28, 2008, 12:48pm UTC](https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394/3 "2008-04-28T12:48:00Z")

</div>

**[ogibralta](https://sourceforge.net/u/ogibralta/)** wrote on [Monday, April 28, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/c3a90327/#6e03/ece6):

How can I install GNUARM and remove WinARM from Eclipse ?

I have modify the path in Property -\> C/C++ General -\> Path and symbol -\> Includes with the path of GNURAM, but I have the same error message.

Thanks

---

<div class="post-metadata">

**Author:** ![rtel](https://d3iykfbgfh8zhg.cloudfront.net/user_avatar/forums.freertos.org/rtel/32/31_2.png) [@rtel](https://forums.freertos.org/u/rtel)\
**Post date:** [April 28, 2008, 12:55pm UTC](https://forums.freertos.org/t/compiling-arm7-lpc2368-eclipse/4394/4 "2008-04-28T12:55:44Z")

</div>

**[rtel](https://sourceforge.net/u/rtel/)** wrote on [Monday, April 28, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/c3a90327/#6e03/ece6/3bf2):

The LPC2368 docs actually recommend installing YAGARTO rather than GNUARM.&nbsp; This is just because this is what I tested it with.&nbsp; In anycase, the answer is the same.

If you are using the Eclipse projects from the [FreeRTOS.org](http://FreeRTOS.org) download then Eclipse knows nothing of your compiler or its install location, all it does is call the makefile.&nbsp; The compiler actually used will be the one that appears first in you PATH environment variable.&nbsp; If you open a command prompt and type "which arm-elf-gcc.exe" it will tell you which one its going to use (assuming you have which.exe installed).&nbsp; To use a different compiler just change the order in which they appear within your environment variable setup.

Regards.
