GNUARM tools

nobody wrote on Friday, March 18, 2005:

I am trying to get the GNU tools setup. I have downloaded the binaries for the GNUARM and installed on the m/c. I lso have a copy of make utility installed. When I run the make on the makefile under Demo for ARM7_LPC2106_GCC, I get errors for missing definitions. It appears that I am missing something. The error message is enclosed. Will appreciate some help on this. (The ARM7_LPC2129_Keil –  demo compiles just fine - May be there is an issue with GNU tools I have downloaded.
Error is as follows:
C:\Documents and Settings\My documentss\FreeRTOSv2.6.1\FreeRTOS\Demo\ARM7_LPC2106_GCC>make
arm-elf-gcc -c -Wall -D  -D GCC_ARM7 -I. -I…/…/Source/include -I…/Common/incl
ude  -mcpu=arm7tdmi -T -Wcast-align  …/…/Source/portable/GCC/ARM7/portISR.c -o
…/…/Source/portable/GCC/ARM7/portISR.o
arm-elf-gcc: GCC_ARM7: No such file or directory
<command line>:3:1: macro names must be identifiers
In file included from …/…/Source/portable/GCC/ARM7/portISR.c:56:
…/…/Source/include/portable.h:103: error: parse error before ‘*’ token
…/…/Source/include/portable.h:103: error: parse error before ‘*’ token
…/…/Source/include/portable.h:103: warning: type defaults to `int’ in declarat
ion of `pxPortInitialiseStack’
…/…/Source/include/portable.h:103: warning: data definition has no type or sto
rage class
…/…/Source/include/portable.h:108: error: parse error before “usSize”
…/…/Source/include/portable.h:116: error: parse error before “sPortStartSchedu
ler”
…/…/Source/include/portable.h:116: error: parse error before “sUsePreemption”
…/…/Source/include/portable.h:116: warning: type defaults to `int’ in declarat
ion of `sPortStartScheduler’
…/…/Source/include/portable.h:116: warning: data definition has no type or sto
rage class
…/…/Source/include/portable.h:132: error: parse error before “usPortCheckFreeS
tackSpace”
…/…/Source/include/portable.h:132: error: parse error before ‘*’ token
…/…/Source/include/portable.h:132: warning: type defaults to `int’ in declarat
ion of `usPortCheckFreeStackSpace’
…/…/Source/include/portable.h:132: warning: data definition has no type or sto
rage class
In file included from …/…/Source/include/task.h:37,
                 from …/…/Source/portable/GCC/ARM7/portISR.c:57:
…/…/Source/include/list.h:71: error: parse error before “portTickType”
…/…/Source/include/list.h:71: warning: no semicolon at end of struct or union
…/…/Source/include/list.h:76: error: parse error before ‘}’ token
…/…/Source/include/list.h:84: warning: no semicolon at end of struct or union
…/…/Source/include/list.h:84: error: parse error before “usNumberOfItems”
…/…/Source/include/list.h:88: error: parse error before ‘}’ token
…/…/Source/include/list.h:88: warning: type defaults to `int’ in declaration o
f `xList’
…/…/Source/include/list.h:88: warning: data definition has no type or storage
class
…/…/Source/include/list.h:206: error: parse error before ‘*’ token
…/…/Source/include/list.h:232: error: parse error before ‘*’ token
…/…/Source/include/list.h:254: error: parse error before ‘*’ token
In file included from …/…/Source/portable/GCC/ARM7/portISR.c:57:
…/…/Source/include/task.h:196: error: parse error before “sTaskCreate”
…/…/Source/include/task.h:196: error: parse error before ‘*’ token
…/…/Source/include/task.h:196: warning: type defaults to `int’ in declaration
of `sTaskCreate’
…/…/Source/include/task.h:196: warning: data definition has no type or storage
class
…/…/Source/include/task.h:291: error: parse error before “xTicksToDelay”
…/…/Source/include/task.h:350: error: parse error before ‘*’ token
…/…/Source/include/task.h:397: error: parse error before “ucTaskPriorityGet”
…/…/Source/include/task.h:397: warning: type defaults to `int’ in declaration
of `ucTaskPriorityGet’
…/…/Source/include/task.h:397: warning: data definition has no type or storage
class
…/…/Source/include/task.h:439: error: parse error before “ucNewPriority”
…/…/Source/include/task.h:581: error: parse error before “sUsePreemption”
…/…/Source/include/task.h:737: error: parse error before “cTaskResumeAll”
…/…/Source/include/task.h:737: warning: type defaults to `int’ in declaration
of `cTaskResumeAll’
…/…/Source/include/task.h:737: warning: data definition has no type or storage
class
…/…/Source/include/task.h:754: error: parse error before “xTaskGetTickCount”
…/…/Source/include/task.h:754: warning: type defaults to `int’ in declaration
of `xTaskGetTickCount’
…/…/Source/include/task.h:754: warning: data definition has no type or storage
class
…/…/Source/include/task.h:769: error: parse error before “usTaskGetNumberOfTas
ks”
…/…/Source/include/task.h:769: warning: type defaults to `int’ in declaration
of `usTaskGetNumberOfTasks’
…/…/Source/include/task.h:769: warning: data definition has no type or storage
class
…/…/Source/include/task.h:797: error: parse error before ‘*’ token
…/…/Source/include/task.h:819: error: parse error before ‘*’ token
…/…/Source/include/task.h:833: error: parse error before “usTaskEndTrace”
…/…/Source/include/task.h:833: warning: type defaults to `int’ in declaration
of `usTaskEndTrace’
…/…/Source/include/task.h:833: warning: data definition has no type or storage
class
…/…/Source/include/task.h:873: error: parse error before ‘*’ token
…/…/Source/include/task.h:890: error: parse error before “cTaskRemoveFromEvent
List”
…/…/Source/include/task.h:890: warning: type defaults to `int’ in declaration
of `xList’
…/…/Source/include/task.h:890: error: parse error before ‘*’ token
…/…/Source/include/task.h:890: warning: type defaults to `int’ in declaration
of `cTaskRemoveFromEventList’
…/…/Source/include/task.h:890: warning: data definition has no type or storage
class
…/…/Source/portable/GCC/ARM7/portISR.c:65: error: parse error before “ulCritic
alNesting”
…/…/Source/portable/GCC/ARM7/portISR.c:65: warning: type defaults to `int’ in
declaration of `ulCriticalNesting’
…/…/Source/portable/GCC/ARM7/portISR.c:65: warning: data definition has no typ
e or storage class
…/…/Source/portable/GCC/ARM7/portISR.c: In function `vPortISRStartFirstTask’:
…/…/Source/portable/GCC/ARM7/portISR.c:83: warning: implicit declaration of fu
nction `portRESTORE_CONTEXT’
…/…/Source/portable/GCC/ARM7/portISR.c: In function `vPortYieldProcessor’:
…/…/Source/portable/GCC/ARM7/portISR.c:103: warning: implicit declaration of f
unction `portSAVE_CONTEXT’
…/…/Source/portable/GCC/ARM7/portISR.c: In function `vNonPreemptiveTick’:
…/…/Source/portable/GCC/ARM7/portISR.c:126: error: `T0_IR’ undeclared (first u
se in this function)
…/…/Source/portable/GCC/ARM7/portISR.c:126: error: (Each undeclared identifier
is reported only once
…/…/Source/portable/GCC/ARM7/portISR.c:126: error: for each function it appear
s in.)
…/…/Source/portable/GCC/ARM7/portISR.c:126: error: parse error before “portCHA
R”
…/…/Source/portable/GCC/ARM7/portISR.c:127: error: `VICVectAddr’ undeclared (f
irst use in this function)
…/…/Source/portable/GCC/ARM7/portISR.c:127: error: parse error before “portLON
G”
…/…/Source/portable/GCC/ARM7/portISR.c: In function `vPortExitCritical’:
…/…/Source/portable/GCC/ARM7/portISR.c:210: error: parse error before “portLON
G”
…/…/Source/portable/GCC/ARM7/portISR.c:217: error: parse error before “portLON
G”
…/…/Source/portable/GCC/ARM7/portISR.c: At top level:
…/…/Source/include/list.h:87: error: storage size of `xListEnd’ isn’t known
make: *** […/…/Source/portable/GCC/ARM7/portISR.o] Error 1

Thanks

rtel wrote on Saturday, March 19, 2005:

All these errors come from the first problem:

"arm-elf-gcc: GCC_ARM7: No such file or directory"
GCC_ARM7 is a definition that must be correctly defined for the correct headers to be included.

The first part of the command line you have posted is:
"arm-elf-gcc -c -Wall -D -D GCC_ARM7"

The "-D -D" is the cause of the problem.

The makefile is configured as:
"-D $(RUN_MODE) -D GCC_ARM7"

So it looks like you don’t have RUN_MODE defined.  RUN_MODE should be defined as either set RUN_MODE=RUN_FROM_ROM or RUN_MODE=RUN_FROM_RAM.

Are you using one of the supplied batch files to perform the build?  You should find 4 batch files in the build directory - ROM_THUM.bat, ROM_ARM.bat, RAM_THUMB.bat and RAM_ARM.bat.  These setup the environment correctly and perform the build.

Please read the port documentation on the FreeRTOS.org WEB site.  This describes the build environment.

Regards.