/*\r
- FreeRTOS V7.5.2 - Copyright (C) 2013 Real Time Engineers Ltd.\r
+ FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+ All rights reserved\r
\r
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
\r
#define PORTMACRO_H\r
\r
/*-----------------------------------------------------------\r
- * Port specific definitions. \r
+ * Port specific definitions.\r
*\r
* The settings in this file configure FreeRTOS correctly for the\r
* given hardware and compiler.\r
#define portDOUBLE double\r
#define portLONG long\r
#define portSHORT short\r
-#define portSTACK_TYPE unsigned portCHAR\r
+#define portSTACK_TYPE uint8_t\r
#define portBASE_TYPE char\r
\r
+typedef portSTACK_TYPE StackType_t;\r
+typedef signed char BaseType_t;\r
+typedef unsigned char UBaseType_t;\r
+\r
#if( configUSE_16_BIT_TICKS == 1 )\r
- typedef unsigned portSHORT portTickType;\r
- #define portMAX_DELAY ( portTickType ) 0xffff\r
+ typedef uint16_t TickType_t;\r
+ #define portMAX_DELAY ( TickType_t ) 0xffff\r
#else\r
- typedef unsigned portLONG portTickType;\r
- #define portMAX_DELAY ( portTickType ) 0xffffffff\r
+ typedef uint32_t TickType_t;\r
+ #define portMAX_DELAY ( TickType_t ) 0xffffffffUL\r
#endif\r
/*-----------------------------------------------------------*/\r
\r
/* Hardware specifics. */\r
#define portBYTE_ALIGNMENT 1\r
#define portSTACK_GROWTH ( -1 )\r
-#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) \r
+#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ )\r
#define portYIELD() __asm( "swi" );\r
#define portNOP() __asm( "nop" );\r
/*-----------------------------------------------------------*/\r
\r
/* Critical section handling. */\r
-#define portENABLE_INTERRUPTS() __asm( "cli" ) \r
+#define portENABLE_INTERRUPTS() __asm( "cli" )\r
#define portDISABLE_INTERRUPTS() __asm( "sei" )\r
\r
/*\r
*/\r
#define portENTER_CRITICAL() \\r
{ \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
portDISABLE_INTERRUPTS(); \\r
uxCriticalNesting++; \\r
\r
/*\r
* Interrupts are disabled so we can access the nesting count directly. If the\r
- * nesting is found to be 0 (no nesting) then we are leaving the critical \r
+ * nesting is found to be 0 (no nesting) then we are leaving the critical\r
* section and interrupts can be re-enabled.\r
*/\r
#define portEXIT_CRITICAL() \\r
{ \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
uxCriticalNesting--; \\r
if( uxCriticalNesting == 0 ) \\r
\r
/* Task utilities. */\r
\r
-/* \r
- * These macros are very simple as the processor automatically saves and \r
+/*\r
+ * These macros are very simple as the processor automatically saves and\r
* restores its registers as interrupts are entered and exited. In\r
- * addition to the (automatically stacked) registers we also stack the \r
+ * addition to the (automatically stacked) registers we also stack the\r
* critical nesting count. Each task maintains its own critical nesting\r
* count as it is legitimate for a task to yield from within a critical\r
* section. If the banked memory model is being used then the PPAGE\r
*/\r
\r
#ifdef BANKED_MODEL\r
- /* \r
+ /*\r
* Load the stack pointer for the task, then pull the critical nesting\r
- * count and PPAGE register from the stack. The remains of the \r
+ * count and PPAGE register from the stack. The remains of the\r
* context are restored by the RTI instruction.\r
*/\r
#define portRESTORE_CONTEXT() \\r
{ \\r
extern volatile void * pxCurrentTCB; \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
__asm( "ldx pxCurrentTCB" ); \\r
__asm( "lds 0, x" ); \\r
__asm( "staa 0x30" ); /* 0x30 = PPAGE */ \\r
}\r
\r
- /* \r
+ /*\r
* By the time this macro is called the processor has already stacked the\r
- * registers. Simply stack the nesting count and PPAGE value, then save \r
+ * registers. Simply stack the nesting count and PPAGE value, then save\r
* the task stack pointer.\r
*/\r
#define portSAVE_CONTEXT() \\r
{ \\r
extern volatile void * pxCurrentTCB; \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
__asm( "ldaa 0x30" ); /* 0x30 = PPAGE */ \\r
__asm( "psha" ); \\r
}\r
#else\r
\r
- /* \r
+ /*\r
* These macros are as per the BANKED versions above, but without saving\r
* and restoring the PPAGE register.\r
*/\r
#define portRESTORE_CONTEXT() \\r
{ \\r
extern volatile void * pxCurrentTCB; \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
__asm( "ldx pxCurrentTCB" ); \\r
__asm( "lds 0, x" ); \\r
#define portSAVE_CONTEXT() \\r
{ \\r
extern volatile void * pxCurrentTCB; \\r
- extern volatile unsigned portBASE_TYPE uxCriticalNesting; \\r
+ extern volatile UBaseType_t uxCriticalNesting; \\r
\\r
__asm( "ldaa uxCriticalNesting" ); \\r
__asm( "psha" ); \\r