From: richardbarry Date: Sun, 22 Aug 2010 11:45:24 +0000 (+0000) Subject: Continue development, plus add Blinky build configuration. X-Git-Tag: V6.1.0~79 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=13e57fa80607c990e1e6d4ce75bf027a25278bcf;p=freertos Continue development, plus add Blinky build configuration. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1056 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo.tws b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo.tws index ef666fddb..014497a2a 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo.tws +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo.tws @@ -7,7 +7,9 @@ [GENERAL_DATA] [BREAKPOINTS] [OPEN_WORKSPACE_FILES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" [WORKSPACE_FILE_STATES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" -4 -23 1351 509 1 0 [LOADED_PROJECTS] "RTOSDemo" [END] diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug/Debug.hdp b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug/Debug.hdp index 509444fd0..6f6a7658f 100644 Binary files a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug/Debug.hdp and b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug/Debug.hdp differ diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp index cd51a5c48..6be0ce3ab 100644 Binary files a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp and b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/Debug_RX600_E1_E20_SYSTEM/Debug_RX600_E1_E20_SYSTEM.hdp differ diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c index 08258327c..f971c4d05 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c @@ -51,7 +51,9 @@ licensing and training services. */ -/* High speed timer test as described in main.c. */ +/* + * High frequency timer test as described in main.c. + */ /* Scheduler includes. */ #include "FreeRTOS.h" diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/IntQueueTimer.c b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/IntQueueTimer.c index d18ac60a2..d25d68ef0 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/IntQueueTimer.c +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/IntQueueTimer.c @@ -51,6 +51,12 @@ licensing and training services. */ +/* + * This file contains the non-portable and therefore RX62N specific parts of + * the IntQueue standard demo task - namely the configuration of the timers + * that generate the interrupts and the interrupt entry points. + */ + /* Scheduler includes. */ #include "FreeRTOS.h" #include "task.h" diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.hwp b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.hwp index 654ff8051..95bc9cd82 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.hwp +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.hwp @@ -9,6 +9,7 @@ [TOOL_CHAIN] "Renesas RX Standard Toolchain" "1.0.0.0" [CONFIGURATIONS] +"Blinky" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Blinky" "Debug" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Debug" "Debug_RX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Debug_RX600_E1_E20_SYSTEM" "Debug_with_optimisation" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Debug_with_optimisation" @@ -141,6 +142,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "User" "C source file|FreeRTOS" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "User" "C source file|FreeRTOS|Portable layer" 2 @@ -169,8 +171,81 @@ [GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_SESSION_SimSessionRX600] +[OPTIONS_Blinky_Renesas OptLinker] +"Single Shot" "011647417f14bc10" 5 +[OPTIONS_Blinky_Renesas RX Assembler] +"Assembly source file" "088b30f0a993bc10" 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0cd92d23ed14bc10" 4 +"Linkage symbol file" "088b30f0a993bc10" 4 +[OPTIONS_Blinky_Renesas RX C/C++ Compiler] +"C source file" "067b2354f2d3bc10" 2 +"C++ source file" "067b2354f2d3bc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "090dfce07df3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0984667d4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "02b798669af3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "0fd4f0520214bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "05d6fdab4a04bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00526507a114bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\IntQueueTimer.c" "0a762c328df3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\ParTest.c" "067b2354f2d3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "02c169eb6f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03ceac85ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "067b2354f2d3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "067b2354f2d3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "067b2354f2d3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "067b2354f2d3bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "067b2354f2d3bc10" 2 +[OPTIONS_Blinky_Renesas RX C/C++ Library Generator] +"Single Shot" "0ca340787f14bc10" 1 +[OPTIONS_Blinky_Renesas RX Configurator] +"Single Shot" "02c169eb6f14bc10" 6 +[OPTIONS_Blinky] +"" 0 +"[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 +"[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +" 4 +"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 3 +"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|0] [B|SIZE|1] [B|MAP|0] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +" 2 +"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +" 1 +"[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1] +" 5 +[EXCLUDED_FILES_Blinky] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\IntQueueTimer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" +[LINKAGE_ORDER_Blinky] +[GENERAL_DATA_CONFIGURATION_Blinky] [OPTIONS_Debug_Renesas OptLinker] -"Single Shot" "013d6d85ed14bc10" 5 +"Single Shot" "021ac70d6f14bc10" 5 [OPTIONS_Debug_Renesas RX Assembler] "Assembly source file" "088b30f0a993bc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0cd92d23ed14bc10" 4 @@ -200,6 +275,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "02c169eb6f14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03ceac85ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "067b2354f2d3bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "067b2354f2d3bc10" 2 @@ -209,7 +285,7 @@ [OPTIONS_Debug_Renesas RX C/C++ Library Generator] "Single Shot" "0e1346de5614bc10" 1 [OPTIONS_Debug_Renesas RX Configurator] -"Single Shot" "03ceac85ed14bc10" 6 +"Single Shot" "02c169eb6f14bc10" 6 [OPTIONS_Debug] "" 0 "[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 @@ -224,10 +300,11 @@ "[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFF80000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1] " 5 [EXCLUDED_FILES_Debug] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" [LINKAGE_ORDER_Debug] [GENERAL_DATA_CONFIGURATION_Debug] [OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas OptLinker] -"Single Shot" "013d6d85ed14bc10" 4 +"Single Shot" "0fd3fdfb6f14bc10" 4 [OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Assembler] "Assembly source file" "0cb120ca4793bc10" 3 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0cd92d23ed14bc10" 3 @@ -257,6 +334,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "02c169eb6f14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03ceac85ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "04345d232893bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0b083d452893bc10" 2 @@ -266,7 +344,7 @@ [OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX C/C++ Library Generator] "Single Shot" "0cb120ca4793bc10" 1 [OPTIONS_Debug_RX600_E1_E20_SYSTEM_Renesas RX Configurator] -"Single Shot" "03ceac85ed14bc10" 5 +"Single Shot" "02c169eb6f14bc10" 5 [OPTIONS_Debug_RX600_E1_E20_SYSTEM] "" 0 "[S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [V|VERSION|1] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|ROUND|NEAREST] [S|DBL_SIZE|4] [B|SIGNED_CHAR|0] [B|SIGNED_BITFIELD|0] [S|BIT_ORDER|RIGHT] [S|FINT_REGISTER|0] [S|BRANCH|24] [S|LANG|C] [B|RUNTIME|1] [B|CTYPE|0] [B|MATH|0] [B|MATHF|0] [B|STDARG|0] [B|STDIO|0] [B|STDLIB|0] [B|STRING|0] [B|IOS|0] [B|NEW|1] [B|COMPLEX|0] [B|CPPSTRING|0] [S|MODE|BUILD/CHANGED]" 1 @@ -278,64 +356,66 @@ [LINKAGE_ORDER_Debug_RX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_Debug_RX600_E1_E20_SYSTEM] [OPTIONS_Debug_with_optimisation_Renesas OptLinker] -"Single Shot" "013d6d85ed14bc10" 5 +"Single Shot" "0365455c6f14bc10" 5 [OPTIONS_Debug_with_optimisation_Renesas RX Assembler] "Assembly source file" "088b30f0a993bc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0cd92d23ed14bc10" 4 "Linkage symbol file" "088b30f0a993bc10" 4 [OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Compiler] -"C source file" "00681241e014bc10" 2 -"C++ source file" "00681241e014bc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "0fd4f0520214bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00526507a114bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\IntQueueTimer.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\ParTest.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0cd92d23ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03ceac85ed14bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00681241e014bc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00681241e014bc10" 2 +"C source file" "03e2e2a06f14bc10" 2 +"C++ source file" "03e2e2a06f14bc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flop.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\IntQueueTimer.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\ParTest.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "02c169eb6f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "03e2e2a06f14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "03e2e2a06f14bc10" 2 [OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator] -"Single Shot" "02ac694e5a04bc10" 1 +"Single Shot" "00e576febe14bc10" 1 [OPTIONS_Debug_with_optimisation_Renesas RX Configurator] -"Single Shot" "03ceac85ed14bc10" 6 +"Single Shot" "02c169eb6f14bc10" 6 [OPTIONS_Debug_with_optimisation] "" 0 "[V|VERSION|1] [B|COMMAND|1] [S|SPEC|UITRON4] [S|OUTPUTPATH|^"$(CONFIGDIR)^"] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|FINT_REGISTER|0]" 6 "[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] " 4 -"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +"[V|VERSION|1] [S|LANG|CPP] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|DEFINE|INCLUDE_HIGH_FREQUENCY_TIMER_TEST=1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] " 3 -"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] +"[V|VERSION|1] [S|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"] [S|DEFINE|INCLUDE_HIGH_FREQUENCY_TIMER_TEST=1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [B|DEBUG|1] [S|OPTIMIZE|MAX] [B|SIZE|1] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|INLINE|100] [I|LOOP|2] [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|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] [N|DEPENDSCAN|1] " 2 -"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] +"[V|VERSION|1] [S|MODE|BUILD/CHANGED] [S|EXISTOUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|RUNTIME|1] [B|MATH|1] [B|STDIO|1] [B|STDLIB|1] [B|STRING|1] [B|NOFLOAT|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] [B|SKIPDEPENDENCY|1] " 1 "[V|VERSION|6] [S|FORM|STYPE] [S|BYTE_COUNT_VALUE|FF] [B|DEBUG|1] [S|ROM|(D,R)|(D_1,R_1)|(D_2,R_2)] [S|CRC|NONE|DEFAULT|00000000] [B|LIST|1] [S|LIST|^"$(CONFIGDIR)\$(PROJECTNAME).map^"] [S|SHOW|METHODCUSTOM|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [B|MAP|1] [S|MAPPATH|^"$(CONFIGDIR)\$(PROJECTNAME).bls^"] [I|SPACE|^"FF^"] [S|OPTIMIZEITEMS|SPEED] [S|START|B_1,R_1,B_2,R_2,B,R,SU,SI(01000)|PResetPRG(0FFFF8000)|C_1,C_2,C,C$*,D*,P,PIntPRG,W*(0FFFF8100)|FIXEDVECT(0FFFFFFD0)] [B|SKIPDEPENDENCY|1] " 5 [EXCLUDED_FILES_Debug_with_optimisation] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" [LINKAGE_ORDER_Debug_with_optimisation] [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] [OPTIONS_SimDebug_RX600_Renesas OptLinker] -"Single Shot" "013d6d85ed14bc10" 4 +"Single Shot" "0fd3fdfb6f14bc10" 4 [OPTIONS_SimDebug_RX600_Renesas RX Assembler] "Assembly source file" "0cb120ca4793bc10" 3 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0cd92d23ed14bc10" 3 @@ -365,6 +445,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0cd92d23ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0cd92d23ed14bc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-blinky.c" "02c169eb6f14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" "03ceac85ed14bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "04345d232893bc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0b083d452893bc10" 2 @@ -374,7 +455,7 @@ [OPTIONS_SimDebug_RX600_Renesas RX C/C++ Library Generator] "Single Shot" "0cb120ca4793bc10" 1 [OPTIONS_SimDebug_RX600_Renesas RX Configurator] -"Single Shot" "03ceac85ed14bc10" 5 +"Single Shot" "02c169eb6f14bc10" 5 [OPTIONS_SimDebug_RX600] "" 0 "[S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [V|VERSION|1] [S|CPU|RX600] [S|ENDIAN|LITTLE] [S|ROUND|NEAREST] [S|DBL_SIZE|4] [B|SIGNED_CHAR|0] [B|SIGNED_BITFIELD|0] [S|BIT_ORDER|RIGHT] [S|FINT_REGISTER|0] [S|BRANCH|24] [S|LANG|C] [B|RUNTIME|1] [B|CTYPE|0] [B|MATH|0] [B|MATHF|0] [B|STDARG|0] [B|STDIO|0] [B|STDLIB|0] [B|STRING|0] [B|IOS|0] [B|NEW|1] [B|COMPLEX|0] [B|CPPSTRING|0] [S|MODE|BUILD/CHANGED]" 1 @@ -385,6 +466,15 @@ [EXCLUDED_FILES_SimDebug_RX600] [LINKAGE_ORDER_SimDebug_RX600] [GENERAL_DATA_CONFIGURATION_SimDebug_RX600] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession] +[SESSION_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession] +"MEMORY_MAPPING_OPTIONS" "" +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] +[SESSION_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] +"MEMORY_MAPPING_OPTIONS" "Unknown Options" +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600] +[SESSION_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600] +"MEMORY_MAPPING_OPTIONS" "[V|VERSION|1] [S|CPUTYPE|^"Other (RX600)^"] [S|MAP|^"0x00000000,0x0001FFFF,RAM,32,0101,2 0x00080000,0x000FFFFF,I/O,32,0101,2 0x00100000,0x00107FFF,ROM,32,0101,2 0x007F8000,0x007F9FFF,RAM,32,0101,2 0x007FC000,0x007FC4FF,I/O,32,0101,2 0x007FFC00,0x007FFFFF,I/O,32,0101,2 0x00E00000,0x00FFFFFF,ROM,32,0101,2 0xFEFFE000,0xFEFFFFFF,ROM,32,0101,2 0xFF7FC000,0xFF7FFFFF,ROM,32,0101,2 0xFFE00000,0xFFFFFFFF,ROM,32,0101,2^"] [S|RESOURCE|^"0x00000000,0x0001FFFF,R/W 0x00080000,0x000FFFFF,R/W 0x007FC000,0x007FC4FF,R/W 0x007FFC00,0x007FFFFF,R/W 0xFFFF8000,0xFFFFFFFF,R/W ^"] [B|SIMIOF|0] [I|SIMIOADR|0x0] [I|BUS_MODE|0] [S|ENDIAN|^"LITTLE^"] [S|PATCH|^"OFF^"]" [GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession] [SESSION_DATA_CONFIGURATION_SESSION_Debug_DefaultSession] "MEMORY_MAPPING_OPTIONS" "" diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.nav b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.nav index e3ab6ff93..0d08f43cf 100644 Binary files a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.nav and b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.nav differ diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.tps b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.tps index 3e7f32caa..57e4f1cab 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.tps +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/RTOSDemo.tps @@ -7,6 +7,7 @@ "SessionRX600_E1_E20_SYSTEM" "SimSessionRX600" [CONFIGURATIONS] +"Blinky" "Debug" "Debug_RX600_E1_E20_SYSTEM" "Debug_with_optimisation" @@ -16,6 +17,12 @@ [CURRENT_SESSION] "SessionRX600_E1_E20_SYSTEM" [GENERAL_DATA_PROJECT] +[GENERAL_DATA_CONFIGURATION_Blinky] +"PROJECT_FILES_MODIFIED_DATA_TAG" "FALSE" +[SESSIONS_Blinky] +"DefaultSession" +"SessionRX600_E1_E20_SYSTEM" +"SimSessionRX600" [GENERAL_DATA_CONFIGURATION_Debug] "PROJECT_FILES_MODIFIED_DATA_TAG" "TRUE" [SESSIONS_Debug] @@ -44,6 +51,8 @@ [GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SimSessionRX600] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SimSessionRX600] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SessionRX600_E1_E20_SYSTEM] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_DefaultSession] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_RX600_E1_E20_SYSTEM_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_DefaultSession] [GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SessionRX600_E1_E20_SYSTEM] @@ -53,6 +62,7 @@ [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SimSessionRX600] [GENERAL_DATA_CONFIGURATION_SESSION_SimDebug_RX600_SimSessionRX600] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession] +[GENERAL_DATA_CONFIGURATION_SESSION_Blinky_SimSessionRX600] [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] [GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM] [END] diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf index 7b2c53b58..b915aab8b 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf @@ -159,7 +159,9 @@ "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth12" "200" "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth2" "120" "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth3" "200" -"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "0" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000" "cbuffer, 10, 0, P, Col, Hex, N" +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000_SCOPE" "Current Scope," +"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "1" "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth0" "120" "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth1" "150" "{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth12" "200" @@ -307,7 +309,7 @@ [LANGUAGE] "English" [CONFIG_INFO_VD1] -0 +1 [CONFIG_INFO_VD2] 0 [CONFIG_INFO_VD3] @@ -324,7 +326,7 @@ "{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 351 560 340 350 200 18 0 "36756|36757|36758|36759|<>|36746|36747|<>|39531|<>|39500|39534|<>|36687" "0.0" "{WK_00000001_REGISTERS}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "1.00" 307 0 0 350 200 2065 0 "" "0.0" "{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 1 "0.53" 351 0 0 853 610 17 0 "32781|32783|<>|32771|32829|32772|32827|32773|<>|32786|<>|32810|32811" "0.0" -"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 517 560 340 350 200 18 0 "" "0.0" +"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 305 560 340 350 200 18 0 "" "0.0" "{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0" "{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0" "{WK_TB00000003_BOOKMARKS}" "TOOLBAR 0" 59419 1 1 "0.00" 0 0 0 0 0 17 0 "" "0.0" @@ -350,6 +352,7 @@ [WINDOW_POSITION_STATE_DATA_VD3] [WINDOW_POSITION_STATE_DATA_VD4] [WINDOW_Z_ORDER] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX62N-MDK_Renesas\RTOSDemo\main-full.c" [TARGET_NAME] "RX600 E1/E20 SYSTEM" "" 0 [STATUSBAR_STATEINFO_VD1] diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp index 76b37c27a..89257ea36 100644 Binary files a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp and b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/SimDebug_RX600/SimDebug_RX600.hdp differ diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-blinky.c b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-blinky.c new file mode 100644 index 000000000..8fea457d2 --- /dev/null +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-blinky.c @@ -0,0 +1,217 @@ +/* + FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd. + + *************************************************************************** + * * + * If you are: * + * * + * + New to FreeRTOS, * + * + Wanting to learn FreeRTOS or multitasking in general quickly * + * + Looking for basic training, * + * + Wanting to improve your FreeRTOS skills and productivity * + * * + * then take a look at the FreeRTOS eBook * + * * + * "Using the FreeRTOS Real Time Kernel - a Practical Guide" * + * http://www.FreeRTOS.org/Documentation * + * * + * A pdf reference manual is also available. Both are usually delivered * + * to your inbox within 20 minutes to two hours when purchased between 8am * + * and 8pm GMT (although please allow up to 24 hours in case of * + * exceptional circumstances). Thank you for your support! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation AND MODIFIED BY the FreeRTOS exception. + ***NOTE*** The exception to the GPL is included to allow you to distribute + a combined work that includes FreeRTOS without being obliged to provide the + source code for proprietary components outside of the FreeRTOS kernel. + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. You should have received a copy of the GNU General Public + License and the FreeRTOS license exception along with FreeRTOS; if not it + can be viewed here: http://www.freertos.org/a00114.html and also obtained + by writing to Richard Barry, contact details for whom are available on the + FreeRTOS WEB site. + + 1 tab == 4 spaces! + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/* + * This is a very simple demo that creates two tasks and one queue. One task + * (the queue receive task) blocks on the queue to wait for data to arrive, + * toggling an LED each time '100' is received. The other task (the queue send + * task) repeatedly blocks for a fixed period before sending '100' to the queue + * (causing the first task to toggle the LED). + * + * For a much more complete and complex example select either the Debug or + * Debug_with_optimisation build configurations within the HEW IDE. +*/ + +/* Hardware specific includes. */ +#include "iodefine.h" + +/* Kernel includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "queue.h" + +/* Priorities at which the tasks are created. */ +#define configQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) +#define configQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) + +/* The rate at which data is sent to the queue, specified in milliseconds. */ +#define mainQUEUE_SEND_FREQUENCY_MS ( 500 / portTICK_RATE_MS ) + +/* The number of items the queue can hold. This is 1 as the receive task +will remove items as they are added so the send task should always find the +queue empty. */ +#define mainQUEUE_LENGTH ( 1 ) + +/* + * The tasks as defined at the top of this file. + */ +static void prvQueueReceiveTask( void *pvParameters ); +static void prvQueueSendTask( void *pvParameters ); + +/* The queue used by both tasks. */ +static xQueueHandle xQueue = NULL; + +/*-----------------------------------------------------------*/ + +void main(void) +{ +extern void HardwareSetup( void ); + + /* Renesas provided CPU configuration routine. The clocks are configured in + here. */ + HardwareSetup(); + + /* Turn all LEDs off. */ + vParTestInitialise(); + + /* Create the queue. */ + xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); + + if( xQueue != NULL ) + { + /* Start the two tasks as described at the top of this file. */ + xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, configQUEUE_RECEIVE_TASK_PRIORITY, NULL ); + xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL ); + + /* Start the tasks running. */ + vTaskStartScheduler(); + } + + /* If all is well we will never reach here as the scheduler will now be + running. If we do reach here then it is likely that there was insufficient + heap available for the idle task to be created. */ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +static void prvQueueSendTask( void *pvParameters ) +{ +portTickType xNextWakeTime; +const unsigned long ulValueToSend = 100UL; + + /* Initialise xNextWakeTime - this only needs to be done once. */ + xNextWakeTime = xTaskGetTickCount(); + + for( ;; ) + { + /* Place this task in the blocked state until it is time to run again. + The block state is specified in ticks, the constant used converts ticks + to ms. */ + vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); + + /* Send to the queue - causing the queue receive task to flash its LED. 0 + is used so the send does not block - it shouldn't need to as the queue + should always be empty here. */ + xQueueSend( xQueue, &ulValueToSend, 0 ); + } +} +/*-----------------------------------------------------------*/ + +static void prvQueueReceiveTask( void *pvParameters ) +{ +unsigned long ulReceivedValue; + + for( ;; ) + { + /* Wait until something arives in the queue - this will block + indefinitely provided INCLUDE_vTaskSuspend is set to 1 in + FreeRTOSConfig.h. */ + xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); + + /* To get here something must have arrived, but is it the expected + value? If it is, toggle the LED. */ + if( ulReceivedValue == 100UL ) + { + vParTestToggleLED( 0 ); + } + } +} +/*-----------------------------------------------------------*/ + +void vApplicationSetupTimerInterrupt( void ) +{ + /* Enable compare match timer 0. */ + MSTP( CMT0 ) = 0; + + /* Interrupt on compare match. */ + CMT0.CMCR.BIT.CMIE = 1; + + /* Set the compare match value. */ + CMT0.CMCOR = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / configTICK_RATE_HZ ) -1 ) / 8 ); + + /* Divide the PCLK by 8. */ + CMT0.CMCR.BIT.CKS = 0; + + /* Enable the interrupt... */ + _IEN( _CMT0_CMI0 ) = 1; + + /* ...and set its priority to the application defined kernel priority. */ + _IPR( _CMT0_CMI0 ) = configKERNEL_INTERRUPT_PRIORITY; + + /* Start the timer. */ + CMT.CMSTR0.BIT.STR0 = 1; +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationMallocFailedHook( void ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName ) +{ + for( ;; ); +} +/*-----------------------------------------------------------*/ + +/* This function is explained by the comments above its prototype at the top +of this file. */ +void vApplicationIdleHook( void ) +{ +} +/*-----------------------------------------------------------*/ diff --git a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-full.c b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-full.c index 88074fa88..03ccf241c 100644 --- a/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-full.c +++ b/Demo/RX600_RX62N-MDK_Renesas/RTOSDemo/main-full.c @@ -51,15 +51,66 @@ licensing and training services. */ -/* - * NOTE 1: The CPU must be in Supervisor mode when the scheduler is started. +/* + * This project includes a lot of tasks and tests and is therefore complex. + * If you would prefer a much simpler project to get started with then select + * the 'Blinky' build configuration within the HEW IDE. + * + * Creates all the demo application tasks, then starts the scheduler. The WEB + * documentation provides more details of the standard demo application tasks, + * which provide no particular functionality but do provide a good example of + * how to use the FreeRTOS API. The tasks defined in flop.c are included in the + * set of standard demo tasks to ensure the floating point unit gets some + * exercise. + * + * In addition to the standard demo tasks, the following tasks and tests are + * defined and/or created within this file: + * + * "Reg test" tasks - These fill the registers with known values, then check + * that each register still contains its expected value. Each task uses + * different values. The tasks run with very low priority so get preempted very + * frequently. A register containing an unexpected value is indicative of an + * error in the context switching mechanism and will result in interrupts being + * disabled and a branch to a null loop. This has the effect of stopping + * execution of all the tests and tasks, which in turn results in all LED + * activity stopping too. The nature of the reg test tasks necessitates that + * they are written in assembly code. The check task (described below) checks + * that the reg test tasks are still executing and will indicate an error if + * either reg test task is found to have stalled. + * + * "Check" task - This only executes every five seconds but has a high priority + * to ensure it gets processor time. Its main function is to check that all the + * standard demo tasks are still operational. While no errors have been + * discovered the check task will toggle LED 5 every 5 seconds - the toggle + * rate increasing to 200ms being a visual indication that at least one task has + * reported unexpected behaviour. + * + * "High frequency timer test" - A high frequency periodic interrupt is + * generated using a timer - the interrupt is assigned a priority above + * configMAX_SYSCALL_INTERRUPT_PRIORITY so should not be effected by anything + * the kernel is doing. The interrupt service routine measures the number of + * counts a separate timer performs between each interrupt to determine the + * jitter in the interrupt timing. + * + * *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application + * tasks are executing as expected and no errors have been reported in any + * tasks. The toggle rate increasing to 200ms indicates that at least one task + * has reported unexpected behaviour. + * + * *NOTE 2* vApplicationSetupTimerInterrupt() is called by the kernel to let + * the application set up a timer to generate the tick interrupt. In this + * example a compare match timer is used for this purpose. + * + * *NOTE 3* The CPU must be in Supervisor mode when the scheduler is started. * The PowerON_Reset_PC() supplied in resetprg.c with this demo has * Change_PSW_PM_to_UserMode() commented out to ensure this is the case. + * + * *NOTE 4* The IntQueue common demo tasks test interrupt nesting and make use + * of all the 8bit timers (as two cascaded 16bit units). */ /* Hardware specific includes. */ #include "iodefine.h" -#include "rskrx62ndef.h" /* Kernel includes. */ #include "FreeRTOS.h" @@ -81,7 +132,7 @@ #include "flop.h" /* Values that are passed into the reg test tasks using the task parameter. The -tasks then check that the values are passed in correctly. */ +tasks check that the values are passed in correctly. */ #define mainREG_TEST_1_PARAMETER ( 0x12121212UL ) #define mainREG_TEST_2_PARAMETER ( 0x12345678UL ) @@ -101,16 +152,19 @@ tasks then check that the values are passed in correctly. */ #define mainCHECK_LED ( 5 ) /* The rate at which mainCHECK_LED will toggle when all the tasks are running -without error. */ +without error. Controlled by the check task as described at the top of this +file. */ #define mainNO_ERROR_CYCLE_TIME ( 5000 / portTICK_RATE_MS ) /* The rate at which mainCHECK_LED will toggle when an error has been reported -by at least one task. */ +by at least one task. Controlled by the check task as described at the top of +this file. */ #define mainERROR_CYCLE_TIME ( 200 / portTICK_RATE_MS ) -/* The period of the system clock in nano seconds. This is used to calculate -the jitter time in nano seconds as part of the high frequency timer test. */ -#define mainNS_PER_CLOCK ( ( unsigned long ) ( ( 1.0 / ( double ) configPERIPHERAL_CLOCK_HZ ) * 1000000000.0 ) ) +/* The period of the peripheral clock in nano seconds. This is used to calculate +the jitter time in nano seconds as part of the high frequency timer test. The +clock driving the timer is divided by 8. */ +#define mainNS_PER_CLOCK ( ( unsigned long ) ( ( 1.0 / ( ( double ) configPERIPHERAL_CLOCK_HZ ) / 8.0 ) * 1000000000.0 ) ) /* * vApplicationMallocFailedHook() will only be called if @@ -147,11 +201,11 @@ void vApplicationStackOverflowHook( xTaskHandle *pxTask, signed char *pcTaskName /* * The reg test tasks as described at the top of this file. */ -void vRegTest1Task( void *pvParameters ); -void vRegTest2Task( void *pvParameters ); +static void prvRegTest1Task( void *pvParameters ); +static void prvRegTest2Task( void *pvParameters ); /* - * The actual implementatio of the reg test functionality, which, because of + * The actual implementation of the reg test functionality, which, because of * the direct register access, have to be in assembly. */ static void prvRegTest1Implementation( void ); @@ -164,7 +218,8 @@ static void prvCheckTask( void *pvParameters ); /* Variables that are incremented on each iteration of the reg test tasks - provided the tasks have not reported any errors. The check task inspects these -variables to ensure they are still incrementing as expected. */ +variables to ensure they are still incrementing as expected. If a variable +stops incrementing then it is likely that its associate task has stalled. */ unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; /*-----------------------------------------------------------*/ @@ -181,8 +236,8 @@ extern void HardwareSetup( void ); vParTestInitialise(); /* Start the reg test tasks which test the context switching mechanism. */ - xTaskCreate( vRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL ); - xTaskCreate( vRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); + xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL ); + xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL ); /* Start the check task as described at the top of this file. */ xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE * 3, NULL, mainCHECK_TASK_PRIORITY, NULL ); @@ -221,12 +276,15 @@ static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2Cycl portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME; extern void vSetupHighFrequencyTimer( void ); extern volatile unsigned short usMaxJitter; -static char cTempBuf[ 15 ]; /* To be deleted when debug console is working. */ volatile unsigned long ulActualJitter = 0; /* If this is being executed then the kernel has been started. Start the high - frequency timer test as described at the top of this file. */ - vSetupHighFrequencyTimer(); + frequency timer test as described at the top of this file. This is only + included in the optimised build configuration - otherwise it takes up too much + CPU time. */ + #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST + vSetupHighFrequencyTimer(); + #endif /* Initialise xNextWakeTime - this only needs to be done once. */ xNextWakeTime = xTaskGetTickCount(); @@ -300,20 +358,22 @@ volatile unsigned long ulActualJitter = 0; ulLastRegTest1CycleCount = ulRegTest1CycleCount; ulLastRegTest2CycleCount = ulRegTest2CycleCount; - /* Toggle the check LED to give an indication of the system status. If the - LED toggles every 5 seconds then everything is ok. A faster toggle indicates - an error. */ + /* Toggle the check LED to give an indication of the system status. If + the LED toggles every 5 seconds then everything is ok. A faster toggle + indicates an error. */ vParTestToggleLED( mainCHECK_LED ); - /* Calculate the maximum jitter experienced by the high frequency timer test - and print it out. It is ok to use printf without worrying about mutual - exclusion as it is not used anywhere else in this demo. */ + /* Calculate the maximum jitter experienced by the high frequency timer + test and print it out. It is ok to use printf without worrying about + mutual exclusion as it is not used anywhere else in this demo. */ //sprintf( cTempBuf, "%s [%fns]\n", "Max Jitter = ", ( ( float ) usMaxJitter ) * mainNS_PER_CLOCK ); ulActualJitter = ( ( unsigned long ) usMaxJitter ) * mainNS_PER_CLOCK; } } /*-----------------------------------------------------------*/ +/* The RX port uses this callback function to configure its tick interrupt. +This allows the application to choose the tick interrupt source. */ void vApplicationSetupTimerInterrupt( void ) { /* Enable compare match timer 0. */ @@ -362,7 +422,8 @@ void vApplicationIdleHook( void ) } /*-----------------------------------------------------------*/ -void vRegTest1Task( void *pvParameters ) +/* This function is explained in the comments at the top of this file. */ +static void prvRegTest1Task( void *pvParameters ) { if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER ) { @@ -379,7 +440,8 @@ void vRegTest1Task( void *pvParameters ) } /*-----------------------------------------------------------*/ -void vRegTest2Task( void *pvParameters ) +/* This function is explained in the comments at the top of this file. */ +static void prvRegTest2Task( void *pvParameters ) { if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER ) { @@ -396,6 +458,7 @@ void vRegTest2Task( void *pvParameters ) } /*-----------------------------------------------------------*/ +/* This function is explained in the comments at the top of this file. */ #pragma inline_asm prvRegTest1Implementation static void prvRegTest1Implementation( void ) { @@ -483,6 +546,7 @@ RegTest1Error: } /*-----------------------------------------------------------*/ +/* This function is explained in the comments at the top of this file. */ #pragma inline_asm prvRegTest2Implementation static void prvRegTest2Implementation( void ) {