This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: e7t crash
- From: Gary Thomas <gary at chez-thomas dot org>
- To: Vinayak P Risbud <vinayak at multitech dot co dot in>
- Cc: eCos Discussion <ecos-discuss at sources dot redhat dot com>
- Date: 03 Jul 2002 06:44:57 -0600
- Subject: Re: [ECOS] e7t crash
- References: <3D22BA05.4DDE8422@multitech.co.in>
On Wed, 2002-07-03 at 02:47, Vinayak P Risbud wrote:
> Hi,
>
> I am working on ARM e7t. I am trying to read characters from
> serial port in blocking mode. But my system is crashing.
> The trace dump as follows...
>
> ASSERT FAIL: <1>mlqueue.cxx [ 286] void
> Cyg_Scheduler_Implementation::re
> m_thread() Idle
> thread tryi
> ng to sleep!
> TRACE: <1>mutex.cxx [ 81] Cyg_Mutex::Cyg_Mutex()
> {{enter
> TRACE: <1>mutex.cxx [ 119] Cyg_Mutex::Cyg_Mutex()
> }}return void
> TRACE: <1>strcpy.cxx [ 69] __strcpy()
> {{enter
> TRACE: <1>strcpy.cxx [ 69] __strcpy()
>
> ((s1=0003cd04, s2=00
> 03cbfc))
> TRACE: <1>strcpy.cxx [ 117] __strcpy()
> }}returning
> addr 0003c
> d04
> TRACE: <1>strlen.cxx [ 71] __strlen()
> {{enter
> TRACE: <1>strlen.cxx [ 71] __strlen()
>
> ((s=0003cbfc))
> TRACE: <1>strlen.cxx [ 118] __strlen()
> }}returning
> length 6
> TRACE: <1>strlen.cxx [ 71] __strlen()
> {{enter
> TRACE: <1>strlen.cxx [ 71] __strlen()
>
> ((s=0003cbfc))
> TRACE: <1>strlen.cxx [ 118] __strlen()
> }}returning
> length 3
> TRACE: <1>strlen.cxx [ 71] __strlen()
> {{enter
> TRACE: <1>strlen.cxx [ 71] __strlen()
>
> ((s=0002eafc))
> TRACE: <1>strlen.cxx [ 118] __strlen()
> }}returning
> length 3
> TRACE: <1>strlen.cxx [ 71] __strlen()
> {{enter
> TRACE: <1>strlen.cxx [ 71] __strlen()
>
> ((s=00039cd0))
> TRACE: <1>strlen.cxx [ 118] __strlen()
> }}returning
> length 16
> TRACE: <1>mutex.cxx [ 205] cyg_bool Cyg_Mutex::lock()
> {{enter
> TRACE: <1>mutex.cxx [ 309] cyg_bool Cyg_Mutex::lock()
> }}returning 1
> TRACE: <1>mutex.cxx [ 604] cyg_bool
> Cyg_Condition_Variable::wait_inner
> () {{enter
> TRACE: <1>mutex.cxx [ 565] cyg_bool
> Cyg_Condition_Variable::check_this
> () {{enter
> TRACE: <1>mutex.cxx [ 565] cyg_bool
> Cyg_Condition_Variable::check_this
> () ((zeal =
> 2))
> TRACE: <1>mutex.cxx [ 588] cyg_bool
> Cyg_Condition_Variable::check_this
> () }}returning
> 1
> TRACE: <1>mutex.cxx [ 368] void Cyg_Mutex::unlock()
> {{enter
> TRACE: <1>sched.cxx [ 704] void
> Cyg_SchedThread::disinherit_priority()
> {{enter
> TRACE: <1>sched.cxx [ 627] void
> Cyg_SchedThread::clear_inherited_prior
> ity() {{enter
> TRACE: <1>sched.cxx [ 627] void
> Cyg_SchedThread::clear_inherited_prior
> ity()
> }}RETURNING UNSE
> T!
> TRACE: <1>sched.cxx [ 704] void
> Cyg_SchedThread::disinherit_priority()
>
> }}RETURNING UNSET!
>
> TRACE: <1>mutex.cxx [ 432] void Cyg_Mutex::unlock()
> }}return
> void
> TRACE: <1>thread.cxx [ 339] static void Cyg_Thread::sleep()
> {{enter
> TRACE: <1>mlqueue.cxx [ 276] void
> Cyg_Scheduler_Implementation::rem_thre
> ad() {{enter
> TRACE: <1>mlqueue.cxx [ 276] void
> Cyg_Scheduler_Implementation::rem_thre
> ad()
> ((thread=000403a
> c))
>
> Scheduler:
>
> Lock: 4
> Current Thread: Idle Thread
>
> Threads:
>
> Idle Thread pri = 31 state = R id = 1
> stack base = 0004044c ptr = 00040bd4 size =
> 00000800
> sleep reason WAIT wake reason NONE
> queue = 00000000 wait info = 00000000
>
> Can any one tell me what could be the reason ?
Without some more real information, it would only be a guess.
My best guess is that you have an ISR or DSR which is trying to
"take" a mutex.
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss