[ECOS] context for creating interrupts on edb7312

Gary Thomas gary@mlbassoc.com
Thu Nov 20 14:35:00 GMT 2003


On Thu, 2003-11-20 at 07:25, Aaron Case wrote:
> > Look at the timer test I just committed:
> >   hal/powerpc/mpc8xxx/current/tests/mpc8xxx_timer.c
> > It creates, attaches, etc, an interrupt during cyg_user_start()
> > and then tests that it works.  It does work fine, BTW.
> >
> > How is this example different from what you are trying to do?
> >
> 
> The only real difference is the main_thread.
> 
> What mechanisms start the scheduler in the default eCos package? I cant seem
> to get interrupts to work without a explicit call to start the scheduler,
> but I know when I include the main thread(by calling cyg_thread_create and
> cyg_thread_resume) the scheduler starts.
> 
> So in an effort to better understand eCos(not to try to run a rtos without a
> scheduler) what could indirectly start the scheduler(other than your call to
> cyg_scheduler_start)?  It seems to start on its own with thread
> initialization on my system.

It happens automatically in "cyg_start()", so my test runs just as well
even if I make this change:

Index: hal/powerpc/mpc8xxx/current/tests/mpc8xxx_timer.c
===================================================================
RCS file:
/home/gthomas/my_cvs/develop/ecos/packages/hal/powerpc/mpc8xxx/current/tests/mpc8xxx_timer.c,v
retrieving revision 1.1
diff -u -5 -p -r1.1 mpc8xxx_timer.c
--- hal/powerpc/mpc8xxx/current/tests/mpc8xxx_timer.c   20 Nov 2003
14:21:54 -0000      1.1
+++ hal/powerpc/mpc8xxx/current/tests/mpc8xxx_timer.c   20 Nov 2003
14:29:39 -0000
@@ -149,12 +149,12 @@ cyg_user_start( void )
     IMM->cpm_timers_trr1 = 0x2000;  // Reference value 
     IMM->cpm_timers_tcn1 = 0;
     IMM->cpm_timers_ter[0] = 0xFF;
     IMM->cpm_timers_tgcr1 = _TC_TGCR_RST1;  // Reset & enable timer1
 
-    cyg_scheduler_start();
-    CYG_TEST_PASS("mpc8xxx_timer");
+//    cyg_scheduler_start();
+//    CYG_TEST_PASS("mpc8xxx_timer");
 }
 
 //
-------------------------------------------------------------------------
 
 #else  // ! CYGPKG_KERNEL

Are you overriding "cyg_start()"?  That's the place that the scheduler
is normally started (although many of our tests do it explicitly)

-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


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



More information about the Ecos-discuss mailing list