This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
Scheduler problem with MPC855T port
- From: khoffmann at mmm dot com
- To: ecos-devel at ecos dot sourceware dot org
- Date: Wed, 14 Mar 2007 09:06:06 +0100
- Subject: Scheduler problem with MPC855T port
Hello everybody,
I've got a problem with my attempts to port eCos to our MPC855T board:
I started with the FADS template (which I now know, was not the best idea)
and got so far that I can access my RAM, my FLASH, the UARTs and the FEC
(at least I can see the DHCP requests on the net).
When I compile the 'twothreads' example, I can find a bunch of threads in
the internal threadlist, obviously everything fine, some 'SLEEPING', some
'RUNNING'.
But after each thread has run once, the processor is only looping throug
the main_idle_thread() and it's doing nothing else. The trace issues the
following a short time before the endless 'loop' (where the 'loop' is
probably triggered by an external interrupt).
TRACE: <2>[447]void Cyg_Mutex::unlock() return void
TRACE: <2>[709]void Cyg_Alarm::initialize() enter
TRACE: <2>[277]void Cyg_Counter::add_alarm() enter
TRACE: <2>[277]void Cyg_Counter::add_alarm() RETURNING UNSET!
TRACE: <2>[709]void Cyg_Alarm::initialize() RETURNING UNSET!
TRACE: <2>[351]static void Cyg_Thread::sleep() enter
TRACE: <2>[271]void Cyg_Scheduler_Implementation::rem_thread() enter
TRACE: <2>[271]void Cyg_Scheduler_Implementation::rem_thread()
thread=0045de10
TRACE: <2>[325]void Cyg_Scheduler_Implementation::rem_thread() return void
TRACE: <2>[372]static void Cyg_Thread::sleep() return void
TRACE: <2>[741]void Cyg_ThreadQueue_Implementation::enqueue() enter
TRACE: <2>[741]void Cyg_ThreadQueue_Implementation::enqueue()
thread=0045de10
TRACE: <2>[818]void Cyg_ThreadQueue_Implementation::enqueue() return void
TRACE: <2>[119]Cyg_Thread* Cyg_Scheduler_Implementation::schedule() enter
TRACE: <2>[192]Cyg_Thread* Cyg_Scheduler_Implementation::schedule()
returning thread 00419070
TRACE: <2>[87]static void Cyg_HardwareThread::thread_entry() enter
TRACE: <1>[1239]void idle_thread_main() enter
TBSCR 0001, vec 15: sivec 3c000000, simask 10010000, sipend 40020000
TBSCR 0001, vec 15: sivec 3c000000, simask 10010000, sipend 40020000
TBSCR 0001, vec 15: sivec 3c000000, simask 10010000, sipend 40000000
TBSCR 0001, vec 15: sivec 3c000000, simask 10010000, sipend 40020000
TBSCR 0001, vec 15: sivec 3c000000, simask 10010000, sipend 40000000
... ad infinitum ...
I probably missed something, but what?
Any help is appreciated!
With kind regards,
Karsten Hoffmann
--
3M Deutschland GmbH
Telecommunications
Carl-Schurz-Straße 1
D-41453 Neuss
Tel: +49-2131-14 58 73
Fax: +49-2131-14 12 58 73