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