diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-01-10 16:21:27 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2009-01-10 16:21:27 +0000 |
commit | e2b6b440e12562804f161d8db677554bbd666bd1 (patch) | |
tree | 71ceaeec75f2ecf2d1ab601414cb4190f3f44ca0 /demos | |
parent | b7eba42be8e04a6a9cbade60d5ae0190fd34efae (diff) | |
download | ChibiOS-e2b6b440e12562804f161d8db677554bbd666bd1.tar.gz ChibiOS-e2b6b440e12562804f161d8db677554bbd666bd1.tar.bz2 ChibiOS-e2b6b440e12562804f161d8db677554bbd666bd1.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@612 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos')
25 files changed, 124 insertions, 58 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile b/demos/ARM7-AT91SAM7X-GCC/Makefile index dbdca2c31..7d22aa586 100644 --- a/demos/ARM7-AT91SAM7X-GCC/Makefile +++ b/demos/ARM7-AT91SAM7X-GCC/Makefile @@ -83,7 +83,7 @@ ASRC = ../../ports/ARM7-AT91SAM7X/chcore.c \ TSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-AT91SAM7X/vectors.s
# List all user directories here
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb b/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb index 3013eeb95..922113f45 100644 --- a/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb +++ b/demos/ARM7-AT91SAM7X-GCC/Makefile.thumb @@ -83,7 +83,7 @@ TSRC = ../../ports/ARM7-AT91SAM7X/chcore.c \ board.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-AT91SAM7X/vectors.s
# List all user directories here
diff --git a/demos/ARM7-AT91SAM7X-GCC/board.c b/demos/ARM7-AT91SAM7X-GCC/board.c index 8a4b7c4ea..2329b0080 100644 --- a/demos/ARM7-AT91SAM7X-GCC/board.c +++ b/demos/ARM7-AT91SAM7X-GCC/board.c @@ -26,31 +26,31 @@ extern void FiqHandler(void);
-__attribute__((naked))
-static void SpuriousHandler(void) {
+CH_IRQ_HANDLER static void SpuriousHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
AT91C_BASE_AIC->AIC_EOICR = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
* SYS IRQ handling here.
*/
-__attribute__((naked))
-static void SYSIrqHandler(void) {
+CH_IRQ_HANDLER static void SYSIrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
if (AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS) {
(void) AT91C_BASE_PITC->PITC_PIVR;
+ chSysLockI();
chSysTimerHandlerI();
+ chSysUnlockI();
}
AT91C_BASE_AIC->AIC_EOICR = 0; \
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/ARM7-AT91SAM7X-GCC/chconf.h b/demos/ARM7-AT91SAM7X-GCC/chconf.h index f8302116d..c1b6d8c5a 100644 --- a/demos/ARM7-AT91SAM7X-GCC/chconf.h +++ b/demos/ARM7-AT91SAM7X-GCC/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile index b7b859220..44bb4469a 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile @@ -95,7 +95,7 @@ ASRC = ../../ports/ARM7-AT91SAM7X/chcore.c \ TSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-AT91SAM7X/vectors.s
# List all user directories here
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb index 2ef54fb5d..f2f9a851c 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/Makefile.thumb @@ -96,7 +96,7 @@ TSRC = ../../ports/ARM7-AT91SAM7X/chcore.c \ board.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-AT91SAM7X/vectors.s
# List all user directories here
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/board.c b/demos/ARM7-AT91SAM7X-WEB-GCC/board.c index 0d2fd0996..87bc438ea 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/board.c +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/board.c @@ -27,31 +27,31 @@ extern void FiqHandler(void);
-__attribute__((naked))
-static void SpuriousHandler(void) {
+CH_IRQ_HANDLER static void SpuriousHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
AT91C_BASE_AIC->AIC_EOICR = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
* SYS IRQ handling here.
*/
-__attribute__((naked))
-static void SYSIrqHandler(void) {
+CH_IRQ_HANDLER static void SYSIrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
if (AT91C_BASE_PITC->PITC_PISR & AT91C_PITC_PITS) {
(void) AT91C_BASE_PITC->PITC_PIVR;
+ chSysLockI();
chSysTimerHandlerI();
+ chSysUnlockI();
}
AT91C_BASE_AIC->AIC_EOICR = 0; \
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h index ed950dd3f..cc2870abd 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/ARM7-LPC214x-G++/Makefile b/demos/ARM7-LPC214x-G++/Makefile index 9bd08a8ee..bb2c22929 100644 --- a/demos/ARM7-LPC214x-G++/Makefile +++ b/demos/ARM7-LPC214x-G++/Makefile @@ -93,7 +93,7 @@ TCSRC = TCPPSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-LPC214x/vectors.s
# List all user directories here
diff --git a/demos/ARM7-LPC214x-G++/Makefile.thumb b/demos/ARM7-LPC214x-G++/Makefile.thumb index 177e7cda0..8d3ec2c0c 100644 --- a/demos/ARM7-LPC214x-G++/Makefile.thumb +++ b/demos/ARM7-LPC214x-G++/Makefile.thumb @@ -93,7 +93,7 @@ TCSRC = ../../ports/ARM7-LPC214x/chcore.c \ TCPPSRC = ../../src/lib/ch.cpp main.cpp
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-LPC214x/vectors.s
# List all user directories here
diff --git a/demos/ARM7-LPC214x-G++/board.c b/demos/ARM7-LPC214x-G++/board.c index 8b17399e0..fef4deb36 100644 --- a/demos/ARM7-LPC214x-G++/board.c +++ b/demos/ARM7-LPC214x-G++/board.c @@ -31,30 +31,28 @@ /*
* Non-vectored IRQs handling here.
*/
-__attribute__((naked))
-static void IrqHandler(void) {
+CH_IRQ_HANDLER static void IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
/* nothing */
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
* Timer 0 IRQ handling here.
*/
-__attribute__((naked))
-static void T0IrqHandler(void) {
+CH_IRQ_HANDLER static void T0IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/ARM7-LPC214x-G++/chconf.h b/demos/ARM7-LPC214x-G++/chconf.h index 2d0a1513f..73323e4cf 100644 --- a/demos/ARM7-LPC214x-G++/chconf.h +++ b/demos/ARM7-LPC214x-G++/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/ARM7-LPC214x-GCC-minimal/Makefile b/demos/ARM7-LPC214x-GCC-minimal/Makefile index 6450cad6b..a3ab18333 100644 --- a/demos/ARM7-LPC214x-GCC-minimal/Makefile +++ b/demos/ARM7-LPC214x-GCC-minimal/Makefile @@ -80,7 +80,7 @@ ASRC = ../../ports/ARM7-LPC214x/chcore.c \ TSRC =
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-LPC214x/vectors.s
# List all user directories here
diff --git a/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb b/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb index f4fe4c25b..2f4463583 100644 --- a/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb +++ b/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb @@ -80,7 +80,7 @@ TSRC = ../../ports/ARM7-LPC214x/chcore.c \ board.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-LPC214x/vectors.s
# List all user directories here
diff --git a/demos/ARM7-LPC214x-GCC-minimal/board.c b/demos/ARM7-LPC214x-GCC-minimal/board.c index 3b3bd848e..e10297562 100644 --- a/demos/ARM7-LPC214x-GCC-minimal/board.c +++ b/demos/ARM7-LPC214x-GCC-minimal/board.c @@ -31,30 +31,28 @@ /*
* Non-vectored IRQs handling here.
*/
-__attribute__((naked))
-static void IrqHandler(void) {
+CH_IRQ_HANDLER static void IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
/* nothing */
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
* Timer 0 IRQ handling here.
*/
-__attribute__((naked))
-static void T0IrqHandler(void) {
+CH_IRQ_HANDLER static void T0IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/ARM7-LPC214x-GCC-minimal/chconf.h b/demos/ARM7-LPC214x-GCC-minimal/chconf.h index 94ff64676..876afc52a 100644 --- a/demos/ARM7-LPC214x-GCC-minimal/chconf.h +++ b/demos/ARM7-LPC214x-GCC-minimal/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
//#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/ARM7-LPC214x-GCC/Makefile.thumb b/demos/ARM7-LPC214x-GCC/Makefile.thumb index a676a4af1..211107deb 100644 --- a/demos/ARM7-LPC214x-GCC/Makefile.thumb +++ b/demos/ARM7-LPC214x-GCC/Makefile.thumb @@ -84,7 +84,7 @@ TSRC = ../../ports/ARM7-LPC214x/chcore.c \ board.c buzzer.c mmcsd.c main.c
# List ASM source files here
-ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsys.s \
+ASMSRC = ../../ports/ARM7/crt0.s ../../ports/ARM7/chsysasm.s \
../../ports/ARM7-LPC214x/vectors.s
# List all user directories here
diff --git a/demos/ARM7-LPC214x-GCC/board.c b/demos/ARM7-LPC214x-GCC/board.c index 9f453100c..767fb9123 100644 --- a/demos/ARM7-LPC214x-GCC/board.c +++ b/demos/ARM7-LPC214x-GCC/board.c @@ -31,30 +31,28 @@ /*
* Non-vectored IRQs handling here.
*/
-__attribute__((naked))
-static void IrqHandler(void) {
+CH_IRQ_HANDLER static void IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
/* nothing */
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
* Timer 0 IRQ handling here.
*/
-__attribute__((naked))
-static void T0IrqHandler(void) {
+CH_IRQ_HANDLER static void T0IrqHandler(void) {
- chSysIRQEnterI();
+ CH_IRQ_PROLOGUE();
T0IR = 1; /* Clear interrupt on match MR0. */
chSysTimerHandlerI();
VICVectAddr = 0;
- chSysIRQExitI();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/ARM7-LPC214x-GCC/chconf.h b/demos/ARM7-LPC214x-GCC/chconf.h index ed950dd3f..cc2870abd 100644 --- a/demos/ARM7-LPC214x-GCC/chconf.h +++ b/demos/ARM7-LPC214x-GCC/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/AVR-AT90CANx-GCC/board.c b/demos/AVR-AT90CANx-GCC/board.c index bd052b9c9..cf97132cf 100644 --- a/demos/AVR-AT90CANx-GCC/board.c +++ b/demos/AVR-AT90CANx-GCC/board.c @@ -22,15 +22,15 @@ #include "board.h"
#include "avr_serial.h"
-SYS_IRQ_HANDLER(TIMER0_COMP_vect) {
+CH_IRQ_HANDLER(TIMER0_COMP_vect) {
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/AVR-ATmega128-GCC/board.c b/demos/AVR-ATmega128-GCC/board.c index 96c810b17..0e40c20f4 100644 --- a/demos/AVR-ATmega128-GCC/board.c +++ b/demos/AVR-ATmega128-GCC/board.c @@ -22,15 +22,15 @@ #include "board.h"
#include "avr_serial.h"
-SYS_IRQ_HANDLER(TIMER0_COMP_vect) {
+CH_IRQ_HANDLER(TIMER0_COMP_vect) {
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
/*
diff --git a/demos/AVR-ATmega128-GCC/chconf.h b/demos/AVR-ATmega128-GCC/chconf.h index ea028aed6..4e9abec89 100644 --- a/demos/AVR-ATmega128-GCC/chconf.h +++ b/demos/AVR-ATmega128-GCC/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/MSP430-MSP430x1611-GCC/board.c b/demos/MSP430-MSP430x1611-GCC/board.c index f5e5e4012..51a50afb0 100644 --- a/demos/MSP430-MSP430x1611-GCC/board.c +++ b/demos/MSP430-MSP430x1611-GCC/board.c @@ -85,13 +85,13 @@ void hwinit(void) { InitSerial();
}
-SYS_IRQ_HANDLER(TIMERA0_VECTOR) tmr0irq(void) {
+CH_IRQ_HANDLER(TIMERA0_VECTOR) tmr0irq(void) {
- SYS_IRQ_PROLOGUE();
+ CH_IRQ_PROLOGUE();
chSysLockI();
chSysTimerHandlerI();
chSysUnlockI();
- SYS_IRQ_EPILOGUE();
+ CH_IRQ_EPILOGUE();
}
diff --git a/demos/MSP430-MSP430x1611-GCC/chconf.h b/demos/MSP430-MSP430x1611-GCC/chconf.h index bf7a9afad..10be65000 100644 --- a/demos/MSP430-MSP430x1611-GCC/chconf.h +++ b/demos/MSP430-MSP430x1611-GCC/chconf.h @@ -35,6 +35,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
diff --git a/demos/Win32-MinGW/chconf.h b/demos/Win32-MinGW/chconf.h index c00b4873f..07d741e99 100644 --- a/demos/Win32-MinGW/chconf.h +++ b/demos/Win32-MinGW/chconf.h @@ -30,6 +30,15 @@ * that this is not related to the compiler optimization options.*/
#define CH_OPTIMIZE_SPEED
+/** Configuration option: If enabled then the used of nested @p chSysLock() /
+ * @p chSysUnlock() operations is allowed.<br>
+ * For performance and code size reasons the recommended setting is leave
+ * this option disabled.<br>
+ * You can use this option if you need to merge ChibiOS/RT with external
+ * libraries that require nested lock/unlock operations.
+ */
+//#define CH_USE_NESTED_LOCKS
+
/** Configuration option: if specified then the kernel performs the round
* robin scheduling algorithm on threads of equal priority. */
#define CH_USE_ROUNDROBIN
|