]> git.sur5r.net Git - freertos/blobdiff - Source/portable/Renesas/RX600/port.c
Continue work on RX600 port - work in progress.
[freertos] / Source / portable / Renesas / RX600 / port.c
index 8e3cc871d4f5507205eee9534aae78e774b54e6c..2998d30cdf0e71ed5bc327bec271647bf9a00607 100644 (file)
@@ -62,6 +62,9 @@
 /* Library includes. */\r
 #include "string.h"\r
 \r
+/* Hardware specifics. */\r
+#include "iodefine.h"\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 /* Tasks should start with interrupts enabled, therefore PSW is set with U,I,PM \r
@@ -72,8 +75,8 @@ flags set and IPL clear. */
  PM = 0 Supervisor mode.\r
  IPL = 0 All interrupt priorities enabled.\r
 */\r
-#define portINITIAL_PSW      ( ( portSTACK_TYPE ) 0x00030000 )\r
-#define portINITIAL_FPSW     ( ( portSTACK_TYPE ) 0x00000100 )\r
+#define portINITIAL_PSW     ( ( portSTACK_TYPE ) 0x00030000 )\r
+#define portINITIAL_FPSW    ( ( portSTACK_TYPE ) 0x00000100 )\r
 \r
 \r
 /*-----------------------------------------------------------*/\r
@@ -163,6 +166,15 @@ extern void vApplicationSetupTimerInterrupt( void );
                use.  A demo application is provided to show a suitable example. */\r
                vApplicationSetupTimerInterrupt();\r
 \r
+               /* Enable the software interrupt. */            \r
+               _IEN( _ICU_SWINT ) = 1;\r
+               \r
+               /* Ensure the software interrupt is clear. */\r
+               _IR( _ICU_SWINT ) = 0;\r
+               \r
+               /* Ensure the software interrupt is set to the kernel priority. */\r
+               _IPR( _ICU_SWINT ) = configKERNEL_INTERRUPT_PRIORITY;\r
+       \r
                /* Start the first task. */\r
                prvStartFirstTask();\r
        }\r
@@ -178,26 +190,30 @@ void vPortEndScheduler( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-void vPortYield( void )\r
-{\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-#pragma interrupt (vTickISR(vect=configTICK_VECTOR,enable))\r
+#pragma interrupt ( vTickISR( vect = _VECT( configTICK_VECTOR ), enable ) )\r
 void vTickISR( void )\r
 {\r
-       /* Restore previous IPL on exit. */\r
-       //set_ipl( configMAX_SYSCALL_INTERRUPT_PRIORITY );\r
+static volatile unsigned long ul = 0;\r
+\r
+       ul++;\r
        \r
        /* Clear the interrupt. */\r
-       vTaskIncrementTick();\r
+//     vTaskIncrementTick();\r
        \r
        #if( configUSE_PREEMPTION == 1 )\r
-               taskYIELD();\r
+//             taskYIELD();\r
        #endif\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
+#pragma interrupt ( vSoftwareInterruptISR( vect = _VECT( _ICU_SWINT ), enable ) )\r
+void vSoftwareInterruptISR( void )\r
+{\r
+static volatile unsigned long ul = 0;\r
+\r
+       ul++;\r
+}\r
+\r
 #pragma inline_asm prvStartFirstTask\r
 static void prvStartFirstTask( void )\r
 {\r
@@ -225,3 +241,5 @@ static void prvStartFirstTask( void )
     NOP\r
     NOP\r
 }\r
+\r
+\r