[ECOS] Map and queue disagree

Leandro Fanzone leandro@hasar.com
Tue Nov 30 20:20:00 GMT 2004


Sorry: my mistake. I was unknowingly signaling a semaphore from within 
an ISR :(
Thank you, in any case.

Leandro.

sandeep wrote:

> Leandro Fanzone wrote:
>
>> I'm using eCos 2.0 i386 with multilevel queue scheduler, 32 priority 
>> levels, and scheduler timeslicing reduced to 1 tick. From time to 
>> time I have a random "rem_thread() Map and queue disagree". Any ideas 
>> on what can be happening?
>
>
> try replacing
>
> CYG_ASSERT( ((queue_map & (1<<pri))!=0) == 
> ((!run_queue[pri].empty())!=0), "Map and queue disagree");
>
> in rem_thread (mlqueue.cxx), by (please check out the bracketing)
>
> if (! ( ((queue_map & (1<<pri))!=0) == ((!run_queue[pri].empty())!=0) 
> ) ) {
>   CYG_ASSERT(0,"Map and queue disagree");
> }
>
> put a breakpoint INSIDE if, at CYG_ASSERT, whenever execution reaches 
> that figure out the value/state of queue_map, pri and run_queue[pri] .
>
> based on what you observe, work backwards to generate more hints for 
> your situation.
>
> i am assuming - false is 0 in your case and there is no code 
> generation issue.
>
> sandeep
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
>
>

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list