On 22/11/17 07:33, Sebastian Huber wrote:
I have absolutely no idea how you can end up in _ARMV7M_Thread_dispatch() with an unexpected interrupt level.

I think if you call an operating system service which leads to a thread dispatch in a NMI handler, then you could end up with this situation. You can test this with the following patch and run the spintrcritical10 test program.

diff --git a/c/src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c b/c/src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c
index 1c17a92cb5..f0ebe1506f 100644
--- a/c/src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c
+++ b/c/src/lib/libbsp/arm/shared/armv7m/clock/armv7m-clock-config.c
@@ -104,7 +104,7 @@ static void _ARMV7M_Systick_handler_install(void)
 {
   _ARMV7M_Set_exception_priority_and_handler(
     ARMV7M_VECTOR_SYSTICK,
-    BSP_ARMV7M_SYSTICK_PRIORITY,
+    1,
     _ARMV7M_Systick_handler
   );
 }

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to