public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* Re: Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests
@ 2003-04-12 20:31 Matt Kober
  2003-04-12 22:24 ` Jonathan Larmour
  0 siblings, 1 reply; 4+ messages in thread
From: Matt Kober @ 2003-04-12 20:31 UTC (permalink / raw)
  To: JonathanLarmour; +Cc: ecos-discuss

[-- Attachment #1: Type: text/plain, Size: 1936 bytes --]

I enabled assertions and tracing and also disabled compiler optimisation.
Just for the fun of it i even tried the bitmap scheduler but without any better results 
though.the bin_sem0 test seems to complete correctly and "pass" is displayed but 
then the board crashes anyway. the same thing with mutex0, the others don't even 
get to display a friendly "pass" before the crash.
to me it looks like the problem is occuring in the idle task.
i'm kind of desperate, could you please have a look at the attached gdb log file ?

i really appreciate you help.

> This doesn't look promising: the common element in this appears to be 
> whether interrupts and/or the scheduler is running. When you say semaphore 
> /mutex tests pass, would I be right in guessing that in fact mutex0 passes 
> but mutex1/2/3 don't?
> 
> It's possible the target has broken at some point :-|... none of the core 
> eCos developers have access to e7t's any more I believe. On the plus side, 
> it's very unlikely
> 
> The first thing to try is enabling assertions, by enabling 
> CYGPKG_INFRA_DEBUG in the infra package. If that doesn't show anything, 
> try enabling tracing output by enabling tracing in the infra package, and 
> switch it to "fancy" from "buffered" mode, so that it outputs immediately 
> so you see where it stops.
> 
> Also try compiling without optimisation (i.e. remove -O2 from the 
> CYGBLD_GLOBAL_CFLAGS, do a make clean, and rebuild) to remove the 
> possibility of compiler optimisations.
> 
> Jifl
> -- 
> eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
> --[ "You can complain because roses have thorns, or you ]--
> --[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine
> 


______________________________________________________________________________
UNICEF bittet um Spenden fur die Kinder im Irak! Hier online an
UNICEF spenden: https://spenden.web.de/unicef/special/?mc=021101

[-- Attachment #2: log1.txt --]
[-- Type: text/plain, Size: 43468 bytes --]

GNU gdb 5.3 (eCosCentric)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-cygwin --target=arm-elf"...
(gdb) set remotebaud 38400
(gdb) target remote com1
Remote debugging using com1
0x018210a8 in ?? ()
(gdb) load
Loading section .rom_vectors, size 0x40 lma 0x10000
Loading section .text, size 0x28f2c lma 0x10040
Loading section .rodata, size 0x8968 lma 0x38f6c
Loading section .data, size 0x3d0 lma 0x418d4
Start address 0x10040, load size 203940
Transfer rate: 23645 bits/sec, 305 bytes/write.
(gdb) cont
Continuing.
TRACE: mlqueue.cxx         [  89] Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()                                         {{enter
TRACE: mlqueue.cxx         [ 110] Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation()                                         }}return void
TRACE: except.cxx          [  95] Cyg_Exception_Control::Cyg_Exception_Control()                                                       {{enter
TRACE: except.cxx          [ 107] Cyg_Exception_Control::Cyg_Exception_Control()                                                       }}return void
TRACE: clock.cxx           [  87] Cyg_Counter::Cyg_Counter()                                                                           {{enter
TRACE: clock.cxx           [  87] Cyg_Counter::Cyg_Counter()                                                                           }}RETURNING UNSET!
TRACE: clock.cxx           [ 435] Cyg_Clock::Cyg_Clock()                                                                               {{enter
TRACE: clock.cxx           [ 435] Cyg_Clock::Cyg_Clock()                                                                               }}RETURNING UNSET!
TRACE: intr.cxx            [  86] Cyg_Interrupt::Cyg_Interrupt()                                                                       {{enter
TRACE: intr.cxx            [  86] Cyg_Interrupt::Cyg_Interrupt()                                                                         ((vector=10, priority=1, data=000453b4, isr=0002a068, dsr=0002a0a4))
TRACE: intr.cxx            [ 109] Cyg_Interrupt::Cyg_Interrupt()                                                                       }}return void
TRACE: clock.cxx           [ 819] Cyg_RealTimeClock::Cyg_RealTimeClock()                                                               {{enter
TRACE: intr.cxx            [ 395] void Cyg_Interrupt::attach()                                                                           {{enter
TRACE: intr.cxx            [ 456] void Cyg_Interrupt::attach()                                                                           }}return void
TRACE: intr.cxx            [ 659] static void Cyg_Interrupt::unmask_interrupt()                                                          {{enter
TRACE: intr.cxx            [ 672] static void Cyg_Interrupt::unmask_interrupt()                                                          }}return void
TRACE: clock.cxx           [ 819] Cyg_RealTimeClock::Cyg_RealTimeClock()                                                               }}RETURNING UNSET!
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                     {{enter
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       ((sched_info=0000001f))
TRACE: mlqueue.cxx         [ 592] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                     }}return void
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                   {{enter
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                   }}RETURNING UNSET!
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                               {{enter
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                               }}RETURNING UNSET!
TRACE: thread.cxx          [ 200] Cyg_Thread::Cyg_Thread()                                                                             {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                   {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                     ((thread=00043188))
TRACE: mlqueue.cxx         [ 423] void Cyg_Scheduler_Implementation::register_thread()                                                   }}return void
TRACE: thread.cxx          [ 238] Cyg_Thread::Cyg_Thread()                                                                             }}return void
TRACE: thread.cxx          [1288] Cyg_IdleThread::Cyg_IdleThread()                                                                     {{enter
TRACE: thread.cxx          [ 611] void Cyg_Thread::resume()                                                                              {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                          {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                            ((thread=00043188))
TRACE: mlqueue.cxx         [ 263] void Cyg_Scheduler_Implementation::add_thread()                                                          }}return void
TRACE: thread.cxx          [ 642] void Cyg_Thread::resume()                                                                              }}return void
TRACE: thread.cxx          [1295] Cyg_IdleThread::Cyg_IdleThread()                                                                     }}return void
TRACE: mutex.cxx           [  92] Cyg_Mutex::Cyg_Mutex()                                                                               {{enter
TRACE: mutex.cxx           [ 130] Cyg_Mutex::Cyg_Mutex()                                                                               }}return void
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                     {{enter
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       ((sched_info=0000000a))
TRACE: mlqueue.cxx         [ 592] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                     }}return void
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                   {{enter
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                   }}RETURNING UNSET!
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                               {{enter
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                               }}RETURNING UNSET!
TRACE: thread.cxx          [ 200] Cyg_Thread::Cyg_Thread()                                                                             {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                   {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                     ((thread=00045310))
TRACE: mlqueue.cxx         [ 423] void Cyg_Scheduler_Implementation::register_thread()                                                   }}return void
TRACE: thread.cxx          [ 238] Cyg_Thread::Cyg_Thread()                                                                             }}return void
TRACE: cstartup.cxx        [  88] cyg_iso_c_start()                                                                                    {{enter
TRACE: cstartup.cxx        [  88] cyg_iso_c_start()                                                                                      (((void)))
TRACE: cstartup.cxx        [  92] void cyg_iso_c_start()                                                                                 'Resuming cyg_libc_main_thread'
TRACE: thread.cxx          [ 611] void Cyg_Thread::resume()                                                                              {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                          {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                            ((thread=00045310))
TRACE: mlqueue.cxx         [ 263] void Cyg_Scheduler_Implementation::add_thread()                                                          }}return void
TRACE: thread.cxx          [ 642] void Cyg_Thread::resume()                                                                              }}return void
TRACE: cstartup.cxx        [  95] cyg_iso_c_start()                                                                                    }}return void
TRACE: malloc.cxx          [ 122] malloc()                                                                                             {{enter
TRACE: malloc.cxx          [ 122] malloc()                                                                                               ((size=256 ))
TRACE: mempolt2.inl        [ 242] cyg_uint8* Cyg_Mempolt2<T>::try_alloc()                                                                {{enter
TRACE: mempolt2.inl        [ 384] cyg_bool Cyg_Mempolt2<T>::check_this()                                                                   {{enter
TRACE: mempolt2.inl        [ 384] cyg_bool Cyg_Mempolt2<T>::check_this()                                                                   }}RETURNING UNSET!
TRACE: mempolt2.inl        [ 384] cyg_bool Cyg_Mempolt2<T>::check_this()                                                                   {{enter
TRACE: mempolt2.inl        [ 384] cyg_bool Cyg_Mempolt2<T>::check_this()                                                                   }}RETURNING UNSET!
TRACE: mempolt2.inl        [ 242] cyg_uint8* Cyg_Mempolt2<T>::try_alloc()                                                                }}RETURNING UNSET!
TRACE: malloc.cxx          [ 147] malloc()                                                                                             }}returning pointer 00047ad0
TRACE: mutex.cxx           [  92] Cyg_Mutex::Cyg_Mutex()                                                                               {{enter
TRACE: mutex.cxx           [ 130] Cyg_Mutex::Cyg_Mutex()                                                                               }}return void
TRACE: startup.cxx         [  94] void cyg_start()                                                                                     {{enter
TRACE: startup.cxx         [  94] void cyg_start()                                                                                       (((void)))
TRACE: prestart.cxx        [  75] void cyg_prestart()                                                                                    {{enter
TRACE: prestart.cxx        [  75] void cyg_prestart()                                                                                      (((void)))
TRACE: prestart.cxx        [  78] void cyg_prestart()                                                                                      'This is the system default cyg_prestart()'
TRACE: prestart.cxx        [  82] void cyg_prestart()                                                                                    }}return void
TRACE: pkgstart.cxx        [  85] void cyg_package_start()                                                                               {{enter
TRACE: pkgstart.cxx        [  85] void cyg_package_start()                                                                                 (((void)))
TRACE: pkgstart.cxx        [  88] void cyg_package_start()                                                                                 'This is the system default cyg_package_start()'
TRACE: pkgstart.cxx        [  96] void cyg_package_start()                                                                               }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                             {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                             }}returning 1
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                             {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                             }}returning 1
Entering twothreads' cyg_user_start() function
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                               {{enter
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                               }}return void
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                               {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                              {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                           {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                           }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                              }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                               }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                             {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                             }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                               {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                              {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                           {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                           }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                              }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                               }}return void
TRACE: mutex.cxx           [  92] Cyg_Mutex::Cyg_Mutex()                                                                                 {{enter
TRACE: mutex.cxx           [ 130] Cyg_Mutex::Cyg_Mutex()                                                                                 }}return void
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       {{enter
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                         ((sched_info=00000004))
TRACE: mlqueue.cxx         [ 592] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       }}return void
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                     {{enter
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                     }}RETURNING UNSET!
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                                 {{enter
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                                 }}RETURNING UNSET!
TRACE: thread.cxx          [ 200] Cyg_Thread::Cyg_Thread()                                                                               {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                     {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                       ((thread=00047940))
TRACE: mlqueue.cxx         [ 423] void Cyg_Scheduler_Implementation::register_thread()                                                     }}return void
TRACE: thread.cxx          [ 238] Cyg_Thread::Cyg_Thread()                                                                               }}return void
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       {{enter
TRACE: mlqueue.cxx         [ 578] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                         ((sched_info=00000004))
TRACE: mlqueue.cxx         [ 592] Cyg_SchedThread_Implementation::Cyg_SchedThread_Implementation()                                       }}return void
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                     {{enter
TRACE: sched.cxx           [ 468] Cyg_SchedThread::Cyg_SchedThread()                                                                     }}RETURNING UNSET!
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                                 {{enter
TRACE: clock.cxx           [ 650] Cyg_Alarm::Cyg_Alarm()                                                                                 }}RETURNING UNSET!
TRACE: thread.cxx          [ 200] Cyg_Thread::Cyg_Thread()                                                                               {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                     {{enter
TRACE: mlqueue.cxx         [ 420] void Cyg_Scheduler_Implementation::register_thread()                                                       ((thread=000479e0))
TRACE: mlqueue.cxx         [ 423] void Cyg_Scheduler_Implementation::register_thread()                                                     }}return void
TRACE: thread.cxx          [ 238] Cyg_Thread::Cyg_Thread()                                                                               }}return void
TRACE: thread.cxx          [ 611] void Cyg_Thread::resume()                                                                              {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                          {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                            ((thread=00047940))
TRACE: mlqueue.cxx         [ 263] void Cyg_Scheduler_Implementation::add_thread()                                                          }}return void
TRACE: thread.cxx          [ 642] void Cyg_Thread::resume()                                                                              }}return void
TRACE: thread.cxx          [ 611] void Cyg_Thread::resume()                                                                              {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                          {{enter
TRACE: mlqueue.cxx         [ 202] void Cyg_Scheduler_Implementation::add_thread()                                                            ((thread=000479e0))
TRACE: mlqueue.cxx         [ 263] void Cyg_Scheduler_Implementation::add_thread()                                                          }}return void
TRACE: thread.cxx          [ 642] void Cyg_Thread::resume()                                                                              }}return void
TRACE: sched.cxx           [ 318] static void Cyg_Scheduler::start()                                                                     {{enter
TRACE: sched.cxx           [ 344] static void Cyg_Scheduler::start_cpu()                                                                   {{enter
TRACE: mlqueue.cxx         [ 119] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                       {{enter
TRACE: mlqueue.cxx         [ 192] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                       }}returning thread 00047940
TRACE: thread.cxx          [  87] static void Cyg_HardwareThread::thread_entry()                                                             {{enter
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                   {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                   }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                     {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                     }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                   {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                   }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                     {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                     }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                   {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                   }}returning 1
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                   {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                   }}returning 1
Beginning execution; thread data is 0
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                     {{enter
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                     }}return void
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                     {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                     }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                   {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                   }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                     {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                 }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                    }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                     }}return void
TRACE: thread.cxx          [ 976] void Cyg_Thread::delay()                                                                                     {{enter
TRACE: thread.cxx          [ 351] static void Cyg_Thread::sleep()                                                                                {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                  {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                    ((thread=00047940))
TRACE: mlqueue.cxx         [ 325] void Cyg_Scheduler_Implementation::rem_thread()                                                                  }}return void
TRACE: thread.cxx          [ 372] static void Cyg_Thread::sleep()                                                                                }}return void
TRACE: clock.cxx           [ 709] void Cyg_Alarm::initialize()                                                                                   {{enter
TRACE: clock.cxx           [ 277] void Cyg_Counter::add_alarm()                                                                                    {{enter
TRACE: clock.cxx           [ 277] void Cyg_Counter::add_alarm()                                                                                    }}RETURNING UNSET!
TRACE: clock.cxx           [ 709] void Cyg_Alarm::initialize()                                                                                   }}RETURNING UNSET!
TRACE: mlqueue.cxx         [ 119] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                           {{enter
TRACE: mlqueue.cxx         [ 192] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                           }}returning thread 000479e0
TRACE: thread.cxx          [  87] static void Cyg_HardwareThread::thread_entry()                                                                 {{enter
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                       {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                       }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                         {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                         }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                       {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                       }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                         {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                         }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                       {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                       }}returning 1
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                       {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                       }}returning 1
Beginning execution; thread data is 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                         {{enter
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                         }}return void
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                         {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                         }}return void
TRACE: mutex.cxx           [ 216] cyg_bool Cyg_Mutex::lock()                                                                                       {{enter
TRACE: mutex.cxx           [ 322] cyg_bool Cyg_Mutex::lock()                                                                                       }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                         {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                     }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                        }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                         }}return void
TRACE: thread.cxx          [ 976] void Cyg_Thread::delay()                                                                                         {{enter
TRACE: thread.cxx          [ 351] static void Cyg_Thread::sleep()                                                                                    {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                      {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                        ((thread=000479e0))
TRACE: mlqueue.cxx         [ 325] void Cyg_Scheduler_Implementation::rem_thread()                                                                      }}return void
TRACE: thread.cxx          [ 372] static void Cyg_Thread::sleep()                                                                                    }}return void
TRACE: clock.cxx           [ 709] void Cyg_Alarm::initialize()                                                                                       {{enter
TRACE: clock.cxx           [ 277] void Cyg_Counter::add_alarm()                                                                                        {{enter
TRACE: clock.cxx           [ 277] void Cyg_Counter::add_alarm()                                                                                        }}RETURNING UNSET!
TRACE: clock.cxx           [ 709] void Cyg_Alarm::initialize()                                                                                       }}RETURNING UNSET!
TRACE: mlqueue.cxx         [ 119] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                               {{enter
TRACE: mlqueue.cxx         [ 192] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                               }}returning thread 00045310
TRACE: thread.cxx          [  87] static void Cyg_HardwareThread::thread_entry()                                                                     {{enter
TRACE: invokemain.cxx      [ 101] cyg_libc_invoke_main()                                                                                               {{enter
TRACE: invokemain.cxx      [ 101] cyg_libc_invoke_main()                                                                                                 ((argument is ignored))
TRACE: main.cxx            [  88] main()                                                                                                                 {{enter
TRACE: main.cxx            [  88] main()                                                                                                                   ((argc=1, argv[0]=))
TRACE: main.cxx            [  97] int main()                                                                                                               'This is the system-supplied default main()'
TRACE: main.cxx            [ 108] main()                                                                                                                 }}returning 0
TRACE: invokemain.cxx      [ 116] void cyg_libc_invoke_main()                                                                                            'main() has returned with code 0. Calling exit()'
TRACE: exit.cxx            [  77] void exit()                                                                                                            {{enter
TRACE: exit.cxx            [  77] void exit()                                                                                                              ((status=0 ))
TRACE: atexit.cxx          [  87] cyg_libc_invoke_atexit_handlers()                                                                                        {{enter
TRACE: atexit.cxx          [  87] cyg_libc_invoke_atexit_handlers()                                                                                          (((void)))
TRACE: atexit.cxx          [ 106] cyg_libc_invoke_atexit_handlers()                                                                                        }}return void
TRACE: exit.cxx            [  93] void exit()                                                                                                              'Calling fflush( NULL )'
TRACE: mutex.cxx           [ 333] cyg_bool Cyg_Mutex::trylock()                                                                                            {{enter
TRACE: mutex.cxx           [ 372] cyg_bool Cyg_Mutex::trylock()                                                                                            }}returning 1
TRACE: mutex.cxx           [ 382] void Cyg_Mutex::unlock()                                                                                                 {{enter
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                                {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                             {{enter
TRACE: sched.cxx           [ 628] void Cyg_SchedThread::clear_inherited_priority()                                                                             }}RETURNING UNSET!
TRACE: sched.cxx           [ 705] void Cyg_SchedThread::disinherit_priority()                                                                                }}RETURNING UNSET!
TRACE: mutex.cxx           [ 447] void Cyg_Mutex::unlock()                                                                                                 }}return void
TRACE: _exit.cxx           [  80] void _exit()                                                                                                             {{enter
TRACE: _exit.cxx           [  80] void _exit()                                                                                                               ((status=0 ))
TRACE: thread.cxx          [ 750] static void Cyg_Thread::exit()                                                                                             {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                              {{enter
TRACE: mlqueue.cxx         [ 271] void Cyg_Scheduler_Implementation::rem_thread()                                                                                ((thread=00045310))
TRACE: mlqueue.cxx         [ 325] void Cyg_Scheduler_Implementation::rem_thread()                                                                              }}return void
TRACE: mlqueue.cxx         [ 119] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                                         {{enter
TRACE: mlqueue.cxx         [ 192] Cyg_Thread* Cyg_Scheduler_Implementation::schedule()                                                                         }}returning thread 00043188
TRACE: thread.cxx          [  87] static void Cyg_HardwareThread::thread_entry()                                                                               {{enter
TRACE: thread.cxx          [1239] void idle_thread_main()    

...then deadly silence ...                                                                                                     {{enter

[-- Attachment #3: Type: text/plain, Size: 146 bytes --]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests
  2003-04-12 20:31 Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests Matt Kober
@ 2003-04-12 22:24 ` Jonathan Larmour
  2003-04-13 12:28   ` Chris Garry
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Larmour @ 2003-04-12 22:24 UTC (permalink / raw)
  To: Matt Kober; +Cc: ecos-discuss

Matt Kober wrote:
> I enabled assertions and tracing and also disabled compiler optimisation.
> Just for the fun of it i even tried the bitmap scheduler but without any better results 
> though.the bin_sem0 test seems to complete correctly and "pass" is displayed but 
> then the board crashes anyway. the same thing with mutex0, the others don't even 
> get to display a friendly "pass" before the crash.
> to me it looks like the problem is occuring in the idle task.
> i'm kind of desperate, could you please have a look at the attached gdb log file ?

I've had a look, and (unfortunately) I can't see anything wrong. The 
threads start, delay and so on. What it seems to be is "simply" that the 
clock interrupt doesn't happen - I don't think it's anything to do with 
the idle thread itself as there's not meant to be anything in there. While 
it might be conceivable the idle thread stack could get overrun, it seems 
very unlikely given that there's only one interrupt to take.

The fact you can't ctrl-c it implies the serial interrupt doesn't work 
either; i.e. *no* interrupts work.

To debug it I'd suggest setting a breakpoint somewhere like 
cyg_idle_thread_main, and try and poke the processor state to find out 
what the status of global interrupts and individual interrupt masks is, as 
well as what eCos's interrupt structures point to for those interrupts.

Of course there's always the possibility of a hardware problem...

You should probably say what version or date of RedBoot you are using.

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests
  2003-04-12 22:24 ` Jonathan Larmour
@ 2003-04-13 12:28   ` Chris Garry
  2003-04-13 16:05     ` Jonathan Larmour
  0 siblings, 1 reply; 4+ messages in thread
From: Chris Garry @ 2003-04-13 12:28 UTC (permalink / raw)
  To: Jonathan Larmour, Matt Kober; +Cc: ecos-discuss

> > I enabled assertions and tracing and also disabled compiler optimisation.
> > Just for the fun of it i even tried the bitmap scheduler but without any better results 
> > though.the bin_sem0 test seems to complete correctly and "pass" is displayed but 
> > then the board crashes anyway. the same thing with mutex0, the others don't even 
> > get to display a friendly "pass" before the crash.
> > to me it looks like the problem is occuring in the idle task.
> > i'm kind of desperate, could you please have a look at the attached gdb log file ?
> 
> I've had a look, and (unfortunately) I can't see anything wrong. The 
> threads start, delay and so on. What it seems to be is "simply" that the 
> clock interrupt doesn't happen - I don't think it's anything to do with 
> the idle thread itself as there's not meant to be anything in there. While 
> it might be conceivable the idle thread stack could get overrun, it seems 
> very unlikely given that there's only one interrupt to take.
> 
> The fact you can't ctrl-c it implies the serial interrupt doesn't work 
> either; i.e. *no* interrupts work.
> 
> To debug it I'd suggest setting a breakpoint somewhere like 
> cyg_idle_thread_main, and try and poke the processor state to find out 
> what the status of global interrupts and individual interrupt masks is, as 
> well as what eCos's interrupt structures point to for those interrupts.
> 
> Of course there's always the possibility of a hardware problem...
> 
> You should probably say what version or date of RedBoot you are using.
> 

I ran the mutex tests (mutex0, mutex1, mutex2 and mutex3) on my e7t
using the first the 2.0b1 code and then the latest CVS code and they
all passed fine.

The RedBoot I used was built using the 2.0b1 code.  One point to note
is that my sources have been slightly modified to use 32M of SDRAM
on a daughter board instead of the E7T's 512K of SRAM - but I don't
think this should make any difference.

If nobody has alraedy done this, I will run the tests as described at
http://sources.redhat.com/ecos/testing.html using unmodified 2.0b1
code on my E7T. However I think the 'default' template will have to
be used instead of the 'all' template in order to fit in the 512K of
SRAM.

--
Chris

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests
  2003-04-13 12:28   ` Chris Garry
@ 2003-04-13 16:05     ` Jonathan Larmour
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Larmour @ 2003-04-13 16:05 UTC (permalink / raw)
  To: Chris Garry; +Cc: Matt Kober, ecos-discuss

Chris Garry wrote:
>>
>>Of course there's always the possibility of a hardware problem...
>>
>>You should probably say what version or date of RedBoot you are using.
>>
> 
> 
> I ran the mutex tests (mutex0, mutex1, mutex2 and mutex3) on my e7t
> using the first the 2.0b1 code and then the latest CVS code and they
> all passed fine.
> 
> The RedBoot I used was built using the 2.0b1 code.  One point to note
> is that my sources have been slightly modified to use 32M of SDRAM
> on a daughter board instead of the E7T's 512K of SRAM - but I don't
> think this should make any difference.

Agreed - I wouldn't have thought so given the symptoms.

> If nobody has alraedy done this, I will run the tests as described at
> http://sources.redhat.com/ecos/testing.html using unmodified 2.0b1
> code on my E7T. However I think the 'default' template will have to
> be used instead of the 'all' template in order to fit in the 512K of
> SRAM.

That might be good since your positive results make me think it may be 
Matt's hardware. Besides, testing for e7t for the beta is good anyway!

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-04-13 16:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-12 20:31 Re: [ECOS] arm evaluator e7t hangs when executing example progs/tests Matt Kober
2003-04-12 22:24 ` Jonathan Larmour
2003-04-13 12:28   ` Chris Garry
2003-04-13 16:05     ` Jonathan Larmour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).