From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28534 invoked by alias); 14 Mar 2007 08:55:49 -0000 Received: (qmail 28521 invoked by uid 22791); 14 Mar 2007 08:55:47 -0000 X-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_50,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from londo.lunn.ch (HELO londo.lunn.ch) (80.238.139.98) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 14 Mar 2007 08:55:42 +0000 Received: from lunn by londo.lunn.ch with local (Exim 3.36 #1 (Debian)) id 1HRPGi-0007u3-00; Wed, 14 Mar 2007 09:55:36 +0100 Date: Wed, 14 Mar 2007 08:55:00 -0000 To: khoffmann@mmm.com Cc: ecos-devel@ecos.sourceware.org Subject: Re: Scheduler problem with MPC855T port Message-ID: <20070314085536.GA29955@lunn.ch> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.13 (2006-08-11) From: Andrew Lunn X-IsSubscribed: yes Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org X-SW-Source: 2007-03/txt/msg00002.txt.bz2 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