]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/RVDS/ARM_CM0/port.c
Add xEventGroupClearBitsFromISR() and xEventGroupGetBitsFromISR() functions.
[freertos] / FreeRTOS / Source / portable / RVDS / ARM_CM0 / port.c
index e7bb261b41e80250417c5b45385fe965cce75577..5bd928f297da188026e92d42127c4fe9ba8af895 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
@@ -92,7 +92,7 @@
 \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
@@ -121,18 +121,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 ) prvTaskExitError;    /* LR */\r
+       *pxTopOfStack = ( StackType_t ) prvTaskExitError;       /* 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
@@ -189,7 +189,7 @@ __asm void prvPortStartFirstTask( 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
@@ -250,7 +250,7 @@ void vPortExitCritical( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-__asm unsigned long ulSetInterruptMaskFromISR( void )\r
+__asm uint32_t ulSetInterruptMaskFromISR( void )\r
 {\r
        mrs r0, PRIMASK\r
        cpsid i\r
@@ -258,7 +258,7 @@ __asm unsigned long ulSetInterruptMaskFromISR( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-__asm void vClearInterruptMaskFromISR( unsigned long ulMask )\r
+__asm void vClearInterruptMaskFromISR( uint32_t ulMask )\r
 {\r
        msr PRIMASK, r0\r
        bx lr\r
@@ -313,7 +313,7 @@ __asm 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