]> git.sur5r.net Git - freertos/commitdiff
Working but incomplete RXv2 demo.
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 7 Mar 2014 17:13:05 +0000 (17:13 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 7 Mar 2014 17:13:05 +0000 (17:13 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2224 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/.cproject
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/.info
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/Source/RegTest.src
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/Source/main_full.c
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/makefile.init

index 06a09b34bc797a422c8fcaaabd4748f3c25555b5..b6a733d6be9256af063897083db98c0196842fe1 100644 (file)
                                                                </option>\r
                                                                <option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpu.1044477391" name="CPU" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpu" value="RX64M" valueType="string"/>\r
                                                                <option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.826566403" name="Optimize level" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.0" valueType="enumerated"/>\r
+                                                               <option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa.1008597307" name="Instruction set architecture" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.isa.rxv2" valueType="enumerated"/>\r
                                                                <inputType id="%Base.Compiler.Shc.C.Input.Id.1890187174" name="C Input" superClass="%Base.Compiler.Shc.C.Input.Id"/>\r
                                                                <inputType id="%Base.Compiler.Shc.C.Input1.Id.396506632" name="C++ Input" superClass="%Base.Compiler.Shc.C.Input1.Id"/>\r
                                                        </tool>\r
                                                                <option id="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.address.1626852461" name="Address" superClass="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.address" value="00000000" valueType="string"/>\r
                                                                <option id="com.renesas.cdt.renesas.Assembler.option.userDefine.879789928" name="User-defined options" superClass="com.renesas.cdt.renesas.Assembler.option.userDefine" valueType="stringList">\r
                                                                        <listOptionValue builtIn="false" value="-nologo"/>\r
-                                                                       <listOptionValue builtIn="false" value=""/>\r
-                                                                       <listOptionValue builtIn="false" value=""/>\r
                                                                </option>\r
+                                                               <option id="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.isa.232270741" name="Instruction set architecture" superClass="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.isa" value="RXv2 architecture" valueType="enumerated"/>\r
                                                                <inputType id="%Base.Assembler.shcInputType.Id.1753262605" name="Assembler InputType" superClass="%Base.Assembler.shcInputType.Id"/>\r
                                                        </tool>\r
-                                                       <tool command="optlnk" id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id.1242574850" name="Linker" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id">\r
+                                                       <tool command="rlink" id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id.1242574850" name="Linker" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id">\r
                                                                <option id="com.renesas.cdt.renesas.Linker.option.rom.1225547808" name="ROM to RAM mapped section" superClass="com.renesas.cdt.renesas.Linker.option.rom" valueType="stringList">\r
                                                                        <listOptionValue builtIn="false" value="D=R"/>\r
                                                                        <listOptionValue builtIn="false" value="D_1=R_1"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;.\RTOSDemo.lib&quot;"/>\r
                                                                </option>\r
                                                                <option id="com.renesas.cdt.renesas.Linker.option.typeOfOutputFileOption.2104356968" name="Type of output file:" superClass="com.renesas.cdt.renesas.Linker.option.typeOfOutputFileOption" value="Stype via absolute" valueType="enumerated"/>\r
-                                                               <option id="com.renesas.cdt.renesas.Linker.option.linkOrder.1520767120" name="%option.name.179" superClass="com.renesas.cdt.renesas.Linker.option.linkOrder" valueType="stringList"/>\r
+                                                               <option id="com.renesas.cdt.renesas.Linker.option.linkOrder.1520767120" name="%option.name.179" superClass="com.renesas.cdt.renesas.Linker.option.linkOrder"/>\r
+                                                               <option id="com.renesas.cdt.renesas.Linker.option.userDefined.1074366648" name="User-defined options" superClass="com.renesas.cdt.renesas.Linker.option.userDefined" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="-nomessage"/>\r
+                                                                       <listOptionValue builtIn="false" value="-nologo"/>\r
+                                                               </option>\r
                                                        </tool>\r
                                                        <tool command="lbgrx" id="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id.1405860605" name="Standard Library" superClass="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id">\r
                                                                <option id="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian.402722613" name="Data Endian" superClass="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian" value="Little-endian data" valueType="enumerated"/>\r
                                                                <option id="com.renesas.cdt.renesas.StandardLibrary.option.rxcnewCPP.207113089" name="new (EC++): Memory allocation and deallocation routines" superClass="com.renesas.cdt.renesas.StandardLibrary.option.rxcnewCPP" value="false" valueType="boolean"/>\r
                                                                <option id="com.renesas.cdt.renesas.StandardLibrary.option.mode.1359818153" name="Mode" superClass="com.renesas.cdt.renesas.StandardLibrary.option.mode" value="com.renesas.cdt.renesas.StandardLibrary.option.mode.buildOnlyWhenOptionsChanged" valueType="enumerated"/>\r
                                                                <option id="com.renesas.cdt.renesas.StandardLibrary.option.userSpecifiedLibrary.1612193964" name="User-specified library file" superClass="com.renesas.cdt.renesas.StandardLibrary.option.userSpecifiedLibrary" value="C:\E\Dev\FreeRTOS\WORKIN~1\FreeRTOS\Demo\RX2097~1\HARDWA~2\RTOSDemo.lib" valueType="string"/>\r
+                                                               <option id="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.isa.328950611" name="Instruction set architecture" superClass="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.isa" value="RXv2 architecture" valueType="enumerated"/>\r
                                                        </tool>\r
-                                                       <tool command="optlnk" id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id.1803349405" name="Converter" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id"/>\r
+                                                       <tool command="rlink" id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id.1803349405" name="Converter" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id"/>\r
                                                </toolChain>\r
                                        </folderInfo>\r
                                        <folderInfo id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.534038930.435561194" name="/" resourcePath="Source/Common_Demo_Source/Minimal">\r
index 5306972cbfb05d5e8810852d58baeefe684c1a09..e1cdccf4b146a38476395a08020c8ad33675ca93 100644 (file)
@@ -1,6 +1,6 @@
 TOOL_CHAIN=Renesas RXC Toolchain
-VERSION=v1.02.01
-TC_INSTALL=C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\
+VERSION=v2.01.00
+TC_INSTALL=C:\Devtools\Renesas\RX\2_1_0\
 VERSION_IDE=3.06.02.004
-E2STUDIO_VERSION=2.2.0.13
+E2STUDIO_VERSION=2.1.0.21
 ACTIVE_CONFIGURATION=HardwareDebug
index 27cc31ec6c1e843dae889c7701f5bfed048508aa..2f0d03a07e69c71ae37916eccfb1f78859526010 100644 (file)
 ;/* This function is explained in the comments at the top of main.c. */\r
 _vRegTest1Implementation:\r
 \r
+       ;/* Put a known value in the guard byte of the accumulators. */\r
+       MOV.L   #10, R1\r
+       MVTACGU R1, A0\r
+       MOV.L   #20, R1\r
+       MVTACGU R1, A1\r
+\r
        ;/* Put a known value in each register. */\r
        MOV.L   #1, R1\r
        MOV.L   #2, R2\r
@@ -92,6 +98,12 @@ _vRegTest1Implementation:
        MOV.L   #14, R14\r
        MOV.L   #15, R15\r
        \r
+       ;/* Put a known value in the hi and low of the accumulators. */\r
+       MVTACHI R1, A0\r
+       MVTACLO R2, A0\r
+       MVTACHI R3, A1\r
+       MVTACLO R4, A1\r
+\r
        ;/* Loop, checking each itteration that each register still contains the\r
        ;expected value. */\r
 TestLoop1:                                                             \r
@@ -112,6 +124,26 @@ TestLoop1:
        NOP                                                             \r
        NOP                                                             \r
        \r
+       ;/* Check accumulators. */\r
+       MVFACHI #0, A0, R15\r
+       CMP #1, R15\r
+       BNE RegTest1Error\r
+       MVFACLO #0, A0, R15\r
+       CMP #2, R15\r
+       BNE RegTest1Error\r
+       MVFACGU #0, A0, R15\r
+       CMP #10, R15\r
+       BNE RegTest1Error\r
+       MVFACHI #0, A1, R15\r
+       CMP #3, R15\r
+       BNE RegTest1Error\r
+       MVFACLO #0, A1, R15\r
+       CMP #4, R15\r
+       BNE RegTest1Error\r
+       MVFACGU #0, A1, R15\r
+       CMP #20, R15\r
+       BNE RegTest1Error\r
+\r
        ;/* Restore the clobbered registers. */\r
        POPM    R14-R15                                         \r
        \r
@@ -160,7 +192,13 @@ RegTest1Error:
 ;/* This function is explained in the comments at the top of main.c. */\r
 _vRegTest2Implementation:\r
 \r
-       ;/* Put a known value in each register. */\r
+       ;/* Put a known value in the guard byte of the accumulators. */\r
+       MOV.L   #1H, R1\r
+       MVTACGU R1, A0\r
+       MOV.L   #2H, R1\r
+       MVTACGU R1, A1\r
+\r
+       ;/* Put a known value in each general purpose register. */\r
        MOV.L   #10H, R1\r
        MOV.L   #20H, R2\r
        MOV.L   #30H, R3\r
@@ -176,7 +214,13 @@ _vRegTest2Implementation:
        MOV.L   #130H, R13\r
        MOV.L   #140H, R14\r
        MOV.L   #150H, R15\r
-       \r
+\r
+       ;/* Put a known value in the hi and low of the accumulators. */\r
+       MVTACHI R1, A0\r
+       MVTACLO R2, A0\r
+       MVTACHI R3, A1\r
+       MVTACLO R4, A1\r
+\r
        ;/* Loop, checking each itteration that each register still contains the\r
        ;expected value. */\r
 TestLoop2:                                                             \r
@@ -190,6 +234,26 @@ TestLoop2:
        ADD     #1, R15                                         \r
        MOV.L   R15, [ R14 ]\r
        \r
+       ;/* Check accumulators. */\r
+       MVFACHI #0, A0, R15\r
+       CMP #10H, R15\r
+       BNE RegTest1Error\r
+       MVFACLO #0, A0, R15\r
+       CMP #20H, R15\r
+       BNE RegTest1Error\r
+       MVFACGU #0, A0, R15\r
+       CMP #1H, R15\r
+       BNE RegTest1Error\r
+       MVFACHI #0, A1, R15\r
+       CMP #30H, R15\r
+       BNE RegTest1Error\r
+       MVFACLO #0, A1, R15\r
+       CMP #40H, R15\r
+       BNE RegTest1Error\r
+       MVFACGU #0, A1, R15\r
+       CMP #2H, R15\r
+       BNE RegTest1Error\r
+\r
        ;/* Restore the clobbered registers. */\r
        POPM    R14-R15                                         \r
        \r
index 075430eb4d630f130c1b543c1deabaeab92d4bd5..efa49c50473299dbf8f1f53acc3071aea78da281 100644 (file)
@@ -386,7 +386,7 @@ unsigned long ulErrorFound = pdFALSE;
                /* Check that the register test 2 task is still running. */\r
                if( ulLastRegTest2Value == ulRegTest2LoopCounter )\r
                {\r
-//                     ulErrorFound = pdTRUE;\r
+                       ulErrorFound = pdTRUE;\r
                }\r
                ulLastRegTest2Value = ulRegTest2LoopCounter;\r
 \r
@@ -414,11 +414,6 @@ static void prvRegTestTaskEntry1( void *pvParameters )
        in correctly. */\r
        if( pvParameters == mainREG_TEST_TASK_1_PARAMETER )\r
        {\r
-               /* The reg test task also tests the floating point registers.  Tasks\r
-               that use the floating point unit must call vPortTaskUsesFPU() before\r
-               any floating point instructions are executed. */\r
-//             vPortTaskUsesFPU();\r
-\r
                /* Start the part of the test that is written in assembler. */\r
                vRegTest1Implementation();\r
        }\r
@@ -437,11 +432,6 @@ static void prvRegTestTaskEntry2( void *pvParameters )
        in correctly. */\r
        if( pvParameters == mainREG_TEST_TASK_2_PARAMETER )\r
        {\r
-               /* The reg test task also tests the floating point registers.  Tasks\r
-               that use the floating point unit must call vPortTaskUsesFPU() before\r
-               any floating point instructions are executed. */\r
-//             vPortTaskUsesFPU();\r
-\r
                /* Start the part of the test that is written in assembler. */\r
                vRegTest2Implementation();\r
        }\r
index e3d6589180f56c883643980054819a1ad391cac2..398e0d9d3d126538955479ac2daecf31d714652f 100644 (file)
@@ -2,7 +2,7 @@
 # Automatically-generated file. Do not edit!\r
 ################################################################################\r
 \r
-export INC_RX=C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\include
-export RXC_LIB=C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\bin
-export BIN_RX=C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\bin
-PATH := $(PATH):C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\bin
\ No newline at end of file
+export INC_RX=C:\Devtools\Renesas\RX\2_1_0\include
+export RXC_LIB=C:\Devtools\Renesas\RX\2_1_0\bin
+export BIN_RX=C:\Devtools\Renesas\RX\2_1_0\bin
+PATH := $(PATH):C:\Devtools\Renesas\RX\2_1_0\bin
\ No newline at end of file