]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/portable/IAR/ATMega323/port.c
Replace standard types with stdint.h types.
[freertos] / FreeRTOS / Source / portable / IAR / ATMega323 / port.c
index bf28ba8aa6a54a9bfca20b37b45e9bcd2c3c26c5..920caa27f81a67ab0a83bf97106d35ce6f6e95b0 100644 (file)
  *----------------------------------------------------------*/\r
 \r
 /* Start tasks with interrupts enables. */\r
-#define portFLAGS_INT_ENABLED                                  ( ( portSTACK_TYPE ) 0x80 )\r
+#define portFLAGS_INT_ENABLED                                  ( ( StackType_t ) 0x80 )\r
 \r
 /* Hardware constants for timer 1. */\r
-#define portCLEAR_COUNTER_ON_MATCH                             ( ( unsigned char ) 0x08 )\r
-#define portPRESCALE_64                                                        ( ( unsigned char ) 0x03 )\r
-#define portCLOCK_PRESCALER                                            ( ( unsigned long ) 64 )\r
-#define portCOMPARE_MATCH_A_INTERRUPT_ENABLE   ( ( unsigned char ) 0x10 )\r
+#define portCLEAR_COUNTER_ON_MATCH                             ( ( uint8_t ) 0x08 )\r
+#define portPRESCALE_64                                                        ( ( uint8_t ) 0x03 )\r
+#define portCLOCK_PRESCALER                                            ( ( uint32_t ) 64 )\r
+#define portCOMPARE_MATCH_A_INTERRUPT_ENABLE   ( ( uint8_t ) 0x10 )\r
 \r
 /* The number of bytes used on the hardware stack by the task start address. */\r
 #define portBYTES_USED_BY_RETURN_ADDRESS               ( 2 )\r
@@ -87,8 +87,8 @@
 \r
 /* Stores the critical section nesting.  This must not be initialised to 0.\r
 It will be initialised when a task starts. */\r
-#define portNO_CRITICAL_NESTING                                        ( ( unsigned portBASE_TYPE ) 0 )\r
-unsigned portBASE_TYPE uxCriticalNesting = 0x50;\r
+#define portNO_CRITICAL_NESTING                                        ( ( UBaseType_t ) 0 )\r
+UBaseType_t uxCriticalNesting = 0x50;\r
 \r
 \r
 /*\r
@@ -108,10 +108,10 @@ extern void vPortStart( 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, pdTASK_CODE pxCode, void *pvParameters )\r
 {\r
-unsigned short usAddress;\r
-portSTACK_TYPE *pxTopOfHardwareStack;\r
+uint16_t usAddress;\r
+StackType_t *pxTopOfHardwareStack;\r
 \r
        /* Place a few bytes of known values on the bottom of the stack.\r
        This is just useful for debugging. */\r
@@ -149,12 +149,12 @@ portSTACK_TYPE *pxTopOfHardwareStack;
 \r
        The first part of the stack is the hardware stack.  Place the start\r
        address of the task on the hardware stack. */\r
-       usAddress = ( unsigned short ) pxCode;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       usAddress = ( uint16_t ) pxCode;\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
        usAddress >>= 8;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
 \r
@@ -169,7 +169,7 @@ portSTACK_TYPE *pxTopOfHardwareStack;
        portSAVE_CONTEXT places the flags on the stack immediately after r0\r
        to ensure the interrupts get disabled as soon as possible, and so ensuring\r
        the stack use is minimal should a context switch interrupt occur. */\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x00;        /* R0 */\r
+       *pxTopOfStack = ( StackType_t ) 0x00;   /* R0 */\r
        pxTopOfStack--;\r
        *pxTopOfStack = portFLAGS_INT_ENABLED;\r
        pxTopOfStack--;\r
@@ -177,88 +177,88 @@ portSTACK_TYPE *pxTopOfHardwareStack;
        /* Next place the address of the hardware stack.  This is required so\r
        the AVR stack pointer can be restored to point to the hardware stack. */\r
        pxTopOfHardwareStack -= portBYTES_USED_BY_RETURN_ADDRESS;\r
-       usAddress = ( unsigned short ) pxTopOfHardwareStack;\r
+       usAddress = ( uint16_t ) pxTopOfHardwareStack;\r
 \r
        /* SPL */\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
        /* SPH */\r
        usAddress >>= 8;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
 \r
 \r
 \r
        /* Now the remaining registers. */\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x01;        /* R1 */\r
+       *pxTopOfStack = ( StackType_t ) 0x01;   /* R1 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x02;        /* R2 */\r
+       *pxTopOfStack = ( StackType_t ) 0x02;   /* R2 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x03;        /* R3 */\r
+       *pxTopOfStack = ( StackType_t ) 0x03;   /* R3 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x04;        /* R4 */\r
+       *pxTopOfStack = ( StackType_t ) 0x04;   /* R4 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x05;        /* R5 */\r
+       *pxTopOfStack = ( StackType_t ) 0x05;   /* R5 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x06;        /* R6 */\r
+       *pxTopOfStack = ( StackType_t ) 0x06;   /* R6 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x07;        /* R7 */\r
+       *pxTopOfStack = ( StackType_t ) 0x07;   /* R7 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x08;        /* R8 */\r
+       *pxTopOfStack = ( StackType_t ) 0x08;   /* R8 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x09;        /* R9 */\r
+       *pxTopOfStack = ( StackType_t ) 0x09;   /* R9 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x10;        /* R10 */\r
+       *pxTopOfStack = ( StackType_t ) 0x10;   /* R10 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x11;        /* R11 */\r
+       *pxTopOfStack = ( StackType_t ) 0x11;   /* R11 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x12;        /* R12 */\r
+       *pxTopOfStack = ( StackType_t ) 0x12;   /* R12 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x13;        /* R13 */\r
+       *pxTopOfStack = ( StackType_t ) 0x13;   /* R13 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x14;        /* R14 */\r
+       *pxTopOfStack = ( StackType_t ) 0x14;   /* R14 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x15;        /* R15 */\r
+       *pxTopOfStack = ( StackType_t ) 0x15;   /* R15 */\r
        pxTopOfStack--;\r
 \r
        /* Place the parameter on the stack in the expected location. */\r
-       usAddress = ( unsigned short ) pvParameters;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       usAddress = ( uint16_t ) pvParameters;\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
        usAddress >>= 8;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) ( usAddress & ( unsigned short ) 0x00ff );\r
+       *pxTopOfStack = ( StackType_t ) ( usAddress & ( uint16_t ) 0x00ff );\r
        pxTopOfStack--;\r
 \r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x18;        /* R18 */\r
+       *pxTopOfStack = ( StackType_t ) 0x18;   /* R18 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x19;        /* R19 */\r
+       *pxTopOfStack = ( StackType_t ) 0x19;   /* R19 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x20;        /* R20 */\r
+       *pxTopOfStack = ( StackType_t ) 0x20;   /* R20 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x21;        /* R21 */\r
+       *pxTopOfStack = ( StackType_t ) 0x21;   /* R21 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x22;        /* R22 */\r
+       *pxTopOfStack = ( StackType_t ) 0x22;   /* R22 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x23;        /* R23 */\r
+       *pxTopOfStack = ( StackType_t ) 0x23;   /* R23 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x24;        /* R24 */\r
+       *pxTopOfStack = ( StackType_t ) 0x24;   /* R24 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x25;        /* R25 */\r
+       *pxTopOfStack = ( StackType_t ) 0x25;   /* R25 */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x26;        /* R26 X */\r
+       *pxTopOfStack = ( StackType_t ) 0x26;   /* R26 X */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x27;        /* R27 */\r
+       *pxTopOfStack = ( StackType_t ) 0x27;   /* R27 */\r
        pxTopOfStack--;\r
 \r
        /* The Y register is not stored as it is used as the software stack and\r
        gets saved into the task control block. */\r
 \r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x30;        /* R30 Z */\r
+       *pxTopOfStack = ( StackType_t ) 0x30;   /* R30 Z */\r
        pxTopOfStack--;\r
-       *pxTopOfStack = ( portSTACK_TYPE ) 0x031;       /* R31 */\r
+       *pxTopOfStack = ( StackType_t ) 0x031;  /* R31 */\r
 \r
        pxTopOfStack--;\r
        *pxTopOfStack = portNO_CRITICAL_NESTING;        /* Critical nesting is zero when the task starts. */\r
@@ -269,7 +269,7 @@ portSTACK_TYPE *pxTopOfHardwareStack;
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-portBASE_TYPE xPortStartScheduler( void )\r
+BaseType_t xPortStartScheduler( void )\r
 {\r
        /* Setup the hardware to generate the tick. */\r
        prvSetupTimerInterrupt();\r
@@ -296,8 +296,8 @@ void vPortEndScheduler( void )
  */\r
 static void prvSetupTimerInterrupt( void )\r
 {\r
-unsigned long ulCompareMatch;\r
-unsigned char ucHighByte, ucLowByte;\r
+uint32_t ulCompareMatch;\r
+uint8_t ucHighByte, ucLowByte;\r
 \r
        /* Using 16bit timer 1 to generate the tick.  Correct fuses must be\r
        selected for the configCPU_CLOCK_HZ clock. */\r
@@ -308,13 +308,13 @@ unsigned char ucHighByte, ucLowByte;
        ulCompareMatch /= portCLOCK_PRESCALER;\r
 \r
        /* Adjust for correct value. */\r
-       ulCompareMatch -= ( unsigned long ) 1;\r
+       ulCompareMatch -= ( uint32_t ) 1;\r
 \r
        /* Setup compare match value for compare match A.  Interrupts are disabled\r
        before this is called so we need not worry here. */\r
-       ucLowByte = ( unsigned char ) ( ulCompareMatch & ( unsigned long ) 0xff );\r
+       ucLowByte = ( uint8_t ) ( ulCompareMatch & ( uint32_t ) 0xff );\r
        ulCompareMatch >>= 8;\r
-       ucHighByte = ( unsigned char ) ( ulCompareMatch & ( unsigned long ) 0xff );\r
+       ucHighByte = ( uint8_t ) ( ulCompareMatch & ( uint32_t ) 0xff );\r
        OCR1AH = ucHighByte;\r
        OCR1AL = ucLowByte;\r
 \r