About workspace size

Joel Sherrill joel.sherrill at oarcorp.com
Tue May 29 14:06:20 UTC 2007


WuHao wrote:
> Hi:
> The macro "CONFIGURE_EXECUTIVE_RAM_SIZE" seems not include the work
> space for *MESSAGE QUEUE BUFFER* and *Thread Ready Chain.
>
>   
This isn't nearly as properly derived as it should be but it accounts 
for the
memory for ready chains.

#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \
  ( CONFIGURE_MEMORY_FOR_TASKS(1) +    /* IDLE */ \
    (256 * 12) +                       /* Ready chains */ \
    256        +                       /* name/ptr table overhead */ \
    CONFIGURE_INTERRUPT_STACK_MEMORY + /* interrupt stack */ \
    CONFIGURE_API_MUTEX_MEMORY         /* allocation mutex */ \
  )


> *In function "/_CORE_message_queue_Initialize/",the function
> "/_Workspace_Allocate/" is called with specified
> maximum_pending_messages and maximum_message_size.
> Also in function "/_Thread_Handler_initialization/",space for
> /_Thread_Ready_chain/ is allocated according to the macro /PRIORITY_MAXIMUM.
> /But the configuration does not inculde these two parts.
> What's your opinion?
>   
In 4.7 and older the user had to add memory for message buffers using
CONFIGURE_MEMORY_OVERHEAD. 

I recently added CONFIGURE_MESSAGE_BUFFER_MEMORY to
more explicitly account for message buffer memory.

The ready chains require 3K of memory from the workspace.  If this
wasn't accounted for, nothing would run. :)

--joel
> Thanks.
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>   




More information about the users mailing list