Firstly, I will say that Thank really EAI's help.
Sencondly, i want to know where are they. where are the defination of variable. and i am confused with a function or a micro. Although The function are not compiled by cw compiler, The MQX RTOS use it to initialize kernal. I don't know how to work and compile.
In mqx_prv.h, on line 775. there is a macro that is #if MQX_USE_INLINE_MACROS. According to C language spec, Between #if MQX_USE_INLINE_MACROS and #endif that is on line 785, the compiler can't compiled.
However, the macro _QUEUE_INIT(queue,max) usually is called by many funtions. For example, in the file named mqx.c, there is a kernal function named _mqx_init_kernel_data_internal() on line 158. In the function, You will found a macro named PSP_MEM_STOREBLOCK_ALIGNMENT , it is not define in all files, But I don't know why designed by MQX RTOS. Is it initialize a zero for SP_MEM_STOREBLOCK_ALIGNMENT ?
My second problem is a function or a macro named _QUEUE_INIT(queue,max) in mqx_prv.h
on line 776.
Because of the defination of the macro between another macro, the macro named MQX_USE_INLINE_MACROS decide the _QUEUE_INIT(queue,max) to compile. But In the mqx_prv.h, MQX_USE_INLINE_MACROS is zero that is defined in file named small_ram_config.h on line 84.
According this case, The compiler can not compiled. But in fact, the psp project and bsp project may compiled successfully. At the same time, The macro named _QUEUE_INIT(queue,max) usually called by many functions in many file. Could you help me to explain the case?
Finally, Thank you for reading.