This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
kernel tests intr0/kintr0 patch
- From: Sergei Gavrikov <sg at belvok dot com>
- To: eCos patches list <ecos-patches at ecos dot sourceware dot org>
- Date: Thu, 21 Aug 2008 15:28:12 +0300
- Subject: kernel tests intr0/kintr0 patch
Hello
On some platforms (lpc2xxx, for example) kernel tests: kintr0, intr0
failed on cyg_interrupt_configure(), because a call tries configure
non-external interrupt. Entered HAL HAL_INTR_TEST_EINT_NUM gives a
chance to override cyg_interrupt_configure's argument. Same definition
was entered in LPC2XXX variant HAL.
Sergei
Index: hal/arm/lpc2xxx/var/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/lpc2xxx/var/current/ChangeLog,v
retrieving revision 1.9
diff -u -r1.9 ChangeLog
--- hal/arm/lpc2xxx/var/current/ChangeLog 22 Jul 2008 18:52:16 -0000 1.9
+++ hal/arm/lpc2xxx/var/current/ChangeLog 21 Aug 2008 12:06:00 -0000
@@ -1,3 +1,8 @@
+2008-08-21 Sergei Gavrikov <sg@belvok.com>
+
+ * include/hal_var_ints.h: Added HAL_INTR_TEST_EINT_NUM for kernel
+ tests intr0/kintr0.
+
2008-07-21 Uwe Kindler <uwe_kindler@web.de>
* cdl/hal_arm_lpc2xxx.cdl: Added option
Index: hal/arm/lpc2xxx/var/current/include/hal_var_ints.h
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/lpc2xxx/var/current/include/hal_var_ints.h,v
retrieving revision 1.3
diff -u -r1.3 hal_var_ints.h
--- hal/arm/lpc2xxx/var/current/include/hal_var_ints.h 15 Sep 2007 14:43:22 -0000 1.3
+++ hal/arm/lpc2xxx/var/current/include/hal_var_ints.h 21 Aug 2008 12:06:00 -0000
@@ -100,6 +100,9 @@
#define HAL_INTR_TEST_PRIO_B 16
#define HAL_INTR_TEST_PRIO_C 16
+/* use external interrupt 0 in kernel tests intr0/kintr0 */
+#define HAL_INTR_TEST_EINT_NUM CYGNUM_HAL_INTERRUPT_EINT0
+
//The vector used by the Real time clock
#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER0
Index: kernel/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/kernel/current/ChangeLog,v
retrieving revision 1.144
diff -u -r1.144 ChangeLog
--- kernel/current/ChangeLog 15 Sep 2007 14:42:39 -0000 1.144
+++ kernel/current/ChangeLog 21 Aug 2008 12:06:23 -0000
@@ -1,3 +1,9 @@
+2008-08-21 Sergei Gavrikov <sg@belvok.com>
+ * tests/intr0.cxx, tests/kintr0.c: cyg_interrupt_configure() uses
+ itself to configure external interrupts, it's agrument, v1, can be
+ overriden by HAL through HAL_INTR_TEST_EINT_NUM.
+
+ *
2007-08-23 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
* tests/intr0.cxx, tests/kintr0.c: As suggested by Bart Veer,
Index: kernel/current/tests/intr0.cxx
===================================================================
RCS file: /cvs/ecos/ecos/packages/kernel/current/tests/intr0.cxx,v
retrieving revision 1.14
diff -u -r1.14 intr0.cxx
--- kernel/current/tests/intr0.cxx 15 Sep 2007 14:42:40 -0000 1.14
+++ kernel/current/tests/intr0.cxx 21 Aug 2008 12:06:23 -0000
@@ -78,6 +78,12 @@
# define PRIO_C 1
#endif
+#ifdef HAL_INTR_TEST_EINT_NUM
+# define EINT_NUM HAL_INTR_TEST_EINT_NUM
+#else
+# define EINT_NUM (CYGNUM_HAL_ISR_MIN + ( 6 % CYGNUM_HAL_ISR_COUNT))
+#endif
+
static cyg_ISR isr0, isr1;
static cyg_DSR dsr0, dsr1;
@@ -208,7 +214,7 @@
v1 = 12 % CYGNUM_HAL_ISR_COUNT;
else /* NOTE TRAILING ELSE... */
#endif
- v1 = CYGNUM_HAL_ISR_MIN + (6 % CYGNUM_HAL_ISR_COUNT);
+ v1 = EINT_NUM;
Cyg_Interrupt::mask_interrupt(v1);
Cyg_Interrupt::unmask_interrupt(v1);
Index: kernel/current/tests/kintr0.c
===================================================================
RCS file: /cvs/ecos/ecos/packages/kernel/current/tests/kintr0.c,v
retrieving revision 1.13
diff -u -r1.13 kintr0.c
--- kernel/current/tests/kintr0.c 15 Sep 2007 14:42:40 -0000 1.13
+++ kernel/current/tests/kintr0.c 21 Aug 2008 12:06:23 -0000
@@ -79,6 +79,12 @@
# define PRIO_C 1
#endif
+#ifdef HAL_INTR_TEST_EINT_NUM
+# define EINT_NUM HAL_INTR_TEST_EINT_NUM
+#else
+# define EINT_NUM (CYGNUM_HAL_ISR_MIN + ( 6 % CYGNUM_HAL_ISR_COUNT))
+#endif
+
static cyg_interrupt intr_obj[2];
static cyg_handle_t intr0, intr1;
@@ -165,7 +171,7 @@
v1 = 12 % CYGNUM_HAL_ISR_COUNT;
else /* NOTE TRAILING ELSE... */
#endif
- v1 = CYGNUM_HAL_ISR_MIN + ( 6 % CYGNUM_HAL_ISR_COUNT);
+ v1 = EINT_NUM;
CHECK(flash());
CHECK(flash());