GNUARM tools
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 SettingsMy documentssFreeRTOSv2.6.1FreeRTOSDemoARM7_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
GNUARM tools
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.