\r
/* Offset added to account for the way the MCU uses the stack on entry/exit\r
of interrupts, and to ensure alignment. */\r
- pxTopOfStack -= 2;\r
+ pxTopOfStack--;\r
\r
*pxTopOfStack = portINITIAL_XPSR; /* xPSR */\r
pxTopOfStack--;\r
pxTopOfStack -= 5; /* R12, R3, R2 and R1. */\r
*pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */\r
\r
- /* A save method is being used that requiers each task to maintain its\r
+ /* A save method is being used that requires each task to maintain its\r
own exec return value. */\r
pxTopOfStack--;\r
*pxTopOfStack = portINITIAL_EXEC_RETURN;\r
#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* There are an uneven number of items on the initial stack, so \r
+portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */\r
+#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* Task function macros as described on the FreeRTOS.org WEB site. */\r
\r
/* Offset added to account for the way the MCU uses the stack on entry/exit\r
of interrupts, and to ensure alignment. */\r
- pxTopOfStack -= 2;\r
+ pxTopOfStack--;\r
\r
*pxTopOfStack = portINITIAL_XPSR; /* xPSR */\r
pxTopOfStack--;\r
pxTopOfStack -= 5; /* R12, R3, R2 and R1. */\r
*pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */\r
\r
- /* A save method is being used that requiers each task to maintain its\r
+ /* A save method is being used that requires each task to maintain its\r
own exec return value. */\r
pxTopOfStack--;\r
*pxTopOfStack = portINITIAL_EXEC_RETURN;\r
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;vPortSetInterruptMask()\r
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask();(void)x\r
\r
+/* There are an uneven number of items on the initial stack, so \r
+portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */\r
+#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* Task function macros as described on the FreeRTOS.org WEB site. */\r
\r
/* Offset added to account for the way the MCU uses the stack on entry/exit\r
of interrupts, and to ensure alignment. */\r
- pxTopOfStack -= 2;\r
+ pxTopOfStack--;\r
\r
*pxTopOfStack = portINITIAL_XPSR; /* xPSR */\r
pxTopOfStack--;\r
pxTopOfStack -= 5; /* R12, R3, R2 and R1. */\r
*pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */\r
\r
- /* A save method is being used that requiers each task to maintain its\r
+ /* A save method is being used that requires each task to maintain its\r
own exec return value. */\r
pxTopOfStack--;\r
*pxTopOfStack = portINITIAL_EXEC_RETURN;\r
#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK()\r
#define portENTER_CRITICAL() vPortEnterCritical()\r
#define portEXIT_CRITICAL() vPortExitCritical()\r
+\r
+/* There are an uneven number of items on the initial stack, so \r
+portALIGNMENT_ASSERT_pxCurrentTCB() will trigger false positive asserts. */\r
+#define portALIGNMENT_ASSERT_pxCurrentTCB ( void )\r
+\r
/*-----------------------------------------------------------*/\r
\r
/* Task function macros as described on the FreeRTOS.org WEB site. */\r