[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
#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
#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
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
/* 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
{\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
"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
"{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
--- /dev/null
+/*\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
#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
#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
#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
\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
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
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
{\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
\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
/* 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
.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
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
\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
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
\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
bra _vRegTest2Loop\r
nop\r
\r
+;-----------------------------------------------------------\r
+\r
+_vRegTest2Error:\r
+\r
+ bra _vRegTest2Error\r
+ nop \r
\r
\r
.end\r
#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
(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