This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: context for creating interrupts on edb7312
- From: Gary Thomas <gary at mlbassoc dot com>
- To: Aaron Case <aaron dot case at dynazign dot com>
- Cc: Ecos-Discuss <ecos-discuss at sources dot redhat dot com>
- Date: 20 Nov 2003 07:35:16 -0700
- Subject: RE: [ECOS] context for creating interrupts on edb7312
- Organization: MLB Associates
- References: <GBEOKKOEOGFDMKDFCHIMAENNCAAA.aaron.case@dynazign.com>
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