This is the mail archive of the ecos-devel@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Scheduler problem with MPC855T port


On Wed, Mar 14, 2007 at 09:06:06AM +0100, khoffmann@mmm.com wrote:
> 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?


Timer tick. Run some of the kernel timer tests. I expect they will all
fail because your timer is not ticking.

     Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]