I’ve installed the arm-elf toolchain on my MAC OS X machine following these instructions: http://www.ethernut.de/en/documents/cross-toolchain-osx.html
I’m able to compile and I’ve checked the compiled file runs on my microcontroller.
While compiling freeRTOS for the LPC2000 port, first of I get way more warnings than what I used to get when I compiled for the VC++ port. Most of the warnings are generated from the port, thus as somehow dependent on the toolchain.
Here’s a subset of the warnings I get:
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portmacro.h:108:1: warning: multi-line comment
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portmacro.h:146:1: warning: multi-line comment
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c: In function ‘vPortISRStartFirstTask’:
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:120: warning: no previous prototype for ‘swi_handler’
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:120: warning: declaration of ‘swi_handler’ shadows a global declaration
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:94: warning: shadowed declaration is here
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c: In function ‘swi_handler’:
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:140: warning: nested extern declaration of ‘vTickISR’
However I get critical errors:
- For example, I had to modify the prototype declaration of pxCurrentTCB in portmacro.h, which did not seem to match the declaration in tasks.c. - I’ve fixed this issue, I believe.
- I get this error I can’t seem to fix:
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:142: error: static declaration of ‘vTickISR’ follows non-static declaration
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c:140: error: previous declaration of ‘vTickISR’ was here
and here is what portISR.c looks like between line 140 and 142 (this code is unchanged from the downloaded version):
void vTickISR( void ) __attribute__((naked));
void vTickISR( void )
So considering I wasn’t expecting so many warnings, and these errors, I am thinking I don’t have the appropriate compiler options (I use a make file that was initially written for winARM).
Any help fixing this error, and cleaning up a bit the warnings would be appreciated.