[ECOS] updated to new eCos version, asserts when first thread is resumed

Nathan French nathan.french@onrampwireless.com
Thu Mar 17 08:50:00 GMT 2011


We just updated from eCos (pro) 2.0.91 to 3.0.9.1.  What I'm seeing is
that during cyg_user_start(), as soon as we create a thread and
cyg_thread_resume() it the kernel asserts in
Cyg_Scheduler_Implementation::add_thread().

The assert it is hitting is "Idle thread vanished!!!" but I believe it
is due to the queue_map member of the scheduler not being initialized
(it's a null pointer).  I'm admittedly a little confused as to how
exactly the kernel starts up and constructs the scheduler.

After some googling I became confused about whether I needed to call
cyg_scheduler_start() and if so, where.  I tried calling this prior to
resuming the thread but it failed in a very similar way (different
assert, but same root cause).  I don't believe there is anything wrong
with our application code but thought perhaps we had been doing
something wrong all along and the newer eCos version enforces something
now... but I haven't found any evidence of that.

Any ideas?  Thanks in advance.

N.F.


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