]> git.sur5r.net Git - freertos/commitdiff
Complete RX64M GCC demo.
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 4 Jun 2014 09:19:16 +0000 (09:19 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 4 Jun 2014 09:19:16 +0000 (09:19 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2249 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

23 files changed:
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.HardwareDebuglinker
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.cproject
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.info
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.project
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.settings/Project_Generation_Prefrences.prefs
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/.settings/language.settings.xml
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/RTOSDemo HardwareDebug.launch
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/makefile.init
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.c [new file with mode: 0644]
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.h [new file with mode: 0644]
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/ParTest.c
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RegTest.S [new file with mode: 0644]
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/hardware_setup.c
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/interrupt_handlers.c
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/reset_program.asm
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/rskrx64mdef.h [new file with mode: 0644]
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/vector_table.c
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/main.c
FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/main_full.c [new file with mode: 0644]
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/Source/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/Source/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX64M_RSK_Renesas_e2studio/Source/main.c

index f69dab62ed0186f1f2e798dc4c80f7e478ec71f2..262577ac264779a45824e162122202c350bc940b 100644 (file)
     <contents xsi:type="com.renesas.linkersection.model:Keyword" text=". = ALIGN(2)"/>\r
     <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_mdata"/>\r
   </sections>\r
-  <sections name=".ustack">\r
-    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="512"/>\r
-    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_ustack"/>\r
-  </sections>\r
-  <sections name=".istack">\r
-    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="256"/>\r
-    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_istack"/>\r
-  </sections>\r
   <sections name=".data">\r
-    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="516"/>\r
+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="1028"/>\r
     <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_data"/>\r
     <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".data"/>\r
     <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".data.*"/>\r
     <reservedMemAddress xsi:type="com.renesas.linkersection.model:ReferencedLabelAddress" label="//@sections.10/@contents.12"/>\r
   </sections>\r
   <sections name=".gcc_exc">\r
-    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.13"/>\r
+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.11"/>\r
     <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".gcc_exc"/>\r
   </sections>\r
   <sections name=".bss">\r
-    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.14"/>\r
+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.12"/>\r
     <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_bss"/>\r
     <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".bss"/>\r
     <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".bss.**"/>\r
     <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_ebss"/>\r
     <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_end"/>\r
   </sections>\r
+  <sections name=".ustack">\r
+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="1024"/>\r
+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_ustack"/>\r
+  </sections>\r
+  <sections name=".istack">\r
+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="512"/>\r
+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_istack"/>\r
+  </sections>\r
 </com.renesas.linkersection.model:SectionContainer>\r
index f95ae0d0fecb63addfb3401df1babc5a4f439951..d06ba07b977a2f39fb8c028ad51d4523f2e8b666 100644 (file)
@@ -1,28 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<?fileVersion 4.0.0?>\r
-\r
-<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
        <storageModule moduleId="org.eclipse.cdt.core.settings">\r
                <cconfiguration id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.606469687">\r
                        <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.606469687" moduleId="org.eclipse.cdt.core.settings" name="HardwareDebug">\r
                                <externalSettings/>\r
                                <extensions>\r
-                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>\r
                                        <extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
-                                       <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
                                        <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
                                        <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
                                        <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>\r
                                </extensions>\r
                        </storageModule>\r
                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
-                               <configuration artifactName="RTOSDemo" buildArtefactType="com.renesas.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=com.renesas.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf *.lst *.lis *.lpp *.map" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.VCErrorParser" id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.606469687" name="HardwareDebug" parent="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id">\r
+                               <configuration artifactName="RTOSDemo" buildArtefactType="com.renesas.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=com.renesas.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf *.lst *.lis *.lpp *.map" description="" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.VCErrorParser" id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.606469687" name="HardwareDebug" parent="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id">\r
                                        <folderInfo id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.606469687." name="/" resourcePath="">\r
-                                               <toolChain id="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id.804086182" name="KPIT GNURX-ELF Toolchain" superClass="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id">\r
+                                               <toolChain errorParsers="" id="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id.804086182" name="KPIT GNURX-ELF Toolchain" superClass="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id">\r
                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.rx.hardwaredebug.win32.targetPlatform.Id.1441458979" osList="win32" superClass="com.renesas.cdt.rx.hardwaredebug.win32.targetPlatform.Id"/>\r
-                                                       <builder buildPath="${workspace_loc:/RTOSDemo}/HardwareDebug" id="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id.476907861" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id"/>\r
-                                                       <tool command="rx-elf-libgen" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id.2057566942" name="Library Generator" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id">\r
+                                                       <builder buildPath="${workspace_loc:/RTOSDemo}/HardwareDebug" errorParsers="org.eclipse.cdt.core.GmakeErrorParser" id="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id.476907861" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id"/>\r
+                                                       <tool command="rx-elf-libgen" errorParsers="" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id.2057566942" name="Library Generator" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id">\r
                                                                <option id="com.renesas.cdt.core.LibraryGenerator.option.math.2039618467" name="math.h : Performs numeric calculations such as trigonometric functions" superClass="com.renesas.cdt.core.LibraryGenerator.option.math" value="true" valueType="boolean"/>\r
                                                                <option id="com.renesas.cdt.core.LibraryGenerator.option.stdio.2055452080" name="stdio.h : Performs input/output handling" superClass="com.renesas.cdt.core.LibraryGenerator.option.stdio" value="true" valueType="boolean"/>\r
                                                                <option id="com.renesas.cdt.core.LibraryGenerator.option.stdlib.321901636" name="stdlib.h : Performs C program standard processing such as storage area management" superClass="com.renesas.cdt.core.LibraryGenerator.option.stdlib" value="true" valueType="boolean"/>\r
@@ -30,7 +28,7 @@
                                                                <option id="com.renesas.cdt.core.LibraryGenerator.option.selectLibrary.236583299" name="Select library" superClass="com.renesas.cdt.core.LibraryGenerator.option.selectLibrary" value="Optimized" valueType="enumerated"/>\r
                                                                <option id="com.renesas.cdt.core.LibraryGenerator.option.libraryType.1090078057" name="Library type" superClass="com.renesas.cdt.core.LibraryGenerator.option.libraryType" value="Project-Built" valueType="enumerated"/>\r
                                                        </tool>\r
-                                                       <tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id.315385351" name="Compiler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id">\r
+                                                       <tool errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id.315385351" name="Compiler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id">\r
                                                                <option defaultValue="true" id="com.renesas.cdt.core.Compiler.option.misc2.945596144" name="Don't search standard system directories for header files(-nostdinc)" superClass="com.renesas.cdt.core.Compiler.option.misc2" value="false" valueType="boolean"/>\r
                                                                <option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.macroDefines.1508551089" name="Macro Defines" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.macroDefines" valueType="definedSymbols">\r
                                                                        <listOptionValue builtIn="false" value="__RX_LITTLE_ENDIAN__=1"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FreeRTOS/Source/include}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/Common_Demo_Tasks/include}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FreeRTOS/Source/portable/GCC/RX600v2}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${TCINSTALL}\rx-elf\optlibinc&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TCINSTALL}/rx-elf/optlibinc&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/RenesasCode}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/RTOSDemo/src/RenesasCode/cg_src}&quot;"/>\r
                                                                </option>\r
                                                                <option id="com.renesas.cdt.core.Compiler.option.CPUSeries.1945733388" name="Cpu Series" superClass="com.renesas.cdt.core.Compiler.option.CPUSeries" value="RX64M" valueType="string"/>\r
                                                                <option id="com.renesas.cdt.core.Compiler.option.warning14.1219627871" name="Print extra warning messages(-Wextra)" superClass="com.renesas.cdt.core.Compiler.option.warning14" value="true" valueType="boolean"/>\r
+                                                               <option command="-mcpu=rx64m" commandFalse="-mcpu=rx600" id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.genCodeForRX64M.2046419337" name="Generate code for RX64M target" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.genCodeForRX64M" value="true" valueType="boolean"/>\r
+                                                               <option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.68724734" name="Optimization level" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel" value="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.none" valueType="enumerated"/>\r
                                                                <inputType id="%Base.Compiler.C.InputType.Id.1746322545" name="C Input" superClass="%Base.Compiler.C.InputType.Id"/>\r
                                                                <inputType id="Base.Compiler.CPP.InputType.Id.1052891014" name="C++ Input" superClass="Base.Compiler.CPP.InputType.Id"/>\r
                                                        </tool>\r
-                                                       <tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id.508016564" name="Assembler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id">\r
+                                                       <tool errorParsers="org.eclipse.cdt.core.GASErrorParser" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id.508016564" name="Assembler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id">\r
                                                                <option id="com.renesas.cdt.rx.HardwareDebug.Assembler.option.dataEndian.735581335" name="Data Endian" superClass="com.renesas.cdt.rx.HardwareDebug.Assembler.option.dataEndian" value="Little-endian data" valueType="enumerated"/>\r
                                                                <option id="com.renesas.cdt.core.Assembler.option.includeFileDirectories.286633038" name="Include file directories" superClass="com.renesas.cdt.core.Assembler.option.includeFileDirectories" valueType="includePath">\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}\src&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}/src&quot;"/>\r
                                                                </option>\r
                                                                <inputType id="%Base.Assembler.inputType.Id.1966626285" name="Assembler InputType" superClass="%Base.Assembler.inputType.Id"/>\r
                                                        </tool>\r
-                                                       <tool command="rx-elf-ld" commandLinePattern="${COMMAND} ${OUTPUT_FLAG}${OUTPUT_PREFIX} ${OUTPUT}${INPUTS} ${FLAGS}" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id.1075007051" name="Linker" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id">\r
+                                                       <tool command="rx-elf-ld" commandLinePattern="${COMMAND} ${OUTPUT_FLAG}${OUTPUT_PREFIX} ${OUTPUT}${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id.1075007051" name="Linker" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id">\r
                                                                <option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.dataEndian.233227307" name="Data Endian" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.dataEndian" value="Little-endian data" valueType="enumerated"/>\r
                                                                <option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories.1899007176" name="Archive search directories" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories" valueType="stringList">\r
                                                                        <listOptionValue builtIn="false" value="&quot;${CONFIGDIR}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${TCINSTALL}\lib\gcc\rx-elf\\${GCC_VERSION}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${TCINSTALL}/lib/gcc/rx-elf//${GCC_VERSION}&quot;"/>\r
                                                                </option>\r
                                                                <option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles.821809154" name="Archive (library) files" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles" valueType="stringList">\r
-                                                                       <listOptionValue builtIn="false" value="${ProjName}"/>\r
+                                                                       <listOptionValue builtIn="false" value="${BuildArtifactFileBaseName}"/>\r
                                                                        <listOptionValue builtIn="false" value="gcc"/>\r
                                                                </option>\r
                                                                <option id="com.renesas.cdt.core.Linker.option.userDefinedOptions.1112264479" name="User defined options" superClass="com.renesas.cdt.core.Linker.option.userDefinedOptions" valueType="stringList">\r
                                                                        <listOptionValue builtIn="false" value="&quot;.\libRTOSDemo.a&quot;"/>\r
                                                                </option>\r
                                                        </tool>\r
-                                                       <tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id.2054059721" name="Objcopy" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id"/>\r
+                                                       <tool errorParsers="" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id.2054059721" name="Objcopy" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id"/>\r
                                                </toolChain>\r
                                        </folderInfo>\r
                                        <sourceEntries>\r
-                                               <entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>\r
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
                                        </sourceEntries>\r
                                </configuration>\r
                        </storageModule>\r
index 5b48f0e2f7da81c019782f8dd83f7ed9573068b5..7b730a057efb0a6016729c4f389c7441f8e840d3 100644 (file)
@@ -1,7 +1,7 @@
 TOOL_CHAIN=KPIT GNURX-ELF Toolchain
 VERSION=v14.01
-TC_INSTALL=C:\Program Files\KPIT\GNURXv14.01-ELF\rx-ELF\rx-ELF\
+TC_INSTALL=C:\devtools\KPIT\GNURXv14.01-ELF\rx-ELF\rx-ELF\
 GCC_STRING=4.7-GNURX_v14.01
-VERSION_IDE=3.06.02.004
-E2STUDIO_VERSION=2.1.0.21
-ACTIVE_CONFIGURATION=HardwareDebug
\ No newline at end of file
+VERSION_IDE=
+ACTIVE_CONFIGURATION=HardwareDebug
+E2STUDIO_VERSION=3.0.0.22
index cf10d20ef1bde1e0f71eac0515b6ee179f4f2a77..41c5688f211cb626b867dac09013a43221868b48 100644 (file)
@@ -53,7 +53,7 @@
        </linkedResources>\r
        <filteredResources>\r
                <filter>\r
-                       <id>1395316906017</id>\r
+                       <id>1401803846285</id>\r
                        <name>src/Common_Demo_Tasks</name>\r
                        <type>22</type>\r
                        <matcher>\r
@@ -62,7 +62,7 @@
                        </matcher>\r
                </filter>\r
                <filter>\r
-                       <id>1395316906049</id>\r
+                       <id>1401803846295</id>\r
                        <name>src/Common_Demo_Tasks</name>\r
                        <type>22</type>\r
                        <matcher>\r
                        </matcher>\r
                </filter>\r
                <filter>\r
-                       <id>1395316906064</id>\r
-                       <name>src/Common_Demo_Tasks</name>\r
-                       <type>22</type>\r
-                       <matcher>\r
-                               <id>org.eclipse.ui.ide.multiFilter</id>\r
-                               <arguments>1.0-name-matches-false-false-Int*.*</arguments>\r
-                       </matcher>\r
-               </filter>\r
-               <filter>\r
-                       <id>1395316906080</id>\r
+                       <id>1401803846295</id>\r
                        <name>src/Common_Demo_Tasks</name>\r
                        <type>22</type>\r
                        <matcher>\r
@@ -89,7 +80,7 @@
                        </matcher>\r
                </filter>\r
                <filter>\r
-                       <id>1395316906096</id>\r
+                       <id>1401803846295</id>\r
                        <name>src/Common_Demo_Tasks</name>\r
                        <type>22</type>\r
                        <matcher>\r
index eeb90f90f2d6eeb60069f6ff5d8f53124f542b59..3d5cd6f859b317a5017aa521119c517e852c4846 100644 (file)
@@ -18,5 +18,5 @@ com.renesas.cdt.rx.HardwareDebug.Compiler.option.generateRXas100output=false
 com.renesas.cdt.rx.HardwareDebug.Compiler.option.macroDefines=__RX_LITTLE_ENDIAN__\=1;\r
 com.renesas.cdt.rx.HardwareDebug.Compiler.option.make64bitDouble=false\r
 com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles=${ProjName};gcc;\r
-com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories.1899007176="${CONFIGDIR}";"${TCINSTALL}\\lib\\gcc\\rx-elf\\\\${GCC_VERSION}";\r
+com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories.1899007176="${CONFIGDIR}";"${TCINSTALL}/lib/gcc/rx-elf//${GCC_VERSION}";"${TCINSTALL}/lib/gcc/rx-elf/${GCC_VERSION}";\r
 eclipse.preferences.version=1\r
index 1e6561456a23940e123fde96907195e808214eb6..8951044b1923ba28e0c622019f24794ef357fbf4 100644 (file)
@@ -4,7 +4,7 @@
                <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">\r
                        <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>\r
                        <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>\r
-                       <provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS} -mcpu=rx600 -mlittle-endian-data" prefer-non-shared="true">\r
+                       <provider class="com.renesas.cdt.common.build.spec.RXGCCBuiltinSpecsDetector" console="false" env-hash="-1879026215548195910" id="RXGCCBuiltinSpecsDetector" keep-relative-paths="false" name="Renesas GCCBuildinCompilerSettings" options-hash="1142094570" parameter="rx-elf-gcc -E -P -v -dD ${INPUTS} -mcpu=rx600 -mlittle-endian-data" prefer-non-shared="true">\r
                                <language-scope id="org.eclipse.cdt.core.gcc"/>\r
                                <language-scope id="org.eclipse.cdt.core.g++"/>\r
                        </provider>\r
index 6977706f6c3607035cdd6134487239f121100b27..9cc6968053e4467f44b3820db774c4d89658b26d 100644 (file)
@@ -9,7 +9,7 @@
 <stringAttribute key="com.renesas.cdt.core.optionInitCommands" value=""/>\r
 <intAttribute key="com.renesas.cdt.core.portNumber" value="61234"/>\r
 <stringAttribute key="com.renesas.cdt.core.runCommands" value=""/>\r
-<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1  -l 0 -t R5F564ML  -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 12.0000 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 0 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0"/>\r
+<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1  -l 0 -t R5F564ML  -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 12.0000 -uAllowClockSourceInternal= 1 -uUseFine= 0 -uJTagClockFreq= 16.5 -w 1 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -b -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0"/>\r
 <booleanAttribute key="com.renesas.cdt.core.setResume" value="true"/>\r
 <booleanAttribute key="com.renesas.cdt.core.setStopAt" value="true"/>\r
 <booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>\r
 <stringAttribute key="com.renesas.cdt.debug.realtimemanager.memory.mruRanges" value=""/>\r
 <stringAttribute key="com.renesas.cdt.launch.dsf.IO_MAP" value="${eclipse_home}..\internal\IoFiles\RX\RX64M.sfrx"/>\r
 <booleanAttribute key="com.renesas.cdt.launch.dsf.USE_DEFAULT_IO_MAP" value="true"/>\r
+<listAttribute key="com.renesas.cdt.launch.dsf.downloadImages">\r
+<listEntry value="|true|true|true||true"/>\r
+</listAttribute>\r
+<booleanAttribute key="com.renesas.cdt.launch.dsf.downloadImagesUpgradedV30" value="true"/>\r
 <stringAttribute key="com.renesas.cdt.launch.dsf.launchSeqType" value="com.renesas.cdt.launch.dsf.launchSequence.e2GdbServer"/>\r
 <stringAttribute key="com.renesas.cdt.launch.dsf.serverPath" value="${eclipse_home}../DebugComp/e2-server-gdb.exe"/>\r
 <booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>\r
 <intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>\r
 <stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="0"/>\r
-<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="false"/>\r
+<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="true"/>\r
+<booleanAttribute key="com.renesas.hardwaredebug.e1.enable.hot.plug" value="false"/>\r
 <booleanAttribute key="com.renesas.hardwaredebug.e1.enable_external_flash" value="false"/>\r
 <booleanAttribute key="com.renesas.hardwaredebug.e1.execute.program" value="false"/>\r
 <listAttribute key="com.renesas.hardwaredebug.e1.ext_flash_definitions"/>\r
@@ -53,8 +58,8 @@
 <booleanAttribute key="com.renesas.hardwaredebug.e20.le" value="true"/>\r
 <intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>\r
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX600_RX64M_RSK_GCC_e2studio\HardwareDebug\RTOSDemo.x"/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>\r
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>\r
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value="C:\E\Dev\FreeRTOS\WorkingCopy\FreeRTOS\Demo\RX600_RX64M_RSK_GCC_e2studio\HardwareDebug\RTOSDemo.x"/>\r
 <stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>\r
 <booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>\r
index b842a0f74a8115392c0f1a70053176008e0ddb0f..b1321584670dbdef5b3a73c4c1c1a8f2f193f75b 100644 (file)
@@ -2,4 +2,4 @@
 # Automatically-generated file. Do not edit!\r
 ################################################################################\r
 \r
-PATH := $(PATH):C:\PROGRA~1\KPIT\GNURXV~1.01-\rx-ELF\rx-ELF\bin;C:\PROGRA~1\KPIT\GNURXV~1.01-\rx-ELF\rx-ELF\libexec\gcc\rx-elf\4.7-GNURX_v14.01
\ No newline at end of file
+PATH := $(PATH):C:\devtools\KPIT\GNURXV~1.01-\rx-ELF\rx-ELF\bin;C:\devtools\KPIT\GNURXV~1.01-\rx-ELF\rx-ELF\libexec\gcc\rx-elf\4.7-GNURX_v14.01
\ No newline at end of file
index 397951927bd6aaf8d0e45f53a3485f1c5f427770..56fc25d0499215b95f321225c5d98267cfaf4a3a 100644 (file)
@@ -66,6 +66,9 @@
 #ifndef FREERTOS_CONFIG_H\r
 #define FREERTOS_CONFIG_H\r
 \r
+/* Hardware specifics. */\r
+#include "iodefine.h"\r
+\r
 /* Prevent Renesas headers redefining some stdint.h types. */\r
 #define __TYPEDEF__    1\r
 \r
diff --git a/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.c b/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.c
new file mode 100644 (file)
index 0000000..0d04d67
--- /dev/null
@@ -0,0 +1,181 @@
+/*\r
+    FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. \r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+/*\r
+ * This file contains the non-portable and therefore RX64M specific parts of\r
+ * the IntQueue standard demo task - namely the configuration of the timers\r
+ * that generate the interrupts and the interrupt entry points.\r
+ */\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo includes. */\r
+#include "IntQueueTimer.h"\r
+#include "IntQueue.h"\r
+\r
+#define IPR_PERIB_INTB128      128\r
+#define IPR_PERIB_INTB129      129\r
+#define IER_PERIB_INTB128      0x10\r
+#define IER_PERIB_INTB129      0x10\r
+#define        IEN_PERIB_INTB128       IEN0\r
+#define        IEN_PERIB_INTB129       IEN1\r
+#define IR_PERIB_INTB128       128\r
+#define IR_PERIB_INTB129       129\r
+\r
+void vIntQTimerISR0( void ) __attribute__ ((interrupt));\r
+void vIntQTimerISR1( void ) __attribute__ ((interrupt));\r
+\r
+#define tmrTIMER_0_1_FREQUENCY ( 2000UL )\r
+#define tmrTIMER_2_3_FREQUENCY ( 2001UL )\r
+\r
+void vInitialiseTimerForIntQueueTest( void )\r
+{\r
+       /* Ensure interrupts do not start until full configuration is complete. */\r
+       portENTER_CRITICAL();\r
+       {\r
+               /* Give write access. */\r
+               SYSTEM.PRCR.WORD = 0xa502;\r
+\r
+               /* Cascade two 8bit timer channels to generate the interrupts. \r
+               8bit timer unit 1 (TMR0 and TMR1) and 8bit timer unit 2 (TMR2 and TMR3 are\r
+               utilised for this test. */\r
+\r
+               /* Enable the timers. */\r
+               SYSTEM.MSTPCRA.BIT.MSTPA5 = 0;\r
+               SYSTEM.MSTPCRA.BIT.MSTPA4 = 0;\r
+\r
+               /* Enable compare match A interrupt request. */\r
+               TMR0.TCR.BIT.CMIEA = 1;\r
+               TMR2.TCR.BIT.CMIEA = 1;\r
+\r
+               /* Clear the timer on compare match A. */\r
+               TMR0.TCR.BIT.CCLR = 1;\r
+               TMR2.TCR.BIT.CCLR = 1;\r
+\r
+               /* Set the compare match value. */\r
+               TMR01.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 );\r
+               TMR23.TCORA = ( unsigned short ) ( ( ( configPERIPHERAL_CLOCK_HZ / tmrTIMER_0_1_FREQUENCY ) -1 ) / 8 );\r
+\r
+               /* 16 bit operation ( count from timer 1,2 ). */\r
+               TMR0.TCCR.BIT.CSS = 3;\r
+               TMR2.TCCR.BIT.CSS = 3;\r
+       \r
+               /* Use PCLK as the input. */\r
+               TMR1.TCCR.BIT.CSS = 1;\r
+               TMR3.TCCR.BIT.CSS = 1;\r
+       \r
+               /* Divide PCLK by 8. */\r
+               TMR1.TCCR.BIT.CKS = 2;\r
+               TMR3.TCCR.BIT.CKS = 2;\r
+\r
+               /* Enable TMR 0, 2 interrupts. */\r
+               TMR0.TCR.BIT.CMIEA = 1;\r
+               TMR2.TCR.BIT.CMIEA = 1;\r
+\r
+               /* Map TMR0 CMIA0 interrupt to vector slot B number 128 and set\r
+               priority above the kernel's priority, but below the max syscall\r
+               priority. */\r
+           ICU.SLIBXR128.BYTE = 3; /* Three is TMR0 compare match A. */\r
+           IPR( PERIB, INTB128 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 1;\r
+               IEN( PERIB, INTB128 ) = 1;\r
+\r
+               /* Ensure that the flag is set to 0, otherwise the interrupt will not be\r
+               accepted. */\r
+               IR( PERIB, INTB128 ) = 0;\r
+\r
+               /* Do the same for TMR2, but to vector 129. */\r
+           ICU.SLIBXR129.BYTE = 9; /* Nine is TMR2 compare match A. */\r
+           IPR( PERIB, INTB129 ) = configMAX_SYSCALL_INTERRUPT_PRIORITY - 2;\r
+               IEN( PERIB, INTB129 ) = 1;\r
+               IR( PERIB, INTB129 ) = 0;\r
+       }\r
+       portEXIT_CRITICAL();\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* On vector 128. */\r
+void vIntQTimerISR0( void )\r
+{\r
+       /* Enable interrupts to allow interrupt nesting. */\r
+       __asm volatile( "setpsw i" );\r
+\r
+       portYIELD_FROM_ISR( xFirstTimerHandler() );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/* On vector 129. */\r
+void vIntQTimerISR1( void )\r
+{\r
+       /* Enable interrupts to allow interrupt nesting. */\r
+       __asm volatile( "setpsw i" );\r
+\r
+       portYIELD_FROM_ISR( xSecondTimerHandler() );\r
+}\r
+\r
+\r
+\r
+\r
diff --git a/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.h b/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/IntQueueTimer.h
new file mode 100644 (file)
index 0000000..931d273
--- /dev/null
@@ -0,0 +1,74 @@
+/*\r
+    FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. \r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+#ifndef INT_QUEUE_TIMER_H\r
+#define INT_QUEUE_TIMER_H\r
+\r
+void vInitialiseTimerForIntQueueTest( void );\r
+portBASE_TYPE xTimer0Handler( void );\r
+portBASE_TYPE xTimer1Handler( void );\r
+\r
+#endif\r
+\r
index 29188184ef705f5b06d11dfd3273d8a4e0553dec..ee039886d6359a2ec0999504e90f1d2e7ad8c07d 100644 (file)
@@ -75,7 +75,7 @@
 #include "partest.h"\r
 \r
 /* Hardware specifics. */\r
-//#include "iodefine.h"\r
+#include "rskrx64mdef.h"\r
 \r
 #define partestNUM_LEDS ( 4 )\r
 \r
@@ -85,14 +85,22 @@ long lParTestGetLEDState( unsigned long ulLED );
 \r
 void vParTestInitialise( void )\r
 {\r
-       /* Port pin configuration is done by the low level set up prior to this\r
-       function being called. */\r
+       /* First set the data levels. */\r
+       LED0 = LED_OFF;\r
+       LED1 = LED_OFF;\r
+       LED2 = LED_OFF;\r
+       LED3 = LED_OFF;\r
+\r
+       /* Set port direction registers. */\r
+       LED0_PIN_DIR = OUTPUT_PIN;\r
+       LED1_PIN_DIR = OUTPUT_PIN;\r
+       LED2_PIN_DIR = OUTPUT_PIN;\r
+       LED3_PIN_DIR = OUTPUT_PIN;\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 void vParTestSetLED( unsigned long ulLED, signed long xValue )\r
 {\r
-#if 0\r
        if( ulLED < partestNUM_LEDS )\r
        {\r
                if( xValue != 0 )\r
@@ -135,13 +143,11 @@ void vParTestSetLED( unsigned long ulLED, signed long xValue )
                        taskEXIT_CRITICAL();\r
                }\r
        }\r
-#endif\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 void vParTestToggleLED( unsigned long ulLED )\r
 {\r
-#if 0\r
        if( ulLED < partestNUM_LEDS )\r
        {\r
                taskENTER_CRITICAL();\r
@@ -157,14 +163,13 @@ void vParTestToggleLED( unsigned long ulLED )
                }\r
                taskEXIT_CRITICAL();\r
        }\r
-#endif\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
 long lParTestGetLEDState( unsigned long ulLED )\r
 {\r
 long lReturn = pdTRUE;\r
-#if 0\r
+\r
        if( ulLED < partestNUM_LEDS )\r
        {\r
                switch( ulLED )\r
@@ -191,7 +196,7 @@ long lReturn = pdTRUE;
                                                break;\r
                }\r
        }\r
-#endif\r
+\r
        return lReturn;\r
 }\r
 /*-----------------------------------------------------------*/\r
diff --git a/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RegTest.S b/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RegTest.S
new file mode 100644 (file)
index 0000000..b7169ab
--- /dev/null
@@ -0,0 +1,302 @@
+;/*\r
+;    FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+;    All rights reserved\r
+;\r
+;    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+;\r
+;    ***************************************************************************\r
+;     *                                                                       *\r
+;     *    FreeRTOS provides completely free yet professionally developed,    *\r
+;     *    robust, strictly quality controlled, supported, and cross          *\r
+;     *    platform software that has become a de facto standard.             *\r
+;     *                                                                       *\r
+;     *    Help yourself get started quickly and support the FreeRTOS         *\r
+;     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+;     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+;     *                                                                       *\r
+;     *    Thank you!                                                         *\r
+;     *                                                                       *\r
+;    ***************************************************************************\r
+;\r
+;    This file is part of the FreeRTOS distribution.\r
+;\r
+;    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+;    the terms of the GNU General Public License (version 2) as published by the\r
+;    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+;\r
+;    >>! NOTE: The modification to the GPL is included to allow you to distribute\r
+;    >>! a combined work that includes FreeRTOS without being obliged to provide\r
+;    >>! the source code for proprietary components outside of the FreeRTOS\r
+;    >>! kernel.\r
+;\r
+;    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+;    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+;    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+;    link: http://www.freertos.org/a00114.html\r
+;\r
+;    1 tab == 4 spaces!\r
+;\r
+;    ***************************************************************************\r
+;     *                                                                       *\r
+;     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+;     *    not run, what could be wrong?"                                     *\r
+;     *                                                                       *\r
+;     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+;     *                                                                       *\r
+;    ***************************************************************************\r
+;\r
+;    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+;    license and Real Time Engineers Ltd. contact details.;\r
+;\r
+;    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+;    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+;    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+;\r
+;    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+;    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+;    licenses offer ticketed support, indemnification and middleware.\r
+;\r
+;    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+;    engineered and independently SIL3 certified version for use in safety and\r
+;    mission critical applications that require provable dependability.\r
+;\r
+;    1 tab == 4 spaces!\r
+;*/\r
+\r
+       .global _vRegTest1Implementation\r
+       .global _vRegTest2Implementation\r
+\r
+       .extern _ulRegTest1LoopCounter\r
+       .extern _ulRegTest2LoopCounter\r
+\r
+       .text\r
+\r
+\r
+;/* 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
+       MOV.L   #3, R3\r
+       MOV.L   #4, R4\r
+       MOV.L   #5, R5\r
+       MOV.L   #6, R6\r
+       MOV.L   #7, R7\r
+       MOV.L   #8, R8\r
+       MOV.L   #9, R9\r
+       MOV.L   #10, R10\r
+       MOV.L   #11, R11\r
+       MOV.L   #12, R12\r
+       MOV.L   #13, R13\r
+       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
+\r
+       ;/* Push the registers that are going to get clobbered. */\r
+       PUSHM   R14-R15                                         \r
+       \r
+       ;/* Increment the loop counter to show this task is still getting CPU time. */\r
+       MOV.L   #_ulRegTest1LoopCounter, R14\r
+       MOV.L   [ R14 ], R15\r
+       ADD     #1, R15                                         \r
+       MOV.L   R15, [ R14 ]\r
+       \r
+       ;/* Yield to extend the text coverage.  Set the bit in the ITU SWINTR register. */\r
+       MOV.L   #1, R14\r
+       MOV.L   #0872E0H, R15\r
+       MOV.B   R14, [R15]\r
+       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
+       ;/* Now compare each register to ensure it still contains the value that was\r
+       ;set before this loop was entered. */\r
+       CMP     #1, R1                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #2, R2                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #3, R3                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #4, R4                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #5, R5                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #6, R6                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #7, R7                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #8, R8                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #9, R9                                          \r
+       BNE     RegTest1Error                           \r
+       CMP     #10, R10                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #11, R11                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #12, R12                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #13, R13                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #14, R14                                        \r
+       BNE     RegTest1Error                           \r
+       CMP     #15, R15                                        \r
+       BNE     RegTest1Error                           \r
+\r
+       ;/* All comparisons passed, start a new itteratio of this loop. */\r
+       BRA             TestLoop1                               \r
+       \r
+RegTest1Error:                                                 \r
+       ;/* A compare failed, just loop here so the loop counter stops incrementing\r
+       ;- causing the check task to indicate the error. */\r
+       BRA RegTest1Error                                       \r
+;/*-----------------------------------------------------------*/\r
+\r
+;/* This function is explained in the comments at the top of main.c. */\r
+_vRegTest2Implementation:\r
+\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
+       MOV.L   #40H, R4\r
+       MOV.L   #50H, R5\r
+       MOV.L   #60H, R6\r
+       MOV.L   #70H, R7\r
+       MOV.L   #80H, R8\r
+       MOV.L   #90H, R9\r
+       MOV.L   #100H, R10\r
+       MOV.L   #110H, R11\r
+       MOV.L   #120H, R12\r
+       MOV.L   #130H, R13\r
+       MOV.L   #140H, R14\r
+       MOV.L   #150H, 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
+TestLoop2:                                                             \r
+\r
+       ;/* Push the registers that are going to get clobbered. */\r
+       PUSHM   R14-R15                                         \r
+       \r
+       ;/* Increment the loop counter to show this task is still getting CPU time. */\r
+       MOV.L   #_ulRegTest2LoopCounter, R14\r
+       MOV.L   [ R14 ], R15\r
+       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
+       ;/* Now compare each register to ensure it still contains the value that was\r
+       ;set before this loop was entered. */\r
+       CMP     #10H, R1                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #20H, R2                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #30H, R3                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #40H, R4                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #50H, R5                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #60H, R6                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #70H, R7                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #80H, R8                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #90H, R9                                        \r
+       BNE     RegTest2Error                           \r
+       CMP     #100H, R10                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #110H, R11                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #120H, R12                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #130H, R13                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #140H, R14                                      \r
+       BNE     RegTest2Error                           \r
+       CMP     #150H, R15                                      \r
+       BNE     RegTest2Error                           \r
+\r
+       ;/* All comparisons passed, start a new itteratio of this loop. */\r
+       BRA     TestLoop2                                       \r
+       \r
+RegTest2Error:                                                 \r
+       ;/* A compare failed, just loop here so the loop counter stops incrementing\r
+       ;- causing the check task to indicate the error. */\r
+       BRA RegTest2Error                                       \r
+\r
+       \r
+       .END\r
index de90606a35b55650452153f9e263d643f5ecff98..bfe7bfa8cbb9530db7278fdf9cdb76c6bf5c9410 100644 (file)
@@ -15,7 +15,7 @@
 /*    File Version: V1.00                                               */\r
 /*    Date Generated: 08/07/2013                                        */\r
 /************************************************************************/\r
-\r
+
 #include "iodefine.h"\r
 #ifdef __cplusplus\r
 extern "C" {\r
@@ -24,23 +24,87 @@ extern void HardwareSetup(void);
 #ifdef __cplusplus\r
 }\r
 #endif\r
+
+
+#define _00_CGC_MAINOSC_RESONATOR           (0x00U) /* Resonator */
+#define _00_CGC_MAINOSC_UNDER24M            (0x00U) /* 20.1 to 24 MHz */
+#define _52_CGC_MOSCWTCR_VALUE               (0x52U) /* Main Clock Oscillator Wait Time */
+#define _00000001_CGC_PCLKD_DIV_2           (0x00000001UL) /* x1/2 */
+#define _00000010_CGC_PCLKC_DIV_2           (0x00000010UL) /* x1/2 */
+#define _00000100_CGC_PCLKB_DIV_2           (0x00000100UL) /* x1/2 */
+#define _00001000_CGC_PCLKA_DIV_2           (0x00001000UL) /* x1/2 */
+#define _00010000_CGC_BCLK_DIV_2            (0x00010000UL) /* x1/2 */
+#define _01000000_CGC_ICLK_DIV_2            (0x01000000UL) /* x1/2 */
+#define _10000000_CGC_FCLK_DIV_2            (0x10000000UL) /* x1/2 */
+#define _0001_CGC_PLL_FREQ_DIV_2            (0x0001U) /* x1/2 */
+#define _1300_CGC_PLL_FREQ_MUL_10_0         (0x1300U) /* x10.0 */
+#define _0020_CGC_UCLK_DIV_3                (0x0020U) /* x1/3 */
+#define _0400_CGC_CLOCKSOURCE_PLL           (0x0400U) /* PLL circuit */
+
+void R_CGC_Create(void)
+{
+    /* Set main clock control registers */
+    SYSTEM.MOFCR.BYTE = _00_CGC_MAINOSC_RESONATOR | _00_CGC_MAINOSC_UNDER24M;
+    SYSTEM.MOSCWTCR.BYTE = _52_CGC_MOSCWTCR_VALUE;
+
+    /* Set main clock operation */
+    SYSTEM.MOSCCR.BIT.MOSTP = 0U;
+
+    /* Wait for main clock oscillator wait counter overflow */
+    while (1U != SYSTEM.OSCOVFSR.BIT.MOOVF);
+
+    /* Set system clock */
+    SYSTEM.SCKCR.LONG = _00000001_CGC_PCLKD_DIV_2 | _00000010_CGC_PCLKC_DIV_2 | _00000100_CGC_PCLKB_DIV_2 |
+                        _00001000_CGC_PCLKA_DIV_2 | _00010000_CGC_BCLK_DIV_2 | _01000000_CGC_ICLK_DIV_2 |
+                        _10000000_CGC_FCLK_DIV_2;
+
+    /* Set PLL circuit */
+    SYSTEM.PLLCR2.BIT.PLLEN = 0U;
+    SYSTEM.PLLCR.BIT.PLLSRCSEL = 0U;
+    SYSTEM.PLLCR.WORD = _0001_CGC_PLL_FREQ_DIV_2 | _1300_CGC_PLL_FREQ_MUL_10_0;
+
+    /* Wait for PLL wait counter overflow */
+    while (1U != SYSTEM.OSCOVFSR.BIT.PLOVF);
+
+
+    /* Disable sub-clock */
+    SYSTEM.SOSCCR.BIT.SOSTP = 1U;
+
+    /* Wait for the register modification to complete */
+    while (1U != SYSTEM.SOSCCR.BIT.SOSTP);
+
+    /* Set LOCO */
+    SYSTEM.LOCOCR.BIT.LCSTP = 0U;
+
+    /* Set UCLK */
+    SYSTEM.SCKCR2.WORD = _0020_CGC_UCLK_DIV_3;
+
+    /* Set SDCLK */
+    SYSTEM.SCKCR.BIT.PSTOP0 = 1U;
+
+    /* Set clock source */
+    SYSTEM.SCKCR3.WORD = _0400_CGC_CLOCKSOURCE_PLL;
+}
+
 \r
 void HardwareSetup(void)\r
 {\r
-/*\r
- BSC.CS0MOD.WORD = 0x1234;\r
- BSC.CS7CNT.WORD = 0x5678;\r
-  \r
- SCI0.SCR.BIT.TE  = 0;\r
- SCI0.SCR.BIT.RE  = 0;\r
- SCI0.SCR.BIT.TE  = 1;\r
- SCI2.SSR.BIT.PER = 0;\r
+    /* Enable writing to registers related to operating modes, LPC, CGC and software reset */
+    SYSTEM.PRCR.WORD = 0xA50BU;
+
+    /* Enable writing to MPC pin function control registers */
+    MPC.PWPR.BIT.B0WI = 0U;
+    MPC.PWPR.BIT.PFSWE = 1U;
+
+    /* Set peripheral settings */
+    R_CGC_Create();
+
+    /* Disable writing to MPC pin function control registers */
+    MPC.PWPR.BIT.PFSWE = 0U;
+    MPC.PWPR.BIT.B0WI = 1U;
+
+    /* Enable protection */
+    SYSTEM.PRCR.WORD = 0xA500U;
+}
+
 \r
- TMR0.TCR.BYTE = 0x12;\r
- TMR1.TCR.BYTE = 0x12;\r
- TMR2.TCR.BYTE = 0x12;\r
\r
- P0.DDR.BYTE = 0x12;\r
- P1.DDR.BYTE = 0x12;\r
-*/\r
-}\r
index 396443e5bda33cf6ff5c19c0c58ab49472f158c6..98154af13b302b7b552081690dbf989f1670f90e 100644 (file)
 #include "interrupt_handlers.h"\r
 \r
 // Exception(Supervisor Instruction)\r
-void INT_Excep_SuperVisorInst(void){/* brk(); */}\r
+void INT_Excep_SuperVisorInst(void){ __asm volatile( "brk"); }\r
 \r
 // Exception(Access Instruction)\r
-void INT_Excep_AccessInst(void){/* brk(); */}\r
+void INT_Excep_AccessInst(void){ __asm volatile( "brk"); }\r
 \r
 // Exception(Undefined Instruction)\r
-void INT_Excep_UndefinedInst(void){/* brk(); */}\r
+void INT_Excep_UndefinedInst(void){ __asm volatile( "brk"); }\r
 \r
 // Exception(Floating Point)\r
-void INT_Excep_FloatingPoint(void){/* brk(); */}\r
+void INT_Excep_FloatingPoint(void){ __asm volatile( "brk"); }\r
 \r
 // NMI\r
-void INT_NonMaskableInterrupt(void){/* brk(); */}\r
+void INT_NonMaskableInterrupt(void){ __asm volatile( "brk"); }\r
 \r
 // Dummy\r
-void Dummy(void){/* brk(); */}\r
+void Dummy(void){ __asm volatile( "brk"); }\r
 \r
 // BRK\r
 void INT_Excep_BRK(void){ /*wait();*/ }\r
@@ -70,254 +70,254 @@ void INT_Excep_BRK(void){ /*wait();*/ }
 //;0x003C  Reserved\r
 \r
 //;0x0040  BUSERR\r
-void  INT_Excep_BSC_BUSERR(void){ }\r
+void  INT_Excep_BSC_BUSERR(void){ __asm volatile( "brk"); }\r
 //;0x0044  Reserved\r
 \r
 //;0x0048  RAMERR\r
-void INT_Excep_RAM_RAMERR(void){ };\r
+void INT_Excep_RAM_RAMERR(void){ __asm volatile( "brk"); };\r
 //;0x004C  Reserved\r
 \r
 //;0x0050  Reserved\r
 \r
 //;0x0054 FIFERR\r
-void INT_Excep_FCU_FIFERR(void){ };\r
+void INT_Excep_FCU_FIFERR(void){ __asm volatile( "brk"); };\r
 //;0x0058  Reserved\r
 \r
 //;0x005C  FRDYI\r
-void INT_Excep_FCU_FRDYI(void){ };\r
+void INT_Excep_FCU_FRDYI(void){ __asm volatile( "brk"); };\r
 //;0x0060  Reserved\r
 \r
 //;0x0064  Reserved\r
 \r
 //;0x0068  SWINT2\r
-void INT_Excep_ICU_SWINT2(void){ };\r
+void INT_Excep_ICU_SWINT2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x006C  SWINT\r
-void INT_Excep_ICU_SWINT(void){ };\r
+void INT_Excep_ICU_SWINT(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0070  CMI0\r
-void INT_Excep_CMT0_CMI0(void){ };\r
+void INT_Excep_CMT0_CMI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0074  CMI1\r
-void INT_Excep_CMT1_CMI1(void){ };\r
+void INT_Excep_CMT1_CMI1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0078  CMWI0\r
-void INT_Excep_CMTW0_CMWI0(void){ };\r
+void INT_Excep_CMTW0_CMWI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x007C  CMWI1\r
-void INT_Excep_CMTW1_CMWI1(void){ };\r
+void INT_Excep_CMTW1_CMWI1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0080  D0FIFO2\r
-void INT_Excep_USBHS_D0FIFO2(void){ };\r
+void INT_Excep_USBHS_D0FIFO2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0084  D1FIFO2\r
-void INT_Excep_USBHS_D1FIFO2(void){ };\r
+void INT_Excep_USBHS_D1FIFO2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0088  D0FIFO0\r
-void INT_Excep_USB0_D0FIFO0(void){ };\r
+void INT_Excep_USB0_D0FIFO0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x008C  D1FIFO0\r
-void INT_Excep_USB0_D1FIFO0(void){ };\r
+void INT_Excep_USB0_D1FIFO0(void){ __asm volatile( "brk"); };\r
 //;0x0090  Reserved\r
 \r
 //;0x0094  Reserved\r
 \r
 //;0x0098  SPRI0\r
-void INT_Excep_RSPI0_SPRI0(void){ };\r
+void INT_Excep_RSPI0_SPRI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x009C  SPTI0\r
-void INT_Excep_RSPI0_SPTI0(void){ };\r
+void INT_Excep_RSPI0_SPTI0(void){ __asm volatile( "brk"); };\r
 //;0x00A0  Reserved\r
 \r
 //;0x00A4  Reserved\r
 \r
 //;0x00A8  SPRI\r
-void INT_Excep_QSPI_SPRI(void){ };\r
+void INT_Excep_QSPI_SPRI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00AC  SPTI\r
-void INT_Excep_QSPI_SPTI(void){ };\r
+void INT_Excep_QSPI_SPTI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00B0  SBFAI\r
-void INT_Excep_SHDI_SBFAI(void){ };\r
+void INT_Excep_SHDI_SBFAI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00B4  MBFAI\r
-void INT_Excep_MMC_MBFAI(void){ };\r
+void INT_Excep_MMC_MBFAI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00B8  SSITX0\r
-void INT_Excep_SSI0_SSITXI0(void){ };\r
+void INT_Excep_SSI0_SSITXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00BC  SSIRX0\r
-void INT_Excep_SSI0_SSIRXI0(void){ };\r
+void INT_Excep_SSI0_SSIRXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00C0  SSIRTI1\r
-void INT_Excep_SSI1_SSIRTI1(void){ };\r
+void INT_Excep_SSI1_SSIRTI1(void){ __asm volatile( "brk"); };\r
 //;0x00C4  Reserved\r
 \r
 //;0x00C8  IDEI\r
-void INT_Excep_SRC_IDEI(void){ };\r
+void INT_Excep_SRC_IDEI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00CC  ODFI\r
-void INT_Excep_SRC_ODFI(void){ };\r
+void INT_Excep_SRC_ODFI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00D0  RXI0\r
-void INT_Excep_RIIC0_RXI0(void){ };\r
+void INT_Excep_RIIC0_RXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00D4C  TXI0\r
-void INT_Excep_RIIC0_TXI0(void){ };\r
+void INT_Excep_RIIC0_TXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00D8  RXI2\r
-void INT_Excep_RIIC2_RXI2(void){ };\r
+void INT_Excep_RIIC2_RXI2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00DC TXI2\r
-void INT_Excep_RIIC2_TXI2(void){ };\r
+void INT_Excep_RIIC2_TXI2(void){ __asm volatile( "brk"); };\r
 //;0x00E0  Reserved\r
 \r
 //;0x00E4  Reserved\r
 \r
 //;0x00E8 RXI0\r
-void INT_Excep_SCI0_RXI0(void){ };\r
+void INT_Excep_SCI0_RXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00EC TXI0\r
-void INT_Excep_SCI0_TXI0(void){ };\r
+void INT_Excep_SCI0_TXI0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00F0 RXI1\r
-void INT_Excep_SCI1_RXI1(void){ };\r
+void INT_Excep_SCI1_RXI1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00F4 TXI1\r
-void INT_Excep_SCI1_TXI1(void){ };\r
+void INT_Excep_SCI1_TXI1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00F8 RXI2\r
-void INT_Excep_SCI2_RXI2(void){ };\r
+void INT_Excep_SCI2_RXI2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x00FC TXI2\r
-void INT_Excep_SCI2_TXI2(void){ };\r
+void INT_Excep_SCI2_TXI2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0100 IRQ0\r
-void INT_Excep_ICU_IRQ0(void){ };\r
+void INT_Excep_ICU_IRQ0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0104 IRQ1\r
-void INT_Excep_ICU_IRQ1(void){ };\r
+void INT_Excep_ICU_IRQ1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0108 IRQ2\r
-void INT_Excep_ICU_IRQ2(void){ };\r
+void INT_Excep_ICU_IRQ2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x010C IRQ3\r
-void INT_Excep_ICU_IRQ3(void){ };\r
+void INT_Excep_ICU_IRQ3(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0110 IRQ4\r
-void INT_Excep_ICU_IRQ4(void){ };\r
+void INT_Excep_ICU_IRQ4(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0114 IRQ5\r
-void INT_Excep_ICU_IRQ5(void){ };\r
+void INT_Excep_ICU_IRQ5(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0118 IRQ6\r
-void INT_Excep_ICU_IRQ6(void){ };\r
+void INT_Excep_ICU_IRQ6(void){ __asm volatile( "brk"); };\r
 \r
 //;0x011C IRQ7\r
-void INT_Excep_ICU_IRQ7(void){ };\r
+void INT_Excep_ICU_IRQ7(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0120 IRQ8\r
-void INT_Excep_ICU_IRQ8(void){ };\r
+void INT_Excep_ICU_IRQ8(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0124 IRQ9\r
-void INT_Excep_ICU_IRQ9(void){ };\r
+void INT_Excep_ICU_IRQ9(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0128 IRQ10\r
-void INT_Excep_ICU_IRQ10(void){ };\r
+void INT_Excep_ICU_IRQ10(void){ __asm volatile( "brk"); };\r
 \r
 //;0x012C IRQ11\r
-void INT_Excep_ICU_IRQ11(void){ };\r
+void INT_Excep_ICU_IRQ11(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0130 IRQ12\r
-void INT_Excep_ICU_IRQ12(void){ };\r
+void INT_Excep_ICU_IRQ12(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0134 IRQ13\r
-void INT_Excep_ICU_IRQ13(void){ };\r
+void INT_Excep_ICU_IRQ13(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0138 IRQ14\r
-void INT_Excep_ICU_IRQ14(void){ };\r
+void INT_Excep_ICU_IRQ14(void){ __asm volatile( "brk"); };\r
 \r
 //;0x013C IRQ15\r
-void INT_Excep_ICU_IRQ15(void){ };\r
+void INT_Excep_ICU_IRQ15(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0140 RXI3\r
-void INT_Excep_SCI3_RXI3(void){ };\r
+void INT_Excep_SCI3_RXI3(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0144 TXI3\r
-void INT_Excep_SCI3_TXI3(void){ };\r
+void INT_Excep_SCI3_TXI3(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0148 RXI4\r
-void INT_Excep_SCI4_RXI4(void){ };\r
+void INT_Excep_SCI4_RXI4(void){ __asm volatile( "brk"); };\r
 \r
 //;0x014C TXI4\r
-void INT_Excep_SCI4_TXI4(void){ };\r
+void INT_Excep_SCI4_TXI4(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0150 RXI5\r
-void INT_Excep_SCI5_RXI5(void){ };\r
+void INT_Excep_SCI5_RXI5(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0154 TXI5\r
-void INT_Excep_SCI5_TXI5(void){ };\r
+void INT_Excep_SCI5_TXI5(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0158 RXI6\r
-void INT_Excep_SCI6_RXI6(void){ };\r
+void INT_Excep_SCI6_RXI6(void){ __asm volatile( "brk"); };\r
 \r
 //;0x015C TXI6\r
-void INT_Excep_SCI6_TXI6(void){ };\r
+void INT_Excep_SCI6_TXI6(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0160 COMPA1\r
-void INT_Excep_LVD1_COMPA1(void){ };\r
+void INT_Excep_LVD1_COMPA1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0164 COMPA2\r
-void INT_Excep_LVD2_COMPA2(void){ };\r
+void INT_Excep_LVD2_COMPA2(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0168 USBR0\r
-void INT_Excep_USB_USBR0(void){ };\r
+void INT_Excep_USB_USBR0(void){ __asm volatile( "brk"); };\r
 //;0x016C Reserved\r
 \r
 //;0x0170 ALM\r
-void INT_Excep_RTC_ALM(void){ };\r
+void INT_Excep_RTC_ALM(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0174 PRD\r
-void INT_Excep_RTC_PRD(void){ };\r
+void INT_Excep_RTC_PRD(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0178 HSUSBR\r
-void INT_Excep_USBHS_USBHSR(void){ };\r
+void INT_Excep_USBHS_USBHSR(void){ __asm volatile( "brk"); };\r
 \r
 //;0x017C IWUNI\r
-void INT_Excep_IWDT_IWUNI(void){ };\r
+void INT_Excep_IWDT_IWUNI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0180 WUNI\r
-void INT_Excep_WDT_WUNI(void){ };\r
+void INT_Excep_WDT_WUNI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0184 PCDFI\r
-void INT_Excep_PDC_PCDFI(void){ };\r
+void INT_Excep_PDC_PCDFI(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0188 RXI7\r
-void INT_Excep_SCI7_RXI7(void){ };\r
+void INT_Excep_SCI7_RXI7(void){ __asm volatile( "brk"); };\r
 \r
 //;0x018C TXI7\r
-void INT_Excep_SCI7_TXI7(void){ };\r
+void INT_Excep_SCI7_TXI7(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0190 RXIF8\r
-void INT_Excep_SCIF8_RXIF8(void){ };\r
+void INT_Excep_SCIF8_RXIF8(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0194 TXIF8\r
-void INT_Excep_SCIF8_TXIF8(void){ };\r
+void INT_Excep_SCIF8_TXIF8(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0198 RXIF9\r
-void INT_Excep_SCIF9_RXIF9(void){ };\r
+void INT_Excep_SCIF9_RXIF9(void){ __asm volatile( "brk"); };\r
 \r
 //;0x019C TXIF9\r
-void INT_Excep_SCIF9_TXIF9(void){ };\r
+void INT_Excep_SCIF9_TXIF9(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01A0 RXIF10\r
-void INT_Excep_SCIF10_RXIF10(void){ };\r
+void INT_Excep_SCIF10_RXIF10(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01A4 TXIF10\r
-void INT_Excep_SCIF10_TXIF10(void){ };\r
+void INT_Excep_SCIF10_TXIF10(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01A8 GROUPBE0\r
-void INT_Excep_ICU_GROUPBE0(void){ };\r
+void INT_Excep_ICU_GROUPBE0(void){ __asm volatile( "brk"); };\r
 //;0x01AC Reserved \r
 \r
 //;0x01B0 Reserved \r
@@ -325,437 +325,437 @@ void INT_Excep_ICU_GROUPBE0(void){ };
 //;0x01B4 Reserved \r
 \r
 //;0x01B8 GROUPBL0\r
-void INT_Excep_ICU_GROUPBL0(void){ };\r
+void INT_Excep_ICU_GROUPBL0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01BC GROUPBL1\r
-void INT_Excep_ICU_GROUPBL1(void){ };\r
+void INT_Excep_ICU_GROUPBL1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01C0 GROUPAL0\r
-void INT_Excep_ICU_GROUPAL0(void){ };\r
+void INT_Excep_ICU_GROUPAL0(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01C4 GROUPAL1\r
-void INT_Excep_ICU_GROUPAL1(void){ };\r
+void INT_Excep_ICU_GROUPAL1(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01C8 RXIF11\r
-void INT_Excep_SCIF11_RXIF11(void){ };\r
+void INT_Excep_SCIF11_RXIF11(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01CC TXIF11\r
-void INT_Excep_SCIF11_TXIF11(void){ };\r
+void INT_Excep_SCIF11_TXIF11(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01D0 RXIF12\r
-void INT_Excep_SCIF12_RXIF12(void){ };\r
+void INT_Excep_SCIF12_RXIF12(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01D4 TXIF12\r
-void INT_Excep_SCIF12_TXIF12(void){ };\r
+void INT_Excep_SCIF12_TXIF12(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01D8 Reserved\r
 \r
 //;0x01DC Reserved\r
 \r
 //;0x01E0 DMAC0I\r
-void INT_Excep_DMAC_DMAC0I(void){ };\r
+void INT_Excep_DMAC_DMAC0I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01E4 DMAC1I\r
-void INT_Excep_DMAC_DMAC1I(void){ };\r
+void INT_Excep_DMAC_DMAC1I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01E8 DMAC2I\r
-void INT_Excep_DMAC_DMAC2I(void){ };\r
+void INT_Excep_DMAC_DMAC2I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01EC DMAC3I\r
-void INT_Excep_DMAC_DMAC3I(void){ };\r
+void INT_Excep_DMAC_DMAC3I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01F0 DMAC74I\r
-void INT_Excep_DMAC_DMAC74I(void){ };\r
+void INT_Excep_DMAC_DMAC74I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01F4 OST\r
-void INT_Excep_ICU_OST(void){ };\r
+void INT_Excep_ICU_OST(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01F8  EXDMAC0I\r
-void INT_Excep_EXDMAC_EXDMAC0I(void){ };\r
+void INT_Excep_EXDMAC_EXDMAC0I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x01FC  EXDMAC1I\r
-void INT_Excep_EXDMAC_EXDMAC1I(void){ };\r
+void INT_Excep_EXDMAC_EXDMAC1I(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0200  INTB128\r
-void INT_Excep_PERIB_INTB128(void){ };\r
+void INT_Excep_PERIB_INTB128(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0204 INTB129\r
-void INT_Excep_PERIB_INTB129(void){ };\r
+void INT_Excep_PERIB_INTB129(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0208 INTB130\r
-void INT_Excep_PERIB_INTB130(void){ };\r
+void INT_Excep_PERIB_INTB130(void){ __asm volatile( "brk"); };\r
 \r
 //;0x020C INTB131\r
-void INT_Excep_PERIB_INTB131(void){ };\r
+void INT_Excep_PERIB_INTB131(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0210 INTB132\r
-void INT_Excep_PERIB_INTB132(void){ };\r
+void INT_Excep_PERIB_INTB132(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0214 INTB133\r
-void INT_Excep_PERIB_INTB133(void){ };\r
+void INT_Excep_PERIB_INTB133(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0218 INTB134\r
-void INT_Excep_PERIB_INTB134(void){ };\r
+void INT_Excep_PERIB_INTB134(void){ __asm volatile( "brk"); };\r
 \r
 //;0x021C INTB135\r
-void INT_Excep_PERIB_INTB135(void){ };\r
+void INT_Excep_PERIB_INTB135(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0220 INTB136\r
-void INT_Excep_PERIB_INTB136(void){ };\r
+void INT_Excep_PERIB_INTB136(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0224 INTB137\r
-void INT_Excep_PERIB_INTB137(void){ };\r
+void INT_Excep_PERIB_INTB137(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0228 INTB138\r
-void INT_Excep_PERIB_INTB138(void){ };\r
+void INT_Excep_PERIB_INTB138(void){ __asm volatile( "brk"); };\r
 \r
 //;0x022C INTB139\r
-void INT_Excep_PERIB_INTB139(void){ };\r
+void INT_Excep_PERIB_INTB139(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0230 INTB140\r
-void INT_Excep_PERIB_INTB140(void){ };\r
+void INT_Excep_PERIB_INTB140(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0234 INTB141\r
-void INT_Excep_PERIB_INTB141(void){ };\r
+void INT_Excep_PERIB_INTB141(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0238 INTB142\r
-void INT_Excep_PERIB_INTB142(void){ };\r
+void INT_Excep_PERIB_INTB142(void){ __asm volatile( "brk"); };\r
 \r
 //;0x023C INTB143\r
-void INT_Excep_PERIB_INTB143(void){ };\r
+void INT_Excep_PERIB_INTB143(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0240 INTB144\r
-void INT_Excep_PERIB_INTB144(void){ };\r
+void INT_Excep_PERIB_INTB144(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0244 INTB145\r
-void INT_Excep_PERIB_INTB145(void){ };\r
+void INT_Excep_PERIB_INTB145(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0248 INTB146\r
-void INT_Excep_PERIB_INTB146(void){ };\r
+void INT_Excep_PERIB_INTB146(void){ __asm volatile( "brk"); };\r
 \r
 //;0x024C INTB147\r
-void INT_Excep_PERIB_INTB147(void){ };\r
+void INT_Excep_PERIB_INTB147(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0250 INTB148\r
-void INT_Excep_PERIB_INTB148(void){ };\r
+void INT_Excep_PERIB_INTB148(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02540 INTB149\r
-void INT_Excep_PERIB_INTB149(void){ };\r
+void INT_Excep_PERIB_INTB149(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0258 INTB150\r
-void INT_Excep_PERIB_INTB150(void){ };\r
+void INT_Excep_PERIB_INTB150(void){ __asm volatile( "brk"); };\r
 \r
 //;0x025C INTB151\r
-void INT_Excep_PERIB_INTB151(void){ };\r
+void INT_Excep_PERIB_INTB151(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0260 INTB152\r
-void INT_Excep_PERIB_INTB152(void){ };\r
+void INT_Excep_PERIB_INTB152(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0264 INTB153\r
-void INT_Excep_PERIB_INTB153(void){ };\r
+void INT_Excep_PERIB_INTB153(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0268 INTB154\r
-void INT_Excep_PERIB_INTB154(void){ };\r
+void INT_Excep_PERIB_INTB154(void){ __asm volatile( "brk"); };\r
 \r
 //;0x026C INTB155\r
-void INT_Excep_PERIB_INTB155(void){ };\r
+void INT_Excep_PERIB_INTB155(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0270 INTB156\r
-void INT_Excep_PERIB_INTB156(void){ };\r
+void INT_Excep_PERIB_INTB156(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0274 INTB157\r
-void INT_Excep_PERIB_INTB157(void){ };\r
+void INT_Excep_PERIB_INTB157(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0278 INTB158\r
-void INT_Excep_PERIB_INTB158(void){ };\r
+void INT_Excep_PERIB_INTB158(void){ __asm volatile( "brk"); };\r
 \r
 //;0x027C INTB159\r
-void INT_Excep_PERIB_INTB159(void){ };\r
+void INT_Excep_PERIB_INTB159(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0280 INTB160\r
-void INT_Excep_PERIB_INTB160(void){ };\r
+void INT_Excep_PERIB_INTB160(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0284 INTB161\r
-void INT_Excep_PERIB_INTB161(void){ };\r
+void INT_Excep_PERIB_INTB161(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0288 INTB162\r
-void INT_Excep_PERIB_INTB162(void){ };\r
+void INT_Excep_PERIB_INTB162(void){ __asm volatile( "brk"); };\r
 \r
 //;0x028C INTB163\r
-void INT_Excep_PERIB_INTB163(void){ };\r
+void INT_Excep_PERIB_INTB163(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0290 INTB164\r
-void INT_Excep_PERIB_INTB164(void){ };\r
+void INT_Excep_PERIB_INTB164(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0294 PERIB INTB165\r
-void INT_Excep_PERIB_INTB165(void){ };\r
+void INT_Excep_PERIB_INTB165(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0298 PERIB INTB166\r
-void INT_Excep_PERIB_INTB166(void){ };\r
+void INT_Excep_PERIB_INTB166(void){ __asm volatile( "brk"); };\r
 \r
 //;0x029C PERIB INTB167\r
-void INT_Excep_PERIB_INTB167(void){ };\r
+void INT_Excep_PERIB_INTB167(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02A0 PERIB INTB168\r
-void INT_Excep_PERIB_INTB168(void){ };\r
+void INT_Excep_PERIB_INTB168(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02A4 PERIB INTB169\r
-void INT_Excep_PERIB_INTB169(void){ };\r
+void INT_Excep_PERIB_INTB169(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02A8 PERIB INTB170\r
-void INT_Excep_PERIB_INTB170(void){ };\r
+void INT_Excep_PERIB_INTB170(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02AC PERIB INTB171\r
-void INT_Excep_PERIB_INTB171(void){ };\r
+void INT_Excep_PERIB_INTB171(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02B0 PERIB INTB172\r
-void INT_Excep_PERIB_INTB172(void){ };\r
+void INT_Excep_PERIB_INTB172(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02B4 PERIB INTB173\r
-void INT_Excep_PERIB_INTB173(void){ };\r
+void INT_Excep_PERIB_INTB173(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02B8 PERIB INTB174\r
-void INT_Excep_PERIB_INTB174(void){ };\r
+void INT_Excep_PERIB_INTB174(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02BC PERIB INTB175\r
-void INT_Excep_PERIB_INTB175(void){ };\r
+void INT_Excep_PERIB_INTB175(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02C0 PERIB INTB176\r
-void INT_Excep_PERIB_INTB176(void){ };\r
+void INT_Excep_PERIB_INTB176(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02C4 PERIB INTB177\r
-void INT_Excep_PERIB_INTB177(void){ };\r
+void INT_Excep_PERIB_INTB177(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02C8 PERIB INTB178\r
-void INT_Excep_PERIB_INTB178(void){ };\r
+void INT_Excep_PERIB_INTB178(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02CC PERIB INTB179\r
-void INT_Excep_PERIB_INTB179(void){ };\r
+void INT_Excep_PERIB_INTB179(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02D0 PERIB INTB180\r
-void INT_Excep_PERIB_INTB180(void){ };\r
+void INT_Excep_PERIB_INTB180(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02D4 PERIB INTB181\r
-void INT_Excep_PERIB_INTB181(void){ };\r
+void INT_Excep_PERIB_INTB181(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02D8 PERIB INTB182\r
-void INT_Excep_PERIB_INTB182(void){ };\r
+void INT_Excep_PERIB_INTB182(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02DC PERIB INTB183\r
-void INT_Excep_PERIB_INTB183(void){ };\r
+void INT_Excep_PERIB_INTB183(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02E0 PERIB INTB184\r
-void INT_Excep_PERIB_INTB184(void){ };\r
+void INT_Excep_PERIB_INTB184(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02E4 PERIB INTB185\r
-void INT_Excep_PERIB_INTB185(void){ };\r
+void INT_Excep_PERIB_INTB185(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02E8 PERIB INTB186\r
-void INT_Excep_PERIB_INTB186(void){ };\r
+void INT_Excep_PERIB_INTB186(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02EC PERIB INTB187\r
-void INT_Excep_PERIB_INTB187(void){ };\r
+void INT_Excep_PERIB_INTB187(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02F0 PERIB INTB188\r
-void INT_Excep_PERIB_INTB188(void){ };\r
+void INT_Excep_PERIB_INTB188(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02F4 PERIB INTB189\r
-void INT_Excep_PERIB_INTB189(void){ };\r
+void INT_Excep_PERIB_INTB189(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02F8 PERIB INTB190\r
-void INT_Excep_PERIB_INTB190(void){ };\r
+void INT_Excep_PERIB_INTB190(void){ __asm volatile( "brk"); };\r
 \r
 //;0x02FC PERIB INTB191\r
-void INT_Excep_PERIB_INTB191(void){ };\r
+void INT_Excep_PERIB_INTB191(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0300 PERIB INTB192\r
-void INT_Excep_PERIB_INTB192(void){ };\r
+void INT_Excep_PERIB_INTB192(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0304 PERIB INTB193\r
-void INT_Excep_PERIB_INTB193(void){ };\r
+void INT_Excep_PERIB_INTB193(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0308 PERIB INTB194\r
-void INT_Excep_PERIB_INTB194(void){ };\r
+void INT_Excep_PERIB_INTB194(void){ __asm volatile( "brk"); };\r
 \r
 //;0x030C PERIB INTB195\r
-void INT_Excep_PERIB_INTB195(void){ };\r
+void INT_Excep_PERIB_INTB195(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0310 PERIB INTB196\r
-void INT_Excep_PERIB_INTB196(void){ };\r
+void INT_Excep_PERIB_INTB196(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0314 PERIB INTB197\r
-void INT_Excep_PERIB_INTB197(void){ };\r
+void INT_Excep_PERIB_INTB197(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0318 PERIB INTB198\r
-void INT_Excep_PERIB_INTB198(void){ };\r
+void INT_Excep_PERIB_INTB198(void){ __asm volatile( "brk"); };\r
 \r
 //;0x031C PERIB INTB199\r
-void INT_Excep_PERIB_INTB199(void){ };\r
+void INT_Excep_PERIB_INTB199(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0320 PERIB INTB200\r
-void INT_Excep_PERIB_INTB200(void){ };\r
+void INT_Excep_PERIB_INTB200(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0324 PERIB INTB201\r
-void INT_Excep_PERIB_INTB201(void){ };\r
+void INT_Excep_PERIB_INTB201(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0328 PERIB INTB202\r
-void INT_Excep_PERIB_INTB202(void){ };\r
+void INT_Excep_PERIB_INTB202(void){ __asm volatile( "brk"); };\r
 \r
 //;0x032C PERIB INTB203\r
-void INT_Excep_PERIB_INTB203(void){ };\r
+void INT_Excep_PERIB_INTB203(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0320 PERIB INTB204\r
-void INT_Excep_PERIB_INTB204(void){ };\r
+void INT_Excep_PERIB_INTB204(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0334 PERIB INTB205\r
-void INT_Excep_PERIB_INTB205(void){ };\r
+void INT_Excep_PERIB_INTB205(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0338 PERIB INTB206\r
-void INT_Excep_PERIB_INTB206(void){ };\r
+void INT_Excep_PERIB_INTB206(void){ __asm volatile( "brk"); };\r
 \r
 //;0x033C PERIB INTB207\r
-void INT_Excep_PERIB_INTB207(void){ };\r
+void INT_Excep_PERIB_INTB207(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0340 PERIA INTA208\r
-void INT_Excep_PERIA_INTA208(void){ };\r
+void INT_Excep_PERIA_INTA208(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0344 PERIA INTA209\r
-void INT_Excep_PERIA_INTA209(void){ };\r
+void INT_Excep_PERIA_INTA209(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0348 PERIA INTA210\r
-void INT_Excep_PERIA_INTA210(void){ };\r
+void INT_Excep_PERIA_INTA210(void){ __asm volatile( "brk"); };\r
 \r
 //;0x034C PERIA INTA211\r
-void INT_Excep_PERIA_INTA211(void){ };\r
+void INT_Excep_PERIA_INTA211(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0350 PERIA INTA212\r
-void INT_Excep_PERIA_INTA212(void){ };\r
+void INT_Excep_PERIA_INTA212(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0354 PERIA INTA213\r
-void INT_Excep_PERIA_INTA213(void){ };\r
+void INT_Excep_PERIA_INTA213(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0358 PERIA INTA214\r
-void INT_Excep_PERIA_INTA214(void){ };\r
+void INT_Excep_PERIA_INTA214(void){ __asm volatile( "brk"); };\r
 \r
 //;0x035C PERIA INTA215\r
-void INT_Excep_PERIA_INTA215(void){ };\r
+void INT_Excep_PERIA_INTA215(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0360 PERIA INTA216\r
-void INT_Excep_PERIA_INTA216(void){ };\r
+void INT_Excep_PERIA_INTA216(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0364 PERIA INTA217\r
-void INT_Excep_PERIA_INTA217(void){ };\r
+void INT_Excep_PERIA_INTA217(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0368 PERIA INTA218\r
-void INT_Excep_PERIA_INTA218(void){ };\r
+void INT_Excep_PERIA_INTA218(void){ __asm volatile( "brk"); };\r
 \r
 //;0x036C PERIA INTA219\r
-void INT_Excep_PERIA_INTA219(void){ };\r
+void INT_Excep_PERIA_INTA219(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0370 PERIA INTA220\r
-void INT_Excep_PERIA_INTA220(void){ };\r
+void INT_Excep_PERIA_INTA220(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0374 PERIA INTA221\r
-void INT_Excep_PERIA_INTA221(void){ };\r
+void INT_Excep_PERIA_INTA221(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0378 PERIA INTA222\r
-void INT_Excep_PERIA_INTA222(void){ };\r
+void INT_Excep_PERIA_INTA222(void){ __asm volatile( "brk"); };\r
 \r
 //;0x037C PERIA INTA223\r
-void INT_Excep_PERIA_INTA223(void){ };\r
+void INT_Excep_PERIA_INTA223(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0380 PERIA INTA224\r
-void INT_Excep_PERIA_INTA224(void){ };\r
+void INT_Excep_PERIA_INTA224(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0384 PERIA INTA225\r
-void INT_Excep_PERIA_INTA225(void){ };\r
+void INT_Excep_PERIA_INTA225(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0388 PERIA INTA226\r
-void INT_Excep_PERIA_INTA226(void){ };\r
+void INT_Excep_PERIA_INTA226(void){ __asm volatile( "brk"); };\r
 \r
 //;0x038C PERIA INTA227\r
-void INT_Excep_PERIA_INTA227(void){ };\r
+void INT_Excep_PERIA_INTA227(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0390 PERIA INTA228\r
-void INT_Excep_PERIA_INTA228(void){ };\r
+void INT_Excep_PERIA_INTA228(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0394 PERIA INTA229\r
-void INT_Excep_PERIA_INTA229(void){ };\r
+void INT_Excep_PERIA_INTA229(void){ __asm volatile( "brk"); };\r
 \r
 //;0x0398 PERIA INTA230\r
-void INT_Excep_PERIA_INTA230(void){ };\r
+void INT_Excep_PERIA_INTA230(void){ __asm volatile( "brk"); };\r
 \r
 //;0x039C PERIA INTA231\r
-void INT_Excep_PERIA_INTA231(void){ };\r
+void INT_Excep_PERIA_INTA231(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03A0 PERIA INTA232\r
-void INT_Excep_PERIA_INTA232(void){ };\r
+void INT_Excep_PERIA_INTA232(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03A4 PERIA INTA233\r
-void INT_Excep_PERIA_INTA233(void){ };\r
+void INT_Excep_PERIA_INTA233(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03A8 PERIA INTA234\r
-void INT_Excep_PERIA_INTA234(void){ };\r
+void INT_Excep_PERIA_INTA234(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03AC PERIA INTA235\r
-void INT_Excep_PERIA_INTA235(void){ };\r
+void INT_Excep_PERIA_INTA235(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03B0 PERIA INTA236\r
-void INT_Excep_PERIA_INTA236(void){ };\r
+void INT_Excep_PERIA_INTA236(void){ __asm volatile( "brk"); };\r
 \r
 //;0x04B4 PERIA INTA237\r
-void INT_Excep_PERIA_INTA237(void){ };\r
+void INT_Excep_PERIA_INTA237(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03B8 PERIA INTA238\r
-void INT_Excep_PERIA_INTA238(void){ };\r
+void INT_Excep_PERIA_INTA238(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03BC PERIA INTA239\r
-void INT_Excep_PERIA_INTA239(void){ };\r
+void INT_Excep_PERIA_INTA239(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03C0 PERIA INTA240\r
-void INT_Excep_PERIA_INTA240(void){ };\r
+void INT_Excep_PERIA_INTA240(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03C4 PERIA INTA241\r
-void INT_Excep_PERIA_INTA241(void){ };\r
+void INT_Excep_PERIA_INTA241(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03C8 PERIA INTA242\r
-void INT_Excep_PERIA_INTA242(void){ };\r
+void INT_Excep_PERIA_INTA242(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03CC PERIA INTA243\r
-void INT_Excep_PERIA_INTA243(void){ };\r
+void INT_Excep_PERIA_INTA243(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03D0 PERIA INTA244\r
-void INT_Excep_PERIA_INTA244(void){ };\r
+void INT_Excep_PERIA_INTA244(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03D4 PERIA INTA245\r
-void INT_Excep_PERIA_INTA245(void){ };\r
+void INT_Excep_PERIA_INTA245(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03D8 PERIA INTA246\r
-void INT_Excep_PERIA_INTA246(void){ };\r
+void INT_Excep_PERIA_INTA246(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03DC PERIA INTA247\r
-void INT_Excep_PERIA_INTA247(void){ };\r
+void INT_Excep_PERIA_INTA247(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03E0 PERIA INTA248\r
-void INT_Excep_PERIA_INTA248(void){ };\r
+void INT_Excep_PERIA_INTA248(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03E4 PERIA INTA249\r
-void INT_Excep_PERIA_INTA249(void){ };\r
+void INT_Excep_PERIA_INTA249(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03E8 PERIA INTA250\r
-void INT_Excep_PERIA_INTA250(void){ };\r
+void INT_Excep_PERIA_INTA250(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03EC PERIA INTA251\r
-void INT_Excep_PERIA_INTA251(void){ };\r
+void INT_Excep_PERIA_INTA251(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03F0 PERIA INTA252\r
-void INT_Excep_PERIA_INTA252(void){ };\r
+void INT_Excep_PERIA_INTA252(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03F4 PERIA INTA253\r
-void INT_Excep_PERIA_INTA253(void){ };\r
+void INT_Excep_PERIA_INTA253(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03F8 PERIA INTA254\r
-void INT_Excep_PERIA_INTA254(void){ };\r
+void INT_Excep_PERIA_INTA254(void){ __asm volatile( "brk"); };\r
 \r
 //;0x03FC PERIA INTA255\r
-void INT_Excep_PERIA_INTA255(void){ };\r
+void INT_Excep_PERIA_INTA255(void){ __asm volatile( "brk"); };\r
index ef2a6a929f84cf57ac59d70a2be9bab7d09b851b..9b0fef799274715c1fd1fdf6a0d6fd8b8486e85a 100644 (file)
@@ -71,7 +71,7 @@ _PowerON_Reset :
 \r
 /* change PSW PM to user-mode */\r
     MVFC   PSW,R1\r
-    OR     #00100000h,R1\r
+/* DON'T CHANGE TO USER MODE    OR     #00100000h,R1 */\r
     PUSH.L R1\r
     MVFC   PC,R1\r
     ADD    #10,R1\r
diff --git a/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/rskrx64mdef.h b/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/RenesasCode/rskrx64mdef.h
new file mode 100644 (file)
index 0000000..3bd0ed2
--- /dev/null
@@ -0,0 +1,80 @@
+/*******************************************************************************\r
+* DISCLAIMER\r
+* This software is supplied by Renesas Electronics Corporation and is only \r
+* intended for use with Renesas products. No other uses are authorized. This \r
+* software is owned by Renesas Electronics Corporation and is protected under\r
+* all applicable laws, including copyright laws.\r
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING\r
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT\r
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE \r
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.\r
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS \r
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE \r
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR\r
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE\r
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\r
+* Renesas reserves the right, without notice, to make changes to this software\r
+* and to discontinue the availability of this software. By using this software,\r
+* you agree to the additional terms and conditions found by accessing the \r
+* following link:\r
+* http://www.renesas.com/disclaimer\r
+*******************************************************************************/\r
+/*******************************************************************************\r
+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    */\r
+/*******************************************************************************\r
+* File Name     : rskrx64mdef.h\r
+* Version       : 1.00\r
+* Device        : R5F564ML\r
+* Tool-Chain    : Renesas RX Standard 2.01.0\r
+* H/W Platform  : RSK+RX64M\r
+* Description   : Defines macros relating to the RX64M user LEDs and switches\r
+*******************************************************************************/\r
+/*******************************************************************************\r
+* History       : 20 Mar. 2014 Ver. 0.00 Alpha Release\r
+*******************************************************************************/\r
+\r
+/*******************************************************************************\r
+* Macro Definitions\r
+*******************************************************************************/\r
+/* Multiple inclusion prevention macro */\r
+#ifndef RSKRX64MDEF_H\r
+#define RSKRX64MDEF_H\r
+\r
+/*******************************************************************************\r
+* User Includes (Project Level Includes)\r
+*******************************************************************************/\r
+\r
+/* General Values */\r
+#define LED_ON          (0)\r
+#define LED_OFF         (1)\r
+#define SET_BIT_HIGH    (1)\r
+#define SET_BIT_LOW     (0)\r
+#define SET_BYTE_HIGH   (0xFF)\r
+#define SET_BYTE_LOW    (0x00)\r
+#define OUTPUT_PIN      (1)\r
+#define INPUT_PIN       (0)\r
+\r
+/* Switch port pins data direction */\r
+#define SW1_PIN_DIR     (PORT1.PDR.BIT.B5)\r
+#define SW2_PIN_DIR     (PORT1.PDR.BIT.B2)\r
+#define SW3_PIN_DIR     (PORT0.PDR.BIT.B7)\r
+\r
+/* Switches */\r
+#define SW1             (PORT1.PIDR.BIT.B5)\r
+#define SW2             (PORT1.PIDR.BIT.B2)\r
+#define SW3             (PORT0.PIDR.BIT.B7)\r
+\r
+/* LED data direction */\r
+#define LED0_PIN_DIR    (PORT0.PDR.BIT.B3)\r
+#define LED1_PIN_DIR    (PORT0.PDR.BIT.B5)\r
+#define LED2_PIN_DIR    (PORT2.PDR.BIT.B6)\r
+#define LED3_PIN_DIR    (PORT2.PDR.BIT.B7)\r
+\r
+/* LED ouptut pin settings */\r
+#define LED0                   (PORT0.PODR.BIT.B3)\r
+#define LED1            (PORT0.PODR.BIT.B5)\r
+#define LED2            (PORT2.PODR.BIT.B6)\r
+#define LED3            (PORT2.PODR.BIT.B7)\r
+\r
+/* End of multiple inclusion prevention macro */\r
+#endif\r
index 94fb38ccdd18e199ea731a94261abaa199c99cdb..f1d75aac4b869f790065231647a0bb5d0e1d6271 100644 (file)
 \r
 typedef void (*fp) (void);\r
 extern void PowerON_Reset (void);\r
-extern void stack (void);\r
+extern void stack (void);
+extern void vTickISR( void );
+extern void vSoftwareInterruptISR( void );
+extern void vIntQTimerISR0( void );
+extern void vIntQTimerISR1( void );\r
 \r
 #define FVECT_SECT    __attribute__ ((section (".fvectors")))\r
 \r
@@ -98,65 +102,65 @@ const void *HardwareVectors[] FVECT_SECT  = {
 \r
 const fp RelocatableVectors[] RVECT_SECT  = {\r
 //;0x0000  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0004  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0008  Reserved\r
-    \r
+       (fp)0,\r
 //;0x000C  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0010  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0014  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0018  Reserved\r
-    \r
+       (fp)0,\r
 //;0x001C  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0020  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0024  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0028  Reserved\r
-    \r
+       (fp)0,\r
 //;0x002C  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0030  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0034  Reserved\r
-    \r
+       (fp)0,\r
 //;0x0038  Reserved\r
-    \r
+       (fp)0,\r
 //;0x003C  Reserved\r
-\r
+       (fp)0,\r
 //;0x0040  BUSERR\r
     (fp)INT_Excep_BSC_BUSERR,\r
 //;0x0044  Reserved\r
-\r
+    (fp)0,\r
 //;0x0048  RAMERR\r
     (fp)INT_Excep_RAM_RAMERR,\r
 //;0x004C  Reserved\r
-\r
+    (fp)0,\r
 //;0x0050  Reserved\r
-\r
+    (fp)0,\r
 //;0x0054 FIFERR\r
     (fp)INT_Excep_FCU_FIFERR,\r
 //;0x0058  Reserved\r
-\r
+    (fp)0,\r
 //;0x005C  FRDYI\r
     (fp)INT_Excep_FCU_FRDYI,\r
 //;0x0060  Reserved\r
-\r
+    (fp)0,\r
 //;0x0064  Reserved\r
-\r
+    (fp)0,\r
 //;0x0068  SWINT2\r
     (fp)INT_Excep_ICU_SWINT2,\r
 \r
 //;0x006C  SWINT\r
-    (fp)INT_Excep_ICU_SWINT,\r
+    (fp)vSoftwareInterruptISR,\r
 \r
 //;0x0070  CMI0\r
-    (fp)INT_Excep_CMT0_CMI0,\r
+    (fp)vTickISR,\r
 \r
 //;0x0074  CMI1\r
     (fp)INT_Excep_CMT1_CMI1,\r
@@ -179,18 +183,18 @@ const fp RelocatableVectors[] RVECT_SECT  = {
 //;0x008C  D1FIFO0\r
     (fp)INT_Excep_USB0_D1FIFO0,\r
 //;0x0090  Reserved\r
-\r
+    (fp)0,\r
 //;0x0094  Reserved\r
-\r
+    (fp)0,\r
 //;0x0098  SPRI0\r
     (fp)INT_Excep_RSPI0_SPRI0,\r
 \r
 //;0x009C  SPTI0\r
     (fp)INT_Excep_RSPI0_SPTI0,\r
 //;0x00A0  Reserved\r
-\r
+    (fp)0,\r
 //;0x00A4  Reserved\r
-\r
+    (fp)0,\r
 //;0x00A8  SPRI\r
     (fp)INT_Excep_QSPI_SPRI,\r
 \r
@@ -212,7 +216,7 @@ const fp RelocatableVectors[] RVECT_SECT  = {
 //;0x00C0  SSIRTI1\r
     (fp)INT_Excep_SSI1_SSIRTI1,\r
 //;0x00C4  Reserved\r
-\r
+    (fp)0,\r
 //;0x00C8  IDEI\r
     (fp)INT_Excep_SRC_IDEI,\r
 \r
@@ -231,9 +235,9 @@ const fp RelocatableVectors[] RVECT_SECT  = {
 //;0x00DC TXI2\r
     (fp)INT_Excep_RIIC2_TXI2,\r
 //;0x00E0  Reserved\r
-\r
+    (fp)0,\r
 //;0x00E4  Reserved\r
-\r
+    (fp)0,\r
 //;0x00E8 RXI0\r
     (fp)INT_Excep_SCI0_RXI0,\r
 \r
@@ -333,7 +337,7 @@ const fp RelocatableVectors[] RVECT_SECT  = {
 //;0x0168 USBR0\r
     (fp)INT_Excep_USB_USBR0,\r
 //;0x016C Reserved\r
-\r
+    (fp)0,\r
 //;0x0170 ALM\r
     (fp)INT_Excep_RTC_ALM,\r
 \r
@@ -379,11 +383,11 @@ const fp RelocatableVectors[] RVECT_SECT  = {
 //;0x01A8 GROUPBE0\r
     (fp)INT_Excep_ICU_GROUPBE0,\r
 //;0x01AC Reserved \r
-\r
+    (fp)0,\r
 //;0x01B0 Reserved \r
-\r
+    (fp)0,\r
 //;0x01B4 Reserved \r
-\r
+    (fp)0,\r
 //;0x01B8 GROUPBL0\r
     (fp)INT_Excep_ICU_GROUPBL0,\r
 \r
@@ -409,9 +413,9 @@ const fp RelocatableVectors[] RVECT_SECT  = {
     (fp)INT_Excep_SCIF12_TXIF12,\r
 \r
 //;0x01D8 Reserved\r
-\r
+    (fp)0,\r
 //;0x01DC Reserved\r
-\r
+    (fp)0,\r
 //;0x01E0 DMAC0I\r
     (fp)INT_Excep_DMAC_DMAC0I,\r
 \r
@@ -437,10 +441,10 @@ const fp RelocatableVectors[] RVECT_SECT  = {
     (fp)INT_Excep_EXDMAC_EXDMAC1I,\r
 \r
 //;0x0200  INTB128\r
-    (fp)INT_Excep_PERIB_INTB128,\r
+    (fp)vIntQTimerISR0,\r
 \r
 //;0x0204 INTB129\r
-    (fp)INT_Excep_PERIB_INTB129,\r
+    (fp)vIntQTimerISR1,\r
 \r
 //;0x0208 INTB130\r
     (fp)INT_Excep_PERIB_INTB130,\r
index db8a490fdf48e034adc5a6f7ca6a4b6d466aad9d..3746b8dcd549daa0c66761c4c50a15b681dc377e 100644 (file)
@@ -91,9 +91,6 @@
 #include "QueueOverwrite.h"\r
 #include "EventGroupsDemo.h"\r
 \r
-/* Renesas includes. */\r
-#include "iodefine.h"\r
-\r
 /* Set option bytes */\r
 #pragma address OFS0_location = 0xFFFFFF8CUL\r
 #pragma address OFS1_location = 0xFFFFFF88UL\r
@@ -163,6 +160,9 @@ int main( void )
 \r
 static void prvSetupHardware( void )\r
 {\r
+       /* Set up the ports used by the LED outputs (the name ParTest is now\r
+       obsolete - it originally came from "parallel port test"). */\r
+       vParTestInitialise();\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
diff --git a/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/main_full.c b/FreeRTOS/Demo/RX600_RX64M_RSK_GCC_e2studio/src/main_full.c
new file mode 100644 (file)
index 0000000..2dc3d8a
--- /dev/null
@@ -0,0 +1,469 @@
+/*\r
+    FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+/******************************************************************************\r
+ * NOTE 1:  This project provides two demo applications.  A simple blinky style\r
+ * project, and a more comprehensive test and demo application.  The\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select\r
+ * between the two.  See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\r
+ * in main.c.  This file implements the comprehensive test and demo version.\r
+ *\r
+ * NOTE 2:  This file only contains the source code that is specific to the\r
+ * full demo.  Generic functions, such FreeRTOS hook functions, and functions\r
+ * required to configure the hardware, are defined in main.c.\r
+ *\r
+ ******************************************************************************\r
+ *\r
+ * main_full() creates all the demo application tasks and software timers, then\r
+ * starts the scheduler.  The web documentation provides more details of the\r
+ * standard demo application tasks, which provide no particular functionality,\r
+ * but do provide a good example of how to use the FreeRTOS API.\r
+ *\r
+ * In addition to the standard demo tasks, the following tasks and tests are\r
+ * defined and/or created within this file:\r
+ *\r
+ * "Reg test" tasks - These fill the core registers with known values, then\r
+ * check that each register maintains its expected value for the lifetime of the\r
+ * task.  Each task uses a different set of values.  The reg test tasks execute\r
+ * with a very low priority, so get preempted very frequently.  A register\r
+ * containing an unexpected value is indicative of an error in the context\r
+ * switching mechanism.\r
+ *\r
+ * "Check" task - The check task period is initially set to three seconds.  The\r
+ * task checks that all the standard demo tasks, and the register check tasks,\r
+ * are not only still executing, but are executing without reporting any errors.\r
+ * If the check task discovers that a task has either stalled, or reported an\r
+ * error, then it changes its own execution period from the initial three\r
+ * seconds, to just 200ms.  The check task also toggles an LED each time it is\r
+ * called.  This provides a visual indication of the system status:  If the LED\r
+ * toggles every three seconds, then no issues have been discovered.  If the LED\r
+ * toggles every 200ms, then an issue has been discovered with at least one\r
+ * task.\r
+ */\r
+\r
+/* Standard includes. */\r
+#include <stdio.h>\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "timers.h"\r
+#include "semphr.h"\r
+\r
+/* Standard demo application includes. */\r
+#include "flop.h"\r
+#include "semtest.h"\r
+#include "dynamic.h"\r
+#include "BlockQ.h"\r
+#include "blocktim.h"\r
+#include "countsem.h"\r
+#include "GenQTest.h"\r
+#include "recmutex.h"\r
+#include "death.h"\r
+#include "partest.h"\r
+#include "comtest2.h"\r
+#include "serial.h"\r
+#include "TimerDemo.h"\r
+#include "QueueOverwrite.h"\r
+#include "IntQueue.h"\r
+#include "EventGroupsDemo.h"\r
+#include "flash.h"\r
+\r
+/* Priorities for the demo application tasks. */\r
+#define mainSEM_TEST_PRIORITY                          ( tskIDLE_PRIORITY + 1UL )\r
+#define mainBLOCK_Q_PRIORITY                           ( tskIDLE_PRIORITY + 2UL )\r
+#define mainCREATOR_TASK_PRIORITY                      ( tskIDLE_PRIORITY + 3UL )\r
+#define mainFLOP_TASK_PRIORITY                         ( tskIDLE_PRIORITY )\r
+#define mainUART_COMMAND_CONSOLE_STACK_SIZE    ( configMINIMAL_STACK_SIZE * 3UL )\r
+#define mainCOM_TEST_TASK_PRIORITY                     ( tskIDLE_PRIORITY + 2 )\r
+#define mainCHECK_TASK_PRIORITY                                ( configMAX_PRIORITIES - 1 )\r
+#define mainQUEUE_OVERWRITE_PRIORITY           ( tskIDLE_PRIORITY )\r
+#define mainFLASH_PRIORITY                                     ( tskIDLE_PRIORITY )\r
+\r
+/* The priority used by the UART command console task. */\r
+#define mainUART_COMMAND_CONSOLE_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )\r
+\r
+/* The LED used by the check timer. */\r
+#define mainCHECK_LED                                          ( 3 )\r
+\r
+/* A block time of zero simply means "don't block". */\r
+#define mainDONT_BLOCK                                         ( 0UL )\r
+\r
+/* The period after which the check timer will expire, in ms, provided no errors\r
+have been reported by any of the standard demo tasks.  ms are converted to the\r
+equivalent in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainNO_ERROR_CHECK_TASK_PERIOD         ( 3000UL / portTICK_PERIOD_MS )\r
+\r
+/* The period at which the check timer will expire, in ms, if an error has been\r
+reported in one of the standard demo tasks.  ms are converted to the equivalent\r
+in ticks using the portTICK_PERIOD_MS constant. */\r
+#define mainERROR_CHECK_TASK_PERIOD            ( 200UL / portTICK_PERIOD_MS )\r
+\r
+/* Parameters that are passed into the register check tasks solely for the\r
+purpose of ensuring parameters are passed into tasks correctly. */\r
+#define mainREG_TEST_TASK_1_PARAMETER          ( ( void * ) 0x12345678 )\r
+#define mainREG_TEST_TASK_2_PARAMETER          ( ( void * ) 0x87654321 )\r
+\r
+/* The base period used by the timer test tasks. */\r
+#define mainTIMER_TEST_PERIOD                          ( 50 )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Called by main() to run the full demo (as opposed to the blinky demo) when\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.\r
+ */\r
+void main_full( void );\r
+\r
+/*\r
+ * The check task, as described at the top of this file.\r
+ */\r
+static void prvCheckTask( void *pvParameters );\r
+\r
+/*\r
+ * Register check tasks, and the tasks used to write over and check the contents\r
+ * of the FPU registers, as described at the top of this file.  The nature of\r
+ * these files necessitates that they are written in an assembly file, but the\r
+ * entry points are kept in the C file for the convenience of checking the task\r
+ * parameter.\r
+ */\r
+static void prvRegTestTaskEntry1( void *pvParameters );\r
+extern void vRegTest1Implementation( void );\r
+static void prvRegTestTaskEntry2( void *pvParameters );\r
+extern void vRegTest2Implementation( void );\r
+\r
+/*\r
+ * Register commands that can be used with FreeRTOS+CLI.  The commands are\r
+ * defined in CLI-Commands.c and File-Related-CLI-Command.c respectively.\r
+ */\r
+extern void vRegisterSampleCLICommands( void );\r
+\r
+/*\r
+ * The task that manages the FreeRTOS+CLI input and output.\r
+ */\r
+extern void vUARTCommandConsoleStart( uint16_t usStackSize, UBaseType_t uxPriority );\r
+\r
+/*\r
+ * A high priority task that does nothing other than execute at a pseudo random\r
+ * time to ensure the other test tasks don't just execute in a repeating\r
+ * pattern.\r
+ */\r
+static void prvPseudoRandomiser( void *pvParameters );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The following two variables are used to communicate the status of the\r
+register check tasks to the check task.  If the variables keep incrementing,\r
+then the register check tasks has not discovered any errors.  If a variable\r
+stops incrementing, then an error has been found. */\r
+volatile uint32_t ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main_full( void )\r
+{\r
+       /* Start all the other standard demo/test tasks.  They have not particular\r
+       functionality, but do demonstrate how to use the FreeRTOS API and test the\r
+       kernel port. */\r
+       vStartInterruptQueueTasks();\r
+       vStartDynamicPriorityTasks();\r
+       vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
+       vCreateBlockTimeTasks();\r
+       vStartCountingSemaphoreTasks();\r
+       vStartGenericQueueTasks( tskIDLE_PRIORITY );\r
+       vStartRecursiveMutexTasks();\r
+       vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
+       vStartMathTasks( mainFLOP_TASK_PRIORITY );\r
+       vStartTimerDemoTask( mainTIMER_TEST_PERIOD );\r
+       vStartQueueOverwriteTask( mainQUEUE_OVERWRITE_PRIORITY );\r
+       vStartEventGroupTasks();\r
+       vStartLEDFlashTasks( mainFLASH_PRIORITY );\r
+\r
+       /* Create the register check tasks, as described at the top of this     file */\r
+       xTaskCreate( prvRegTestTaskEntry1, "Reg1", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_1_PARAMETER, tskIDLE_PRIORITY, NULL );\r
+       xTaskCreate( prvRegTestTaskEntry2, "Reg2", configMINIMAL_STACK_SIZE, mainREG_TEST_TASK_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
+\r
+       /* Create the task that just adds a little random behaviour. */\r
+       xTaskCreate( prvPseudoRandomiser, "Rnd", configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );\r
+\r
+       /* Create the task that performs the 'check' functionality,     as described at\r
+       the top of this file. */\r
+       xTaskCreate( prvCheckTask, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+\r
+       /* The set of tasks created by the following function call have to be\r
+       created last as they keep account of the number of tasks they expect to see\r
+       running. */\r
+       vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
+\r
+       /* Start the scheduler. */\r
+       vTaskStartScheduler();\r
+\r
+       /* If all is well, the scheduler will now be running, and the following\r
+       line will never be reached.  If the following line does execute, then\r
+       there was either insufficient FreeRTOS heap memory available for the idle\r
+       and/or timer tasks to be created, or vTaskStartScheduler() was called from\r
+       User mode.  See the memory management section on the FreeRTOS web site for\r
+       more details on the FreeRTOS heap http://www.freertos.org/a00111.html.  The\r
+       mode from which main() is called is set in the C start up code and must be\r
+       a privileged mode (not user mode). */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCheckTask( void *pvParameters )\r
+{\r
+TickType_t xDelayPeriod = mainNO_ERROR_CHECK_TASK_PERIOD;\r
+TickType_t xLastExecutionTime;\r
+static uint32_t ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;\r
+uint32_t ulErrorFound = pdFALSE;\r
+\r
+       /* Just to stop compiler warnings. */\r
+       ( void ) pvParameters;\r
+\r
+       /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+       works correctly. */\r
+       xLastExecutionTime = xTaskGetTickCount();\r
+\r
+       /* Cycle for ever, delaying then checking all the other tasks are still\r
+       operating without error.  The onboard LED is toggled on each iteration.\r
+       If an error is detected then the delay period is decreased from\r
+       mainNO_ERROR_CHECK_TASK_PERIOD to mainERROR_CHECK_TASK_PERIOD.  This has the\r
+       effect of increasing the rate at which the onboard LED toggles, and in so\r
+       doing gives visual feedback of the system status. */\r
+       for( ;; )\r
+       {\r
+               /* Delay until it is time to execute again. */\r
+               vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );\r
+\r
+               /* Check all the demo tasks (other than the flash tasks) to ensure\r
+               that they are all still running, and that none have detected an error. */\r
+               if( xAreIntQueueTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreMathsTaskStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if ( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if ( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if ( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xIsCreateTaskStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreTimerDemoTasksStillRunning( ( TickType_t ) mainNO_ERROR_CHECK_TASK_PERIOD ) != pdPASS )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xIsQueueOverwriteTaskStillRunning() != pdPASS )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               if( xAreEventGroupTasksStillRunning() != pdPASS )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+\r
+               /* Check that the register test 1 task is still running. */\r
+               if( ulLastRegTest1Value == ulRegTest1LoopCounter )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+               ulLastRegTest1Value = ulRegTest1LoopCounter;\r
+\r
+               /* Check that the register test 2 task is still running. */\r
+               if( ulLastRegTest2Value == ulRegTest2LoopCounter )\r
+               {\r
+                       ulErrorFound = pdTRUE;\r
+               }\r
+               ulLastRegTest2Value = ulRegTest2LoopCounter;\r
+\r
+               /* Toggle the check LED to give an indication of the system status.  If\r
+               the LED toggles every mainNO_ERROR_CHECK_TASK_PERIOD milliseconds then\r
+               everything is ok.  A faster toggle indicates an error. */\r
+               vParTestToggleLED( mainCHECK_LED );\r
+\r
+               if( ulErrorFound != pdFALSE )\r
+               {\r
+                       /* An error has been detected in one of the tasks - flash the LED\r
+                       at a higher frequency to give visible feedback that something has\r
+                       gone wrong (it might just be that the loop back connector required\r
+                       by the comtest tasks has not been fitted). */\r
+                       xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTaskEntry1( void *pvParameters )\r
+{\r
+       /* Although the regtest task is written in assembler, its entry point is\r
+       written in C for convenience of checking the task parameter is being passed\r
+       in correctly. */\r
+       if( pvParameters == mainREG_TEST_TASK_1_PARAMETER )\r
+       {\r
+               /* Start the part of the test that is written in assembler. */\r
+               vRegTest1Implementation();\r
+       }\r
+\r
+       /* The following line will only execute if the task parameter is found to\r
+       be incorrect.  The check timer will detect that the regtest loop counter is\r
+       not being incremented and flag an error. */\r
+       vTaskDelete( NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTaskEntry2( void *pvParameters )\r
+{\r
+       /* Although the regtest task is written in assembler, its entry point is\r
+       written in C for convenience of checking the task parameter is being passed\r
+       in correctly. */\r
+       if( pvParameters == mainREG_TEST_TASK_2_PARAMETER )\r
+       {\r
+               /* Start the part of the test that is written in assembler. */\r
+               vRegTest2Implementation();\r
+       }\r
+\r
+       /* The following line will only execute if the task parameter is found to\r
+       be incorrect.  The check timer will detect that the regtest loop counter is\r
+       not being incremented and flag an error. */\r
+       vTaskDelete( NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvPseudoRandomiser( void *pvParameters )\r
+{\r
+const uint32_t ulMultiplier = 0x015a4e35UL, ulIncrement = 1UL, ulMinDelay = ( 35 / portTICK_PERIOD_MS );\r
+volatile uint32_t ulNextRand = ( uint32_t ) &pvParameters, ulValue;\r
+\r
+       /* This task does nothing other than ensure there is a little bit of\r
+       disruption in the scheduling pattern of the other tasks.  Normally this is\r
+       done by generating interrupts at pseudo random times. */\r
+       for( ;; )\r
+       {\r
+               ulNextRand = ( ulMultiplier * ulNextRand ) + ulIncrement;\r
+               ulValue = ( ulNextRand >> 16UL ) & 0xffUL;\r
+\r
+               if( ulValue < ulMinDelay )\r
+               {\r
+                       ulValue = ulMinDelay;\r
+               }\r
+\r
+               vTaskDelay( ulValue );\r
+\r
+               while( ulValue > 0 )\r
+               {\r
+                       __asm volatile( "NOP" );\r
+                       __asm volatile( "NOP" );\r
+                       __asm volatile( "NOP" );\r
+\r
+                       ulValue--;\r
+               }\r
+       }\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
index 397951927bd6aaf8d0e45f53a3485f1c5f427770..0599b961d6ef5dbce4c8cdbff20647e8580b5529 100644 (file)
@@ -66,6 +66,9 @@
 #ifndef FREERTOS_CONFIG_H\r
 #define FREERTOS_CONFIG_H\r
 \r
+/* Hardware specifics. */\r
+#include "r_cg_iodefine.h"\r
+\r
 /* Prevent Renesas headers redefining some stdint.h types. */\r
 #define __TYPEDEF__    1\r
 \r
index 664ca3640fbd5d95cebd8b88de3e4b118d8520d9..bd0b3b49f2a737e9ba6c078f38975abe10a47eb8 100644 (file)
@@ -148,14 +148,14 @@ void vInitialiseTimerForIntQueueTest( void )
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-#pragma interrupt ( Excep_PERIB_INTB128( vect = 128 ) )\r
+#pragma interrupt ( Excep_PERIB_INTB128( vect = 128, enable ) )\r
 void Excep_PERIB_INTB128( void )\r
 {\r
        portYIELD_FROM_ISR( xFirstTimerHandler() );\r
 }\r
 /*-----------------------------------------------------------*/\r
 \r
-#pragma interrupt ( Excep_PERIB_INTB129( vect = 129 ) )\r
+#pragma interrupt ( Excep_PERIB_INTB129( vect = 129, enable ) )\r
 void Excep_PERIB_INTB129( void )\r
 {\r
        portYIELD_FROM_ISR( xSecondTimerHandler() );\r
index 1617e8b7114b80f80d016cafdabbb94fc29e6e92..bceae9ca77d724f682a075f69c3c7a968739334f 100644 (file)
@@ -138,7 +138,7 @@ void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );
 void vApplicationTickHook( void );\r
 \r
 /*-----------------------------------------------------------*/\r
-\r
+uint32_t ul1, ul2;\r
 int main( void )\r
 {\r
        /* Configure the hardware ready to run the demo. */\r