]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/GCC/ARM_CM0/port.c
Add xEventGroupClearBitsFromISR() and xEventGroupGetBitsFromISR() functions.
[freertos] / FreeRTOS / Source / portable / GCC / ARM_CM0 / port.c
index b469a9ebf8c4912abab56dae0da23603edcc0396..020700eefc8613d0e6a6b6b36241fec1be44e70a 100644 (file)
 #include "task.h"\r
 \r
 /* Constants required to manipulate the NVIC. */\r
-#define portNVIC_SYSTICK_CTRL          ( ( volatile unsigned long *) 0xe000e010 )\r
-#define portNVIC_SYSTICK_LOAD          ( ( volatile unsigned long *) 0xe000e014 )\r
-#define portNVIC_INT_CTRL                      ( ( volatile unsigned long *) 0xe000ed04 )\r
-#define portNVIC_SYSPRI2                       ( ( volatile unsigned long *) 0xe000ed20 )\r
+#define portNVIC_SYSTICK_CTRL          ( ( volatile uint32_t *) 0xe000e010 )\r
+#define portNVIC_SYSTICK_LOAD          ( ( volatile uint32_t *) 0xe000e014 )\r
+#define portNVIC_INT_CTRL                      ( ( volatile uint32_t *) 0xe000ed04 )\r
+#define portNVIC_SYSPRI2                       ( ( volatile uint32_t *) 0xe000ed20 )\r
 #define portNVIC_SYSTICK_CLK           0x00000004\r
 #define portNVIC_SYSTICK_INT           0x00000002\r
 #define portNVIC_SYSTICK_ENABLE                0x00000001\r
@@ -98,7 +98,7 @@ debugger. */
 \r
 /* Each task maintains its own interrupt status in the critical nesting\r
 variable. */\r
-static unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa;\r
+static UBaseType_t uxCriticalNesting = 0xaaaaaaaa;\r
 \r
 /*\r
  * Setup the timer to generate the tick interrupts.\r
@@ -127,18 +127,18 @@ static void prvTaskExitError( void );
 /*\r
  * See header file for description.\r
  */\r
-portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )\r
+StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters )\r
 {\r
        /* Simulate the stack frame as it would be created by a context switch\r
        interrupt. */\r
        pxTopOfStack--; /* Offset added to account for the way the MCU uses the stack on entry/exit of interrupts. */\r
        *pxTopOfStack = portINITIAL_XPSR;       /* xPSR */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) pxCode;      /* PC */\r
+       *pxTopOfStack = ( StackType_t ) pxCode; /* PC */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) portTASK_RETURN_ADDRESS;     /* LR */\r
+       *pxTopOfStack = ( StackType_t ) portTASK_RETURN_ADDRESS;        /* LR */\r
        pxTopOfStack -= 5;      /* R12, R3, R2 and R1. */\r
-       *pxTopOfStack = ( portSTACK_TYPE ) pvParameters;        /* R0 */\r
+       *pxTopOfStack = ( StackType_t ) pvParameters;   /* R0 */\r
        pxTopOfStack -= 8; /* R11..R4. */\r
 \r
        return pxTopOfStack;\r
@@ -193,7 +193,7 @@ void vPortStartFirstTask( void )
 /*\r
  * See header file for description.\r
  */\r
-portBASE_TYPE xPortStartScheduler( void )\r
+BaseType_t xPortStartScheduler( void )\r
 {\r
        /* Make PendSV, CallSV and SysTick the same priroity as the kernel. */\r
        *(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;\r
@@ -260,7 +260,7 @@ void vPortExitCritical( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-unsigned long ulSetInterruptMaskFromISR( void )\r
+uint32_t ulSetInterruptMaskFromISR( void )\r
 {\r
        __asm volatile(\r
                                        " mrs r0, PRIMASK       \n"\r
@@ -273,7 +273,7 @@ unsigned long ulSetInterruptMaskFromISR( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vClearInterruptMaskFromISR( unsigned long ulMask )\r
+void vClearInterruptMaskFromISR( uint32_t ulMask )\r
 {\r
        __asm volatile(\r
                                        " msr PRIMASK, r0       \n"\r
@@ -335,7 +335,7 @@ void xPortPendSVHandler( void )
 \r
 void xPortSysTickHandler( void )\r
 {\r
-unsigned long ulPreviousMask;\r
+uint32_t ulPreviousMask;\r
 \r
        ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR();\r
        {\r