Hello, I'm getting following error message:
compiling RTX_Config.c... C:\Keil\ARM\RV31\INC\RTX_lib.c(185): error: #29: expected an expression
I'm using Keil uVision V4.71.2.0 tools. C compier Armcc.Exe version v5.03.0.69
Is the error in filename RTX_Config.c, line number 185?
Remember that the convention among 'C' programmers is that symbols in ALL UPPERCASE are preprocessor macros.
So think how these preprocessor macros might expand:
#if( __ARM__ && __RTA_RTX_CONFIG )
Also, as previously mentioned, check for other syntax mistakes before that line...
Filename RTX_lib.c has the #if condition as follows:
#if (__ARM__ && __RTA_RTX_CONFIG) // error is "expected an expression"
Filename RTX_Config.c has the following definition:
#define __RTA_RTX_CONFIG
Now, this error makes sense. Since __RTA_RTX_CONFIG is empty, there is no expression. But I cannot understand how RTX_lib.c knows about __RTA_RTX_CONFIG because it's defined in a different .c file?
From your original post:
It looks like RTX_lib.c might be #included by RTX_Config.c ...?
It looks like RTX_lib.c might be #included by RTX_Config.c
Very likely. Keil have a habit of doing that with the extra packages of MDK professional.
At the end of RTX_Config.c, RTX_lib.c is included. I'm not used seeing files included at the end of a source file. I am only used to header files included at the beginning of source file.
THANK YOU SO MUCH FOR YOUR HELP!