]> git.sur5r.net Git - freertos/commitdiff
Added flop support.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 17 Jan 2010 13:14:23 +0000 (13:14 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Sun, 17 Jan 2010 13:14:23 +0000 (13:14 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@962 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/SuperH_SH7216_Renesas/RTOSDemo.tws
Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.hwp
Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav
Demo/SuperH_SH7216_Renesas/RTOSDemo/SessionSH7216_E10A-USB_SYSTEM__SH.hsf
Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c [new file with mode: 0644]
Demo/SuperH_SH7216_Renesas/RTOSDemo/intprg.c
Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
Demo/SuperH_SH7216_Renesas/RTOSDemo/vecttbl.c

index c2e6d55ea88f8ca9a30462e9c04b7da86e05604c..b658fb4ffbf9890d3b88f6a535bc0dfe52b7fda1 100644 (file)
@@ -7,25 +7,27 @@
 [GENERAL_DATA]\r
 [BREAKPOINTS]\r
 [OPEN_WORKSPACE_FILES]\r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\FreeRTOSConfig.h" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portmacro.h" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" \r
 [WORKSPACE_FILE_STATES]\r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" 132 132 860 400 0 6 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" 0 0 904 312 0 7 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\FreeRTOSConfig.h" 66 66 838 434 0 3 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" 0 0 1044 659 0 0 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" -4 -23 1044 471 1 8 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" 198 198 838 434 0 1 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" 0 0 838 434 0 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portmacro.h" 88 88 838 434 0 4 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" 110 110 860 400 0 5 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\FreeRTOSConfig.h" 66 66 729 433 0 6 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" 132 132 729 433 0 7 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" -4 -23 935 658 1 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" 198 198 596 433 0 5 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" 176 176 596 433 0 4 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" 0 0 1316 673 0 1 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" 154 154 1132 403 0 3 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portmacro.h" 66 66 856 399 0 0 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" 176 176 729 433 0 8 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" 198 198 729 433 0 9 \r
 [LOADED_PROJECTS]\r
 "RTOSDemo" \r
 [END]\r
index b94ab3590f5315da4180d19081ee04caa3b1e245..d6de0ff89ea58bea4ecdd2960ee63b1757a2ea23 100644 (file)
@@ -87,8 +87,9 @@
 #define configQUEUE_REGISTRY_SIZE              0\r
 #define configGENERATE_RUN_TIME_STATS  0\r
 #define configUSE_MALLOC_FAILED_HOOK   1\r
+#define configUSE_APPLICATION_TASK_TAG 1       /* Must be set to one for floating point support in this port. */\r
 \r
-#define configMAX_PRIORITIES           ( ( unsigned portBASE_TYPE ) 5 )\r
+#define configMAX_PRIORITIES                   ( ( unsigned portBASE_TYPE ) 5 )\r
 #define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
 \r
 /* Set the following definitions to 1 to include the API function, or zero\r
@@ -105,7 +106,4 @@ to exclude the API function. */
 #define INCLUDE_xTaskGetSchedulerState         1\r
 \r
 \r
-#define configKERNEL_INTERRUPT_PRIORITY                ( 1 )\r
-#define configMAX_SYSCALL_INTERRUPT_PRIORITY   ( 0xff )\r
-\r
 #endif /* FREERTOS_CONFIG_H */\r
index 6d3d7409720a05fc61f8ebd05f1a36b00b131cd1..39ff50ed0ef5f61ae46065c124359eacc218438e 100644 (file)
@@ -71,13 +71,13 @@ static const unsigned short usLEDMasks[ partestNUM_LEDS ] = { ( 1 << 9 ), ( 1 <<
 void vParTestInitialise( void )\r
 {\r
        /* Select port functions for PE9 to PE15. */\r
-       PFC.PECRL3.WORD &= ~partestALL_LEDS;\r
+       PFC.PECRL3.WORD &= ( unsigned short ) ~partestALL_LEDS;\r
 \r
        /* Turn all LEDs off. */\r
-       PE.DR.WORD &= ~partestALL_LEDS;\r
+       PE.DR.WORD &= ( unsigned short ) ~partestALL_LEDS;\r
        \r
        /* Set all LEDs to output. */\r
-       PFC.PEIORL.WORD |= partestALL_LEDS;\r
+       PFC.PEIORL.WORD |= ( unsigned short ) partestALL_LEDS;\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
@@ -99,7 +99,7 @@ void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
                        /* Turn the LED off. */\r
                        taskENTER_CRITICAL();\r
                        {\r
-                               PE.DR.WORD &= ~usLEDMasks[ uxLED ];\r
+                               PE.DR.WORD &= ( unsigned short ) ~usLEDMasks[ uxLED ];\r
                        }\r
                        taskEXIT_CRITICAL();\r
                }\r
@@ -115,7 +115,7 @@ void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
                {\r
                        if( ( PE.DR.WORD & usLEDMasks[ uxLED ] ) != 0x00 )\r
                        {\r
-                               PE.DR.WORD &= ~usLEDMasks[ uxLED ];\r
+                               PE.DR.WORD &= ( unsigned short ) ~usLEDMasks[ uxLED ];\r
                        }\r
                        else\r
                        {\r
index a503edb08d13c14ffff4e9a55a4176d24fc61e82..60e57cf5145fc41caa78e112276daef9c5728f27 100644 (file)
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Standard Demo Tasks" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\dbsct.c" "User" "C source file" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" "User" "C source file|Standard Demo Tasks" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\intprg.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" "User" "C source file" 2 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" "User" "Assembly source file" 2 \r
 "SessionSH7216_E10A-USB_SYSTEM__SH" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\SessionSH7216_E10A-USB_SYSTEM__SH.hsf" 0 \r
 [GENERAL_DATA_SESSION_SessionSH7216_E10A-USB_SYSTEM__SH]\r
 [OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas OptLinker]\r
-"Single Shot" "08cd3a35ef59ac10" 4 \r
+"Single Shot" "019be9f9fe69ac10" 4 \r
 [OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH Assembler]\r
 "Assembly source file" "05db08d6f178ac10" 3 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" "0fd8e3b27059ac10" 3 \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" "0cc802940e29ac10" 3 \r
 "Linkage symbol file" "05db08d6f178ac10" 3 \r
 [OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH C/C++ Compiler]\r
-"C source file" "0deaf32ba059ac10" 2 \r
-"C++ source file" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0cf7e835ef59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "00a9f52d4f59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0b5de7fadf59ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\dbsct.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\intprg.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\resetprg.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\vecttbl.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0deaf32ba059ac10" 2 \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0deaf32ba059ac10" 2 \r
+"C source file" "0ee0a3846779ac10" 2 \r
+"C++ source file" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\dbsct.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\intprg.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\resetprg.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\vecttbl.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "0ee0a3846779ac10" 2 \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "0ee0a3846779ac10" 2 \r
 [OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH_Renesas SH C/C++ Library Generator]\r
 "Single Shot" "05db08d6f178ac10" 1 \r
 [OPTIONS_Debug_SH7216_E10A-USB_SYSTEM__SH]\r
 " 3 \r
 "[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)] [S|CRC|NONE|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [I|CACHESIZE|000000008] [I|CACHELINE|000000020] [S|START|DVECTTBL,DINTTBL(00)|PResetPRG,PIntPRG(0800)|P,C,C$BSEC,C$DSEC,D(01000)|B,R(0FFF80000)|S(0FFFBFC00)] [B|SKIPDEPENDENCY|1]\r
 " 4 \r
-"[V|VERSION|7] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\SH2A_FPU^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\Common\include^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|ALIGN4|ALL] [S|ASSEMBLY|^"[V|VERSION|1]] [S|OUTPUTPATH|^"^"$(CONFIGDIR)\$(FILELEAF).obj^"^"]] [S|LITERAL|POOL|BRANCH|JUMP|RETURN]] [S|DISPSIZE|12]] [I|TAB|8]] [B|CHGINCPATH|1]] [S|CPU|SH2AFPU]] [S|ENDIAN|BIG]] [S|ROUND|NEAREST]] [B|DENORMALIZE|0]]^"] [B|TBR|0] [B|STUFF|0] [S|BSS_ORDER|DECLARATION] [S|MXGEN_MEM0|00000000] [S|MXGEN_MEM1|00000000] [B|LIST|0] [B|OPTIMIZE|0] [S|GBR|AUTO] [S|INLINE|DEFAULT] [I|INLINE|20] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|OPT_RANGE|ALL] [I|MAX_UNROLL|1] [S|CPU|SH2AFPU] [S|ROUND|NEAREST] [B|CHGINCPATH|1] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
+"[V|VERSION|7] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\SH2A_FPU^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\Common\include^"] [B|MESSAGE|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|ALIGN4|ALL] [S|ASSEMBLY|^"[V|VERSION|1]] [S|OUTPUTPATH|^"^"$(CONFIGDIR)\$(FILELEAF).obj^"^"]] [S|LITERAL|POOL|BRANCH|JUMP|RETURN]] [S|DISPSIZE|12]] [I|TAB|8]] [B|CHGINCPATH|1]] [S|CPU|SH2AFPU]] [S|ENDIAN|BIG]] [S|ROUND|NEAREST]] [B|DENORMALIZE|0]]^"] [B|TBR|0] [B|STUFF|0] [S|BSS_ORDER|DECLARATION] [S|MXGEN_MEM0|00000000] [S|MXGEN_MEM1|00000000] [B|LIST|0] [S|GBR|AUTO] [S|INLINE|DEFAULT] [I|INLINE|20] [S|MISRA2004_CHECK_RULE|ALL] [S|MISRA2004_RULE|1.1|3.4|4.1|5.2|5.3|5.4|5.5|5.6|5.7|6.1|6.2|6.3|6.4|6.5|7.1|8.1|8.2|8.3|8.5|8.6|8.7|8.8|8.11|8.12|9.2|9.3|10.1|10.2|10.3|10.4|10.5|10.6|11.1|11.2|11.3|11.4|11.5|12.1|12.2|12.3|12.4|12.5|12.6|12.7|12.8|12.9|12.10|12.11|12.12|12.13|13.1|13.2|13.3|13.4|13.7|14.1|14.2|14.3|14.4|14.5|14.6|14.7|14.8|14.9|14.10|15.1|15.2|15.3|15.4|15.5|16.1|16.2|16.3|16.4|16.5|16.6|16.8|16.9|17.3|17.4|17.5|17.6|18.1|18.2|18.4|19.1|20.2|20.4|20.5|20.7|20.8|20.9|20.10|20.11|20.12] [S|MISRA1998_CHECK_RULE|ALL] [S|MISRA1998_RULE|1|5|8|12|13|14|17|18|19|20|21|22|24|28|29|31|32|33|34|35|36|37|38|39|40|42|43|44|45|46|48|49|50|51|53|54|55|56|57|58|59|60|61|62|63|64|65|68|69|70|71|72|73|74|75|76|77|78|79|80|82|83|84|85|99|101|102|103|104|105|106|108|110|111|112|113|115|118|119|121|122|123|124|125|126|127] [S|MISRA_GROUP_FILE_PATH|^"$(PROJDIR)\$(PROJECTNAME).rde^"] [S|OPT_RANGE|ALL] [I|MAX_UNROLL|1] [S|FPSCR|SAFE] [S|CPU|SH2AFPU] [S|ROUND|NEAREST] [B|CHGINCPATH|1] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1]\r
 " 2 \r
 "[V|VERSION|7] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDLIB|1] [B|STRING|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [S|ALIGN4|ALL] [B|STUFF|0] [S|BSS_ORDER|DECLARATION] [S|GBR|AUTO] [S|INLINE|DEFAULT] [I|INLINE|20] [S|OPT_RANGE|ALL] [I|MAX_UNROLL|1] [B|SAVE_CONT_REG|1] [S|CPU|SH2AFPU] [S|ROUND|NEAREST] [B|SKIPDEPENDENCY|1]\r
 " 1 \r
index 75035418d8106dbbec6304a84e2e608db11b2f8d..2da30e45370ae5f571aa5c3e0e83ce79002c9839 100644 (file)
Binary files a/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav and b/Demo/SuperH_SH7216_Renesas/RTOSDemo/RTOSDemo.nav differ
index 9baa33cbbe66fadd9f18bf9f8d82838bf7e3b712..b76f61104c8e2a9954269b59434c0ad4619cf885 100644 (file)
@@ -81,7 +81,7 @@
 "{8A898260-6F1D-11D5-8EB6-00004CC34E9D}ECX_WAVE_SAMPLING_RATE" "1000" \r
 "{8A898260-6F1D-11D5-8EB6-00004CC34E9D}WaveformCtrlViews" "0" \r
 "{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersCtrlViews" "1" \r
-"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ColumnWidth" "50,396,118\r
+"{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ColumnWidth" "50,456,35\r
 "{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_COUNT" "82" \r
 "{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0ECX_REGISTER_DISPLAYED" "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1" \r
 "{95A081A1-7001-11D5-B1FD-00A0C9E23A58}RegistersWnd0HideFLAGs" "1" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth3" "200" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000" "pxCurrentTCB, 4, 0, P, Col, Hex, MN" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000_SCOPE" "Current Scope," \r
-"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001" "ulnum, 10, 0, P, Col, Hex, N" \r
+"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001" "*pulFlopBuffer, 10, 0, P, Col, Hex, N" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001_SCOPE" "Current Scope," \r
-"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002" "xnum, 10, 0, P, Col, Hex, N" \r
+"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002" "*pusTaskCheckVariable, 10, 0, P, Col, Hex, N" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002_SCOPE" "Current Scope," \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003" "xGenericListItem, 11, 0, C0001, Col, Hex, N" \r
 "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "xEventListItem, 11, 0, C0001, Col, Hex, N" \r
 "{D293FA15-461F-4D9F-B9C9-64724B3409F9}T_TRACE_TRACE_ACQUISITION2" "1,0,1,1,1,1,1,0,0,0,0,0,0" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_EVAL_DENORMAL_MODE" "16777216" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_EVAL_ROUND_MODE" "768" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_0" "000000000000000C\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_1" "000000000000000C\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_10" "000000000000006F\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_11" "0000000000000070\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_12" "0000000000000071\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_13" "0000000000000072\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_14" "000000000000000E\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_15" "00000000FFF80540\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_16" "0000000000004250\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_0" "0000000000000020\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_1" "00000000000C0001\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_10" "000000000000000A\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_11" "000000000000000B\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_12" "000000000000000C\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_13" "00000000FFE7FFFF\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_14" "0000000000000000\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_15" "00000000FFF869AC\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_16" "0000000000001ABA\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_17" "0000000000000001" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_18" "0000000000000075" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_19" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_2" "000000000000000D\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_2" "0000000000004EB8\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_20" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_21" "0000000000000074\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_22" "0000000000000073\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_21" "0000000000000011\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_22" "0000000000000010\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_23" "000000000000000F" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_24" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_25" "0000000000040001\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_25" "00000000000C1005\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_26" "0000000000000000" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_27" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_28" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_29" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_3" "000000000000000E\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_30" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_31" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_32" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_33" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_34" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_35" "0000000000000000\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_28" "00000000C0000034\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_29" "00000000CCCCCCCD\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_3" "00000000000C0005\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_30" "00000000C0785614\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_31" "000000007AE147AE\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_32" "0000000040DFBC8C\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_33" "00000000CCCCCCCD\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_34" "00000000BF8889CD\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_35" "00000000574CE48D\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_36" "0000000000000000" \r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_37" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_38" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_39" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_4" "000000000000000F\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_40" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_41" "0000000000000000\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_38" "00000000C0000034\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_39" "000000006DC5D639\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_4" "00000000FFF88166\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_40" "000000003F50624D\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_41" "00000000D2F1A9FC\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_42" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_43" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_44" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_45" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_46" "0000000000000000\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_43" "C0000034CCCCCCCD\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_44" "C07856147AE147AE\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_45" "40DFBC8CCCCCCCCD\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_46" "BF8889CD574CE48D\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_47" "0000000000000000" \r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_48" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_49" "0000000000000000\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_5" "0000000000000010\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_6" "0000000000000011\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_7" "0000000000000012\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_8" "0000000000000013\r
-"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_9" "000000000000006E\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_48" "C00000346DC5D639\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_49" "3F50624DD2F1A9FC\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_5" "0000000000041005\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_6" "0000000000080000\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_7" "0000000000040005\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_8" "0000000000000008\r
+"{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_9" "0000000000000009\r
 "{D34C8080-5A99-11D5-B1FD-00A0C9E23A58}C_REGISTER_REG_COUNT" "50" \r
 "{D595F9C0-EF22-11D5-B7DB-0000E10B3DA9}EventCtrlViews" "0" \r
 "{EEDC9300-6FBE-11D5-8613-00A024591A38}LocalsCtrlViews" "0" \r
 0 \r
 [WINDOW_POSITION_STATE_DATA_VD1]\r
 "Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0" \r
-"{WK_00000001_CmdLine}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 1 "0.23" 407 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" \r
+"{WK_00000001_CmdLine}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 1 "0.23" 220 0 0 350 200 17 0 "32771|32772|32778|<<separator>>|32773|32774|<<separator>>|32820|<<separator>>|32801|32824" "0.0" \r
 "{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 -4 -23 892 659 9 0 "" "0.0" \r
 "{WK_00000001_EVENT}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.50" 292 0 0 350 200 2065 0 "32774|32775|32777|<<separator>>|32780|<<separator>>" "0.0" \r
-"{WK_00000001_IO}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 3 "0.31" 407 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0" \r
+"{WK_00000001_IO}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 3 "0.31" 220 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0" \r
 "{WK_00000001_MEMORY}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.60" 219 0 0 350 200 2065 0 "42202|42203|42204|42233|<<separator>>|42206|42205|42230|42229|42207|<<separator>>|42208|42209|42210|49076|42228|42227|<<separator>>|42231|42232|42234|42235|<<separator>>|42211|<<separator>>" "0.0" \r
-"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 2 "0.73" 407 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0" \r
-"{WK_00000001_REGISTERS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59421 0 0 "1.00" 265 0 0 350 200 18 0 "" "0.0" \r
+"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 2 "0.73" 220 560 340 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0" \r
+"{WK_00000001_REGISTERS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59421 0 0 "1.00" 374 0 0 350 200 18 0 "" "0.0" \r
 "{WK_00000001_STACKTRACE}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.50" 219 0 0 350 200 2065 0 "" "0.0" \r
-"{WK_00000001_STATUS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 4 "0.50" 407 0 0 350 200 17 0 "" "0.0" \r
-"{WK_00000001_WATCH}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.27" 407 0 0 350 200 18 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811|32831" "0.0" \r
+"{WK_00000001_STATUS}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 4 "0.50" 220 0 0 350 200 17 0 "" "0.0" \r
+"{WK_00000001_WATCH}RTOSDemoSessionSH7216_E10A-USB_SYSTEM__SH" "WINDOW" 59422 0 0 "0.27" 220 0 0 350 200 18 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811|32831" "0.0" \r
 "{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 340 560 340 350 200 18 0 "" "0.0" \r
 "{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" \r
 "{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" \r
 [WINDOW_POSITION_STATE_DATA_VD3]\r
 [WINDOW_POSITION_STATE_DATA_VD4]\r
 [WINDOW_Z_ORDER]\r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\FreeRTOSConfig.h" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\flop.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" \r
-"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\port.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\main.c" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\ParTest\ParTest.c" \r
 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portmacro.h" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\SH2A_FPU\portasm.src" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\regtest.src" \r
+"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\SuperH_SH7216_Renesas\RTOSDemo\FreeRTOSConfig.h" \r
 [TARGET_NAME]\r
 "SH7216 E10A-USB SYSTEM (SH2A-FPU)" "" 0 \r
 [STATUSBAR_STATEINFO_VD1]\r
diff --git a/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c b/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
new file mode 100644 (file)
index 0000000..6f0342e
--- /dev/null
@@ -0,0 +1,372 @@
+/*\r
+    FreeRTOS V6.0.2 - Copyright (C) 2010 Real Time Engineers Ltd.\r
+\r
+    ***************************************************************************\r
+    *                                                                         *\r
+    * If you are:                                                             *\r
+    *                                                                         *\r
+    *    + New to FreeRTOS,                                                   *\r
+    *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
+    *    + Looking for basic training,                                        *\r
+    *    + Wanting to improve your FreeRTOS skills and productivity           *\r
+    *                                                                         *\r
+    * then take a look at the FreeRTOS eBook                                  *\r
+    *                                                                         *\r
+    *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
+    *                  http://www.FreeRTOS.org/Documentation                  *\r
+    *                                                                         *\r
+    * A pdf reference manual is also available.  Both are usually delivered   *\r
+    * to your inbox within 20 minutes to two hours when purchased between 8am *\r
+    * and 8pm GMT (although please allow up to 24 hours in case of            *\r
+    * exceptional circumstances).  Thank you for your support!                *\r
+    *                                                                         *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
+    ***NOTE*** The exception to the GPL is included to allow you to distribute\r
+    a combined work that includes FreeRTOS without being obliged to provide the\r
+    source code for proprietary components outside of the FreeRTOS kernel.\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
+    more details. You should have received a copy of the GNU General Public \r
+    License and the FreeRTOS license exception along with FreeRTOS; if not it \r
+    can be viewed here: http://www.freertos.org/a00114.html and also obtained \r
+    by writing to Richard Barry, contact details for whom are available on the\r
+    FreeRTOS WEB site.\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    http://www.FreeRTOS.org - Documentation, latest information, license and\r
+    contact details.\r
+\r
+    http://www.SafeRTOS.com - A version that is certified for use in safety\r
+    critical systems.\r
+\r
+    http://www.OpenRTOS.com - Commercial support, development, porting,\r
+    licensing and training services.\r
+*/\r
+\r
+/*\r
+ * Creates eight tasks, each of which loops continuously performing an (emulated) \r
+ * floating point calculation.\r
+ *\r
+ * All the tasks run at the idle priority and never block or yield.  This causes \r
+ * all eight tasks to time slice with the idle task.  Running at the idle priority \r
+ * means that these tasks will get pre-empted any time another task is ready to run\r
+ * or a time slice occurs.  More often than not the pre-emption will occur mid \r
+ * calculation, creating a good test of the schedulers context switch mechanism - a \r
+ * calculation producing an unexpected result could be a symptom of a corruption in \r
+ * the context of a task.\r
+ */\r
+\r
+#include <stdlib.h>\r
+#include <math.h>\r
+\r
+/* Scheduler include files. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo program include files. */\r
+#include "flop.h"\r
+\r
+#define mathSTACK_SIZE         configMINIMAL_STACK_SIZE\r
+#define mathNUMBER_OF_TASKS  ( 8 )\r
+\r
+/* Four tasks, each of which performs a different floating point calculation.  \r
+Each of the four is created twice. */\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );\r
+static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );\r
+\r
+/* These variables are used to check that all the tasks are still running.  If a \r
+task gets a calculation wrong it will\r
+stop incrementing its check variable. */\r
+static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vStartMathTasks( unsigned portBASE_TYPE uxPriority )\r
+{\r
+xTaskHandle xCreatedTask;\r
+\r
+       /* Create one of the floating point tasks... */\r
+       xTaskCreate( vCompetingMathTask1, ( signed char * ) "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xCreatedTask );\r
+       \r
+       /* ... then enable floating point support for the created task so its flop\r
+       flop registers are maintained in a consistent state. */\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+\r
+       xTaskCreate( vCompetingMathTask2, ( signed char * ) "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask3, ( signed char * ) "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask4, ( signed char * ) "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask1, ( signed char * ) "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask2, ( signed char * ) "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask3, ( signed char * ) "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vCompetingMathTask4, ( signed char * ) "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )\r
+{\r
+volatile double d1, d2, d3, d4;\r
+volatile unsigned short *pusTaskCheckVariable;\r
+volatile double dAnswer;\r
+short sError = pdFALSE;\r
+\r
+       d1 = 123.4567;\r
+       d2 = 2345.6789;\r
+       d3 = -918.222;\r
+\r
+       dAnswer = ( d1 + d2 ) * d3;\r
+\r
+       /* The variable this task increments to show it is still running is passed in \r
+       as the parameter. */\r
+       pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
+\r
+       /* Keep performing a calculation and checking the result against a constant. */\r
+       for(;;)\r
+       {\r
+               d1 = 123.4567;\r
+               d2 = 2345.6789;\r
+               d3 = -918.222;\r
+\r
+               d4 = ( d1 + d2 ) * d3;\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+               /* If the calculation does not match the expected constant, stop the \r
+               increment of the check variable. */\r
+               if( fabs( d4 - dAnswer ) > 0.001 )\r
+               {\r
+                       sError = pdTRUE;\r
+               }\r
+\r
+               if( sError == pdFALSE )\r
+               {\r
+                       /* If the calculation has always been correct, increment the check \r
+                       variable so we know this task is still running okay. */\r
+                       ( *pusTaskCheckVariable )++;\r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )\r
+{\r
+volatile double d1, d2, d3, d4;\r
+volatile unsigned short *pusTaskCheckVariable;\r
+volatile double dAnswer;\r
+short sError = pdFALSE;\r
+\r
+       d1 = -389.38;\r
+       d2 = 32498.2;\r
+       d3 = -2.0001;\r
+\r
+       dAnswer = ( d1 / d2 ) * d3;\r
+\r
+\r
+       /* The variable this task increments to show it is still running is passed in \r
+       as the parameter. */\r
+       pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
+\r
+       /* Keep performing a calculation and checking the result against a constant. */\r
+       for( ;; )\r
+       {\r
+               d1 = -389.38;\r
+               d2 = 32498.2;\r
+               d3 = -2.0001;\r
+\r
+               d4 = ( d1 / d2 ) * d3;\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+               \r
+               /* If the calculation does not match the expected constant, stop the \r
+               increment of the check variable. */\r
+               if( fabs( d4 - dAnswer ) > 0.001 )\r
+               {\r
+                       sError = pdTRUE;\r
+               }\r
+\r
+               if( sError == pdFALSE )\r
+               {\r
+                       /* If the calculation has always been correct, increment the check \r
+                       variable so we know\r
+                       this task is still running okay. */\r
+                       ( *pusTaskCheckVariable )++;\r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )\r
+{\r
+volatile double *pdArray, dTotal1, dTotal2, dDifference;\r
+volatile unsigned short *pusTaskCheckVariable;\r
+const size_t xArraySize = 10;\r
+size_t xPosition;\r
+short sError = pdFALSE;\r
+\r
+       /* The variable this task increments to show it is still running is passed in \r
+       as the parameter. */\r
+       pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
+\r
+       pdArray = ( double * ) pvPortMalloc( xArraySize * sizeof( double ) );\r
+\r
+       /* Keep filling an array, keeping a running total of the values placed in the \r
+       array.  Then run through the array adding up all the values.  If the two totals \r
+       do not match, stop the check variable from incrementing. */\r
+       for( ;; )\r
+       {\r
+               dTotal1 = 0.0;\r
+               dTotal2 = 0.0;\r
+\r
+               for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+               {\r
+                       pdArray[ xPosition ] = ( double ) xPosition + 5.5;\r
+                       dTotal1 += ( double ) xPosition + 5.5;  \r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+               for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+               {\r
+                       dTotal2 += pdArray[ xPosition ];\r
+               }\r
+\r
+               dDifference = dTotal1 - dTotal2;\r
+               if( fabs( dDifference ) > 0.001 )\r
+               {\r
+                       sError = pdTRUE;\r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+               if( sError == pdFALSE )\r
+               {\r
+                       /* If the calculation has always been correct, increment the check \r
+                       variable so we know     this task is still running okay. */\r
+                       ( *pusTaskCheckVariable )++;\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )\r
+{\r
+volatile double *pdArray, dTotal1, dTotal2, dDifference;\r
+volatile unsigned short *pusTaskCheckVariable;\r
+const size_t xArraySize = 10;\r
+size_t xPosition;\r
+short sError = pdFALSE;\r
+\r
+       /* The variable this task increments to show it is still running is passed in \r
+       as the parameter. */\r
+       pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
+\r
+       pdArray = ( double * ) pvPortMalloc( xArraySize * sizeof( double ) );\r
+\r
+       /* Keep filling an array, keeping a running total of the values placed in the \r
+       array.  Then run through the array adding up all the values.  If the two totals \r
+       do not match, stop the check variable from incrementing. */\r
+       for( ;; )\r
+       {\r
+               dTotal1 = 0.0;\r
+               dTotal2 = 0.0;\r
+\r
+               for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+               {\r
+                       pdArray[ xPosition ] = ( double ) xPosition * 12.123;\r
+                       dTotal1 += ( double ) xPosition * 12.123;       \r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+               for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
+               {\r
+                       dTotal2 += pdArray[ xPosition ];\r
+               }\r
+\r
+               dDifference = dTotal1 - dTotal2;\r
+               if( fabs( dDifference ) > 0.001 )\r
+               {\r
+                       sError = pdTRUE;\r
+               }\r
+\r
+               #if configUSE_PREEMPTION == 0\r
+                       taskYIELD();\r
+               #endif\r
+\r
+               if( sError == pdFALSE )\r
+               {\r
+                       /* If the calculation has always been correct, increment the check \r
+                       variable so we know     this task is still running okay. */\r
+                       ( *pusTaskCheckVariable )++;\r
+               }\r
+       }\r
+}                               \r
+/*-----------------------------------------------------------*/\r
+\r
+/* This is called to check that all the created tasks are still running. */\r
+portBASE_TYPE xAreMathsTaskStillRunning( void )\r
+{\r
+/* Keep a history of the check variables so we know if they have been incremented \r
+since the last call. */\r
+static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
+portBASE_TYPE xReturn = pdTRUE, xTask;\r
+\r
+       /* Check the maths tasks are still running by ensuring their check variables \r
+       are still incrementing. */\r
+       for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )\r
+       {\r
+               if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )\r
+               {\r
+                       /* The check has not incremented so an error exists. */\r
+                       xReturn = pdFALSE;\r
+               }\r
+\r
+               usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];\r
+       }\r
+\r
+       return xReturn;\r
+}\r
+\r
+\r
+\r
index e86918037e79b13797f4d1a270936941150f671e..00d2685363bfdab26df8488c4bb52ce08fd12875 100644 (file)
 #pragma section IntPRG\r
 \r
 // 4 Illegal code\r
-#pragma interrupt (INT_Illegal_code)\r
-void INT_Illegal_code(void)\r
-{\r
-volatile int i = 0;\r
-\r
-       while( i == 0 );\r
-}\r
+void INT_Illegal_code(void){for( ;; ); /* sleep(); */}\r
 \r
 // 5 Reserved\r
 \r
index 1a78b09b21ea06f1fb74019360e43a1690d1d1ef..9d6f718e738b6d68a5e3390ec8f27bfb5b30a24c 100644 (file)
@@ -67,6 +67,7 @@
 #include "GenQTest.h"\r
 #include "QPeek.h"\r
 #include "recmutex.h"\r
+#include "flop.h"\r
 \r
 /* Constants required to configure the hardware. */\r
 #define mainFRQCR_VALUE                                        ( 0x0303 )      /* Input = 12.5MHz, I Clock = 200MHz, B Clock = 50MHz, P Clock = 50MHz */\r
@@ -80,6 +81,7 @@
 #define mainFLASH_TASK_PRIORITY                                ( tskIDLE_PRIORITY + 1 )\r
 #define mainINTEGER_TASK_PRIORITY           ( tskIDLE_PRIORITY )\r
 #define mainGEN_QUEUE_TASK_PRIORITY                    ( tskIDLE_PRIORITY )\r
+#define mainFLOP_TASK_PRIORITY                         ( tskIDLE_PRIORITY )\r
 \r
 /* The LED toggle by the check task. */\r
 #define mainCHECK_LED                                          ( 5 )\r
@@ -106,11 +108,16 @@ volatile unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;
 \r
 void main(void)\r
 {\r
+xTaskHandle xCreatedTask;\r
+\r
        prvSetupHardware();\r
 \r
        /* Start the reg test tasks which test the context switching mechanism. */\r
-       xTaskCreate( vRegTest1Task, "RegTest1", configMINIMAL_STACK_SIZE, ( void * ) 0x12345678UL, tskIDLE_PRIORITY, NULL );\r
-       xTaskCreate( vRegTest2Task, "RegTest2", configMINIMAL_STACK_SIZE, ( void * ) 0x11223344UL, tskIDLE_PRIORITY, NULL );\r
+       xTaskCreate( vRegTest1Task, "RegTest1", configMINIMAL_STACK_SIZE, ( void * ) 0x12345678UL, tskIDLE_PRIORITY, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
+       \r
+       xTaskCreate( vRegTest2Task, "RegTest2", configMINIMAL_STACK_SIZE, ( void * ) 0x11223344UL, tskIDLE_PRIORITY, &xCreatedTask );\r
+       xPortUsesFloatingPoint( xCreatedTask );\r
 \r
        /* Start the check task as described at the top of this file. */\r
        xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
@@ -126,6 +133,7 @@ void main(void)
        vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY );\r
     vStartQueuePeekTasks();\r
     vStartRecursiveMutexTasks();\r
+       vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
 \r
        /* The suicide tasks must be created last as they need to know how many\r
        tasks were running prior to their creation in order to ascertain whether\r
@@ -146,6 +154,9 @@ static void prvCheckTask( void *pvParameter )
 portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME;\r
 unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;\r
 \r
+       /* Just to remove compiler warning. */\r
+       ( void ) pvParameter;\r
+\r
        /* Initialise xNextWakeTime - this only needs to be done once. */\r
        xNextWakeTime = xTaskGetTickCount();\r
 \r
@@ -194,6 +205,10 @@ unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;
            {\r
                xCycleFrequency = mainERROR_CYCLE_TIME;\r
            }\r
+               else if( xAreMathsTaskStillRunning() != pdTRUE )\r
+               {\r
+                       xCycleFrequency = mainERROR_CYCLE_TIME;\r
+               }\r
 \r
                /* Check the reg test tasks are still cycling.  They will stop incrementing\r
                their loop counters if they encounter an error. */\r
@@ -238,6 +253,10 @@ void vApplicationIdleHook( void )
 \r
 void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName )\r
 {\r
+       /* Just to remove compiler warnings. */\r
+       ( void ) pxTask;\r
+       ( void ) pcTaskName;\r
+       \r
        for( ;; );\r
 }\r
 /*-----------------------------------------------------------*/\r
@@ -283,7 +302,7 @@ unsigned long ulCompareMatch = ( configPERIPHERAL_CLOCK_HZ / ( configTICK_RATE_H
        /* Set the CMT interrupt priority - the interrupt priority must be\r
        configKERNEL_INTERRUPT_PRIORITY no matter which peripheral is used to generate\r
        the tick interrupt. */\r
-       INTC.IPR08.BIT._CMT0 = configKERNEL_INTERRUPT_PRIORITY;\r
+       INTC.IPR08.BIT._CMT0 = portKERNEL_INTERRUPT_PRIORITY;\r
        \r
        /* Clear the interrupt flag. */\r
        CMT0.CMCSR.BIT.CMF = 0;\r
index 378484ea2bdb2b0cc3574fcd00b35433ea63adab..7c6d42285ca6682851f8e399a8e543d8962d4b42 100644 (file)
     .section    P, code, align=4\r
        \r
        \r
-_vRegTest1Error:\r
-       bra             _vRegTest1Error \r
-       nop\r
-\r
-;-----------------------------------------------------------\r
        \r
 _vRegTest1Task:\r
 \r
        ; Fill the registers with known values.\r
+       mov             #2, r1\r
        mov             #3, r2\r
        mov             #4, r3\r
        mov             #5, r4\r
@@ -83,89 +79,190 @@ _vRegTest1Task:
        mov             #12, r11\r
        mov             #13, r12\r
        mov             #14, r13\r
+       mov             #15, r14\r
 \r
-       mov             #15, r0\r
-       lds             r0, macl\r
        mov             #16, r0\r
-       lds             r0, mach\r
+       lds             r0, macl\r
        mov             #17, r0\r
+       lds             r0, mach\r
+       mov             #18, r0\r
        ldc             r0, gbr\r
+\r
+       ; Also fill the flop registers with known values.\r
+       lds             r1, fpul\r
+       fsts    fpul, fr1\r
+       lds             r2, fpul\r
+       fsts    fpul, fr2\r
+       lds             r3, fpul\r
+       fsts    fpul, fr3\r
+       lds             r4, fpul\r
+       fsts    fpul, fr4\r
+       lds             r5, fpul\r
+       fsts    fpul, fr5\r
+       lds             r6, fpul\r
+       fsts    fpul, fr6\r
+       lds             r7, fpul\r
+       fsts    fpul, fr7\r
+       lds             r8, fpul\r
+       fsts    fpul, fr8\r
+       lds             r9, fpul\r
+       fsts    fpul, fr9\r
+       lds             r10, fpul\r
+       fsts    fpul, fr10\r
+       lds             r11, fpul\r
+       fsts    fpul, fr11\r
+       lds             r12, fpul\r
+       fsts    fpul, fr12\r
+       lds             r13, fpul\r
+       fsts    fpul, fr13\r
+       lds             r14, fpul\r
+       fsts    fpul, fr14\r
        \r
 _vRegTest1Loop:\r
 \r
+       ; Set FPUL to a known value before the yield.\r
+       mov             #123, r0\r
+       lds             r0, fpul\r
+\r
        ; Perform a yield, just for extra test coverage.\r
        trapa   #33\r
        \r
+       ; Check fpul still contains the expected value.\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
+       \r
        ; Reset r1 which was used in the tests.\r
        mov             #2, r1\r
 \r
        ; Test that the registers still contain the expected values.  If not, jump to\r
        ; vRegTestError, which will stop this function looping and so cause it to stop\r
-       ; incrementing its loop counter.        \r
+       ; incrementing its loop counter.  Both the standard and flop registers are \r
+       ; checked.      \r
        mov             #2, r0\r
        cmp/eq  r0, r1\r
        bf              _vRegTest1Error\r
+       flds    fr1, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
        \r
        mov             #3, r0\r
        cmp/eq  r0, r2\r
        bf              _vRegTest1Error\r
+       flds    fr2, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #4, r0\r
        cmp/eq  r0, r3\r
        bf              _vRegTest1Error\r
+       flds    fr3, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #5, r0\r
        cmp/eq  r0, r4\r
        bf              _vRegTest1Error\r
+       flds    fr4, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #6, r0\r
        cmp/eq  r0, r5\r
        bf              _vRegTest1Error\r
+       flds    fr5, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #7, r0\r
        cmp/eq  r0, r6\r
        bf              _vRegTest1Error\r
+       flds    fr6, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #8, r0\r
        cmp/eq  r0, r7\r
        bf              _vRegTest1Error\r
+       flds    fr7, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #9, r0\r
        cmp/eq  r0, r8\r
        bf              _vRegTest1Error\r
+       flds    fr8, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #10, r0\r
        cmp/eq  r0, r9\r
        bf              _vRegTest1Error\r
+       flds    fr9, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #11, r0\r
        cmp/eq  r0, r10\r
        bf              _vRegTest1Error\r
+       flds    fr10, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #12, r0\r
        cmp/eq  r0, r11\r
        bf              _vRegTest1Error\r
+       flds    fr11, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #13, r0\r
        cmp/eq  r0, r12\r
        bf              _vRegTest1Error\r
+       flds    fr12, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        mov             #14, r0\r
        cmp/eq  r0, r13\r
        bf              _vRegTest1Error\r
+       flds    fr13, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
+\r
+       mov             #15, r0\r
+       cmp/eq  r0, r14\r
+       bf              _vRegTest1Error\r
+       flds    fr14, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest1Error\r
 \r
        sts             macl, r0\r
-       mov             #15, r1\r
+       mov             #16, r1\r
        cmp/eq  r0, r1\r
        bf              _vRegTest1Error\r
 \r
        sts             mach, r0\r
-       mov             #16, r1\r
+       mov             #17, r1\r
        cmp/eq  r0, r1\r
        bf              _vRegTest1Error\r
 \r
        stc             gbr, r0\r
-       mov             #17, r1\r
+       mov             #18, r1\r
        cmp/eq  r0, r1\r
        bf              _vRegTest1Error\r
 \r
@@ -182,16 +279,16 @@ _vRegTest1Loop:
 \r
 ;-----------------------------------------------------------\r
 \r
-_vRegTest2Error:\r
-\r
-       bra             _vRegTest2Error\r
-       nop     \r
+_vRegTest1Error:\r
+       bra             _vRegTest1Error \r
+       nop\r
 \r
 ;-----------------------------------------------------------\r
 \r
 _vRegTest2Task:\r
 \r
-       ; Fill the registers with known values.\r
+       ; Fill the standard registers with known values.\r
+       mov             #12, r1\r
        mov             #13, r2\r
        mov             #14, r3\r
        mov             #15, r4\r
@@ -212,6 +309,36 @@ _vRegTest2Task:
        mov             #117, r0\r
        ldc             r0, gbr\r
        \r
+       ; Also fill the flop registers with known values.\r
+       lds             r1, fpul\r
+       fsts    fpul, fr1\r
+       lds             r2, fpul\r
+       fsts    fpul, fr2\r
+       lds             r3, fpul\r
+       fsts    fpul, fr3\r
+       lds             r4, fpul\r
+       fsts    fpul, fr4\r
+       lds             r5, fpul\r
+       fsts    fpul, fr5\r
+       lds             r6, fpul\r
+       fsts    fpul, fr6\r
+       lds             r7, fpul\r
+       fsts    fpul, fr7\r
+       lds             r8, fpul\r
+       fsts    fpul, fr8\r
+       lds             r9, fpul\r
+       fsts    fpul, fr9\r
+       lds             r10, fpul\r
+       fsts    fpul, fr10\r
+       lds             r11, fpul\r
+       fsts    fpul, fr11\r
+       lds             r12, fpul\r
+       fsts    fpul, fr12\r
+       lds             r13, fpul\r
+       fsts    fpul, fr13\r
+       lds             r14, fpul\r
+       fsts    fpul, fr14\r
+       \r
 _vRegTest2Loop:\r
 \r
        ; Reset r1 which was used in the tests.\r
@@ -219,58 +346,111 @@ _vRegTest2Loop:
 \r
        ; Test that the registers still contain the expected values.  If not, jump to\r
        ; vRegTestError, which will stop this function looping and so cause it to stop\r
-       ; incrementing its loop counter.        \r
+       ; incrementing its loop counter.  Both the standard and flop registers are \r
+       ; checked.      \r
        mov             #12, r0\r
        cmp/eq  r0, r1\r
        bf              _vRegTest2Error\r
+       flds    fr1, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
        \r
        mov             #13, r0\r
        cmp/eq  r0, r2\r
        bf              _vRegTest2Error\r
+       flds    fr2, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #14, r0\r
        cmp/eq  r0, r3\r
        bf              _vRegTest2Error\r
+       flds    fr3, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #15, r0\r
        cmp/eq  r0, r4\r
        bf              _vRegTest2Error\r
+       flds    fr4, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #16, r0\r
        cmp/eq  r0, r5\r
        bf              _vRegTest2Error\r
+       flds    fr5, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #17, r0\r
        cmp/eq  r0, r6\r
        bf              _vRegTest2Error\r
+       flds    fr6, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #18, r0\r
        cmp/eq  r0, r7\r
        bf              _vRegTest2Error\r
+       flds    fr7, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #19, r0\r
        cmp/eq  r0, r8\r
        bf              _vRegTest2Error\r
+       flds    fr8, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #110, r0\r
        cmp/eq  r0, r9\r
        bf              _vRegTest2Error\r
+       flds    fr9, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #111, r0\r
        cmp/eq  r0, r10\r
        bf              _vRegTest2Error\r
+       flds    fr10, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #112, r0\r
        cmp/eq  r0, r11\r
        bf              _vRegTest2Error\r
+       flds    fr11, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #113, r0\r
        cmp/eq  r0, r12\r
        bf              _vRegTest2Error\r
+       flds    fr12, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        mov             #114, r0\r
        cmp/eq  r0, r13\r
        bf              _vRegTest2Error\r
+       flds    fr13, fpul\r
+       sts             fpul, r1\r
+       cmp/eq  r0, r1\r
+       bf              _vRegTest2Error\r
 \r
        sts             macl, r0\r
        mov             #115, r1\r
@@ -298,6 +478,12 @@ _vRegTest2Loop:
        bra             _vRegTest2Loop\r
        nop\r
 \r
+;-----------------------------------------------------------\r
+\r
+_vRegTest2Error:\r
+\r
+       bra             _vRegTest2Error\r
+       nop     \r
 \r
 \r
        .end\r
index dc8cb9d3a66c88930a39e8828ba059d0fc4f7f74..a5f1f43a4c5ac38404f4e541591a7543511dded0 100644 (file)
@@ -14,7 +14,7 @@
 #include "vect.h"\r
 \r
 extern void vPortStartFirstTask( void );\r
-extern void vPortYield( void );\r
+extern void vPortYieldHandler( void );\r
 extern void vPortPreemptiveTick( void );\r
 \r
 #pragma section VECTTBL\r
@@ -97,7 +97,7 @@ void *INT_Vectors[] = {
        (void*) vPortStartFirstTask,\r
 // 33 TRAPA (User Vecter)\r
 //    (void*) INT_TRAPA33,\r
-       (void*) vPortYield,\r
+       (void*) vPortYieldHandler,\r
 // 34 TRAPA (User Vecter)\r
     (void*) INT_TRAPA34,\r
 // 35 TRAPA (User Vecter)\r