AnsweredAssumed Answered

Where are they?

Question asked by Yu TianYu on Jun 22, 2009
Latest reply on Jun 24, 2009 by Yu TianYu

hello,everyone

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.
Fish_Yu

Message Edited by fish_yu on 2009-06-22 10:01 PM

Outcomes