Unable to create TX buffer recovery queue
Joel Sherrill
joel.sherrill at oarcorp.com
Wed Jun 6 13:38:09 UTC 2007
Amalaye Oyake wrote:
> Setting MANAGERS=all may be one step but don't some of the
>
> #define CONFIGURE_MAXIMUM_XYZs have default values of 0?
>
> I may need to assign some values to these perhaps?
>
>
Definitely if the driver is allocating an RTEMS message queue.
You have to account for it.
CONFIGURE_MAXIMUM_MESSAGE_QUEUES
and you need to account for the message buffer memory. In 4.7
and older, you use CONFIGURE_MEMORY_OVERHEAD
which is the number of extra KB (not bytes) you want for message
buffers.
In CVS, I added CONFIGURE_MESSAGE_BUFFER_MEMORY
to account for this. When a CVS RTEMS, you shouldn't have
to use CONFIGURE_MEMORY_OVERHEAD unless something
is broken in confdefs.h or you are just being sloppy guessing on
message buffers and task stacks.
--joel
> -AO
>
> -----Original Message-----
> From: Daron Chabot [mailto:djc915 at mail.usask.ca]
> Sent: Tuesday, June 05, 2007 5:11 PM
> To: Amalaye Oyake
> Cc: RTEMS
> Subject: Re: Unable to create TX buffer recovery queue
>
>
> On 5-Jun-07, at 5:21 PM, Amalaye Oyake wrote:
>
>
>> Hello,
>>
>> I am using RTEMS on a i386 system (a 400Mhz Pentium II with 128MB
>> of RAM).
>> The NIC is a 3C905B (3COM Card) ... RTEMS finds the NIC, does a
>> timer setup,
>> identifies the media and says unit elnk1 driver attached.
>>
>> Then it says
>>
>> RTEMS: etherlink : Unable to create TX Buffer recovery queue
>> RTEMS: fatal error, exiting
>>
>> What do the above errors mean? How can I fix this?
>>
>
> Have a look at the driver source, elnk.c, line 3525:
>
> if (txDaemonTid == 0)
> {
> if( rtems_message_queue_create( rtems_build_name
> ('X','L','c','r'),
> sc->numTxbuffers+1,
> sizeof(struct TXMD *),
> RTEMS_FIFO | RTEMS_LOCAL,
> &chainRecoveryQueue ) !=
> RTEMS_SUCCESSFUL )
> {
> rtems_panic( "etherlink : Unable to create TX buffer
> recovery queue\n" );
> }
>
> ...
>
> i.e. the directive, rtems_message_queue_create( ), is failing...
>
> I'm going to guess that you haven't included the Message Manager in
> your application's Makefile. If memory is not an issue (and 128 MB is
> *lots* to play with...), just set the "Managers" variable to "all":
>
> i.e. in your Makefile set
> MANAGERS=all
>
> That will circumvent several obscure "gotchyaz"...
>
>
> -- dc
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.com
> http://rtems.rtems.org/mailman/listinfo/rtems-users
>
More information about the users
mailing list