From 1e544bd3013f79907be7acee7ec5887d5c403b80 Mon Sep 17 00:00:00 2001 From: richardbarry Date: Sat, 17 Mar 2012 15:02:32 +0000 Subject: [PATCH] Update demos to use timers for the check functionality, and the flash timers. Floating point and Ethernet is not yet included. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1701 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws | 14 +- .../RTOSDemo/FreeRTOSConfig.h | 1 + .../RTOSDemo/RTOSDemo.hwp | 189 ++++++------ .../RTOSDemo/RTOSDemo.nav | Bin 328074 -> 337404 bytes .../RTOSDemo/RTOSDemo.tps | 22 +- .../RTOSDemo/Renesas-Files/resetprg.c | 2 +- .../RTOSDemo/SessionRX600_E1_E20_SYSTEM.hsf | 53 ++-- .../RTOSDemo/main-blinky.c | 76 +++-- .../RTOSDemo/main-full.c | 270 ++++++++++-------- 9 files changed, 338 insertions(+), 289 deletions(-) diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws index cd506b80d..910becbd1 100644 --- a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws +++ b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo.tws @@ -7,13 +7,21 @@ [GENERAL_DATA] [BREAKPOINTS] [OPEN_WORKSPACE_FILES] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\include\flash_timer.h" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" [WORKSPACE_FILE_STATES] -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" 22 22 1142 391 0 0 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" 154 154 835 366 0 1 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" -4 -23 1019 569 1 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" 0 0 1326 516 0 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\include\flash_timer.h" 66 66 1120 448 0 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" 44 44 1164 335 0 1 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" 88 88 1120 448 0 4 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" 154 154 835 366 0 0 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" -4 -23 1326 673 1 6 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" 110 110 1120 448 0 5 [LOADED_PROJECTS] "RTOSDemo" [END] diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h index 3d56a1e7d..86b84fb33 100644 --- a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h +++ b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h @@ -92,6 +92,7 @@ #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 7 ) #define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + /* Software timer definitions. */ #define configUSE_TIMERS 1 #define configTIMER_TASK_PRIORITY ( 3 ) diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp index 51c9b052c..6dde71476 100644 --- a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp +++ b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.hwp @@ -124,7 +124,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "User" "C source file|Common demo tasks" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "User" "C source file|Common demo tasks" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "User" "C source file|Common demo tasks" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "User" "C source file|Common demo tasks" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "User" "C source file|Common demo tasks" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "User" "C source file|Common demo tasks" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "User" "C source file|Common demo tasks" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "User" "C source file|Common demo tasks" 2 @@ -139,16 +139,15 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "User" "C source file|Renesas Files" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "User" "C source file|Renesas Files" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "User" "C source file|Renesas Files" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\lcd.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" "User" "C source file" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "User" "C source file" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\switches.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 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "User" "C source file|FreeRTOS|Portable layer" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "User" "Assembly source file" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "User" "C source file|FreeRTOS" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "User" "C source file|FreeRTOS" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "User" "C source file" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "User" "C source file|FreeRTOS" 2 [FOLDER] "Assembly source file" "Assembly source file" "C header file" "C header file" @@ -209,74 +208,68 @@ [ON_DEMAND_COMPONENTS_LOADED] [SYNC_SESSION_NAMES] [SESSIONS] -"DefaultSession" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\DefaultSession.hsf" 0 "SessionRX600_E1_E20_SYSTEM" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\SessionRX600_E1_E20_SYSTEM.hsf" 0 -"SimSessionRX600" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\SimSessionRX600.hsf" 0 -[GENERAL_DATA_SESSION_DefaultSession] [GENERAL_DATA_SESSION_SessionRX600_E1_E20_SYSTEM] -[GENERAL_DATA_SESSION_SimSessionRX600] [OPTIONS_Blinky_Renesas OptLinker] -"Single Shot" "00bd89f6bf10dc10" 5 +"Single Shot" "0a2367d2f830dc10" 5 [OPTIONS_Blinky_Renesas RX Assembler] "Assembly source file" "00bd89f6bf10dc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "00bd89f6bf10dc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "00bd89f6bf10dc10" 4 "Linkage symbol file" "00bd89f6bf10dc10" 4 [OPTIONS_Blinky_Renesas RX C/C++ Compiler] -"C source file" "00a669f6bf10dc10" 3 -"C++ source file" "00a669f6bf10dc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\lcd.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\switches.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 3 +"C source file" "00a669f6bf10dc10" 2 +"C++ source file" "00a669f6bf10dc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 2 [OPTIONS_Blinky_Renesas RX C/C++ Library Generator] "Single Shot" "00a669f6bf10dc10" 1 [OPTIONS_Blinky_Renesas RX Configurator] -"Single Shot" "00bd89f6bf10dc10" 6 +"Single Shot" "0cad76d2f830dc10" 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^"|^"$(PROJDIR)\webserver^"] [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|LANG|C] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\webserver^"] [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^"|^"$(PROJDIR)\webserver^"] [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] +"[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,L*,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] [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\GenQTest.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" @@ -290,69 +283,69 @@ [LINKAGE_ORDER_Blinky] [GENERAL_DATA_CONFIGURATION_Blinky] [OPTIONS_Debug_Renesas OptLinker] -"Single Shot" "00a669f6bf10dc10" 5 +"Single Shot" "0a2367d2f830dc10" 5 [OPTIONS_Debug_Renesas RX Assembler] "Assembly source file" "00a669f6bf10dc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "00a669f6bf10dc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port_asm.src" "00a669f6bf10dc10" 4 "Linkage symbol file" "00a669f6bf10dc10" 4 [OPTIONS_Debug_Renesas RX C/C++ Compiler] -"C source file" "00a669f6bf10dc10" 3 -"C++ source file" "00a669f6bf10dc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\lcd.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\switches.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 3 -"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 3 +"C source file" "00a669f6bf10dc10" 2 +"C++ source file" "00a669f6bf10dc10" 3 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\BlockQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\GenQTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\IntQueue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\PollQ.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\HighFrequencyTimerTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\IntQueueTimer.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\ParTest.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\dbsct.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\hwsetup.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\intprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\tasks.c" "00a669f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" "00a669f6bf10dc10" 2 [OPTIONS_Debug_Renesas RX C/C++ Library Generator] "Single Shot" "00a669f6bf10dc10" 1 [OPTIONS_Debug_Renesas RX Configurator] -"Single Shot" "00a669f6bf10dc10" 6 +"Single Shot" "0cad76d2f830dc10" 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 "[V|VERSION|1] [B|SJIS|1] [B|DEBUG|1] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(FILELEAF).obj^"] [S|CPU|RX600] [S|BASE|00000000=NONE] " 4 "[V|VERSION|1] [S|LANG|C99] [B|SJIS|1] [S|INCLUDE|^"$(PROJDIR)\..\..\..\Source\portable\Renesas\RX600^"|^"$(PROJDIR)\..\..\..\Source\include^"|^"$(PROJDIR)\.^"|^"$(PROJDIR)\..\..\include^"|^"$(PROJDIR)\..\..\Common\include^"|^"$(PROJDIR)\.\include^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [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] -" 3 -"[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^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [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] " 2 +"[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^"|^"$(PROJDIR)\..\..\Common\ethernet\FreeTCPIP^"|^"$(PROJDIR)\webserver^"] [S|CHANGE_MESSAGE|INFORMATION|] [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] +" 3 "[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] [S|OUTPUTPATH|^"$(CONFIGDIR)\$(PROJECTNAME).lib^"] [B|SIZE|1] [I|INLINE|100] [I|LOOP|2] [S|CPU|RX600] [S|BASE|00000000=NONE] " 1 -"[V|VERSION|6] [S|PRELINK|SKIP] [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|METHODALL|] [S|OUTPUT|^"$(CONFIGDIR)\$(PROJECTNAME).mot^"] [I|SPACE|^"FF^"] [B|OPTIMIZE|0] [S|START|B_RX_DESC,B_TX_DESC,B_ETHERNET_BUFFERS,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)] +"[V|VERSION|6] [S|PRELINK|SKIP] [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|METHODALL|SYMBOL|REFERENCE|XREFERENCE] [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,L*,C$*,D*,P,PIntPRG,W*(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] " 5 [EXCLUDED_FILES_Debug] +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowsrc.c" [LINKAGE_ORDER_Debug] [GENERAL_DATA_CONFIGURATION_Debug] [OPTIONS_Debug_with_optimisation_Renesas OptLinker] -"Single Shot" "0158b9448c20dc10" 5 +"Single Shot" "0a2367d2f830dc10" 5 [OPTIONS_Debug_with_optimisation_Renesas RX Assembler] "Assembly source file" "0f42b9f6bf10dc10" 4 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\lowlvl.src" "0f42b9f6bf10dc10" 4 @@ -368,7 +361,7 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\QPeek.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\blocktim.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\death.c" "0f42b9f6bf10dc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" "0cad76d2f830dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\integer.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\recmutex.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\semtest.c" "0f42b9f6bf10dc10" 2 @@ -382,9 +375,8 @@ "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\sbrk.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\vecttbl.c" "0f42b9f6bf10dc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\lcd.c" "0f42b9f6bf10dc10" 2 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" "0ae1d1e2b530dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" "0f42b9f6bf10dc10" 2 -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\switches.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\list.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\MemMang\heap_2.c" "0f42b9f6bf10dc10" 2 "C:\E\Dev\FreeRTOS\WorkingCopy\Source\portable\Renesas\RX600\port.c" "0f42b9f6bf10dc10" 2 @@ -394,7 +386,7 @@ [OPTIONS_Debug_with_optimisation_Renesas RX C/C++ Library Generator] "Single Shot" "0f42b9f6bf10dc10" 1 [OPTIONS_Debug_with_optimisation_Renesas RX Configurator] -"Single Shot" "0f59d9f6bf10dc10" 6 +"Single Shot" "0cad76d2f830dc10" 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 @@ -409,37 +401,18 @@ "[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^"] [S|OPTIMIZEITEMS|SPEED] [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*,L(0FFF81000)|FIXEDVECT(0FFFFFFD0)] [S|MEMORY|HIGH] [B|SKIPDEPENDENCY|1] " 5 [EXCLUDED_FILES_Debug_with_optimisation] -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\lcd.c" -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\switches.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-blinky.c" [LINKAGE_ORDER_Debug_with_optimisation] [GENERAL_DATA_CONFIGURATION_Debug_with_optimisation] -[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" "" [GENERAL_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_SessionRX600_E1_E20_SYSTEM] "MEMORY_MAPPING_OPTIONS" "Unknown Options" -[GENERAL_DATA_CONFIGURATION_SESSION_Debug_SimSessionRX600] -[SESSION_DATA_CONFIGURATION_SESSION_Debug_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_with_optimisation_DefaultSession] -[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_DefaultSession] -"MEMORY_MAPPING_OPTIONS" "" [GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] [SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SessionRX600_E1_E20_SYSTEM] "MEMORY_MAPPING_OPTIONS" "Unknown Options" -[GENERAL_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_SimSessionRX600] -[SESSION_DATA_CONFIGURATION_SESSION_Debug_with_optimisation_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^"]" [EXT_DEBUGGER_INFO] 0 "" "" "" "" [END] diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/RTOSDemo.nav index 99a6c3d3719fad9ef570b19cc24e9fe757978eb1..e41139a7b3bfe6462e5193076dc35a6397319693 100644 GIT binary patch delta 8400 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 F=HEjp#<>6h delta 4527 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" "0.0" -"{WK_00000001_CmdLine}" "WINDOW" 59422 0 2 "0.33" 291 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" -"{WK_00000001_DEBUGCONSOLE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 2 "1.00" 300 0 0 350 200 17 0 "57634|57637|57633|<>|32781|32782|<>|32780|32785|32787" "0.0" +"{WK_00000001_CmdLine}" "WINDOW" 59422 0 2 "0.20" 187 0 0 350 200 17 0 "32771|32772|32778|<>|32773|32774|<>|32820|<>|32801|32824" "0.0" +"{WK_00000001_DEBUGCONSOLE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 1 "1.00" 300 0 0 350 200 17 0 "57634|57637|57633|<>|32781|32782|<>|32780|32785|32787" "0.0" "{WK_00000001_DISASSEMBLY}" "WINDOW" 0 0 0 "0.00" 0 132 132 835 366 9 0 "" "0.0" -"{WK_00000001_IO}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 1 "0.50" 291 0 0 869 657 17 0 "32817|32826|32819|32820|32821" "0.0" +"{WK_00000001_IO}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 1 "0.50" 187 0 0 869 657 17 0 "32817|32826|32819|32820|32821" "0.0" "{WK_00000001_MEMORY}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "1.00" 219 1452 519 1033 219 2053 0 "42202|42203|42204|42233|<>|42206|42205|42230|42229|42207|<>|42208|42209|42210|49076|42228|42227|<>|42231|42232|42234|42235|<>|42211|<>" "0.0" -"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 291 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 1 "1.00" 300 0 0 350 200 18 0 "" "0.0" +"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 187 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 1 "1.00" 300 0 0 350 200 2065 0 "" "0.0" "{WK_00000001_STACKTRACE}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59422 0 0 "0.50" 277 0 0 350 200 2065 0 "" "0.0" "{WK_00000001_WATCH}RTOSDemoSessionRX600_E1_E20_SYSTEM" "WINDOW" 59421 0 0 "0.50" 300 0 0 1040 307 17 0 "32781|32783|<>|32771|32829|32772|32827|32773|<>|32786|<>|32810|32811" "0.0" "{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 330 560 340 350 200 18 0 "" "0.0" @@ -529,7 +529,11 @@ "{WK_TB00000011_CPU} TOOLBAR 0" "C:\E\Dev\FreeRTOS\WorkingCopy\Source\queue.c" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Renesas-Files\resetprg.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\Minimal\flash_timer.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\FreeRTOSConfig.h" "C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\main-full.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Source\timers.c" +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\Common\include\flash_timer.h" [TARGET_NAME] "RX E1/E20 SYSTEM" "" 0 [STATUSBAR_STATEINFO_VD1] @@ -560,7 +564,7 @@ [DEBUGGER_OPTIONS] "" [DOWNLOAD_MODULES] -"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Debug_with_optimisation\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 +"C:\E\Dev\FreeRTOS\WorkingCopy\Demo\RX600_RX63N-RSK_Renesas\RTOSDemo\Debug\RTOSDemo.abs" 0 "Elf/Dwarf2" 0 0 1 0 [CONNECT_ON_GO] "FALSE" [DOWNLOAD_MODULES_AFTER_BUILD] @@ -581,4 +585,5 @@ [FLASH_DETAILS] "0.000000" 0 0 "" 0 "" 0 0 "" 1 1 0 0 0 0 0 "" "" "" "" "" [BREAKPOINTS] +"c:\e\dev\freertos\workingcopy\demo\rx600_rx63n-rsk_renesas\rtosdemo\renesas-files\resetprg.c" 137 -524083 1 "{00000000-0000-0000-C000-000000000046}" "" [END] diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c index 154cd1484..013e1452d 100644 --- a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c +++ b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-blinky.c @@ -52,15 +52,19 @@ */ /* - * 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). + * This is a very simple demo that creates two tasks, one queue, and one + * software timer. For a much more complete and complex example select either + * the Debug or Debug_with_optimisation build configurations within the HEW, + * which build main_full.c in place of this file. + * + * One task (the queue receive task) blocks on the queue to wait for data to + * arrive, toggling LED0 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. -*/ + * The software timer is configured to auto-reload. The timer callback + * function periodically toggles LED1. + */ /* Hardware specific includes. */ #include "iodefine.h" @@ -68,6 +72,7 @@ /* Kernel includes. */ #include "FreeRTOS.h" #include "task.h" +#include "timers.h" #include "queue.h" /* Priorities at which the tasks are created. */ @@ -75,19 +80,31 @@ #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 ) +#define mainQUEUE_SEND_PERIOD_MS ( 500 / portTICK_RATE_MS ) + +/* The period of the software timer, specified in milliseconds. */ +#define mainSOFTWARE_TIMER_PERIOD_MS ( 150 / 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 LEDs toggle by the task and timer respectively. */ +#define mainTASK_LED ( 0 ) +#define mainTIMER_LED ( 1 ) + /* * The tasks as defined at the top of this file. */ static void prvQueueReceiveTask( void *pvParameters ); static void prvQueueSendTask( void *pvParameters ); +/* + * The callback function used by the software timer. + */ +static void prvBlinkyTimerCallback( xTimerHandle xTimer ); + /* The queue used by both tasks. */ static xQueueHandle xQueue = NULL; @@ -98,22 +115,40 @@ volatile unsigned long ulHighFrequencyTickCount = 0UL; void main(void) { -extern void HardwareSetup( void ); +xTimerHandle xTimer; - /* 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 ) ); + /* Create the software timer, as described at the top of this file. */ + xTimer = xTimerCreate( "BlinkyTimer", /* Just a text name to make debugging easier - not used by the scheduler. */ + mainSOFTWARE_TIMER_PERIOD_MS, /* The timer period. */ + pdTRUE, /* Set to pdTRUE for periodic timer, or pdFALSE for one-shot timer. */ + NULL, /* The timer ID is not required. */ + prvBlinkyTimerCallback ); /* The function executed when the timer expires. */ + + if( xTimer != NULL ) + { + /* Start the timer - it will not actually start running until the + scheduler has started. The block time is set to 0, although, because + xTimerStart() is being called before the scheduler has been started, + the any block time specified would be ignored anyway. */ + xTimerStart( xTimer, 0UL ); + } + 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( prvQueueReceiveTask, /* The function that implements the task. */ + "Rx", /* Just a text name to make debugging easier - not used by the scheduler. */ + configMINIMAL_STACK_SIZE, /* The size of the task stack, in words. */ + NULL, /* The task parameter is not used. */ + configQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task when it is created. */ + NULL ); /* The task handle is not used. */ + xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL ); /* Start the tasks running. */ @@ -140,7 +175,7 @@ const unsigned long ulValueToSend = 100UL; /* 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 ); + vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_PERIOD_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 @@ -165,12 +200,19 @@ unsigned long ulReceivedValue; value? If it is, toggle the LED. */ if( ulReceivedValue == 100UL ) { - vParTestToggleLED( 0 ); + vParTestToggleLED( mainTASK_LED ); } } } /*-----------------------------------------------------------*/ +static void prvBlinkyTimerCallback( xTimerHandle xTimer ) +{ + /* The software timer does nothing but toggle an LED. */ + vParTestToggleLED( mainTIMER_LED ); +} +/*-----------------------------------------------------------*/ + void vApplicationSetupTimerInterrupt( void ) { /* Enable compare match timer 0. */ diff --git a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c index 7f8ff8b53..dfd7fc028 100644 --- a/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c +++ b/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/main-full.c @@ -54,7 +54,8 @@ /* **************************************************************************** * 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. + * the 'Blinky' build configuration within the HEW IDE. The Blinky + * configuration builds main-blinky.c in place of this file. * **************************************************************************** * * Creates all the demo application tasks, then starts the scheduler. The web @@ -86,12 +87,17 @@ * error has occurred. The nature of the reg test tasks necessitates that they * are written in assembly code. * - * "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. + * "Check" timer - The check software timer period is initially set to five + * seconds. The callback function associated with the check software timer + * checks that all the standard demo tasks, and the register check tasks, are + * not only still executing, but are executing without reporting any errors. If + * the check software timer discovers that a task has either stalled, or + * reported an error, then it changes its own execution period from the initial + * five seconds, to just 200ms. The check software timer callback function + * also toggles LED3 each time it is called. This provides a visual indication + * of the system status: If LED3 toggles every five seconds, then no issues + * have been discovered. If the LED toggles every 200ms, then an issue has been + * discovered with at least one task. * * "High frequency timer test" - A high frequency periodic interrupt is * generated using a timer - the interrupt is assigned a priority above @@ -103,7 +109,7 @@ * optimised builds the count of high frequency ticks is used as the time base * for the run time stats. * - * *NOTE 1* If LED5 is toggling every 5 seconds then all the demo application + * *NOTE 1* If LED3 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. @@ -118,6 +124,8 @@ * * *NOTE 4* The IntQueue common demo tasks test interrupt nesting and make use * of all the 8bit timers (as two cascaded 16bit units). + * + * * */ #include @@ -128,11 +136,12 @@ /* Kernel includes. */ #include "FreeRTOS.h" #include "task.h" +#include "timers.h" #include "semphr.h" /* Standard demo includes. */ #include "partest.h" -#include "flash.h" +#include "flash_timer.h" #include "IntQueue.h" #include "BlockQ.h" #include "death.h" @@ -156,7 +165,6 @@ tasks check that the values are passed in correctly. */ #define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) -#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define mainuIP_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY ) #define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY ) @@ -166,18 +174,25 @@ tasks check that the values are passed in correctly. */ stack than most of the other tasks. */ #define mainuIP_STACK_SIZE ( configMINIMAL_STACK_SIZE * 3 ) -/* The LED toggled by the check task. */ +/* The LED toggled by the check timer. */ #define mainCHECK_LED ( 3 ) /* The rate at which mainCHECK_LED will toggle when all the tasks are running -without error. Controlled by the check task as described at the top of this +without error. Controlled by the check timer as described at the top of this file. */ -#define mainNO_ERROR_CYCLE_TIME ( 5000 / portTICK_RATE_MS ) +#define mainNO_ERROR_CHECK_TIMER_PERIOD_MS ( 5000 / portTICK_RATE_MS ) /* The rate at which mainCHECK_LED will toggle when an error has been reported -by at least one task. Controlled by the check task as described at the top of +by at least one task. Controlled by the check timer as described at the top of this file. */ -#define mainERROR_CYCLE_TIME ( 200 / portTICK_RATE_MS ) +#define mainERROR_CHECK_TIMER_PERIOD_MS ( 200 / portTICK_RATE_MS ) + +/* A block time of zero simply means "don't block". */ +#define mainDONT_BLOCK ( 0UL ) + +/* A set of timers are created, each of which toggles and LED. This specifies +the number of timers to create. */ +#define mainNUMBER_OF_LEDS_TO_FLASH ( 3 ) /* * vApplicationMallocFailedHook() will only be called if @@ -225,9 +240,9 @@ static void prvRegTest1Implementation( void ); static void prvRegTest2Implementation( void ); /* - * The check task as described at the top of this file. + * The check timer callback function, as described at the top of this file. */ -static void prvCheckTask( void *pvParameters ); +static void prvCheckTimerCallback( xTimerHandle xTimer ); /* * Contains the implementation of the WEB server. @@ -251,6 +266,7 @@ const char *pcStatusMessage = "All tasks executing without error."; void main(void) { +xTimerHandle xCheckTimer; extern void HardwareSetup( void ); /* Turn all LEDs off. */ @@ -263,22 +279,35 @@ extern void HardwareSetup( void ); /* The web server task. */ // xTaskCreate( vuIP_Task, "uIP", mainuIP_STACK_SIZE, NULL, mainuIP_TASK_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 ); - /* Create the standard demo tasks. */ vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); vCreateBlockTimeTasks(); vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); vStartIntegerMathTasks( mainINTEGER_TASK_PRIORITY ); - vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY ); - vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY ); + vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY ); vStartQueuePeekTasks(); vStartRecursiveMutexTasks(); vStartInterruptQueueTasks(); // vStartMathTasks( mainFLOP_TASK_PRIORITY ); + /* Create the timers used to toggle the LEDs. */ + vStartLEDFlashTimers( mainNUMBER_OF_LEDS_TO_FLASH ); + + /* Create the software timer that performs the 'check' functionality, + as described at the top of this file. */ + xCheckTimer = xTimerCreate( "CheckTimer", /* A text name, purely to help debugging. */ + ( mainNO_ERROR_CHECK_TIMER_PERIOD_MS ), /* The timer period, in this case 5000ms (5s). */ + pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ + ( void * ) 0, /* The ID is not used, so can be set to anything. */ + prvCheckTimerCallback /* The callback function that inspects the status of all the other tasks. */ + ); + + if( xCheckTimer != NULL ) + { + xTimerStart( xCheckTimer, mainDONT_BLOCK ); + } + /* The suicide tasks must be created last as they need to know how many tasks were running prior to their creation in order to ascertain whether or not the correct/expected number of tasks are running at any given time. */ @@ -287,116 +316,123 @@ extern void HardwareSetup( void ); /* 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. */ + /* If all is well, the scheduler will now be running, and the following line + will never be reached. If the following line does execute, then there was + insufficient FreeRTOS heap memory available for the idle and/or timer tasks + to be created. See the memory management section on the FreeRTOS web site + for more details. */ for( ;; ); } /*-----------------------------------------------------------*/ -static void prvCheckTask( void *pvParameters ) +static void prvCheckTimerCallback( xTimerHandle xTimer ) { -static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL; -portTickType xNextWakeTime, xCycleFrequency = mainNO_ERROR_CYCLE_TIME; -extern void vSetupHighFrequencyTimer( void ); - - /* 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. This is only - included in the optimised build configuration - otherwise it takes up too much - CPU time and can disrupt other tests. */ +static long lChangedTimerPeriodAlready = pdFALSE; +static unsigned long ulLastRegTest1CycleCount = 0, ulLastRegTest2CycleCount = 0; +long lErrorFound = pdFALSE; + + /* 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. This is + only included in the optimised build configuration - otherwise it takes up + too much CPU time and can disrupt other tests. */ #ifdef INCLUDE_HIGH_FREQUENCY_TIMER_TEST vSetupHighFrequencyTimer(); #endif - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); - - for( ;; ) + /* Check the standard demo tasks are running without error. */ + if( xAreGenericQueueTasksStillRunning() != pdTRUE ) { - /* Place this task in the blocked state until it is time to run again. */ - vTaskDelayUntil( &xNextWakeTime, xCycleFrequency ); - - /* Check the standard demo tasks are running without error. */ - if( xAreGenericQueueTasksStillRunning() != pdTRUE ) - { - /* Increase the rate at which this task cycles, which will increase the - rate at which mainCHECK_LED flashes to give visual feedback that an error - has occurred. */ - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: GenQueue"; - } - else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: QueuePeek"; - } - else if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: BlockQueue"; - } - else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: BlockTime"; - } - else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: SemTest"; - } - else if( xArePollingQueuesStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: PollQueue"; - } - else if( xIsCreateTaskStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: Death"; - } - else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: IntMath"; - } - else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: RecMutex"; - } - else if( xAreIntQueueTasksStillRunning() != pdPASS ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: IntQueue"; - } + lErrorFound = pdTRUE; + pcStatusMessage = "Error: GenQueue"; + } + else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: QueuePeek"; + } + else if( xAreBlockingQueuesStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: BlockQueue"; + } + else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: BlockTime"; + } + else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: SemTest"; + } + else if( xArePollingQueuesStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: PollQueue"; + } + else if( xIsCreateTaskStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: Death"; + } + else if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: IntMath"; + } + else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RecMutex"; + } + else if( xAreIntQueueTasksStillRunning() != pdPASS ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: IntQueue"; + } if( 0 )// else if( xAreMathsTaskStillRunning() != pdPASS ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: Flop"; - } + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: Flop"; + } - /* Check the reg test tasks are still cycling. They will stop incrementing - their loop counters if they encounter an error. */ - if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: RegTest1"; - } + /* Check the reg test tasks are still cycling. They will stop incrementing + their loop counters if they encounter an error. */ + if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RegTest1"; + } - if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) - { - xCycleFrequency = mainERROR_CYCLE_TIME; - pcStatusMessage = "Error: RegTest2"; - } + if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) + { + lErrorFound = pdTRUE; + pcStatusMessage = "Error: RegTest2"; + } - ulLastRegTest1CycleCount = ulRegTest1CycleCount; - ulLastRegTest2CycleCount = ulRegTest2CycleCount; + 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. */ - vParTestToggleLED( mainCHECK_LED ); + /* Toggle the check LED to give an indication of the system status. If + the LED toggles every mainNO_ERROR_CHECK_TIMER_PERIOD_MS milliseconds then + everything is ok. A faster toggle indicates an error. */ + vParTestToggleLED( mainCHECK_LED ); + + /* Have any errors been latch in lErrorFound? If so, shorten the + period of the check timer to mainERROR_CHECK_TIMER_PERIOD_MS milliseconds. + This will result in an increase in the rate at which mainCHECK_LED + toggles. */ + if( lErrorFound != pdFALSE ) + { + if( lChangedTimerPeriodAlready == pdFALSE ) + { + lChangedTimerPeriodAlready = pdTRUE; + + /* This call to xTimerChangePeriod() uses a zero block time. + Functions called from inside of a timer callback function must + *never* attempt to block. */ + xTimerChangePeriod( xTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK ); + } } } /*-----------------------------------------------------------*/ -- 2.39.5