GCC port for LPC23xxx and SWI

wella wrote on Wednesday, November 18, 2009:

I am trying to compile(gcc version 4.4.1 Sourcery G++ 4.4-70, FreeRTOS v6.0.0) a project for lpc2478. However the compiler stops a produces error:
c:\Temp\ccmcATSa.s:1734: Error: missing expression - `swi’.
As I know, swi instruction should take one number parameter. If I replace #define portYIELD() __asm volatile ( “SWI” ) with #define portYIELD() __asm volatile ( “SWI 0” ), all is ok.
Could you help me what I am doing wrong?
Thank you.

davedoors wrote on Wednesday, November 18, 2009:

You are not doing anything wrong, its just that some assemblers have pseudo instructions while others don’t.  “SWI 0” is the complete and right syntax, but some assemblers will allow just SWI without the 0 and default the parameter to 0 for you.