\r
/*\r
* Set basepri back to 0 without effective other registers.\r
- * r0 is clobbered.\r
+ * r0 is clobbered. FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ * http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing.\r
*/\r
#define portCLEAR_INTERRUPT_MASK() \\r
__asm volatile \\r
:::"r0" \\r
)\r
\r
+/* FAQ: Setting BASEPRI to 0 in portCLEAR_INTERRUPT_MASK_FROM_ISR() is not a \r
+bug. Please see http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before \r
+disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x\r
\r
\r
/*\r
* Set basepri back to 0 without effective other registers.\r
- * r0 is clobbered.\r
+ * r0 is clobbered. FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ * http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing.\r
*/\r
#define portCLEAR_INTERRUPT_MASK() \\r
__asm volatile \\r
:::"r0" \\r
)\r
\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x\r
\r
\r
/*\r
* Set basepri back to 0 without effective other registers.\r
- * r0 is clobbered.\r
+ * r0 is clobbered. FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ * http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing.\r
*/\r
#define portCLEAR_INTERRUPT_MASK() \\r
__asm volatile \\r
:::"r0" \\r
)\r
\r
+/* FAQ: Setting BASEPRI to 0 in portCLEAR_INTERRUPT_MASK_FROM_ISR() is not a \r
+bug. Please see http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before \r
+disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x\r
\r
/*-----------------------------------------------------------*/\r
\r
vPortSetInterruptMask:\r
- push { r0 }\r
- mov R0, #configMAX_SYSCALL_INTERRUPT_PRIORITY\r
- msr BASEPRI, R0\r
- pop { R0 }\r
+ mov r0, #configMAX_SYSCALL_INTERRUPT_PRIORITY\r
+ msr BASEPRI, r0\r
\r
bx r14\r
\r
/*-----------------------------------------------------------*/\r
\r
vPortClearInterruptMask:\r
- PUSH { r0 }\r
- MOV R0, #0\r
- MSR BASEPRI, R0\r
- POP { R0 }\r
+ /* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
+ mov r0, #0\r
+ msr BASEPRI, r0\r
\r
bx r14\r
\r
#define portENABLE_INTERRUPTS() vPortClearInterruptMask()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;vPortSetInterruptMask()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask();(void)x\r
\r
/*-----------------------------------------------------------*/\r
\r
vPortClearInterruptMask:\r
+ /* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
mov r0, #0\r
msr BASEPRI, r0\r
\r
#define portENABLE_INTERRUPTS() vPortClearInterruptMask()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;vPortSetInterruptMask()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask();(void)x\r
\r
{\r
PRESERVE8\r
\r
- push { r0 }\r
mov r0, #configMAX_SYSCALL_INTERRUPT_PRIORITY\r
msr basepri, r0\r
- pop { r0 }\r
bx r14\r
}\r
\r
{\r
PRESERVE8\r
\r
- push { r0 }\r
+ /* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
mov r0, #0\r
msr basepri, r0\r
- pop { r0 }\r
bx r14\r
}\r
#define portENABLE_INTERRUPTS() vPortClearInterruptMask()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;vPortSetInterruptMask()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask();(void)x\r
\r
{\r
PRESERVE8\r
\r
+ /* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
mov r0, #0\r
msr basepri, r0\r
bx r14\r
#define portENABLE_INTERRUPTS() vPortClearInterruptMask()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;vPortSetInterruptMask()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask();(void)x\r
\r
\r
/*\r
* Set basepri back to 0 without effective other registers.\r
- * r0 is clobbered.\r
+ * r0 is clobbered. FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+ * http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing.\r
*/\r
#define portCLEAR_INTERRUPT_MASK() __set_BASEPRI( 0 )\r
\r
+/* FAQ: Setting BASEPRI to 0 is not a bug. Please see \r
+http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html before disagreeing. */\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x\r
\r