Commit 3 RX100 low power demos.
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.HardwareDebuglinker b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.HardwareDebuglinker
new file mode 100644
index 0000000..a232c8b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.HardwareDebuglinker
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="ASCII"?>

+<com.renesas.linkersection.model:SectionContainer xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com.renesas.linkersection.model="http:///LinkerSection.ecore" targets="GNU_RX">

+  <definedRegionsList name="RAM">

+    <startAddress xsi:type="com.renesas.linkersection.model:FixedAddress"/>

+    <endAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="20479"/>

+  </definedRegionsList>

+  <definedRegionsList name="ROM">

+    <startAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294836224"/>

+    <endAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967295"/>

+  </definedRegionsList>

+  <sections name=".fvectors" isKeep="true">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967248"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".fvectors"/>

+  </sections>

+  <sections name=".option_bytes" isKeep="true">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967176"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".option_bytes"/>

+  </sections>

+  <sections name=".endian_bytes" isKeep="true">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967168"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".endian_bytes"/>

+  </sections>

+  <sections name=".text">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294836224"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".text"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".text.*"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="P"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="etext"/>

+  </sections>

+  <sections name=".rvectors">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.3"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_rvectors_start"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".rvectors"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_rvectors_end"/>

+  </sections>

+  <sections name=".init">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.4"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".init"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__preinit_array_start"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".preinit_array"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__preinit_array_end"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__init_array_start = (. + 3) &amp; ~ 3"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".init_array"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="SORT(.init_array.*)"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__init_array_end"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__fini_array_start"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".fini_array"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="SORT(.fini_array.*)"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__fini_array_end"/>

+  </sections>

+  <sections name=".fini">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.5"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".fini"/>

+  </sections>

+  <sections name=".got">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.6"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".got"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".got.plt"/>

+  </sections>

+  <sections name=".rodata">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.7"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".rodata"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".rodata.*"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="C_1"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="C_2"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="C"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_erodata"/>

+  </sections>

+  <sections name=".eh_frame_hdr">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.8"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".eh_frame_hdr"/>

+  </sections>

+  <sections name=".eh_frame">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.9"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".eh_frame"/>

+  </sections>

+  <sections name=".jcr">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.10"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".jcr"/>

+  </sections>

+  <sections name=".tors">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.11"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__CTOR_LIST__"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="___ctors"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".ctors"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="___ctors_end"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__CTOR_END__"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__DTOR_LIST__"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="___dtors"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".dtors"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="___dtors_end"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="__DTOR_END__"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_mdata"/>

+  </sections>

+  <sections name=".data">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="512"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_data"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".data"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".data.*"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="D"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="D_1"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="D_2"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_edata"/>

+    <reservedMemAddress xsi:type="com.renesas.linkersection.model:ReferencedLabelAddress" label="//@sections.12/@contents.10"/>

+  </sections>

+  <sections name=".gcc_exc">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.13"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".gcc_exc"/>

+  </sections>

+  <sections name=".bss">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:ReferencedSectionAddress" referencedSection="//@sections.14"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_bss"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".bss"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name=".bss.**"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="COMMON"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="B"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="B_1"/>

+    <contents xsi:type="com.renesas.linkersection.model:WildCardExpression" specificSection="true" name="B_2"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_ebss"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_end"/>

+  </sections>

+  <sections name=".ustack">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="511"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_ustack"/>

+  </sections>

+  <sections name=".istack">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="507"/>

+    <contents xsi:type="com.renesas.linkersection.model:Label" rhs="= .;" lhs="_istack"/>

+  </sections>

+</com.renesas.linkersection.model:SectionContainer>

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.cproject b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.cproject
new file mode 100644
index 0000000..31136a9
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.cproject
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<?fileVersion 4.0.0?>

+

+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">

+	<storageModule moduleId="org.eclipse.cdt.core.settings">

+		<cconfiguration id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.1038200195">

+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.1038200195" moduleId="org.eclipse.cdt.core.settings" name="HardwareDebug">

+				<externalSettings/>

+				<extensions>

+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>

+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>

+					<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+				</extensions>

+			</storageModule>

+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">

+				<configuration artifactName="RTOSDemo_GCC" 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.1038200195" name="HardwareDebug" parent="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id">

+					<folderInfo id="%com.renesas.cdt.rx.hardwaredebug.win32.configuration.Id.1038200195." name="/" resourcePath="">

+						<toolChain id="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id.1200713553" name="KPIT GNURX-ELF Toolchain" superClass="%com.renesas.cdt.rx.hardwaredebug.win32.toolChain.Id">

+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.rx.hardwaredebug.win32.targetPlatform.Id.2026223031" osList="win32" superClass="com.renesas.cdt.rx.hardwaredebug.win32.targetPlatform.Id"/>

+							<builder buildPath="${workspace_loc:/RTOSDemo_GCC/HardwareDebug}" id="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id.53784355" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make Builder" superClass="com.renesas.cdt.rx.hardwaredebug.win32.builder.Id"/>

+							<tool command="rx-elf-libgen" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id.454501696" name="Library Generator" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.libgen.Id">

+								<option id="com.renesas.cdt.core.LibraryGenerator.option.stdlib.1751934062" name="stdlib.h : Performs C program statndard processing such as storage area management" superClass="com.renesas.cdt.core.LibraryGenerator.option.stdlib" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.core.LibraryGenerator.option.string.223218455" name="string.h : Performs string comparison, copying " superClass="com.renesas.cdt.core.LibraryGenerator.option.string" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.core.LibraryGenerator.option.selectLibrary.850493556" name="Select library" superClass="com.renesas.cdt.core.LibraryGenerator.option.selectLibrary" value="Optimized" valueType="enumerated"/>

+								<option id="com.renesas.cdt.core.LibraryGenerator.option.libraryType.1978494303" name="Library type" superClass="com.renesas.cdt.core.LibraryGenerator.option.libraryType" value="Project-Built" valueType="enumerated"/>

+							</tool>

+							<tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id.1144539497" name="Compiler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.compiler.Id">

+								<option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.dataEndian.769042703" name="Data Endian" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.dataEndian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.cpuType.2018307272" name="CPU type" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.cpuType" value="RX100" valueType="enumerated"/>

+								<option id="com.renesas.cdt.core.Compiler.option.includeFileDir.316833280" name="Include file directories" superClass="com.renesas.cdt.core.Compiler.option.includeFileDir" valueType="includePath">

+									<listOptionValue builtIn="false" value="&quot;${TCINSTALL}\rx-elf\optlibinc&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${TCINSTALL}\rx-elf\include&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Common_Demo_Tasks/include}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/FreeRTOS_Source/include}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/FreeRTOS_Source/portable/GCC/RX100}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_switches}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_switches/src}&quot;"/>

+								</option>

+								<option id="com.renesas.cdt.core.Compiler.option.CPUSeries.2032738140" name="Cpu Series" superClass="com.renesas.cdt.core.Compiler.option.CPUSeries" value="RX111" valueType="string"/>

+								<option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.debugLevel.1225535928" name="Debug level" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.debugLevel" value="com.renesas.cdt.rx.HardwareDebug.Compiler.option.debugLevel.none" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.1088290642" name="Optimization level" superClass="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel" value="com.renesas.cdt.rx.HardwareDebug.Compiler.option.optimizationLevel.speedCodeSize" valueType="enumerated"/>

+								<inputType id="%Base.Compiler.C.InputType.Id.962451183" name="C Input" superClass="%Base.Compiler.C.InputType.Id"/>

+							</tool>

+							<tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id.1642705589" name="Assembler" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.assembler.Id">

+								<option id="com.renesas.cdt.rx.HardwareDebug.Assembler.option.dataEndian.67883143" name="Data Endian" superClass="com.renesas.cdt.rx.HardwareDebug.Assembler.option.dataEndian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.core.Assembler.option.includeFileDirectories.434361507" name="Include file directories" superClass="com.renesas.cdt.core.Assembler.option.includeFileDirectories" valueType="includePath">

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}\src&quot;"/>

+								</option>

+								<inputType id="%Base.Assembler.inputType.Id.2097860459" name="Assembler InputType" superClass="%Base.Assembler.inputType.Id"/>

+							</tool>

+							<tool command="rx-elf-ld" commandLinePattern="${COMMAND} ${OUTPUT_FLAG}${OUTPUT_PREFIX} ${OUTPUT}${INPUTS} ${FLAGS}" id="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id.1295703269" name="Linker" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.linker.Id">

+								<option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.dataEndian.1400369130" name="Data Endian" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.dataEndian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories.770090581" name="Archive search directories" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories" valueType="stringList">

+									<listOptionValue builtIn="false" value="&quot;${CONFIGDIR}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${TCINSTALL}\lib\gcc\rx-elf\\${GCC_VERSION}&quot;"/>

+								</option>

+								<option id="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles.1867799274" name="Archive (library) files" superClass="com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles" valueType="stringList">

+									<listOptionValue builtIn="false" value="${ProjName}"/>

+									<listOptionValue builtIn="false" value="gcc"/>

+								</option>

+								<option id="com.renesas.cdt.core.Linker.option.userDefinedOptions.1094627795" name="User defined options" superClass="com.renesas.cdt.core.Linker.option.userDefinedOptions" valueType="stringList">

+									<listOptionValue builtIn="false" value="-e_PowerON_Reset"/>

+								</option>

+							</tool>

+							<tool id="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id.1559563032" name="Objcopy" superClass="com.renesas.cdt.rx.hardwaredebug.win32.tool.objcopy.Id"/>

+						</toolChain>

+					</folderInfo>

+					<sourceEntries>

+						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name=""/>

+					</sourceEntries>

+				</configuration>

+			</storageModule>

+			<storageModule moduleId="scannerConfiguration">

+				<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>

+				<profile id="com.iar.cdt.v850.scanner.IAR_V850_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.v850.toolchain.scannerInfoProvider1">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="com.iar.cdt.rl78.scanner.IAR_RL78_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.rl78.toolchain.scannerInfoProviderRL78">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="com.iar.cdt.rx.scanner.IAR_RX_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.rx.toolchain.scannerInfoProviderRX">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="makefileGenerator">

+						<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+			</storageModule>

+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>

+			<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>

+			<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>

+		</cconfiguration>

+	</storageModule>

+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">

+		<project id="RTOSDemo_GCC.com.renesas.cdt.rx.projectType.Id.1714941242" name="GNURX" projectType="com.renesas.cdt.rx.projectType.Id"/>

+	</storageModule>

+</cproject>

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.info b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.info
new file mode 100644
index 0000000..3946e66
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.info
@@ -0,0 +1,6 @@
+TOOL_CHAIN=KPIT GNURX-ELF Toolchain
+VERSION=v12.01
+TC_INSTALL=C:\devtools\Renesas\e2studio\GNURXV~1.01-\rx-elf\
+GCC_STRING=4.6-GNURX_v12.01
+VERISON_IDE=3.06.02.080
+E2STUDIO_VERSION=1.1.1.7
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.project b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.project
new file mode 100644
index 0000000..411200c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.project
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>RTOSDemo_GCC</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>com.renesas.cdt.core.genmakebuilder</name>

+			<arguments>

+				<dictionary>

+					<key>?name?</key>

+					<value></value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.append_environment</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>

+					<value>all</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildArguments</key>

+					<value></value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildCommand</key>

+					<value>make</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildLocation</key>

+					<value>${workspace_loc:/RTOSDemo_GCC/HardwareDebug}</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>

+					<value>clean</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.contents</key>

+					<value>org.eclipse.cdt.make.core.configurationIds</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>

+					<value>false</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableFullBuild</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>

+					<value>all</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.stopOnError</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>

+					<value>true</value>

+				</dictionary>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>

+			<triggers>full,incremental,</triggers>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.cdt.core.cnature</nature>

+		<nature>com.renesas.cdt.core.kpitcnature</nature>

+		<nature>com.renesas.cdt.core.kpitccnature</nature>

+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>

+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>

+	</natures>

+</projectDescription>

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.settings/Project_Generation_Prefrences.prefs b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.settings/Project_Generation_Prefrences.prefs
new file mode 100644
index 0000000..83f7426
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/.settings/Project_Generation_Prefrences.prefs
@@ -0,0 +1,22 @@
+#Mon Mar 11 11:21:23 GMT 2013

+Library\ Generator\ Command=rx-elf-libgen

+com.renesas.cdt.core.Assembler.option.includeFileDirectories="${workspace_loc\:/${ProjName}}\\src";

+com.renesas.cdt.core.Compiler.option.includeFileDir.316833280="${TCINSTALL}\\rx-elf\\optlibinc";

+com.renesas.cdt.core.LibraryGenerator.option.ctype=true

+com.renesas.cdt.core.LibraryGenerator.option.libraryType=Project-Built

+com.renesas.cdt.core.LibraryGenerator.option.math=false

+com.renesas.cdt.core.LibraryGenerator.option.selectLibrary=Optimized

+com.renesas.cdt.core.LibraryGenerator.option.stdio=false

+com.renesas.cdt.core.LibraryGenerator.option.stdlib=true

+com.renesas.cdt.core.LibraryGenerator.option.string=true

+com.renesas.cdt.core.Linker.option.userDefinedOptions=[Ljava.lang.String;@13ec853

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.cpuType=RX100

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.cpuType.2018307272=RX100

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.dataEndian=Little-endian data

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.disableFPUInstructions=false

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.genCodeForRX610=false

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.generateRXas100output=false

+com.renesas.cdt.rx.HardwareDebug.Compiler.option.make64bitDouble=false

+com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveLibraryFiles=${ProjName};gcc;

+com.renesas.cdt.rx.HardwareDebug.Linker.option.archiveSearchDirectories.770090581="${CONFIGDIR}";"${TCINSTALL}\\lib\\gcc\\rx-elf\\\\${GCC_VERSION}";

+eclipse.preferences.version=1

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/CreateProjectDirectoryStructure.bat
new file mode 100644
index 0000000..2fc4741
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/CreateProjectDirectoryStructure.bat
@@ -0,0 +1,52 @@
+REM This file should be executed from the command line prior to the first

+REM build.  It will be necessary to refresh the Eclipse project once the

+REM .bat file has been executed (normally just press F5 to refresh).

+

+REM Copies all the required files from their location within the standard

+REM FreeRTOS directory structure to under the Eclipse project directory.

+REM This permits the Eclipse project to be used in 'managed' mode and without

+REM having to setup any linked resources.

+

+REM Standard paths

+SET FREERTOS_SOURCE=..\..\Source

+SET COMMON_SOURCE=..\Common\minimal

+SET COMMON_INCLUDE=..\Common\include

+

+REM Have the files already been copied?

+IF EXIST RTOSDemo\FreeRTOS_Source Goto END

+

+    REM Create the required directory structure.

+    MD RTOSDemo\FreeRTOS_Source

+	MD RTOSDemo\FreeRTOS_Source\include

+	MD RTOSDemo\FreeRTOS_Source\portable

+	MD RTOSDemo\FreeRTOS_Source\portable\MemMang

+	MD RTOSDemo\FreeRTOS_Source\portable\GCC

+	MD RTOSDemo\FreeRTOS_Source\portable\GCC\RX100

+    MD RTOSDemo\Common_Demo_Tasks

+	MD RTOSDemo\Common_Demo_Tasks\include

+

+    REM Copy the core kernel files into the project directory

+    copy %FREERTOS_SOURCE%\tasks.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\queue.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\list.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\timers.c RTOSDemo\FreeRTOS_Source

+

+    REM Copy the common header files into the project directory

+    copy %FREERTOS_SOURCE%\include\*.* RTOSDemo\FreeRTOS_Source\include

+

+    REM Copy the portable layer files into the project directory

+    copy %FREERTOS_SOURCE%\portable\GCC\RX100\*.* RTOSDemo\FreeRTOS_Source\portable\GCC\RX100

+

+    REM Copy the memory allocation files into the project directory

+    copy %FREERTOS_SOURCE%\portable\MemMang\heap_4.c RTOSDemo\FreeRTOS_Source\portable\MemMang

+

+    REM Copy the files that define the common demo tasks.

+    copy %COMMON_SOURCE%\death.c           RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\blocktim.c        RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\GenQTest.c        RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\recmutex.c        RTOSDemo\Common_Demo_Tasks

+

+    REM Copy the common demo file headers.

+    copy %COMMON_INCLUDE%\*.h              RTOSDemo\Common_Demo_Tasks\include

+

+: END

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/FreeRTOSConfig.h
new file mode 100644
index 0000000..acb109f
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/FreeRTOSConfig.h
@@ -0,0 +1,186 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+

+/*

+ * The following #error directive is to remind users that a batch file must be

+ * executed prior to this project being built.  The batch file *cannot* be

+ * executed from within the IDE!  Once it has been executed, re-open or refresh

+ * the Eclipse project and remove the #error line below.

+ */

+//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building.  See comment immediately above.

+

+

+#ifndef FREERTOS_CONFIG_H

+#define FREERTOS_CONFIG_H

+

+/* Hardware specifics. */

+#include "platform.h"

+

+/*-----------------------------------------------------------

+ * Application specific definitions.

+ *

+ * These definitions should be adjusted for your particular hardware and

+ * application requirements.

+ *

+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.

+ *

+ * See http://www.freertos.org/a00110.html.

+ *----------------------------------------------------------*/

+

+/* DEMO SPECIFIC SETTING:

+ * Set configCREATE_LOW_POWER_DEMO to one to run the low power demo with tick

+ * suppression, or 0 to run the more comprehensive test and demo application.

+ * If configCREATE_LOW_POWER_DEMO is set to 1 then main() calls main_low_power().

+ * If configCREATE_LOW_POWER_DEMO is set to 0 then main() calls main_full().

+ */

+#define configCREATE_LOW_POWER_DEMO		1

+

+

+#define configUSE_PREEMPTION			1

+#define configUSE_TICKLESS_IDLE			configCREATE_LOW_POWER_DEMO

+#define configUSE_IDLE_HOOK				0

+#define configUSE_TICK_HOOK				0

+#define configCPU_CLOCK_HZ				( ICLK_HZ ) /* Set in mcu_info.h. */

+#define configPERIPHERAL_CLOCK_HZ		( PCLKB_HZ ) /* Set in muc_info.h. */

+#define configTICK_RATE_HZ				( ( portTickType ) 1000 )

+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 100 )

+#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 9 * 1024 ) )

+#define configMAX_TASK_NAME_LEN			( 12 )

+#define configUSE_TRACE_FACILITY		1

+#define configUSE_16_BIT_TICKS			0

+#define configIDLE_SHOULD_YIELD			1

+#define configUSE_CO_ROUTINES 			0

+#define configUSE_MUTEXES				1

+#define configGENERATE_RUN_TIME_STATS	0

+#define configCHECK_FOR_STACK_OVERFLOW	2

+#define configUSE_RECURSIVE_MUTEXES		1

+#define configQUEUE_REGISTRY_SIZE		0

+#define configUSE_MALLOC_FAILED_HOOK	0

+#define configUSE_APPLICATION_TASK_TAG	0

+

+#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 7 )

+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

+

+/* Software timer definitions - only included when the demo is configured to

+build the full demo (as opposed to the low power demo). */

+#if configCREATE_LOW_POWER_DEMO == 1

+	#define configUSE_TIMERS				0

+#else

+	#define configUSE_TIMERS				1

+	#define configTIMER_TASK_PRIORITY		( 3 )

+	#define configTIMER_QUEUE_LENGTH		5

+	#define configTIMER_TASK_STACK_DEPTH	( configMINIMAL_STACK_SIZE )

+#endif /* configCREATE_LOW_POWER_DEMO */

+

+/* The interrupt priority used by the kernel itself for the tick interrupt and

+the pended interrupt.  This would normally be the lowest priority. */

+#define configKERNEL_INTERRUPT_PRIORITY         1

+

+/* The maximum interrupt priority from which FreeRTOS API calls can be made.

+Interrupts that use a priority above this will not be effected by anything the

+kernel is doing but must not make any use of FreeRTOS functionality.

+interrupts that use a priority at or below configMAX_SYSCALL_INTERRUPT_PRIORITY

+can make use of FreeRTOS API function but *only* functions that end in

+"FromISR()". */

+#define configMAX_SYSCALL_INTERRUPT_PRIORITY    4

+

+/* Set the following definitions to 1 to include the API function, or zero

+to exclude the API function. */

+#define INCLUDE_vTaskPrioritySet			1

+#define INCLUDE_uxTaskPriorityGet			1

+#define INCLUDE_vTaskDelete					1

+#define INCLUDE_vTaskCleanUpResources		0

+#define INCLUDE_vTaskSuspend				1

+#define INCLUDE_vTaskDelayUntil				1

+#define INCLUDE_vTaskDelay					1

+#define INCLUDE_uxTaskGetStackHighWaterMark	1

+#define INCLUDE_xTaskGetSchedulerState		1

+

+extern void vAssertCalled( void );

+#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled();

+

+/* The configPRE_SLEEP_PROCESSING() and configPOST_SLEEP_PROCESSING() macros

+allow the application writer to add additional code before and after the MCU is

+placed into the low power state respectively.  The implementations provided in

+this demo can be extended to save even more power - for example the analog

+input used by the low power demo could be switched off in the pre-sleep macro

+and back on again in the post sleep macro. */

+void vPreSleepProcessing( unsigned long xExpectedIdleTime );

+void vPostSleepProcessing( unsigned long xExpectedIdleTime );

+#define configPRE_SLEEP_PROCESSING( xExpectedIdleTime ) vPreSleepProcessing( xExpectedIdleTime );

+#define configPOST_SLEEP_PROCESSING( xExpectedIdleTime ) vPostSleepProcessing( xExpectedIdleTime );

+

+#endif /* FREERTOS_CONFIG_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/ParTest.c
new file mode 100644
index 0000000..827da19
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/ParTest.c
@@ -0,0 +1,200 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/*-----------------------------------------------------------

+ * Simple IO routines to control the LEDs.

+ *-----------------------------------------------------------*/

+

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Demo includes. */

+#include "partest.h"

+

+#define partestNUM_LEDS ( 4 )

+

+long lParTestGetLEDState( unsigned long ulLED );

+

+/*-----------------------------------------------------------*/

+

+void vParTestInitialise( void )

+{

+	/* Port pin configuration is done by the low level set up prior to this

+	function being called. */

+}

+/*-----------------------------------------------------------*/

+

+void vParTestSetLED( unsigned long ulLED, signed long xValue )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		if( xValue != 0 )

+		{

+			/* Turn the LED on. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_ON;

+							break;

+					case 1:	LED1 = LED_ON;

+							break;

+					case 2:	LED2 = LED_ON;

+							break;

+					case 3:	LED3 = LED_ON;

+							break;

+				}

+			}

+			taskEXIT_CRITICAL();

+		}

+		else

+		{

+			/* Turn the LED off. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_OFF;

+							break;

+					case 1:	LED1 = LED_OFF;

+							break;

+					case 2:	LED2 = LED_OFF;

+							break;

+					case 3:	LED3 = LED_OFF;

+							break;

+				}

+

+			}

+			taskEXIT_CRITICAL();

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vParTestToggleLED( unsigned long ulLED )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		taskENTER_CRITICAL();

+		{

+			if( lParTestGetLEDState( ulLED ) != 0x00 )

+			{

+				vParTestSetLED( ulLED, 0 );

+			}

+			else

+			{

+				vParTestSetLED( ulLED, 1 );

+			}

+		}

+		taskEXIT_CRITICAL();

+	}

+}

+/*-----------------------------------------------------------*/

+

+long lParTestGetLEDState( unsigned long ulLED )

+{

+long lReturn = pdTRUE;

+

+	if( ulLED < partestNUM_LEDS )

+	{

+		switch( ulLED )

+		{

+			case 0	:	if( LED0 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 1	:	if( LED1 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 2	:	if( LED2 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 3	:	if( LED3 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+		}

+	}

+

+	return lReturn;

+}

+/*-----------------------------------------------------------*/

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c
new file mode 100644
index 0000000..4a87dbc
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c
@@ -0,0 +1,252 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.c

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+
+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Standard string manipulation & formatting functions */
+#include <stdio.h>
+#include <string.h>
+/* Defines standard variable types used in this function */
+#include <stdint.h>

+/* Bring in board includes. */

+#include "platform.h"
+/* Following header file provides function prototypes for LCD controlling functions & macro defines */
+#include "lcd.h"
+
+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs);

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value);

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value);

+
+/***********************************************************************************************************************
+* Function name : lcd_initialize
+* Description   : Initializes the LCD display.
+* Arguments     : none
+* Return Value  : none
+***********************************************************************************************************************/

+void lcd_initialize(void)
+{

+    /* Set LCD data pins as outputs. */

+    PORT4.PDR.BYTE |= 0x0F;

+

+    /* Set LCD control pins as outputs. */

+    RS_PIN_DDR = 1;

+    E_PIN_DDR = 1;

+

+	/* Power Up Delay for the LCD Module */

+    lcd_delay(50000000);

+

+	/* Display initialises in 8 bit mode - so send one write (seen as 8 bit) to set to 4 bit mode. */

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+	lcd_delay(5000000);

+

+	/* Function Set */

+	lcd_nibble_write(CTRL_WR, 0x02);

+    lcd_delay(39000);

+	lcd_nibble_write(CTRL_WR, 0x02);

+	lcd_nibble_write(CTRL_WR, (LCD_DISPLAY_ON | LCD_TWO_LINE ));

+    lcd_delay(39000);

+

+	/* Display ON/OFF control */

+	lcd_write(CTRL_WR, LCD_CURSOR_OFF);

+    lcd_delay(39000);

+

+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);

+

+	/* Entry Mode Set */

+	lcd_write(CTRL_WR, 0x06);

+    lcd_delay(39000);

+

+    /* Home the cursor */

+	lcd_write(CTRL_WR, LCD_HOME_L1);

+    lcd_delay(5000000);

+}
+
+/***********************************************************************************************************************
+* Function name : lcd_clear
+* Description   : Clears the LCD
+* Arguments     : none
+* Return Value  : none
+***********************************************************************************************************************/
+void lcd_clear(void)
+{
+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);

+}
+
+/***********************************************************************************************************************
+* Function name : lcd_display
+* Description   : This function controls LCD writes to line 1 or 2 of the LCD.

+*                 You need to use the defines LCD_LINE1 and LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello")
+* Arguments     : position -

+*                     Line number of display
+*                 string -

+*                     Pointer to null terminated string
+* Return Value  : none
+***********************************************************************************************************************/
+void lcd_display(uint8_t position, uint8_t const * string)
+{
+	/* Declare next position variable */

+	static uint8_t next_pos = 0xFF;

+

+	/* Set line position if needed. We don't want to if we don't need to because LCD control operations take longer

+       than LCD data operations. */

+	if (next_pos != position)

+	{

+		if(position < LCD_LINE2)

+		{

+			/* Display on Line 1 */

+		  	lcd_write(CTRL_WR, ((uint8_t)(LCD_HOME_L1 + position)));

+		}

+		else

+		{

+			/* Display on Line 2 */

+		  	lcd_write(CTRL_WR, ((uint8_t)((LCD_HOME_L2 + position) - LCD_LINE2)));

+		}

+

+        lcd_delay(39000);

+

+		/* set position index to known value */

+		next_pos = position;

+	}

+

+	do

+	{

+        /* Write character to LCD. */

+		lcd_write(DATA_WR,*string++);

+

+        lcd_delay(43000);

+

+		/* Increment position index */

+		next_pos++;

+	}

+	while(*string);

+}

+
+/***********************************************************************************************************************

+* Function name : lcd_delay

+* Description   : Implements LCD required delays.

+* Arguments     : nsecs -

+*                     Number of nanoseconds to delay. RX111 has max clock of 32MHz which gives a cycle time of 31.3ns.

+*                     This means that nothing under 313ns should be input. 313ns would be 10 cycles which is still

+*                     being optimistic for getting in and out of this function.

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs)

+{

+    while (0 < nsecs)

+    {

+        /* Subtract off 10 cycles per iteration. This number was obtained when using the Renesas toolchain at

+           optimization level 2. The number to nanoseconds to subtract off below is calculated off of the ICLK speed. */

+        nsecs -= (int32_t)((313.0)*(32000000.0/(float)ICLK_HZ));

+    }

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_nibble_write

+* Description   : Writes data to display. Sends command to display.

+* Arguments     : value -

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Set Register Select pin high for Data */

+	if (data_or_ctrl == DATA_WR)

+	{

+        /* Data write. */

+        RS_PIN = 1;

+	}

+	else

+	{

+        /* Control write. */

+        RS_PIN = 0;

+	}

+

+	/* tsu1 delay */

+    lcd_delay(60);

+

+  	/* EN enable chip (HIGH) */

+    E_PIN = 1;

+

+	/* Output the data */

+    PORT4.PODR.BYTE = (value & 0x0F);

+

+	/* tw delay */

+    lcd_delay(450);

+

+	/* Latch data by dropping E */

+    E_PIN = 0;

+

+	/* th2 delay */

+    lcd_delay(10);

+

+	/* tc delay */

+    lcd_delay(480);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_write

+* Description   : This function controls LCD writes to line 1 or 2 of the LCD. You need to use the defines LCD_LINE1 and

+*                 LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello")

+* Arguments     : value -

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Write upper nibble first */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)((value & 0xF0) >> 4));

+

+	/* Write lower nibble second */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)(value & 0x0F));

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h
new file mode 100644
index 0000000..294dd2e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h
@@ -0,0 +1,101 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.h

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/* Multiple inclusion prevention macro */
+#ifndef LCD_H
+#define LCD_H
+
+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/
+/* Defines standard integer variable types used in this file */
+#include <stdint.h>
+
+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* RS register select pin */

+#define RS_PIN      PORTC.PODR.BIT.B5

+#define RS_PIN_DDR  PORTC.PDR.BIT.B5

+/* Display enable pin */

+#define E_PIN       PORTB.PODR.BIT.B1

+#define E_PIN_DDR   PORTB.PDR.BIT.B1

+/* Data write/read definition */

+#define DATA_WR 1

+/* Control write/read definition */

+#define CTRL_WR 0

+/* Maximum characters per line of LCD display. */

+#define NUMB_CHARS_PER_LINE	8

+/* Number of lines on the LCD display */

+#define MAXIMUM_LINES		2

+/* Character position of LCD line 1 */

+#define LCD_LINE1 0

+/* Character position of LCD line 2 */

+#define LCD_LINE2 16

+/* Clear LCD display and home cursor */

+#define LCD_CLEAR        0x01

+/* Move cursor to line 1 */

+#define LCD_HOME_L1      0x80

+/* Move cursor to line 2 */

+#define LCD_HOME_L2      0xC0

+/* Cursor auto decrement after R/W */

+#define CURSOR_MODE_DEC  0x04

+/* Cursor auto increment after R/W */

+#define CURSOR_MODE_INC  0x06

+/* Setup, 4 bits,2 lines, 5X7 */

+#define FUNCTION_SET     0x28

+/* Display ON with Cursor */

+#define LCD_CURSOR_ON    0x0E

+/* Display ON with Cursor off */

+#define LCD_CURSOR_OFF   0x0C

+/* Display on with blinking cursor */

+#define LCD_CURSOR_BLINK 0x0D

+/* Move Cursor Left One Position */

+#define LCD_CURSOR_LEFT  0x10

+/* Move Cursor Right One Position */

+#define LCD_CURSOR_RIGHT 0x14

+/* Enable LCD display */

+#define LCD_DISPLAY_ON   0x04

+/* Enable both LCD lines */

+#define LCD_TWO_LINE     0x08

+
+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+/* LCD initialisation function declaration */
+void lcd_initialize (void);

+
+/* Update display function declaration */
+void lcd_display(uint8_t position, uint8_t const * string);

+
+/* Clear LCD function delcaration */
+void lcd_clear (void);
+
+/* End of multiple inclusion prevention macro */
+#endif
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
new file mode 100644
index 0000000..4566889
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
@@ -0,0 +1,50 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h

+* H/W Platform : RSKRX111

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_RSKRX111

+#define PLATFORM_BOARD_RSKRX111

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+#include    "r_bsp_config.h"

+#include    ".\mcu\rx111\iodefine.h"

+#include    ".\mcu\rx111\mcu_info.h"

+#include    ".\board\rskrx111\rskrx111.h"

+#include    ".\board\rskrx111\lcd.h"

+

+#endif /* PLATFORM_BOARD_RSKRX111 */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
new file mode 100644
index 0000000..da6dc9d
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description           

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such 

+   as package and memory size. 

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name  

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product. 

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity. 

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name. 

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name. 

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/  

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type. 

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a 

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x400)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used. 

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator  

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/ 

+#define CLOCK_SOURCE            (4)

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV). 

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)

+/* PLL Frequency Multiplication Factor Select (STC). 

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)

+/* Peripheral Module Clock B Divider (PCKB). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)

+/* Peripheral Module Clock D Divider (PCKD). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and 

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a 

+   function to be called when the event occurs. For example, if the user wanted the function 

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+   

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/   

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings. 

+   OFS0 - Option Function Select Register 0 

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (1)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
new file mode 100644
index 0000000..af3a400
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
@@ -0,0 +1,63 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : rskrx111.h

+* H/W Platform : RSKRX111

+* Description  : Board specific definitions for the RSKRX111.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef RSKRX111_H
+#define RSKRX111_H
+
+/* Local defines */
+#define LED_ON              (0)
+#define LED_OFF             (1)
+#define SET_BIT_HIGH        (1)
+#define SET_BIT_LOW         (0)
+#define SET_BYTE_HIGH       (0xFF)
+#define SET_BYTE_LOW        (0x00)

+

+/* Switches */

+#define SW_ACTIVE           0

+#define	SW1 			    PORT3.PIDR.BIT.B0

+#define SW2 			    PORT3.PIDR.BIT.B1

+#define SW3 			    PORTE.PIDR.BIT.B4

+#define SW1_PDR			    PORT3.PDR.BIT.B0

+#define SW2_PDR			    PORT3.PDR.BIT.B1

+#define SW3_PDR			    PORTE.PDR.BIT.B4

+#define SW1_PMR			    PORT3.PMR.BIT.B0

+#define SW2_PMR			    PORT3.PMR.BIT.B1

+#define SW3_PMR			    PORTE.PMR.BIT.B4

+

+/* LEDs */

+#define	LED0			    PORTB.PODR.BIT.B7

+#define	LED1			    PORTA.PODR.BIT.B0

+#define	LED2			    PORT5.PODR.BIT.B4

+#define	LED3			    PORT1.PODR.BIT.B7

+#define	LED0_PDR		    PORTB.PDR.BIT.B7

+#define	LED1_PDR		    PORTA.PDR.BIT.B0

+#define	LED2_PDR		    PORT5.PDR.BIT.B4

+#define	LED3_PDR		    PORT1.PDR.BIT.B7

+

+
+#endif /* RSKRX111_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/hardware_setup.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/hardware_setup.c
new file mode 100644
index 0000000..61ec9ab
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/hardware_setup.c
@@ -0,0 +1,367 @@
+/***********************************************************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No
+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
+* applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM
+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES
+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS
+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of
+* this software. By using this software, you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.
+***********************************************************************************************************************/
+/***********************************************************************************************************************
+* File Name	   : hwsetup.c
+* Device(s)    : RX
+* H/W Platform : RSKRX210
+* Description  : Defines the initialization routines used each time the MCU is restarted.
+***********************************************************************************************************************/
+/***********************************************************************************************************************
+* History : DD.MM.YYYY Version  Description
+*         : 08.11.2012 0.01     Beta Release
+***********************************************************************************************************************/
+
+/***********************************************************************************************************************
+Includes   <System Includes> , "Project Includes"
+***********************************************************************************************************************/
+/* I/O Register and board definitions */
+#include "platform.h"
+#include "r_switches_config.h"
+
+/***********************************************************************************************************************
+Private global variables and functions
+***********************************************************************************************************************/
+/* MCU I/O port configuration function delcaration */
+static void output_ports_configure(void);
+
+/* Interrupt configuration function delcaration */
+static void interrupts_configure(void);
+
+/* MCU peripheral module configuration function declaration */
+static void peripheral_modules_enable(void);
+
+/* Configure MCU clocks. */
+static void clock_source_select (void);
+void operating_frequency_set(void);
+
+/***********************************************************************************************************************
+* Function name: hardware_setup
+* Description  : Contains setup functions called at device restart
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+void HardwareSetup(void)
+{
+	operating_frequency_set();
+    output_ports_configure();
+    interrupts_configure();
+    peripheral_modules_enable();
+}
+
+/***********************************************************************************************************************
+* Function name: output_ports_configure
+* Description  : Configures the port and pin direction settings, and sets the pin outputs to a safe level.
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+void output_ports_configure(void)
+{
+    /* Enable LEDs. */
+    /* Start with LEDs off. */
+    LED0 = LED_OFF;
+    LED1 = LED_OFF;
+    LED2 = LED_OFF;
+    LED3 = LED_OFF;
+
+    /* Set LED pins as outputs. */
+    LED0_PDR = 1;
+    LED1_PDR = 1;
+    LED2_PDR = 1;
+    LED3_PDR = 1;
+
+    /* Enable switches. */
+    /* Set pins as inputs. */
+    SW1_PDR = 0;
+    SW2_PDR = 0;
+    SW3_PDR = 0;
+
+    /* Set port mode registers for switches. */
+    SW1_PMR = 0;
+    SW2_PMR = 0;
+    SW3_PMR = 0;
+
+    /* Unlock MPC registers to enable writing to them. */
+    MPC.PWPR.BIT.B0WI = 0 ;     /* Unlock protection register */
+    MPC.PWPR.BIT.PFSWE = 1 ;    /* Unlock MPC registers */
+
+    /* TXD1 is output. */
+    PORT1.PDR.BIT.B6 = 1;
+    PORT1.PMR.BIT.B6 = 1;
+    MPC.P16PFS.BYTE  = 0x0A;
+    /* RXD1 is input. */
+    PORT1.PDR.BIT.B5 = 0;
+    PORT1.PMR.BIT.B5 = 1;
+    MPC.P15PFS.BYTE  = 0x0A;
+
+    /* Configure the pin connected to the ADC Pot as an input */
+    PORT4.PDR.BIT.B4 = 0;
+
+    /* Protect off. */
+    SYSTEM.PRCR.WORD = 0xA50B;
+
+    /* Turn off module stop for the A2D converter. */
+    SYSTEM.MSTPCRA.BIT.MSTPA17 = 0;
+
+    /* Protect on. */
+    SYSTEM.PRCR.WORD = 0xA500;
+
+    /* Initialise the first button to generate an interrupt. */
+    R_SWITCHES_Init();
+}
+
+/***********************************************************************************************************************
+* Function name: interrupts_configure
+* Description  : Configures interrupts used
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+void interrupts_configure(void)
+{
+    /* Add code here to setup additional interrupts */
+}
+
+/***********************************************************************************************************************
+* Function name: peripheral_modules_enable
+* Description  : Enables and configures peripheral devices on the MCU
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+void peripheral_modules_enable(void)
+{
+	/* Enable triggers to start an ADC conversion. */
+	S12AD.ADCSR.BIT.TRGE = 1;
+
+	/* Only channel 4 is going to be used. */
+	S12AD.ADANSA.BIT.ANSA4 = 1;
+}
+
+/***********************************************************************************************************************
+* Function name: operating_frequency_set
+* Description  : Configures the clock settings for each of the device clocks
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+void operating_frequency_set(void)
+{
+    /* Used for constructing value to write to SCKCR and CKOCR registers. */
+    uint32_t temp_clock = 0;
+
+    /*
+    Clock Description              Frequency
+    ----------------------------------------
+    Input Clock Frequency............  16 MHz
+    PLL frequency (x3)...............  48 MHz
+    Internal Clock Frequency.........  24 MHz
+    Peripheral Clock Frequency.......  24 MHz
+    Clock Out Frequency..............  1  MHz */
+
+    volatile unsigned int i;
+
+    /* Protect off. */
+    SYSTEM.PRCR.WORD = 0xA50B;
+
+    /* Select the clock based upon user's choice. */
+    clock_source_select();
+
+
+    /* Figure out setting for FCK bits. */
+#if   FCK_DIV == 1
+    /* Do nothing since FCK bits should be 0. */
+#elif FCK_DIV == 2
+    temp_clock |= 0x10000000;
+#elif FCK_DIV == 4
+    temp_clock |= 0x20000000;
+#elif FCK_DIV == 8
+    temp_clock |= 0x30000000;
+#elif FCK_DIV == 16
+    temp_clock |= 0x40000000;
+#elif FCK_DIV == 32
+    temp_clock |= 0x50000000;
+#elif FCK_DIV == 64
+    temp_clock |= 0x60000000;
+#else
+    #error "Error! Invalid setting for FCK_DIV in r_bsp_config.h"
+#endif
+
+    /* Figure out setting for ICK bits. */
+#if   ICK_DIV == 1
+    /* Do nothing since ICK bits should be 0. */
+#elif ICK_DIV == 2
+    temp_clock |= 0x01000000;
+#elif ICK_DIV == 4
+    temp_clock |= 0x02000000;
+#elif ICK_DIV == 8
+    temp_clock |= 0x03000000;
+#elif ICK_DIV == 16
+    temp_clock |= 0x04000000;
+#elif ICK_DIV == 32
+    temp_clock |= 0x05000000;
+#elif ICK_DIV == 64
+    temp_clock |= 0x06000000;
+#else
+    #error "Error! Invalid setting for ICK_DIV in r_bsp_config.h"
+#endif
+
+    /* Figure out setting for PCKB bits. */
+#if   PCKB_DIV == 1
+    /* Do nothing since PCKB bits should be 0. */
+#elif PCKB_DIV == 2
+    temp_clock |= 0x00000100;
+#elif PCKB_DIV == 4
+    temp_clock |= 0x00000200;
+#elif PCKB_DIV == 8
+    temp_clock |= 0x00000300;
+#elif PCKB_DIV == 16
+    temp_clock |= 0x00000400;
+#elif PCKB_DIV == 32
+    temp_clock |= 0x00000500;
+#elif PCKB_DIV == 64
+    temp_clock |= 0x00000600;
+#else
+    #error "Error! Invalid setting for PCKB_DIV in r_bsp_config.h"
+#endif
+
+    /* Figure out setting for PCKD bits. */
+#if   PCKD_DIV == 1
+    /* Do nothing since PCKD bits should be 0. */
+#elif PCKD_DIV == 2
+    temp_clock |= 0x00000001;
+#elif PCKD_DIV == 4
+    temp_clock |= 0x00000002;
+#elif PCKD_DIV == 8
+    temp_clock |= 0x00000003;
+#elif PCKD_DIV == 16
+    temp_clock |= 0x00000004;
+#elif PCKD_DIV == 32
+    temp_clock |= 0x00000005;
+#elif PCKD_DIV == 64
+    temp_clock |= 0x00000006;
+#else
+    #error "Error! Invalid setting for PCKD_DIV in r_bsp_config.h"
+#endif
+
+    /* Set SCKCR register. */
+    SYSTEM.SCKCR.LONG = temp_clock;
+
+    /* Choose clock source. Default for r_bsp_config.h is PLL. */
+    SYSTEM.SCKCR3.WORD = ((uint16_t)CLOCK_SOURCE) << 8;
+
+    /* Protect on. */
+    SYSTEM.PRCR.WORD = 0xA500;
+}
+
+/***********************************************************************************************************************
+* Function name: clock_source_select
+* Description  : Enables and disables clocks as chosen by the user. This function also implements the software delays
+*                needed for the clocks to stabilize.
+* Arguments    : none
+* Return value : none
+***********************************************************************************************************************/
+static void clock_source_select (void)
+{
+    /* Declared volatile for software delay purposes. */
+    volatile unsigned int i;
+
+    /* NOTE: AS OF VERSION 0.50 OF THE RX111 HARDWARE MANUAL, ALL OF THE CLOCK
+     * STABILIZATION TIMES ARE TBD. FOR NOW, WHERE EVER A WAIT COUNT REGISTER
+     * IS AVAILABLE, THE DELAY IS SET TO THE MAX NUMBER OF CYCLES. WHERE EVER
+     * DELAY LOOPS ARE PRESENT, THE VALUES FROM THE 63N ARE RE-USED. KEEP IN
+     * MIND THAT THE 63N RUNS ON A FASTER CRYSTAL.
+     */
+
+#if (CLOCK_SOURCE == 1)
+    /* HOCO is chosen. Start it operating. */
+    SYSTEM.HOCOCR.BYTE = 0x00;
+    /* The delay period needed is to make sure that the HOCO has stabilized.*/
+    for(i = 0; i< 28; i++)			// tHOCOWT2 is TBD
+    {
+        __asm volatile( "NOP" );
+    }
+#else
+    /* HOCO is not chosen. Stop the HOCO. */
+    SYSTEM.HOCOCR.BYTE = 0x01;
+#endif
+
+#if (CLOCK_SOURCE == 2)
+    /* Main clock oscillator is chosen. Start it operating. */
+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles
+    /* Set the main clock to operating. */
+    SYSTEM.MOSCCR.BYTE = 0x00;
+    /* The delay period needed is to make sure that the main clock has stabilized. */
+    for(i = 0; i< 140; i++)			// tMAINOSCWT is TBD
+    {
+        __asm volatile( "NOT" );
+    }
+#endif
+
+#if (CLOCK_SOURCE == 3)
+    /* Sub-clock oscillator is chosen. Start it operating. */
+    /* In section 9.8.4, there is a reference to a SOSCWTCR register, but there is no
+     * description for this register in the manual nor reference for it in iodefine.h. */
+
+    /* Set the sub-clock to operating. */
+    SYSTEM.SOSCCR.BYTE = 0x00;
+    /* The delay period needed is to make sure that the sub-clock has stabilized. */
+    for(i = 0; i< 30233; i++)		// tSUBOSCWT0 is TBD
+    {
+        __asm volatile( "NOP" );
+    }
+#else
+    /* Set the sub-clock to stopped. */
+    SYSTEM.SOSCCR.BYTE = 0x01;
+#endif
+
+#if (CLOCK_SOURCE == 4)
+    /* PLL is chosen. Start it operating. Must start main clock as well since PLL uses it. */
+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles
+    /* Set the main clock to operating. */
+    SYSTEM.MOSCCR.BYTE = 0x00;
+
+    /* Set PLL Input Divisor. */
+    SYSTEM.PLLCR.BIT.PLIDIV = PLL_DIV >> 1;
+
+    /* Set PLL Multiplier. */
+    SYSTEM.PLLCR.BIT.STC = (PLL_MUL * 2) - 1;
+
+    /* Set the PLL to operating. */
+    SYSTEM.PLLCR2.BYTE = 0x00;
+    /* The delay period needed is to make sure that the main clock and PLL have stabilized. */
+    for(i = 0; i< 140; i++)			// tPLLWT2 is TBD
+    {
+        __asm volatile( "NOP" );
+    }
+#endif
+
+    /* LOCO is saved for last since it is what is running by default out of reset. This means you do not want to turn
+       it off until another clock has been enabled and is ready to use. */
+#if (CLOCK_SOURCE == 0)
+    /* LOCO is chosen. This is the default out of reset. */
+    SYSTEM.LOCOCR.BYTE = 0x00;
+#else
+    /* LOCO is not chosen and another clock has already been setup. Turn off the LOCO. */
+    SYSTEM.LOCOCR.BYTE = 0x01;
+#endif
+
+    /* Make sure a valid clock was chosen. */
+#if (CLOCK_SOURCE > 4) || (CLOCK_SOURCE < 0)
+    #error "ERROR - Valid clock source must be chosen in r_bsp_config.h using CLOCK_SOURCE macro."
+#endif
+}
+
+
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h
new file mode 100644
index 0000000..bd8881c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h
@@ -0,0 +1,54 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h 

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 13.01.2012 1.00     First Release

+*         : 27.06.2012 1.10     Updated with new information to reflect udpated r_bsp structure.

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_USER

+#define PLATFORM_BOARD_USER

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+/* This is a user defined board. Start off by:

+   1)Copy and rename one of the 'board' folders that most closely matches your system (same MCU Series and Group).

+   2)Substitute in your MCU Group for the *MCU Group* option in the #include below for mcu_info.h.

+   3)Copy the other #includes from the r_bsp.h in the 'board' folder that you copied earlier.

+   4)Configure the BSP for your board by modifying the r_bsp_config_reference.h.

+   5)Copy r_bsp_config_reference.h to your project directory and rename it r_bsp_config.h.

+   You can also add your own include files here as well. */

+#include    "r_bsp_config.h"

+#include    ".\mcu\*MCU Group*\mcu_info.h"           

+

+#endif /* PLATFORM_BOARD_USER */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.c
new file mode 100644
index 0000000..702dcae
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.c
@@ -0,0 +1,283 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  interrupt_handlers.c                           */
+/*      DESCRIPTION  :  Interrupt Handler                              */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/

+

+

+

+

+#include "interrupt_handlers.h"

+

+// INT_Exception(Supervisor Instruction)

+void INT_Excep_SuperVisorInst(void){/* brk(); */}

+

+// Exception(Undefined Instruction)

+void INT_Excep_UndefinedInst(void){/* brk(); */}

+

+// Exception(Floating Point)

+void INT_Excep_FloatingPoint(void){/* brk(); */}

+

+// NMI

+void INT_NonMaskableInterrupt(void){/* brk(); */}

+

+// Dummy

+void Dummy(void)
+{
+	for( ;; );
+}
+

+// BRK

+void INT_Excep_BRK(void){/* wait(); */}

+//;0x0000  Reserved

+

+void  INT_Excep_BUSERR(void){ }

+

+// ICU SWINT

+void INT_Excep_ICU_SWINT(void){ }
+

+// CMT0 CMI0

+void INT_Excep_CMT0_CMI0(void){ }

+

+// CMT1 CMI1

+void INT_Excep_CMT1_CMI1(void){ }

+

+// CAC FERRF

+void INT_Excep_CAC_FERRF(void){ }

+

+// CAC MENDF

+void INT_Excep_CAC_MENDF(void){ }

+

+// CAC OVFF

+void INT_Excep_CAC_OVFF(void){ }

+

+// USB0 D0FIFO0

+void INT_Excep_USB0_D0FIFO0(void){ }

+

+// USB0 D1FIFO0

+void INT_Excep_USB0_D1FIFO0(void){ }

+

+// USB0 USBI0

+void INT_Excep_USB0_USBI0(void){ }

+

+// RSPI0 SPEI0

+void INT_Excep_RSPI0_SPEI0(void){ }

+

+// RSPI0 SPRI0

+void INT_Excep_RSPI0_SPRI0(void){ }

+

+// RSPI0 SPTI0

+void INT_Excep_RSPI0_SPTI0(void){ }

+

+// RSPI0 SPII0

+void INT_Excep_RSPI0_SPII0(void){ }

+

+// DOC DOPCF

+void INT_Excep_DOC_DOPCF(void){ }

+

+// RTC CUP

+void INT_Excep_RTC_CUP(void){ }

+

+// ICU IRQ0

+void INT_Excep_ICU_IRQ0(void){ }

+

+// ICU IRQ1

+void INT_Excep_ICU_IRQ1(void){ }

+

+// ICU IRQ2

+void INT_Excep_ICU_IRQ2(void){ }

+

+// ICU IRQ3

+void INT_Excep_ICU_IRQ3(void){ }

+

+// ICU IRQ4

+void INT_Excep_ICU_IRQ4(void){ }

+

+// ICU IRQ5

+void INT_Excep_ICU_IRQ5(void){ }

+

+// ICU IRQ6

+void INT_Excep_ICU_IRQ6(void){ }

+

+// ICU IRQ7

+void INT_Excep_ICU_IRQ7(void){ }

+

+// LVD LVD1

+void INT_Excep_LVD_LVD1(void){ }

+

+// LVD LVD2

+void INT_Excep_LVD_LVD2(void){ }

+

+// USB0 USBR0

+void INT_Excep_USB0_USBR0(void){ }

+

+// RTC ALM

+void INT_Excep_RTC_ALM(void){ }

+

+// RTC PRD

+void INT_Excep_RTC_PRD(void){ }

+

+// S12AD S12ADI0

+void INT_Excep_S12AD_S12ADI0(void){ }

+

+// S12AD GBADI

+void INT_Excep_S12AD_GBADI(void){ }

+

+// ELC ELSR18I

+void INT_Excep_ELC_ELSR18I(void){ }

+

+// MTU0 TGIA0

+void INT_Excep_MTU0_TGIA0(void){ }

+

+// MTU0 TGIB0

+void INT_Excep_MTU0_TGIB0(void){ }

+

+// MTU0 TGIC0

+void INT_Excep_MTU0_TGIC0(void){ }

+

+// MTU0 TGID0

+void INT_Excep_MTU0_TGID0(void){ }

+

+// MTU0 TCIV0

+void INT_Excep_MTU0_TCIV0(void){ }

+

+// MTU0 TGIE0

+void INT_Excep_MTU0_TGIE0(void){ }

+

+// MTU0 TGIF0

+void INT_Excep_MTU0_TGIF0(void){ }

+

+// MTU1 TGIA1

+void INT_Excep_MTU1_TGIA1(void){ }

+

+// MTU1 TGIB1

+void INT_Excep_MTU1_TGIB1(void){ }

+

+// MTU1 TCIV1

+void INT_Excep_MTU1_TCIV1(void){ }

+

+// MTU1 TCIU1

+void INT_Excep_MTU1_TCIU1(void){ }

+

+// MTU2 TGIA2

+void INT_Excep_MTU2_TGIA2(void){ }

+

+// MTU2 TGIB2

+void INT_Excep_MTU2_TGIB2(void){ }

+

+// MTU2 TCIV2

+void INT_Excep_MTU2_TCIV2(void){ }

+

+// MTU2 TCIU2

+void INT_Excep_MTU2_TCIU2(void){ }

+

+// MTU3 TGIA3

+void INT_Excep_MTU3_TGIA3(void){ }

+

+// MTU3 TGIB3

+void INT_Excep_MTU3_TGIB3(void){ }

+

+// MTU3 TGIC3

+void INT_Excep_MTU3_TGIC3(void){ }

+

+// MTU3 TGID3

+void INT_Excep_MTU3_TGID3(void){ }

+

+// MTU3 TCIV3

+void INT_Excep_MTU3_TCIV3(void){ }

+

+// MTU4 TGIA4

+void INT_Excep_MTU4_TGIA4(void){ }

+

+// MTU4 TGIB4

+void INT_Excep_MTU4_TGIB4(void){ }

+

+// MTU4 TGIC4

+void INT_Excep_MTU4_TGIC4(void){ }

+

+// MTU4 TGID4

+void INT_Excep_MTU4_TGID4(void){ }

+

+// MTU4 TCIV4

+void INT_Excep_MTU4_TCIV4(void){ }

+

+// MTU5 TGIU5

+void INT_Excep_MTU5_TGIU5(void){ }

+

+// MTU5 TGIV5

+void INT_Excep_MTU5_TGIV5(void){ }

+

+// MTU5 TGIW5

+void INT_Excep_MTU5_TGIW5(void){ }

+

+// POE OEI1

+void INT_Excep_POE_OEI1(void){ }

+

+// POE OEI2

+void INT_Excep_POE_OEI2(void){ }

+

+// SCI1 ERI1

+void INT_Excep_SCI1_ERI1(void){ }

+

+// SCI1 RXI1

+void INT_Excep_SCI1_RXI1(void){ }

+

+// SCI1 TXI1

+void INT_Excep_SCI1_TXI1(void){ }

+

+// SCI1 TEI1

+void INT_Excep_SCI1_TEI1(void){ }

+

+// SCI5 ERI5

+void INT_Excep_SCI5_ERI5(void){ }

+

+// SCI5 RXI5

+void INT_Excep_SCI5_RXI5(void){ }

+

+// SCI5 TXI5

+void INT_Excep_SCI5_TXI5(void){ }

+

+// SCI5 TEI5

+void INT_Excep_SCI5_TEI5(void){ }

+

+// SCI12 ERI12

+void INT_Excep_SCI12_ERI12(void){ }

+

+// SCI12 RXI12

+void INT_Excep_SCI12_RXI12(void){ }

+

+// SCI12 TXI12

+void INT_Excep_SCI12_TXI12(void){ }

+

+// SCI12 TEI12

+void INT_Excep_SCI12_TEI12(void){ }

+

+// SCI12 SCIX0

+void INT_Excep_SCI12_SCIX0(void){ }

+

+// SCI12 SCIX1

+void INT_Excep_SCI12_SCIX1(void){ }

+

+// SCI12 SCIX2

+void INT_Excep_SCI12_SCIX2(void){ }

+

+// SCI12 SCIX3

+void INT_Excep_SCI12_SCIX3(void){ }

+

+// RIIC0 EEI0

+void INT_Excep_RIIC0_EEI0(void){ }

+

+// RIIC0 RXI0

+void INT_Excep_RIIC0_RXI0(void){ }

+

+// RIIC0 TXI0

+void INT_Excep_RIIC0_TXI0(void){ }

+

+// RIIC0 TEI0

+void INT_Excep_RIIC0_TEI0(void){ }

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.h
new file mode 100644
index 0000000..5cff1bb
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/interrupt_handlers.h
@@ -0,0 +1,371 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  interrupt_handlers.h                           */
+/*      DESCRIPTION  :  Interrupt Handler Declarations                 */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/                                                                           

+                                                                           

+                                                                           

+                                                                           

+                                                                           

+                                                                           

+                                               

+#ifndef INTERRUPT_HANDLERS_H

+#define INTERRUPT_HANDLERS_H

+

+// Exception(Supervisor Instruction)

+// Exception(Supervisor Instruction)

+void INT_Excep_SuperVisorInst(void) __attribute__ ((interrupt));

+

+// Exception(Undefined Instruction)

+void INT_Excep_UndefinedInst(void) __attribute__ ((interrupt));

+

+// Exception(Floating Point)

+void INT_Excep_FloatingPoint(void) __attribute__ ((interrupt));

+

+// NMI

+void INT_NonMaskableInterrupt(void) __attribute__ ((interrupt));

+

+// Dummy

+void Dummy (void) __attribute__ ((interrupt));

+

+// BRK

+void INT_Excep_BRK(void) __attribute__ ((interrupt));

+//;0x0000  Reserved

+

+void INT_Excep_BUSERR(void) __attribute__ ((interrupt));

+//;0x0044  Reserved

+    

+void INT_Excep_ICU_SWINT(void) __attribute__ ((interrupt));

+

+// CMT0 CMI0

+

+void INT_Excep_CMT0_CMI0(void) __attribute__ ((interrupt));

+

+// CMT1 CMI1

+

+void INT_Excep_CMT1_CMI1(void) __attribute__ ((interrupt));

+

+// CAC FERRF

+

+void INT_Excep_CAC_FERRF(void) __attribute__ ((interrupt));

+

+// CAC MENDF

+

+

+void INT_Excep_CAC_MENDF(void) __attribute__ ((interrupt));

+

+// CAC OVFF

+

+void INT_Excep_CAC_OVFF(void) __attribute__ ((interrupt));

+

+// USB0 D0FIFO0

+

+void INT_Excep_USB0_D0FIFO0(void) __attribute__ ((interrupt));

+

+// USB0 D1FIFO0

+

+void INT_Excep_USB0_D1FIFO0(void) __attribute__ ((interrupt));

+

+// USB0 USBI0

+

+void INT_Excep_USB0_USBI0(void) __attribute__ ((interrupt));

+

+// RSPI0 SPEI0

+

+void INT_Excep_RSPI0_SPEI0(void) __attribute__ ((interrupt));

+

+// RSPI0 SPRI0

+

+void INT_Excep_RSPI0_SPRI0(void) __attribute__ ((interrupt));

+

+// RSPI0 SPTI0

+

+void INT_Excep_RSPI0_SPTI0(void) __attribute__ ((interrupt));

+

+// RSPI0 SPII0

+

+void INT_Excep_RSPI0_SPII0(void) __attribute__ ((interrupt));

+

+// DOC DOPCF

+

+void INT_Excep_DOC_DOPCF(void) __attribute__ ((interrupt));

+

+// RTC CUP

+

+void INT_Excep_RTC_CUP(void) __attribute__ ((interrupt));

+

+// ICU IRQ0

+

+void INT_Excep_ICU_IRQ0(void) __attribute__ ((interrupt));

+

+// ICU IRQ1

+

+void INT_Excep_ICU_IRQ1(void) __attribute__ ((interrupt));

+

+// ICU IRQ2

+

+void INT_Excep_ICU_IRQ2(void) __attribute__ ((interrupt));

+

+// ICU IRQ3

+

+void INT_Excep_ICU_IRQ3(void) __attribute__ ((interrupt));

+

+// ICU IRQ4

+

+void INT_Excep_ICU_IRQ4(void) __attribute__ ((interrupt));

+

+// ICU IRQ5

+

+void INT_Excep_ICU_IRQ5(void) __attribute__ ((interrupt));

+

+// ICU IRQ6

+

+void INT_Excep_ICU_IRQ6(void) __attribute__ ((interrupt));

+

+// ICU IRQ7

+

+void INT_Excep_ICU_IRQ7(void) __attribute__ ((interrupt));

+

+// LVD LVD1

+

+void INT_Excep_LVD_LVD1(void) __attribute__ ((interrupt));

+

+// LVD LVD2

+

+void INT_Excep_LVD_LVD2(void) __attribute__ ((interrupt));

+

+// USB0 USBR0

+

+void INT_Excep_USB0_USBR0(void) __attribute__ ((interrupt));

+

+// RTC ALM

+

+void INT_Excep_RTC_ALM(void) __attribute__ ((interrupt));

+

+// RTC PRD

+

+void INT_Excep_RTC_PRD(void) __attribute__ ((interrupt));

+

+// S12AD S12ADI0

+

+void INT_Excep_S12AD_S12ADI0(void) __attribute__ ((interrupt));

+

+// S12AD GBADI

+

+void INT_Excep_S12AD_GBADI(void) __attribute__ ((interrupt));

+

+// ELC ELSR18I

+

+void INT_Excep_ELC_ELSR18I(void) __attribute__ ((interrupt));

+

+// MTU0 TGIA0

+

+void INT_Excep_MTU0_TGIA0(void) __attribute__ ((interrupt));

+

+// MTU0 TGIB0

+

+void INT_Excep_MTU0_TGIB0(void) __attribute__ ((interrupt));

+

+// MTU0 TGIC0

+

+void INT_Excep_MTU0_TGIC0(void) __attribute__ ((interrupt));

+

+// MTU0 TGID0

+

+void INT_Excep_MTU0_TGID0(void) __attribute__ ((interrupt));

+

+// MTU0 TCIV0

+

+void INT_Excep_MTU0_TCIV0(void) __attribute__ ((interrupt));

+

+// MTU0 TGIE0

+

+void INT_Excep_MTU0_TGIE0(void) __attribute__ ((interrupt));

+

+// MTU0 TGIF0

+

+void INT_Excep_MTU0_TGIF0(void) __attribute__ ((interrupt));

+

+// MTU1 TGIA1

+

+void INT_Excep_MTU1_TGIA1(void) __attribute__ ((interrupt));

+

+// MTU1 TGIB1

+

+void INT_Excep_MTU1_TGIB1(void) __attribute__ ((interrupt));

+

+// MTU1 TCIV1

+

+void INT_Excep_MTU1_TCIV1(void) __attribute__ ((interrupt));

+

+// MTU1 TCIU1

+

+void INT_Excep_MTU1_TCIU1(void) __attribute__ ((interrupt));

+

+// MTU2 TGIA2

+

+void INT_Excep_MTU2_TGIA2(void) __attribute__ ((interrupt));

+

+// MTU2 TGIB2

+

+void INT_Excep_MTU2_TGIB2(void) __attribute__ ((interrupt));

+

+// MTU2 TCIV2

+

+void INT_Excep_MTU2_TCIV2(void) __attribute__ ((interrupt));

+

+// MTU2 TCIU2

+

+void INT_Excep_MTU2_TCIU2(void) __attribute__ ((interrupt));

+

+// MTU3 TGIA3

+

+void INT_Excep_MTU3_TGIA3(void) __attribute__ ((interrupt));

+

+// MTU3 TGIB3

+

+void INT_Excep_MTU3_TGIB3(void) __attribute__ ((interrupt));

+

+// MTU3 TGIC3

+

+void INT_Excep_MTU3_TGIC3(void) __attribute__ ((interrupt));

+

+// MTU3 TGID3

+

+void INT_Excep_MTU3_TGID3(void) __attribute__ ((interrupt));

+

+// MTU3 TCIV3

+

+void INT_Excep_MTU3_TCIV3(void) __attribute__ ((interrupt));

+

+// MTU4 TGIA4

+

+void INT_Excep_MTU4_TGIA4(void) __attribute__ ((interrupt));

+

+// MTU4 TGIB4

+

+void INT_Excep_MTU4_TGIB4(void) __attribute__ ((interrupt));

+

+// MTU4 TGIC4

+

+void INT_Excep_MTU4_TGIC4(void) __attribute__ ((interrupt));

+

+// MTU4 TGID4

+

+void INT_Excep_MTU4_TGID4(void) __attribute__ ((interrupt));

+

+// MTU4 TCIV4

+

+void INT_Excep_MTU4_TCIV4(void) __attribute__ ((interrupt));

+

+// MTU5 TGIU5

+

+void INT_Excep_MTU5_TGIU5(void) __attribute__ ((interrupt));

+

+// MTU5 TGIV5

+

+void INT_Excep_MTU5_TGIV5(void) __attribute__ ((interrupt));

+

+// MTU5 TGIW5

+

+void INT_Excep_MTU5_TGIW5(void) __attribute__ ((interrupt));

+

+// POE OEI1

+

+void INT_Excep_POE_OEI1(void) __attribute__ ((interrupt));

+

+// POE OEI2

+

+void INT_Excep_POE_OEI2(void) __attribute__ ((interrupt));

+

+// SCI1 ERI1

+

+void INT_Excep_SCI1_ERI1(void) __attribute__ ((interrupt));

+

+// SCI1 RXI1

+

+void INT_Excep_SCI1_RXI1(void) __attribute__ ((interrupt));

+

+// SCI1 TXI1

+

+void INT_Excep_SCI1_TXI1(void) __attribute__ ((interrupt));

+

+// SCI1 TEI1

+

+void INT_Excep_SCI1_TEI1(void) __attribute__ ((interrupt));

+

+// SCI5 ERI5

+

+void INT_Excep_SCI5_ERI5(void) __attribute__ ((interrupt));

+

+// SCI5 RXI5

+

+void INT_Excep_SCI5_RXI5(void) __attribute__ ((interrupt));

+

+// SCI5 TXI5

+

+void INT_Excep_SCI5_TXI5(void) __attribute__ ((interrupt));

+

+// SCI5 TEI5

+

+void INT_Excep_SCI5_TEI5(void) __attribute__ ((interrupt));

+

+// SCI12 ERI12

+

+void INT_Excep_SCI12_ERI12(void) __attribute__ ((interrupt));

+

+// SCI12 RXI12

+

+void INT_Excep_SCI12_RXI12(void) __attribute__ ((interrupt));

+

+// SCI12 TXI12

+

+void INT_Excep_SCI12_TXI12(void) __attribute__ ((interrupt));

+

+// SCI12 TEI12

+

+void INT_Excep_SCI12_TEI12(void) __attribute__ ((interrupt));

+

+// SCI12 SCIX0

+

+void INT_Excep_SCI12_SCIX0(void) __attribute__ ((interrupt));

+

+// SCI12 SCIX1

+

+void INT_Excep_SCI12_SCIX1(void) __attribute__ ((interrupt));

+

+// SCI12 SCIX2

+

+void INT_Excep_SCI12_SCIX2(void) __attribute__ ((interrupt));

+

+// SCI12 SCIX3

+

+void INT_Excep_SCI12_SCIX3(void) __attribute__ ((interrupt));

+

+// RIIC0 EEI0

+

+void INT_Excep_RIIC0_EEI0(void) __attribute__ ((interrupt));

+

+// RIIC0 RXI0

+

+void INT_Excep_RIIC0_RXI0(void) __attribute__ ((interrupt));

+

+// RIIC0 TXI0

+

+void INT_Excep_RIIC0_TXI0(void) __attribute__ ((interrupt));

+

+// RIIC0 TEI0

+

+void INT_Excep_RIIC0_TEI0(void) __attribute__ ((interrupt));

+

+//;<<VECTOR DATA START (POWER ON RESET)>>

+//;Power On Reset PC

+extern void PowerON_Reset(void);                                                                                                                

+//;<<VECTOR DATA END (POWER ON RESET)>>

+#endif

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h
new file mode 100644
index 0000000..accd3e1
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h
@@ -0,0 +1,9922 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  iodefine.h                                     */
+/*      DESCRIPTION  :  Definition of I/O Registers                    */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/

+

+

+

+

+/* Generated by GNURX IO Header File Converter */

+

+/********************************************************************************/

+/*                                                                              */

+/* Note       : This is a typical example.                                      */

+/* History    : V0.5  (2012-09-25)  [Hardware Manual Revision : 0.50]           */

+/* Abstract   : Definition of I/O Register.                                     */

+/* File Name  : iodefine.h                                                      */

+/* Device     : RX/RX100/RX111                                                  */

+/*                                                                              */

+/*  Copyright(c) 2012 Renesas Electronics Corp.                                 */

+/*                  And Renesas Solutions Corp. ,All Rights Reserved.           */

+/*                                                                              */

+/********************************************************************************/

+/*                                                                              */

+/*  CPU TYPE    : RX111                                                         */

+/*  DESCRIPTION : Definition of ICU Register                                    */

+/*                                                                              */

+/*  Usage : IR,DTCER,IER,IPR of ICU Register                                    */

+/*     The following IR, DTCE, IEN, IPR macro functions simplify usage.         */

+/*     The bit access operation is "Bit_Name(interrupt source,name)".           */

+/*     A part of the name can be omitted.                                       */

+/*       IR(MTU0,TGIA0) = 0;     expands to :                                   */

+/*     for example :                                                            */

+/*         ICU.IR[114].BIT.IR = 0;                                              */

+/*                                                                              */

+/*       DTCE(ICU,IRQ0) = 1;     expands to :                                   */

+/*         ICU.DTCER[64].BIT.DTCE = 1;                                          */

+/*                                                                              */

+/*       IEN(CMT0,CMI0) = 1;     expands to :                                   */

+/*         ICU.IER[0x03].BIT.IEN4 = 1;                                          */

+/*                                                                              */

+/*       IPR(MTU1,TGIA1) = 2;    expands to :                                   */

+/*       IPR(MTU1,TGI  ) = 2;    // TGIA1,TGIB1 share IPR level.                */

+/*         ICU.IPR[121].BIT.IPR = 2;                                            */

+/*                                                                              */

+/*       IPR(SCI1,ERI1) = 3;     expands to :                                   */

+/*       IPR(SCI1,    ) = 3;     // SCI1 uses single IPR for all sources.       */

+/*         ICU.IPR[218].BIT.IPR = 3;                                            */

+/*                                                                              */

+/*  Usage : #pragma interrupt Function_Identifier(vect=**)                      */

+/*     The number of vector is "(interrupt source, name)".                      */

+/*       #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0))          expands to :  */

+/*     for example :                                                            */

+/*       #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0))    expands to :  */

+/*       #pragma interrupt INT_MTU0_TGIA0(vect=VECT(MTU0,TGIA0))  expands to :  */

+/*                                                                              */

+/*  Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register                          */

+/*     The bit access operation is "MSTP(name)".                                */

+/*     The name that can be used is a macro name defined with "iodefine.h".     */

+/*       MSTP(MTU4) = 0;    // MTU,MTU0,MTU1,MTU2,MTU3,MTU4,MTU5  expands to :  */

+/*     for example :                                                            */

+/*         SYSTEM.MSTPCRA.BIT.MSTPA9  = 0;                                      */

+/*                                                                              */

+/*                                                                              */

+/********************************************************************************/

+#ifndef __RX111IODEFINE_HEADER__

+#define __RX111IODEFINE_HEADER__

+

+#ifdef __RX_LITTLE_ENDIAN__

+

+struct st_bsc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char STSCLR:1;

+			unsigned char :7;

+		} BIT;

+	} BERCLR;

+	char           wk0[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IGAEN:1;

+			unsigned char :7;

+		} BIT;

+	} BEREN;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IA:1;

+			unsigned char :3;

+			unsigned char MST:3;

+			unsigned char :1;

+		} BIT;

+	} BERSR1;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADDR:13;

+		} BIT;

+	} BERSR2;

+	char           wk3[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BPRA:2;

+			unsigned short BPRO:2;

+			unsigned short BPIB:2;

+			unsigned short BPGB:2;

+			unsigned short :2;

+			unsigned short BPFB:2;

+			unsigned short :4;

+		} BIT;

+	} BUSPRI;

+};

+

+struct st_cac {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CFME:1;

+			unsigned char :7;

+		} BIT;

+	} CACR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CACREFE:1;

+			unsigned char FMCS:3;

+			unsigned char TCSS:2;

+			unsigned char EDGES:2;

+		} BIT;

+	} CACR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RPS:1;

+			unsigned char RSCS:3;

+			unsigned char RCDS:2;

+			unsigned char DFS:2;

+		} BIT;

+	} CACR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FERRIE:1;

+			unsigned char MENDIE:1;

+			unsigned char OVFIE:1;

+			unsigned char :1;

+			unsigned char FERRFCL:1;

+			unsigned char MENDFCL:1;

+			unsigned char OVFFCL:1;

+			unsigned char :1;

+		} BIT;

+	} CAICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FERRF:1;

+			unsigned char MENDF:1;

+			unsigned char OVFF:1;

+			unsigned char :5;

+		} BIT;

+	} CASTR;

+	char           wk0[1];

+	unsigned short CAULVR;

+	unsigned short CALLVR;

+	unsigned short CACNTBR;

+};

+

+struct st_cmt {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short STR0:1;

+			unsigned short STR1:1;

+			unsigned short :14;

+		} BIT;

+	} CMSTR0;

+};

+

+struct st_cmt0 {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKS:2;

+			unsigned short :4;

+			unsigned short CMIE:1;

+			unsigned short :9;

+		} BIT;

+	} CMCR;

+	unsigned short CMCNT;

+	unsigned short CMCOR;

+};

+

+struct st_crc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char GPS:2;

+			unsigned char LMS:1;

+			unsigned char :4;

+			unsigned char DORCLR:1;

+		} BIT;

+	} CRCCR;

+	unsigned char  CRCDIR;

+	unsigned short CRCDOR;

+};

+

+struct st_da {

+	unsigned short DADR0;

+	unsigned short DADR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAOE0:1;

+			unsigned char DAOE1:1;

+		} BIT;

+	} DACR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DPSEL:1;

+		} BIT;

+	} DADPR;

+};

+

+struct st_doc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OMS:2;

+			unsigned char DCSEL:1;

+			unsigned char :1;

+			unsigned char DOPCIE:1;

+			unsigned char DOPCF:1;

+			unsigned char DOPCFCL:1;

+			unsigned char :1;

+		} BIT;

+	} DOCR;

+	char           wk0[1];

+	unsigned short DODIR;

+	unsigned short DODSR;

+};

+

+struct st_dtc {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char RRS:1;

+			unsigned char :3;

+		} BIT;

+	} DTCCR;

+	char           wk0[3];

+	void          *DTCVBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SHORT:1;

+			unsigned char :7;

+		} BIT;

+	} DTCADMOD;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DTCST:1;

+			unsigned char :7;

+		} BIT;

+	} DTCST;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VECN:8;

+			unsigned short :7;

+			unsigned short ACT:1;

+		} BIT;

+	} DTCSTS;

+};

+

+struct st_elc {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :7;

+			unsigned char ELCON:1;

+		} BIT;

+	} ELCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELS:8;

+		} BIT;

+	} ELSR[26];

+	char           wk0[4];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char MTU1MD:2;

+			unsigned char MTU2MD:2;

+			unsigned char MTU3MD:2;

+		} BIT;

+	} ELOPA;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTU4MD:2;

+			unsigned char :6;

+		} BIT;

+	} ELOPB;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char CMT1MD:2;

+			unsigned char :4;

+		} BIT;

+	} ELOPC;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PGR0:1;

+			unsigned char PGR1:1;

+			unsigned char PGR2:1;

+			unsigned char PGR3:1;

+			unsigned char PGR4:1;

+			unsigned char PGR5:1;

+			unsigned char PGR6:1;

+			unsigned char PGR7:1;

+		} BIT;

+	} PGR1;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PGCI:2;

+			unsigned char PGCOVE:1;

+			unsigned char :1;

+			unsigned char PGCO:3;

+			unsigned char :1;

+		} BIT;

+	} PGC1;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PDBF0:1;

+			unsigned char PDBF1:1;

+			unsigned char PDBF2:1;

+			unsigned char PDBF3:1;

+			unsigned char PDBF4:1;

+			unsigned char PDBF5:1;

+			unsigned char PDBF6:1;

+			unsigned char PDBF7:1;

+		} BIT;

+	} PDBF1;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSB:3;

+			unsigned char PSP:2;

+			unsigned char PSM:2;

+			unsigned char :1;

+		} BIT;

+	} PEL0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSB:3;

+			unsigned char PSP:2;

+			unsigned char PSM:2;

+			unsigned char :1;

+		} BIT;

+	} PEL1;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SEG:1;

+			unsigned char :5;

+			unsigned char WE:1;

+			unsigned char WI:1;

+		} BIT;

+	} ELSEGR;

+};

+

+struct st_flash {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DFLEN:1;

+			unsigned char :7;

+		} BIT;

+	} DFLCTL;

+};

+

+struct st_icu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IR:1;

+			unsigned char :7;

+		} BIT;

+	} IR[250];

+	char           wk0[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DTCE:1;

+			unsigned char :7;

+		} BIT;

+	} DTCER[249];

+	char           wk1[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IEN0:1;

+			unsigned char IEN1:1;

+			unsigned char IEN2:1;

+			unsigned char IEN3:1;

+			unsigned char IEN4:1;

+			unsigned char IEN5:1;

+			unsigned char IEN6:1;

+			unsigned char IEN7:1;

+		} BIT;

+	} IER[32];

+	char           wk2[192];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SWINT:1;

+			unsigned char :7;

+		} BIT;

+	} SWINTR;

+	char           wk3[15];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FVCT:8;

+			unsigned short :7;

+			unsigned short FIEN:1;

+		} BIT;

+	} FIR;

+	char           wk4[14];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IPR:4;

+			unsigned char :4;

+		} BIT;

+	} IPR[250];

+	char           wk5[262];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :2;

+			unsigned char IRQMD:2;

+			unsigned char :4;

+		} BIT;

+	} IRQCR[8];

+	char           wk6[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FLTEN0:1;

+			unsigned char FLTEN1:1;

+			unsigned char FLTEN2:1;

+			unsigned char FLTEN3:1;

+			unsigned char FLTEN4:1;

+			unsigned char FLTEN5:1;

+			unsigned char FLTEN6:1;

+			unsigned char FLTEN7:1;

+		} BIT;

+	} IRQFLTE0;

+	char           wk7[3];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FCLKSEL0:2;

+			unsigned short FCLKSEL1:2;

+			unsigned short FCLKSEL2:2;

+			unsigned short FCLKSEL3:2;

+			unsigned short FCLKSEL4:2;

+			unsigned short FCLKSEL5:2;

+			unsigned short FCLKSEL6:2;

+			unsigned short FCLKSEL7:2;

+		} BIT;

+	} IRQFLTC0;

+	char           wk8[106];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NMIST:1;

+			unsigned char OSTST:1;

+			unsigned char :1;

+			unsigned char IWDTST:1;

+			unsigned char LVD1ST:1;

+			unsigned char LVD2ST:1;

+			unsigned char :2;

+		} BIT;

+	} NMISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NMIEN:1;

+			unsigned char OSTEN:1;

+			unsigned char :1;

+			unsigned char IWDTEN:1;

+			unsigned char LVD1EN:1;

+			unsigned char LVD2EN:1;

+			unsigned char :2;

+		} BIT;

+	} NMIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NMICLR:1;

+			unsigned char OSTCLR:1;

+			unsigned char :1;

+			unsigned char IWDTCLR:1;

+			unsigned char LVD1CLR:1;

+			unsigned char LVD2CLR:1;

+			unsigned char :2;

+		} BIT;

+	} NMICLR;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char NMIMD:1;

+			unsigned char :4;

+		} BIT;

+	} NMICR;

+	char           wk9[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFLTEN:1;

+			unsigned char :7;

+		} BIT;

+	} NMIFLTE;

+	char           wk10[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFCLKSEL:2;

+			unsigned char :6;

+		} BIT;

+	} NMIFLTC;

+};

+

+struct st_iwdt {

+	unsigned char  IWDTRR;

+	char           wk0[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TOPS:2;

+			unsigned short :2;

+			unsigned short CKS:4;

+			unsigned short RPES:2;

+			unsigned short :2;

+			unsigned short RPSS:2;

+			unsigned short :2;

+		} BIT;

+	} IWDTCR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CNTVAL:14;

+			unsigned short UNDFF:1;

+			unsigned short REFEF:1;

+		} BIT;

+	} IWDTSR;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char RSTIRQS:1;

+		} BIT;

+	} IWDTRCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char SLCSTP:1;

+		} BIT;

+	} IWDTCSTPR;

+};

+

+struct st_mpc {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :6;

+			unsigned char PFSWE:1;

+			unsigned char B0WI:1;

+		} BIT;

+	} PWPR;

+	char           wk0[35];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P03PFS;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P05PFS;

+	char           wk2[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P14PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P15PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P16PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P17PFS;

+	char           wk3[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} P26PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} P27PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P30PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P31PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P32PFS;

+	char           wk4[2];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :6;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} P35PFS;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P40PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P41PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P42PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P43PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P44PFS;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned short :7;

+			unsigned char ASEL:1;

+		} BIT;

+	} P46PFS;

+	char           wk7[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} P54PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} P55PFS;

+	char           wk8[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PA0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PA1PFS;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PA3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PA4PFS;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PA6PFS;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PB0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PB1PFS;

+	char           wk12[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PB3PFS;

+	char           wk13[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PB5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PB6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PB7PFS;

+	char           wk14[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PC2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PC3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+		} BIT;

+	} PC4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PC5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PC6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :3;

+		} BIT;

+	} PC7PFS;

+	char           wk15[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE1PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL:5;

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char ASEL:1;

+		} BIT;

+	} PE7PFS;

+	char           wk16[30];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ7PFS;

+};

+

+struct st_mtu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OE3B:1;

+			unsigned char OE4A:1;

+			unsigned char OE4B:1;

+			unsigned char OE3D:1;

+			unsigned char OE4C:1;

+			unsigned char OE4D:1;

+			unsigned char :2;

+		} BIT;

+	} TOER;

+	char           wk0[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char UF:1;

+			unsigned char VF:1;

+			unsigned char WF:1;

+			unsigned char FB:1;

+			unsigned char P:1;

+			unsigned char N:1;

+			unsigned char BDC:1;

+			unsigned char :1;

+		} BIT;

+	} TGCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OLSP:1;

+			unsigned char OLSN:1;

+			unsigned char TOCS:1;

+			unsigned char TOCL:1;

+			unsigned char :2;

+			unsigned char PSYE:1;

+			unsigned char :1;

+		} BIT;

+	} TOCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OLS1P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS3N:1;

+			unsigned char BF:2;

+		} BIT;

+	} TOCR2;

+	char           wk1[4];

+	unsigned short TCDR;

+	unsigned short TDDR;

+	char           wk2[8];

+	unsigned short TCNTS;

+	unsigned short TCBR;

+	char           wk3[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char T4VCOR:3;

+			unsigned char T4VEN:1;

+			unsigned char T3ACOR:3;

+			unsigned char T3AEN:1;

+		} BIT;

+	} TITCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char T4VCNT:3;

+			unsigned char :1;

+			unsigned char T3ACNT:3;

+			unsigned char :1;

+		} BIT;

+	} TITCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BTE:2;

+			unsigned char :6;

+		} BIT;

+	} TBTER;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TDER:1;

+			unsigned char :7;

+		} BIT;

+	} TDER;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OLS1P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS3N:1;

+			unsigned char :2;

+		} BIT;

+	} TOLBR;

+	char           wk6[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char WRE:1;

+			unsigned char :6;

+			unsigned char CCE:1;

+		} BIT;

+	} TWCR;

+	char           wk7[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CST0:1;

+			unsigned char CST1:1;

+			unsigned char CST2:1;

+			unsigned char :3;

+			unsigned char CST3:1;

+			unsigned char CST4:1;

+		} BIT;

+	} TSTR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SYNC0:1;

+			unsigned char SYNC1:1;

+			unsigned char SYNC2:1;

+			unsigned char :3;

+			unsigned char SYNC3:1;

+			unsigned char SYNC4:1;

+		} BIT;

+	} TSYR;

+	char           wk8[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RWE:1;

+			unsigned char :7;

+		} BIT;

+	} TRWER;

+};

+

+struct st_mtu0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFAEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFDEN:1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+	char           wk0[111];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:3;

+			unsigned char CKEG:2;

+			unsigned char CCLR:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MD:4;

+			unsigned char BFA:1;

+			unsigned char BFB:1;

+			unsigned char BFE:1;

+			unsigned char :1;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOA:4;

+			unsigned char IOB:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:4;

+			unsigned char IOD:4;

+		} BIT;

+	} TIORL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEA:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIED:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TTGE:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk1[16];

+	unsigned short TGRE;

+	unsigned short TGRF;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEE:1;

+			unsigned char TGIEF:1;

+			unsigned char :6;

+		} BIT;

+	} TIER2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTSA:1;

+			unsigned char TTSB:1;

+			unsigned char TTSE:1;

+			unsigned char :5;

+		} BIT;

+	} TBTM;

+};

+

+struct st_mtu1 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFAEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFDEN:1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+	char           wk1[238];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:3;

+			unsigned char CKEG:2;

+			unsigned char CCLR:2;

+			unsigned char :1;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MD:4;

+			unsigned char :4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOA:4;

+			unsigned char IOB:4;

+		} BIT;

+	} TIOR;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEA:1;

+			unsigned char TGIEB:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TCIEU:1;

+			unsigned char :1;

+			unsigned char TTGE:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk3[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char I1AE:1;

+			unsigned char I1BE:1;

+			unsigned char I2AE:1;

+			unsigned char I2BE:1;

+			unsigned char :4;

+		} BIT;

+	} TICCR;

+};

+

+struct st_mtu2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFAEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFDEN:1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+	char           wk0[365];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:3;

+			unsigned char CKEG:2;

+			unsigned char CCLR:2;

+			unsigned char :1;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MD:4;

+			unsigned char :4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOA:4;

+			unsigned char IOB:4;

+		} BIT;

+	} TIOR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEA:1;

+			unsigned char TGIEB:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TCIEU:1;

+			unsigned char :1;

+			unsigned char TTGE:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+};

+

+struct st_mtu3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:3;

+			unsigned char CKEG:2;

+			unsigned char CCLR:3;

+		} BIT;

+	} TCR;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MD:4;

+			unsigned char BFA:1;

+			unsigned char BFB:1;

+			unsigned char :2;

+		} BIT;

+	} TMDR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOA:4;

+			unsigned char IOB:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:4;

+			unsigned char IOD:4;

+		} BIT;

+	} TIORL;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEA:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIED:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TTGE:1;

+		} BIT;

+	} TIER;

+	char           wk3[7];

+	unsigned short TCNT;

+	char           wk4[6];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk5[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk6[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTSA:1;

+			unsigned char TTSB:1;

+			unsigned char TTSE:1;

+			unsigned char :5;

+		} BIT;

+	} TBTM;

+	char           wk8[90];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFAEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFDEN:1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu4 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:3;

+			unsigned char CKEG:2;

+			unsigned char CCLR:3;

+		} BIT;

+	} TCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MD:4;

+			unsigned char BFA:1;

+			unsigned char BFB:1;

+			unsigned char :2;

+		} BIT;

+	} TMDR;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOA:4;

+			unsigned char IOB:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:4;

+			unsigned char IOD:4;

+		} BIT;

+	} TIORL;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIEA:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIED:1;

+			unsigned char TCIEV:1;

+			unsigned char :1;

+			unsigned char TTGE2:1;

+			unsigned char TTGE:1;

+		} BIT;

+	} TIER;

+	char           wk4[8];

+	unsigned short TCNT;

+	char           wk5[8];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk6[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk8[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTSA:1;

+			unsigned char TTSB:1;

+			unsigned char TTSE:1;

+			unsigned char :5;

+		} BIT;

+	} TBTM;

+	char           wk9[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ITB4VE:1;

+			unsigned short ITB3AE:1;

+			unsigned short ITA4VE:1;

+			unsigned short ITA3AE:1;

+			unsigned short DT4BE:1;

+			unsigned short UT4BE:1;

+			unsigned short DT4AE:1;

+			unsigned short UT4AE:1;

+			unsigned short :6;

+			unsigned short BF:2;

+		} BIT;

+	} TADCR;

+	char           wk10[2];

+	unsigned short TADCORA;

+	unsigned short TADCORB;

+	unsigned short TADCOBRA;

+	unsigned short TADCOBRB;

+	char           wk11[72];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFAEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFDEN:1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu5 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFUEN:1;

+			unsigned char NFVEN:1;

+			unsigned char NFWEN:1;

+			unsigned char :1;

+			unsigned char NFCS:2;

+			unsigned char :2;

+		} BIT;

+	} NFCR;

+	char           wk1[490];

+	unsigned short TCNTU;

+	unsigned short TGRU;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:2;

+			unsigned char :6;

+		} BIT;

+	} TCRU;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:5;

+			unsigned char :3;

+		} BIT;

+	} TIORU;

+	char           wk3[9];

+	unsigned short TCNTV;

+	unsigned short TGRV;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:2;

+			unsigned char :6;

+		} BIT;

+	} TCRV;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:5;

+			unsigned char :3;

+		} BIT;

+	} TIORV;

+	char           wk5[9];

+	unsigned short TCNTW;

+	unsigned short TGRW;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TPSC:2;

+			unsigned char :6;

+		} BIT;

+	} TCRW;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOC:5;

+			unsigned char :3;

+		} BIT;

+	} TIORW;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TGIE5W:1;

+			unsigned char TGIE5V:1;

+			unsigned char TGIE5U:1;

+			unsigned char :5;

+		} BIT;

+	} TIER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CSTW5:1;

+			unsigned char CSTV5:1;

+			unsigned char CSTU5:1;

+			unsigned char :5;

+		} BIT;

+	} TSTR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CMPCLR5W:1;

+			unsigned char CMPCLR5V:1;

+			unsigned char CMPCLR5U:1;

+			unsigned char :5;

+		} BIT;

+	} TCNTCMPCLR;

+};

+

+struct st_poe {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char POE0M:2;

+			unsigned char POE1M:2;

+			unsigned char POE2M:2;

+			unsigned char POE3M:2;

+			unsigned char PIE1:1;

+			unsigned char :3;

+			unsigned char POE0F:1;

+			unsigned char POE1F:1;

+			unsigned char POE2F:1;

+			unsigned char POE3F:1;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char OIE1:1;

+			unsigned char OCE1:1;

+			unsigned char :5;

+			unsigned char OSF1:1;

+		} BIT;

+	} OCSR1;

+	char           wk0[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char POE8M:2;

+			unsigned char :6;

+			unsigned char PIE2:1;

+			unsigned char POE8E:1;

+			unsigned char :2;

+			unsigned char POE8F:1;

+			unsigned char :3;

+		} BIT;

+	} ICSR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CH34HIZ:1;

+			unsigned char CH0HIZ:1;

+			unsigned char :6;

+		} BIT;

+	} SPOER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PE0ZE:1;

+			unsigned char PE1ZE:1;

+			unsigned char PE2ZE:1;

+			unsigned char PE3ZE:1;

+			unsigned char :4;

+		} BIT;

+	} POECR1;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char P3CZEA:1;

+			unsigned char P2CZEA:1;

+			unsigned char P1CZEA:1;

+			unsigned char :1;

+		} BIT;

+	} POECR2;

+	char           wk1[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char OSTSTE:1;

+			unsigned char :2;

+			unsigned char OSTSTF:1;

+			unsigned char :3;

+		} BIT;

+	} ICSR3;

+};

+

+struct st_port {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL0:1;

+			unsigned char PSEL1:1;

+			unsigned char :1;

+			unsigned char PSEL3:1;

+			unsigned char :1;

+			unsigned char PSEL5:1;

+			unsigned char :2;

+		} BIT;

+	} PSRB;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char PSEL6:1;

+			unsigned char PSEL7:1;

+		} BIT;

+	} PSRA;

+};

+

+struct st_port0 {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PCR;

+};

+

+struct st_port1 {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PMR;

+	char           wk3[33];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR1;

+	char           wk4[61];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port2 {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR1;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :6;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char :5;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char :5;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char :5;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :3;

+		} BIT;

+	} ODR0;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char :5;

+		} BIT;

+	} PCR;

+};

+

+struct st_port4 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PMR;

+};

+

+struct st_port5 {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char :2;

+		} BIT;

+	} PCR;

+};

+

+struct st_porta {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PMR;

+	char           wk3[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :3;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :3;

+		} BIT;

+	} ODR1;

+	char           wk4[52];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PMR;

+	char           wk3[42];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :3;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR1;

+	char           wk4[51];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portc {

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PMR;

+	char           wk3[43];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR1;

+	char           wk4[50];

+	union {

+		unsigned char BYTE;

+		struct {

+	        unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porte {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PMR;

+	char           wk3[45];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+		} BIT;

+	} ODR1;

+	char           wk4[48];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0:1;

+			unsigned char B1:1;

+			unsigned char B2:1;

+			unsigned char B3:1;

+			unsigned char B4:1;

+			unsigned char B5:1;

+			unsigned char B6:1;

+			unsigned char B7:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_riic {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SDAI:1;

+			unsigned char SCLI:1;

+			unsigned char SDAO:1;

+			unsigned char SCLO:1;

+			unsigned char SOWP:1;

+			unsigned char CLO:1;

+			unsigned char IICRST:1;

+			unsigned char ICE:1;

+		} BIT;

+	} ICCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ST:1;

+			unsigned char RS:1;

+			unsigned char SP:1;

+			unsigned char :1;

+			unsigned char TRS:1;

+			unsigned char MST:1;

+			unsigned char BBSY:1;

+		} BIT;

+	} ICCR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BC:3;

+			unsigned char BCWP:1;

+			unsigned char CKS:3;

+			unsigned char MTWP:1;

+		} BIT;

+	} ICMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TMOS:1;

+			unsigned char TMOL:1;

+			unsigned char TMOH:1;

+			unsigned char TMWE:1;

+			unsigned char SDDL:3;

+			unsigned char DLCS:1;

+		} BIT;

+	} ICMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NF:2;

+			unsigned char ACKBR:1;

+			unsigned char ACKBT:1;

+			unsigned char ACKWP:1;

+			unsigned char RDRFS:1;

+			unsigned char WAIT:1;

+			unsigned char SMBS:1;

+		} BIT;

+	} ICMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TMOE:1;

+			unsigned char MALE:1;

+			unsigned char NALE:1;

+			unsigned char SALE:1;

+			unsigned char NACKE:1;

+			unsigned char NFE:1;

+			unsigned char SCLE:1;

+			unsigned char :1;

+		} BIT;

+	} ICFER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SAR0E:1;

+			unsigned char SAR1E:1;

+			unsigned char SAR2E:1;

+			unsigned char GCAE:1;

+			unsigned char :1;

+			unsigned char DIDE:1;

+			unsigned char :1;

+			unsigned char HOAE:1;

+		} BIT;

+	} ICSER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TMOIE:1;

+			unsigned char ALIE:1;

+			unsigned char STIE:1;

+			unsigned char SPIE:1;

+			unsigned char NAKIE:1;

+			unsigned char RIE:1;

+			unsigned char TEIE:1;

+			unsigned char TIE:1;

+		} BIT;

+	} ICIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char AAS0:1;

+			unsigned char AAS1:1;

+			unsigned char AAS2:1;

+			unsigned char GCA:1;

+			unsigned char :1;

+			unsigned char DID:1;

+			unsigned char :1;

+			unsigned char HOA:1;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TMOF:1;

+			unsigned char AL:1;

+			unsigned char START:1;

+			unsigned char STOP:1;

+			unsigned char NACKF:1;

+			unsigned char RDRF:1;

+			unsigned char TEND:1;

+			unsigned char TDRE:1;

+		} BIT;

+	} ICSR2;

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char SVA0:1;

+				unsigned char SVA:7;

+			} BIT;

+		} SARL0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTL;

+	};

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char FS:1;

+				unsigned char SVA:2;

+				unsigned char :5;

+			} BIT;

+		} SARU0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTH;

+	};

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA0:1;

+			unsigned char SVA:7;

+		} BIT;

+	} SARL1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FS:1;

+			unsigned char SVA:2;

+			unsigned char :5;

+		} BIT;

+	} SARU1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA0:1;

+			unsigned char SVA:7;

+		} BIT;

+	} SARL2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FS:1;

+			unsigned char SVA:2;

+			unsigned char :5;

+		} BIT;

+	} SARU2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BRL:5;

+			unsigned char :3;

+		} BIT;

+	} ICBRL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BRH:5;

+			unsigned char :3;

+		} BIT;

+	} ICBRH;

+	unsigned char  ICDRT;

+	unsigned char  ICDRR;

+};

+

+struct st_rspi {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPMS:1;

+			unsigned char TXMD:1;

+			unsigned char MODFEN:1;

+			unsigned char MSTR:1;

+			unsigned char SPEIE:1;

+			unsigned char SPTIE:1;

+			unsigned char SPE:1;

+			unsigned char SPRIE:1;

+		} BIT;

+	} SPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SSL0P:1;

+			unsigned char SSL1P:1;

+			unsigned char SSL2P:1;

+			unsigned char SSL3P:1;

+			unsigned char :4;

+		} BIT;

+	} SSLP;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPLP:1;

+			unsigned char SPLP2:1;

+			unsigned char :2;

+			unsigned char MOIFV:1;

+			unsigned char MOIFE:1;

+			unsigned char :2;

+		} BIT;

+	} SPPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OVRF:1;

+			unsigned char IDLNF:1;

+			unsigned char MODF:1;

+			unsigned char PERF:1;

+			unsigned char :4;

+		} BIT;

+	} SPSR;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned short H;

+		} WORD;

+	} SPDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPSLN:3;

+			unsigned char :5;

+		} BIT;

+	} SPSCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPCP:3;

+			unsigned char :1;

+			unsigned char SPECM:3;

+			unsigned char :1;

+		} BIT;

+	} SPSSR;

+	unsigned char SPBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPFC:2;

+			unsigned char :2;

+			unsigned char SPRDTD:1;

+			unsigned char SPLW:1;

+			unsigned char :2;

+		} BIT;

+	} SPDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SCKDL:3;

+			unsigned char :5;

+		} BIT;

+	} SPCKD;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SLNDL:3;

+			unsigned char :5;

+		} BIT;

+	} SSLND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPNDL:3;

+			unsigned char :5;

+		} BIT;

+	} SPND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPPE:1;

+			unsigned char SPOE:1;

+			unsigned char SPIIE:1;

+			unsigned char PTE:1;

+			unsigned char :4;

+		} BIT;

+	} SPCR2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD5;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD6;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CPHA:1;

+			unsigned short CPOL:1;

+			unsigned short BRDV:2;

+			unsigned short SSLA:3;

+			unsigned short SSLKP:1;

+			unsigned short SPB:4;

+			unsigned short LSBF:1;

+			unsigned short SPNDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SCKDEN:1;

+		} BIT;

+	} SPCMD7;

+};

+

+struct st_rtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char F64HZ:1;

+			unsigned char F32HZ:1;

+			unsigned char F16HZ:1;

+			unsigned char F8HZ:1;

+			unsigned char F4HZ:1;

+			unsigned char F2HZ:1;

+			unsigned char F1HZ:1;

+			unsigned char :1;

+		} BIT;

+	} R64CNT;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SEC1:4;

+			unsigned char SEC10:3;

+			unsigned char :1;

+		} BIT;

+	} RSECCNT;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MIN1:4;

+			unsigned char MIN10:3;

+			unsigned char :1;

+		} BIT;

+	} RMINCNT;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HR1:4;

+			unsigned char HR10:2;

+			unsigned char PM:1;

+			unsigned char :1;

+		} BIT;

+	} RHRCNT;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAYW:3;

+			unsigned char :5;

+		} BIT;

+	} RWKCNT;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DATE1:4;

+			unsigned char DATE10:2;

+			unsigned char :2;

+		} BIT;

+	} RDAYCNT;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MON1:4;

+			unsigned char MON10:1;

+			unsigned char :3;

+		} BIT;

+	} RMONCNT;

+	char           wk6[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short YR1:4;

+			unsigned short YR10:4;

+			unsigned short :8;

+		} BIT;

+	} RYRCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SEC1:4;

+			unsigned char SEC10:3;

+			unsigned char ENB:1;

+		} BIT;

+	} RSECAR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MIN1:4;

+			unsigned char MIN10:3;

+			unsigned char ENB:1;

+		} BIT;

+	} RMINAR;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HR1:4;

+			unsigned char HR10:2;

+			unsigned char PM:1;

+			unsigned char ENB:1;

+		} BIT;

+	} RHRAR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAYW:3;

+			unsigned char :4;

+			unsigned char ENB:1;

+		} BIT;

+	} RWKAR;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DATE1:4;

+			unsigned char DATE10:2;

+			unsigned char :1;

+			unsigned char ENB:1;

+		} BIT;

+	} RDAYAR;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MON1:4;

+			unsigned char MON10:1;

+			unsigned char :2;

+			unsigned char ENB:1;

+		} BIT;

+	} RMONAR;

+	char           wk12[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short YR1:4;

+			unsigned short YR10:4;

+			unsigned short :8;

+		} BIT;

+	} RYRAR;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :7;

+			unsigned char ENB:1;

+		} BIT;

+	} RYRAREN;

+	char           wk13[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char AIE:1;

+			unsigned char CIE:1;

+			unsigned char PIE:1;

+			unsigned char RTCOS:1;

+			unsigned char PES:4;

+		} BIT;

+	} RCR1;

+	char           wk14[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char START:1;

+			unsigned char RESET:1;

+			unsigned char ADJ30:1;

+			unsigned char RTCOE:1;

+			unsigned char AADJE:1;

+			unsigned char AADJP:1;

+			unsigned char HR24:1;

+			unsigned char CNTMD:1;

+		} BIT;

+	} RCR2;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RTCEN:1;

+			unsigned char RTCDV:2;

+			unsigned char :5;

+		} BIT;

+	} RCR3;

+	char           wk16[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ADJ:6;

+			unsigned char PMADJ:2;

+		} BIT;

+	} RADJ;

+};

+

+struct st_rtcb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT0;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT1;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT3;

+	char           wk3[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT0AR;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT1AR;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT2AR;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT3AR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT0AER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT1AER;

+	char           wk9[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ENB:8;

+			unsigned short :8;

+		} BIT;

+	} BCNT2AER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT3AER;

+};

+

+struct st_s12ad {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DBLANS:5;

+			unsigned short :1;

+			unsigned short GBADIE:1;

+			unsigned short DBLE:1;

+			unsigned short EXTRG:1;

+			unsigned short TRGE:1;

+			unsigned short ADHSC:1;

+			unsigned short :1;

+			unsigned short ADIE:1;

+			unsigned short ADCS:2;

+			unsigned short ADST:1;

+		} BIT;

+	} ADCSR;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSA0:1;

+			unsigned short ANSA1:1;

+			unsigned short ANSA2:1;

+			unsigned short ANSA3:1;

+			unsigned short ANSA4:1;

+			unsigned short :1;

+			unsigned short ANSA6:1;

+			unsigned short :1;

+			unsigned short ANSA8:1;

+			unsigned short ANSA9:1;

+			unsigned short ANSA10:1;

+			unsigned short ANSA11:1;

+			unsigned short ANSA12:1;

+			unsigned short ANSA13:1;

+			unsigned short ANSA14:1;

+			unsigned short ANSA15:1;

+		} BIT;

+	} ADANSA;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADS0:1;

+			unsigned short ADS1:1;

+			unsigned short ADS2:1;

+			unsigned short ADS3:1;

+			unsigned short ADS4:1;

+			unsigned short :1;

+			unsigned short ADS6:1;

+			unsigned short :1;

+			unsigned short ADS8:1;

+			unsigned short ADS9:1;

+			unsigned short ADS10:1;

+			unsigned short ADS11:1;

+			unsigned short ADS12:1;

+			unsigned short ADS13:1;

+			unsigned short ADS14:1;

+			unsigned short ADS15:1;

+		} BIT;

+	} ADADS;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ADC:2;

+			unsigned char :6;

+		} BIT;

+	} ADADC;

+	char           wk3[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ACE:1;

+			unsigned short :9;

+			unsigned short ADRFMT:1;

+		} BIT;

+	} ADCER;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRSB:4;

+			unsigned short :4;

+			unsigned short TRSA:4;

+			unsigned short :4;

+		} BIT;

+	} ADSTRGR;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :1;

+			unsigned short OCSAD:1;

+			unsigned short :6;

+			unsigned short TSS:1;

+			unsigned short OCS:1;

+			unsigned short :6;

+		} BIT;

+	} ADEXICR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSB0:1;

+			unsigned short ANSB1:1;

+			unsigned short ANSB2:1;

+			unsigned short ANSB3:1;

+			unsigned short ANSB4:1;

+			unsigned short :1;

+			unsigned short ANSB6:1;

+			unsigned short :1;

+			unsigned short ANSB8:1;

+			unsigned short ANSB9:1;

+			unsigned short ANSB10:1;

+			unsigned short ANSB11:1;

+			unsigned short ANSB12:1;

+			unsigned short ANSB13:1;

+			unsigned short ANSB14:1;

+			unsigned short ANSB15:1;

+		} BIT;

+	} ADANSB;

+	char           wk4[2];

+	unsigned short ADDBLDR;

+	unsigned short ADTSDR;

+	unsigned short ADOCDR;

+	char           wk5[2];

+	unsigned short ADDR0;

+	unsigned short ADDR1;

+	unsigned short ADDR2;

+	unsigned short ADDR3;

+	unsigned short ADDR4;

+	char           wk6[2];

+	unsigned short ADDR6;

+	char           wk7[2];

+	unsigned short ADDR8;

+	unsigned short ADDR9;

+	unsigned short ADDR10;

+	unsigned short ADDR11;

+	unsigned short ADDR12;

+	unsigned short ADDR13;

+	unsigned short ADDR14;

+	unsigned short ADDR15;

+	char           wk8[32];

+	unsigned char  ADSSTR0;

+	unsigned char  ADSSTRL;

+	char           wk9[14];

+	unsigned char  ADSSTRT;

+	unsigned char  ADSSTRO;

+	char           wk10[1];

+	unsigned char  ADSSTR1;

+	unsigned char  ADSSTR2;

+	unsigned char  ADSSTR3;

+	unsigned char  ADSSTR4;

+	char           wk11[1];

+	unsigned char  ADSSTR6;

+};

+

+struct st_sci1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKS:2;

+			unsigned char MP:1;

+			unsigned char STOP:1;

+			unsigned char PM:1;

+			unsigned char PE:1;

+			unsigned char CHR:1;

+			unsigned char CM:1;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKE:2;

+			unsigned char TEIE:1;

+			unsigned char MPIE:1;

+			unsigned char RE:1;

+			unsigned char TE:1;

+			unsigned char RIE:1;

+			unsigned char TIE:1;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MPBT:1;

+			unsigned char MPB:1;

+			unsigned char TEND:1;

+			unsigned char PER:1;

+			unsigned char FER:1;

+			unsigned char ORER:1;

+			unsigned char :2;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMIF:1;

+			unsigned char :1;

+			unsigned char SINV:1;

+			unsigned char SDIR:1;

+			unsigned char :3;

+			unsigned char BCP2:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char ABCS:1;

+			unsigned char NFEN:1;

+			unsigned char :1;

+			unsigned char RXDESEL:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFCS:3;

+			unsigned char :5;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICM:1;

+			unsigned char :2;

+			unsigned char IICDL:5;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICINTM:1;

+			unsigned char IICCSC:1;

+			unsigned char :3;

+			unsigned char IICACKT:1;

+			unsigned char :2;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSTAREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICSTIF:1;

+			unsigned char IICSDAS:2;

+			unsigned char IICSCLS:2;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICACKR:1;

+			unsigned char :7;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SSE:1;

+			unsigned char CTSE:1;

+			unsigned char MSS:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char CKPOL:1;

+			unsigned char CKPH:1;

+		} BIT;

+	} SPMR;

+};

+

+struct st_sci12 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKS:2;

+			unsigned char MP:1;

+			unsigned char STOP:1;

+			unsigned char PM:1;

+			unsigned char PE:1;

+			unsigned char CHR:1;

+			unsigned char CM:1;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKE:2;

+			unsigned char TEIE:1;

+			unsigned char MPIE:1;

+			unsigned char RE:1;

+			unsigned char TE:1;

+			unsigned char RIE:1;

+			unsigned char TIE:1;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MPBT:1;

+			unsigned char MPB:1;

+			unsigned char TEND:1;

+			unsigned char PER:1;

+			unsigned char FER:1;

+			unsigned char ORER:1;

+			unsigned char :2;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMIF:1;

+			unsigned char :1;

+			unsigned char SINV:1;

+			unsigned char SDIR:1;

+			unsigned char :3;

+			unsigned char BCP2:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :4;

+			unsigned char ABCS:1;

+			unsigned char NFEN:1;

+			unsigned char :1;

+			unsigned char RXDESEL:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char NFCS:3;

+			unsigned char :5;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICM:1;

+			unsigned char :2;

+			unsigned char IICDL:5;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICINTM:1;

+			unsigned char IICCSC:1;

+			unsigned char :3;

+			unsigned char IICACKT:1;

+			unsigned char :2;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSTAREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICSTIF:1;

+			unsigned char IICSDAS:2;

+			unsigned char IICSCLS:2;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICACKR:1;

+			unsigned char :7;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SSE:1;

+			unsigned char CTSE:1;

+			unsigned char MSS:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char CKPOL:1;

+			unsigned char CKPH:1;

+		} BIT;

+	} SPMR;

+	char           wk0[18];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ESME:1;

+			unsigned char :7;

+		} BIT;

+	} ESMER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SFSF:1;

+			unsigned char RXDSF:1;

+			unsigned char BRME:1;

+			unsigned char :4;

+		} BIT;

+	} CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BFE:1;

+			unsigned char CF0RE:1;

+			unsigned char CF1DS:2;

+			unsigned char PIBE:1;

+			unsigned char PIBS:3;

+		} BIT;

+	} CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DFCS:3;

+			unsigned char :1;

+			unsigned char BCCS:2;

+			unsigned char RTS:2;

+		} BIT;

+	} CR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SDST:1;

+			unsigned char :7;

+		} BIT;

+	} CR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TXDXPS:1;

+			unsigned char RXDXPS:1;

+			unsigned char :2;

+			unsigned char SHARPS:1;

+			unsigned char :3;

+		} BIT;

+	} PCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BFDIE:1;

+			unsigned char CF0MIE:1;

+			unsigned char CF1MIE:1;

+			unsigned char PIBDIE:1;

+			unsigned char BCDIE:1;

+			unsigned char AEDIE:1;

+			unsigned char :2;

+		} BIT;

+	} ICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BFDF:1;

+			unsigned char CF0MF:1;

+			unsigned char CF1MF:1;

+			unsigned char PIBDF:1;

+			unsigned char BCDF:1;

+			unsigned char AEDF:1;

+			unsigned char :2;

+		} BIT;

+	} STR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BFDCL:1;

+			unsigned char CF0MCL:1;

+			unsigned char CF1MCL:1;

+			unsigned char PIBDCL:1;

+			unsigned char BCDCL:1;

+			unsigned char AEDCL:1;

+			unsigned char :2;

+		} BIT;

+	} STCR;

+	unsigned char  CF0DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF0CE0:1;

+			unsigned char CF0CE1:1;

+			unsigned char CF0CE2:1;

+			unsigned char CF0CE3:1;

+			unsigned char CF0CE4:1;

+			unsigned char CF0CE5:1;

+			unsigned char CF0CE6:1;

+			unsigned char CF0CE7:1;

+		} BIT;

+	} CF0CR;

+	unsigned char  CF0RR;

+	unsigned char  PCF1DR;

+	unsigned char  SCF1DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF1CE0:1;

+			unsigned char CF1CE1:1;

+			unsigned char CF1CE2:1;

+			unsigned char CF1CE3:1;

+			unsigned char CF1CE4:1;

+			unsigned char CF1CE5:1;

+			unsigned char CF1CE6:1;

+			unsigned char CF1CE7:1;

+		} BIT;

+	} CF1CR;

+	unsigned char  CF1RR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCST:1;

+			unsigned char :7;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TOMS:2;

+			unsigned char :1;

+			unsigned char TWRC:1;

+			unsigned char TCSS:3;

+			unsigned char :1;

+		} BIT;

+	} TMR;

+	unsigned char  TPRE;

+	unsigned char  TCNT;

+};

+

+struct st_smci {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKS:2;

+			unsigned char BCP:2;

+			unsigned char PM:1;

+			unsigned char PE:1;

+			unsigned char BLK:1;

+			unsigned char GM:1;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKE:2;

+			unsigned char TEIE:1;

+			unsigned char MPIE:1;

+			unsigned char RE:1;

+			unsigned char TE:1;

+			unsigned char RIE:1;

+			unsigned char TIE:1;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MPBT:1;

+			unsigned char MPB:1;

+			unsigned char TEND:1;

+			unsigned char PER:1;

+			unsigned char ERS:1;

+			unsigned char ORER:1;

+			unsigned char :2;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMIF:1;

+			unsigned char :1;

+			unsigned char SINV:1;

+			unsigned char SDIR:1;

+			unsigned char :3;

+			unsigned char BCP2:1;

+		} BIT;

+	} SCMR;

+};

+

+struct st_system {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short MD:1;

+			unsigned short :15;

+		} BIT;

+	} MDMONR;

+	char           wk0[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RAME:1;

+			unsigned short :15;

+		} BIT;

+	} SYSCR1;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short SSBY:1;

+		} BIT;

+	} SBYCR;

+	char           wk2[2];

+	union {

+		unsigned long LONG;

+		struct {

+		    unsigned long :9;

+			unsigned long MSTPA9:1;

+			unsigned long :5;

+			unsigned long MSTPA15:1;

+			unsigned long :1;

+			unsigned long MSTPA17:1;

+			unsigned long :1;

+			unsigned long MSTPA19:1;

+			unsigned long :8;

+			unsigned long MSTPA28:1;

+			unsigned long :3;

+		} BIT;

+	} MSTPCRA;

+	union {

+		unsigned long LONG;

+		struct {

+		    unsigned long :4;

+			unsigned long MSTPB4:1;

+			unsigned long :1;

+			unsigned long MSTPB6:1;

+			unsigned long :2;

+			unsigned long MSTPB9:1;

+			unsigned long :7;

+			unsigned long MSTPB17:1;

+			unsigned long :1;

+			unsigned long MSTPB19:1;

+			unsigned long :1;

+			unsigned long MSTPB21:1;

+			unsigned long :1;

+			unsigned long MSTPB23:1;

+			unsigned long :2;

+			unsigned long MSTPB26:1;

+			unsigned long :3;

+			unsigned long MSTPB30:1;

+			unsigned long :1;

+		} BIT;

+	} MSTPCRB;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long MSTPC0:1;

+			unsigned long :18;

+			unsigned long MSTPC19:1;

+			unsigned long :11;

+			unsigned long DSLPE:1;

+		} BIT;

+	} MSTPCRC;

+	char           wk3[4];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long PCKD:4;

+			unsigned long :4;

+			unsigned long PCKB:4;

+			unsigned long :12;

+			unsigned long ICK:4;

+			unsigned long FCK:4;

+		} BIT;

+	} SCKCR;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKSEL:3;

+			unsigned short :5;

+		} BIT;

+	} SCKCR3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PLIDIV:2;

+			unsigned short :6;

+			unsigned short STC:6;

+			unsigned short :2;

+		} BIT;

+	} PLLCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PLLEN:1;

+			unsigned char :7;

+		} BIT;

+	} PLLCR2;

+	char           wk5[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MOSTP:1;

+			unsigned char :7;

+		} BIT;

+	} MOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SOSTP:1;

+			unsigned char :7;

+		} BIT;

+	} SOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LCSTP:1;

+			unsigned char :7;

+		} BIT;

+	} LOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ILCSTP:1;

+			unsigned char :7;

+		} BIT;

+	} ILOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HCSTP:1;

+			unsigned char :7;

+		} BIT;

+	} HOCOCR;

+	char           wk6[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MOOVF:1;

+			unsigned char :1;

+			unsigned char PLOVF:1;

+			unsigned char HCOVF:1;

+			unsigned char :4;

+		} BIT;

+	} OSCOVFSR;

+	char           wk7[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKOSEL:3;

+			unsigned short :1;

+			unsigned short CKODIV:3;

+			unsigned short CKOSTP:1;

+		} BIT;

+	} CKOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OSTDIE:1;

+			unsigned char :6;

+			unsigned char OSTDE:1;

+		} BIT;

+	} OSTDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OSTDF:1;

+			unsigned char :7;

+		} BIT;

+	} OSTDSR;

+	char           wk8[94];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OPCM:3;

+			unsigned char :1;

+			unsigned char OPCMTSF:1;

+			unsigned char :3;

+		} BIT;

+	} OPCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTCKSEL:3;

+			unsigned char :4;

+			unsigned char RSTCKEN:1;

+		} BIT;

+	} RSTCKCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MSTS:5;

+			unsigned char :3;

+		} BIT;

+	} MOSCWTCR;

+	char           wk9[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SOPCM:1;

+			unsigned char :3;

+			unsigned char SOPCMTSF:1;

+			unsigned char :3;

+		} BIT;

+	} SOPCCR;

+	char           wk10[21];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IWDTRF:1;

+			unsigned char :1;

+			unsigned char SWRF:1;

+			unsigned char :5;

+		} BIT;

+	} RSTSR2;

+	char           wk11[1];

+	unsigned short SWRR;

+	char           wk12[28];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1IDTSEL:2;

+			unsigned char LVD1IRQSEL:1;

+			unsigned char :5;

+		} BIT;

+	} LVD1CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1DET:1;

+			unsigned char LVD1MON:1;

+			unsigned char :6;

+		} BIT;

+	} LVD1SR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2IDTSEL:2;

+			unsigned char LVD2IRQSEL:1;

+			unsigned char :5;

+		} BIT;

+	} LVD2CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2DET:1;

+			unsigned char LVD2MON:1;

+			unsigned char :6;

+		} BIT;

+	} LVD2SR;

+	char           wk13[794];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PRC0:1;

+			unsigned short PRC1:1;

+			unsigned short :1;

+			unsigned short PRC3:1;

+			unsigned short :4;

+			unsigned short PRKEY:8;

+		} BIT;

+	} PRCR;

+	char           wk14[48784];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PORF:1;

+			unsigned char :1;

+			unsigned char LVD1RF:1;

+			unsigned char LVD2RF:1;

+			unsigned char :4;

+		} BIT;

+	} RSTSR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CWSF:1;

+			unsigned char :7;

+		} BIT;

+	} RSTSR1;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MODRV21:1;

+			unsigned char MOSEL:1;

+			unsigned char :1;

+		} BIT;

+	} MOFCR;

+	char           wk16[3];

+	union {

+		unsigned char BYTE;

+		struct {

+		    unsigned char :3;

+			unsigned char EXVCCINP2:1;

+			unsigned char :1;

+			unsigned char LVD1E:1;

+			unsigned char LVD2E:1;

+			unsigned char :1;

+		} BIT;

+	} LVCMPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1LVL:4;

+			unsigned char LVD2LVL:2;

+			unsigned char :2;

+		} BIT;

+	} LVDLVLR;

+	char           wk17[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1RIE:1;

+			unsigned char :1;

+			unsigned char LVD1CMPE:1;

+			unsigned char :3;

+			unsigned char LVD1RI:1;

+			unsigned char LVD1RN:1;

+		} BIT;

+	} LVD1CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2RIE:1;

+			unsigned char :1;

+			unsigned char LVD2CMPE:1;

+			unsigned char :3;

+			unsigned char LVD2RI:1;

+			unsigned char LVD2RN:1;

+		} BIT;

+	} LVD2CR0;

+};

+

+struct st_usb {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short USBE:1;

+			unsigned short :3;

+			unsigned short DPRPU:1;

+			unsigned short DRPD:1;

+			unsigned short DCFM:1;

+			unsigned short :1;

+			unsigned short CNEN:1;

+			unsigned short :1;

+			unsigned short SCKE:1;

+			unsigned short :5;

+		} BIT;

+	} SYSCFG;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short LNST:2;

+			unsigned short IDMON:1;

+			unsigned short :3;

+			unsigned short HTACT:1;

+			unsigned short :7;

+			unsigned short OVCMON:2;

+		} BIT;

+	} SYSSTS0;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RHST:3;

+			unsigned short :1;

+			unsigned short UACT:1;

+			unsigned short RESUME:1;

+			unsigned short USBRST:1;

+			unsigned short RWUPE:1;

+			unsigned short WKUP:1;

+			unsigned short VBUSEN:1;

+			unsigned short EXICEN:1;

+			unsigned short HNPBTOA:1;

+			unsigned short :4;

+		} BIT;

+	} DVSTCTR0;

+	char           wk2[10];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} CFIFO;

+	char           wk3[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D0FIFO;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D1FIFO;

+	char           wk5[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CURPIPE:4;

+			unsigned short :1;

+			unsigned short ISEL:1;

+			unsigned short :2;

+			unsigned short BIGEND:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :3;

+			unsigned short REW:1;

+			unsigned short RCNT:1;

+		} BIT;

+	} CFIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DTLN:9;

+			unsigned short :4;

+			unsigned short FRDY:1;

+			unsigned short BCLR:1;

+			unsigned short BVAL:1;

+		} BIT;

+	} CFIFOCTR;

+	char           wk6[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CURPIPE:4;

+			unsigned short :4;

+			unsigned short BIGEND:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short DREQE:1;

+			unsigned short DCLRM:1;

+			unsigned short REW:1;

+			unsigned short RCNT:1;

+		} BIT;

+	} D0FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DTLN:9;

+			unsigned short :4;

+			unsigned short FRDY:1;

+			unsigned short BCLR:1;

+			unsigned short BVAL:1;

+		} BIT;

+	} D0FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CURPIPE:4;

+			unsigned short :4;

+			unsigned short BIGEND:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short DREQE:1;

+			unsigned short DCLRM:1;

+			unsigned short REW:1;

+			unsigned short RCNT:1;

+		} BIT;

+	} D1FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DTLN:9;

+			unsigned short :4;

+			unsigned short FRDY:1;

+			unsigned short BCLR:1;

+			unsigned short BVAL:1;

+		} BIT;

+	} D1FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BRDYE:1;

+			unsigned short NRDYE:1;

+			unsigned short BEMPE:1;

+			unsigned short CTRE:1;

+			unsigned short DVSE:1;

+			unsigned short SOFE:1;

+			unsigned short RSME:1;

+			unsigned short VBSE:1;

+		} BIT;

+	} INTENB0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PDDETINTE0:1;

+			unsigned short :3;

+			unsigned short SACKE:1;

+			unsigned short SIGNE:1;

+			unsigned short EOFERRE:1;

+			unsigned short :4;

+			unsigned short ATTCHE:1;

+			unsigned short DTCHE:1;

+			unsigned short :1;

+			unsigned short BCHGE:1;

+			unsigned short OVRCRE:1;

+		} BIT;

+	} INTENB1;

+	char           wk7[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0BRDYE:1;

+			unsigned short PIPE1BRDYE:1;

+			unsigned short PIPE2BRDYE:1;

+			unsigned short PIPE3BRDYE:1;

+			unsigned short PIPE4BRDYE:1;

+			unsigned short PIPE5BRDYE:1;

+			unsigned short PIPE6BRDYE:1;

+			unsigned short PIPE7BRDYE:1;

+			unsigned short PIPE8BRDYE:1;

+			unsigned short PIPE9BRDYE:1;

+			unsigned short :6;

+		} BIT;

+	} BRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0NRDYE:1;

+			unsigned short PIPE1NRDYE:1;

+			unsigned short PIPE2NRDYE:1;

+			unsigned short PIPE3NRDYE:1;

+			unsigned short PIPE4NRDYE:1;

+			unsigned short PIPE5NRDYE:1;

+			unsigned short PIPE6NRDYE:1;

+			unsigned short PIPE7NRDYE:1;

+			unsigned short PIPE8NRDYE:1;

+			unsigned short PIPE9NRDYE:1;

+			unsigned short :6;

+		} BIT;

+	} NRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0BEMPE:1;

+			unsigned short PIPE1BEMPE:1;

+			unsigned short PIPE2BEMPE:1;

+			unsigned short PIPE3BEMPE:1;

+			unsigned short PIPE4BEMPE:1;

+			unsigned short PIPE5BEMPE:1;

+			unsigned short PIPE6BEMPE:1;

+			unsigned short PIPE7BEMPE:1;

+			unsigned short PIPE8BEMPE:1;

+			unsigned short PIPE9BEMPE:1;

+			unsigned short :6;

+		} BIT;

+	} BEMPENB;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :4;   /* FIXME: Double check pad bits here*/

+			unsigned short EDGESTS:1;

+			unsigned short :1;

+			unsigned short BRDYM:1;

+			unsigned short :1;

+			unsigned short TRNENSEL:1;

+			unsigned short :7;

+		} BIT;

+	} SOFCFG;

+	char           wk8[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CTSQ:3;

+			unsigned short VALID:1;

+			unsigned short DVSQ:3;

+			unsigned short VBSTS:1;

+			unsigned short BRDY:1;

+			unsigned short NRDY:1;

+			unsigned short BEMP:1;

+			unsigned short CTRT:1;

+			unsigned short DVST:1;

+			unsigned short SOFR:1;

+			unsigned short RESM:1;

+			unsigned short VBINT:1;

+		} BIT;

+	} INTSTS0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PDDETINT0:1;

+			unsigned short :3;

+			unsigned short SACK:1;

+			unsigned short SIGN:1;

+			unsigned short EOFERR:1;

+			unsigned short :4;

+			unsigned short ATTCH:1;

+			unsigned short DTCH:1;

+			unsigned short :1;

+			unsigned short BCHG:1;

+			unsigned short OVRCR:1;

+		} BIT;

+	} INTSTS1;

+	char           wk9[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0BRDY:1;

+			unsigned short PIPE1BRDY:1;

+			unsigned short PIPE2BRDY:1;

+			unsigned short PIPE3BRDY:1;

+			unsigned short PIPE4BRDY:1;

+			unsigned short PIPE5BRDY:1;

+			unsigned short PIPE6BRDY:1;

+			unsigned short PIPE7BRDY:1;

+			unsigned short PIPE8BRDY:1;

+			unsigned short PIPE9BRDY:1;

+			unsigned short :6;

+		} BIT;

+	} BRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0NRDY:1;

+			unsigned short PIPE1NRDY:1;

+			unsigned short PIPE2NRDY:1;

+			unsigned short PIPE3NRDY:1;

+			unsigned short PIPE4NRDY:1;

+			unsigned short PIPE5NRDY:1;

+			unsigned short PIPE6NRDY:1;

+			unsigned short PIPE7NRDY:1;

+			unsigned short PIPE8NRDY:1;

+			unsigned short PIPE9NRDY:1;

+			unsigned short :6;

+		} BIT;

+	} NRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPE0BEMP:1;

+			unsigned short PIPE1BEMP:1;

+			unsigned short PIPE2BEMP:1;

+			unsigned short PIPE3BEMP:1;

+			unsigned short PIPE4BEMP:1;

+			unsigned short PIPE5BEMP:1;

+			unsigned short PIPE6BEMP:1;

+			unsigned short PIPE7BEMP:1;

+			unsigned short PIPE8BEMP:1;

+			unsigned short PIPE9BEMP:1;

+			unsigned short :6;

+		} BIT;

+	} BEMPSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FRNM:11;

+			unsigned short :3;

+			unsigned short CRCE:1;

+			unsigned short OVRN:1;

+		} BIT;

+	} FRMNUM;

+	char           wk10[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BMREQUESTTYPE:8;

+			unsigned short BREQUEST:8;

+		} BIT;

+	} USBREQ;

+	unsigned short USBVAL;

+	unsigned short USBINDX;

+	unsigned short USBLENG;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :4;   /* FIXME: Double check pad bits here.  */

+			unsigned short DIR:1;

+			unsigned short :2;

+			unsigned short SHTNAK:1;

+			unsigned short :8;

+		} BIT;

+	} DCPCFG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short MXPS:7;

+			unsigned short :5;

+			unsigned short DEVSEL:4;

+		} BIT;

+	} DCPMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short CCPL:1;

+			unsigned short :2;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short :2;

+			unsigned short SUREQCLR:1;

+			unsigned short :2;

+			unsigned short SUREQ:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} DCPCTR;

+	char           wk11[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PIPESEL:4;

+			unsigned short :12;

+		} BIT;

+	} PIPESEL;

+	char           wk12[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short EPNUM:4;

+			unsigned short DIR:1;

+			unsigned short :2;

+			unsigned short SHTNAK:1;

+			unsigned short :1;

+			unsigned short DBLB:1;

+			unsigned short BFRE:1;

+			unsigned short :3;

+			unsigned short TYPE:2;

+		} BIT;

+	} PIPECFG;

+	char           wk13[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short MXPS:9;

+			unsigned short :3;

+			unsigned short DEVSEL:4;

+		} BIT;

+	} PIPEMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short IITV:3;

+			unsigned short :9;

+			unsigned short IFIS:1;

+			unsigned short :3;

+		} BIT;

+	} PIPEPERI;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short ATREPM:1;

+			unsigned short :3;

+			unsigned short INBUFM:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE1CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short ATREPM:1;

+			unsigned short :3;

+			unsigned short INBUFM:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE2CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short ATREPM:1;

+			unsigned short :3;

+			unsigned short INBUFM:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE3CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short ATREPM:1;

+			unsigned short :3;

+			unsigned short INBUFM:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE4CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short ATREPM:1;

+			unsigned short :3;

+			unsigned short INBUFM:1;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE5CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short :5;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE6CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short :5;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE7CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short :5;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE8CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PID:2;

+			unsigned short :3;

+			unsigned short PBUSY:1;

+			unsigned short SQMON:1;

+			unsigned short SQSET:1;

+			unsigned short SQCLR:1;

+			unsigned short ACLRM:1;

+			unsigned short :5;

+			unsigned short BSTS:1;

+		} BIT;

+	} PIPE9CTR;

+	char           wk14[14];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRCLR:1;

+			unsigned short TRENB:1;

+			unsigned short :6;

+		} BIT;

+	} PIPE1TRE;

+	unsigned short PIPE1TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRCLR:1;

+			unsigned short TRENB:1;

+			unsigned short :6;

+		} BIT;

+	} PIPE2TRE;

+	unsigned short PIPE2TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRCLR:1;

+			unsigned short TRENB:1;

+			unsigned short :6;

+		} BIT;

+	} PIPE3TRE;

+	unsigned short PIPE3TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRCLR:1;

+			unsigned short TRENB:1;

+			unsigned short :6;

+		} BIT;

+	} PIPE4TRE;

+	unsigned short PIPE4TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TRCLR:1;

+			unsigned short TRENB:1;

+			unsigned short :6;

+		} BIT;

+	} PIPE5TRE;

+	unsigned short PIPE5TRN;

+	char           wk15[12];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RPDME0:1;

+			unsigned short IDPSRCE0:1;

+			unsigned short IDMSINKE0:1;

+			unsigned short VDPSRCE0:1;

+			unsigned short IDPSINKE0:1;

+			unsigned short VDMSRCE0:1;

+			unsigned short DCPMODE0:1;

+			unsigned short BATCHGE0:1;

+			unsigned short CHGDETSTS0:1;

+			unsigned short PDDETSTS0:1;

+			unsigned short :6;

+		} BIT;

+	} USBBCCTRL0;

+	char           wk16[26];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VDDUSBE:1;

+			unsigned short :6;

+			unsigned short VBRPDCUT:1;

+			unsigned short :8;

+		} BIT;

+	} USBMC;

+	char           wk17[2];

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD0;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD1;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD2;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD3;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD4;

+	union {

+		unsigned short WORD;

+		struct {

+		    unsigned short :6;  /* FIXME: Double check pad bits here.  */

+			unsigned short USBSPD:2;

+			unsigned short :8;

+		} BIT;

+	} DEVADD5;

+};

+

+#elif __RX_BIG_ENDIAN__		/*Big endian*/

+

+struct st_bsc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char STSCLR:1;

+		} BIT;

+	} BERCLR;

+	char           wk0[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IGAEN:1;

+		} BIT;

+	} BEREN;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MST:3;

+			unsigned char :3;

+			unsigned char IA:1;

+		} BIT;

+	} BERSR1;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADDR:13;

+		} BIT;

+	} BERSR2;

+	char           wk3[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short BPFB:2;

+			unsigned short :2;

+			unsigned short BPGB:2;

+			unsigned short BPIB:2;

+			unsigned short BPRO:2;

+			unsigned short BPRA:2;

+		} BIT;

+	} BUSPRI;

+};

+

+struct st_cac {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CFME:1;

+		} BIT;

+	} CACR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char EDGES:2;

+			unsigned char TCSS:2;

+			unsigned char FMCS:3;

+			unsigned char CACREFE:1;

+		} BIT;

+	} CACR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DFS:2;

+			unsigned char RCDS:2;

+			unsigned char RSCS:3;

+			unsigned char RPS:1;

+		} BIT;

+	} CACR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char OVFFCL:1;

+			unsigned char MENDFCL:1;

+			unsigned char FERRFCL:1;

+			unsigned char :1;

+			unsigned char OVFIE:1;

+			unsigned char MENDIE:1;

+			unsigned char FERRIE:1;

+		} BIT;

+	} CAICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char OVFF:1;

+			unsigned char MENDF:1;

+			unsigned char FERRF:1;

+		} BIT;

+	} CASTR;

+	char           wk0[1];

+	unsigned short CAULVR;

+	unsigned short CALLVR;

+	unsigned short CACNTBR;

+};

+

+struct st_cmt {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :14;

+			unsigned short STR1:1;

+			unsigned short STR0:1;

+		} BIT;

+	} CMSTR0;

+};

+

+struct st_cmt0 {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :9;

+			unsigned short CMIE:1;

+			unsigned short :4;

+			unsigned short CKS:2;

+		} BIT;

+	} CMCR;

+	unsigned short CMCNT;

+	unsigned short CMCOR;

+};

+

+struct st_crc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DORCLR:1;

+			unsigned char :4;

+			unsigned char LMS:1;

+			unsigned char GPS:2;

+		} BIT;

+	} CRCCR;

+	unsigned char  CRCDIR;

+	unsigned short CRCDOR;

+};

+

+struct st_da {

+	unsigned short DADR0;

+	unsigned short DADR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAOE1:1;

+			unsigned char DAOE0:1;

+		} BIT;

+	} DACR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DPSEL:1;

+		} BIT;

+	} DADPR;

+};

+

+struct st_doc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char DOPCFCL:1;

+			unsigned char DOPCF:1;

+			unsigned char DOPCIE:1;

+			unsigned char :1;

+			unsigned char DCSEL:1;

+			unsigned char OMS:2;

+		} BIT;

+	} DOCR;

+	char           wk0[1];

+	unsigned short DODIR;

+	unsigned short DODSR;

+};

+

+struct st_dtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char RRS:1;

+		} BIT;

+	} DTCCR;

+	char           wk0[3];

+	void          *DTCVBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SHORT:1;

+		} BIT;

+	} DTCADMOD;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCST:1;

+		} BIT;

+	} DTCST;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ACT:1;

+			unsigned short :7;

+			unsigned short VECN:8;

+		} BIT;

+	} DTCSTS;

+};

+

+struct st_elc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELCON:1;

+		} BIT;

+	} ELCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELS:8;

+		} BIT;

+	} ELSR[26];

+	char           wk0[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTU3MD:2;

+			unsigned char MTU2MD:2;

+			unsigned char MTU1MD:2;

+		} BIT;

+	} ELOPA;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char MTU4MD:2;

+		} BIT;

+	} ELOPB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char CMT1MD:2;

+		} BIT;

+	} ELOPC;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PGR7:1;

+			unsigned char PGR6:1;

+			unsigned char PGR5:1;

+			unsigned char PGR4:1;

+			unsigned char PGR3:1;

+			unsigned char PGR2:1;

+			unsigned char PGR1:1;

+			unsigned char PGR0:1;

+		} BIT;

+	} PGR1;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PGCO:3;

+			unsigned char :1;

+			unsigned char PGCOVE:1;

+			unsigned char PGCI:2;

+		} BIT;

+	} PGC1;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PDBF7:1;

+			unsigned char PDBF6:1;

+			unsigned char PDBF5:1;

+			unsigned char PDBF4:1;

+			unsigned char PDBF3:1;

+			unsigned char PDBF2:1;

+			unsigned char PDBF1:1;

+			unsigned char PDBF0:1;

+		} BIT;

+	} PDBF1;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL1;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char WI:1;

+			unsigned char WE:1;

+			unsigned char :5;

+			unsigned char SEG:1;

+		} BIT;

+	} ELSEGR;

+};

+

+struct st_flash {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DFLEN:1;

+		} BIT;

+	} DFLCTL;

+};

+

+struct st_icu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IR:1;

+		} BIT;

+	} IR[250];

+	char           wk0[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCE:1;

+		} BIT;

+	} DTCER[249];

+	char           wk1[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IEN7:1;

+			unsigned char IEN6:1;

+			unsigned char IEN5:1;

+			unsigned char IEN4:1;

+			unsigned char IEN3:1;

+			unsigned char IEN2:1;

+			unsigned char IEN1:1;

+			unsigned char IEN0:1;

+		} BIT;

+	} IER[32];

+	char           wk2[192];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SWINT:1;

+		} BIT;

+	} SWINTR;

+	char           wk3[15];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FIEN:1;

+			unsigned short :7;

+			unsigned short FVCT:8;

+		} BIT;

+	} FIR;

+	char           wk4[14];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IPR:4;

+		} BIT;

+	} IPR[250];

+	char           wk5[262];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IRQMD:2;

+		} BIT;

+	} IRQCR[8];

+	char           wk6[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FLTEN7:1;

+			unsigned char FLTEN6:1;

+			unsigned char FLTEN5:1;

+			unsigned char FLTEN4:1;

+			unsigned char FLTEN3:1;

+			unsigned char FLTEN2:1;

+			unsigned char FLTEN1:1;

+			unsigned char FLTEN0:1;

+		} BIT;

+	} IRQFLTE0;

+	char           wk7[3];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FCLKSEL7:2;

+			unsigned short FCLKSEL6:2;

+			unsigned short FCLKSEL5:2;

+			unsigned short FCLKSEL4:2;

+			unsigned short FCLKSEL3:2;

+			unsigned short FCLKSEL2:2;

+			unsigned short FCLKSEL1:2;

+			unsigned short FCLKSEL0:2;

+		} BIT;

+	} IRQFLTC0;

+	char           wk8[106];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2ST:1;

+			unsigned char LVD1ST:1;

+			unsigned char IWDTST:1;

+			unsigned char :1;

+			unsigned char OSTST:1;

+			unsigned char NMIST:1;

+		} BIT;

+	} NMISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2EN:1;

+			unsigned char LVD1EN:1;

+			unsigned char IWDTEN:1;

+			unsigned char :1;

+			unsigned char OSTEN:1;

+			unsigned char NMIEN:1;

+		} BIT;

+	} NMIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2CLR:1;

+			unsigned char LVD1CLR:1;

+			unsigned char IWDTCLR:1;

+			unsigned char :1;

+			unsigned char OSTCLR:1;

+			unsigned char NMICLR:1;

+		} BIT;

+	} NMICLR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char NMIMD:1;

+		} BIT;

+	} NMICR;

+	char           wk9[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char NFLTEN:1;

+		} BIT;

+	} NMIFLTE;

+	char           wk10[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char NFCLKSEL:2;

+		} BIT;

+	} NMIFLTC;

+};

+

+struct st_iwdt {

+	unsigned char  IWDTRR;

+	char           wk0[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short RPSS:2;

+			unsigned short :2;

+			unsigned short RPES:2;

+			unsigned short CKS:4;

+			unsigned short :2;

+			unsigned short TOPS:2;

+		} BIT;

+	} IWDTCR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short REFEF:1;

+			unsigned short UNDFF:1;

+			unsigned short CNTVAL:14;

+		} BIT;

+	} IWDTSR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTIRQS:1;

+		} BIT;

+	} IWDTRCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SLCSTP:1;

+		} BIT;

+	} IWDTCSTPR;

+};

+

+struct st_mpc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0WI:1;

+			unsigned char PFSWE:1;

+		} BIT;

+	} PWPR;

+	char           wk0[35];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P03PFS;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P05PFS;

+	char           wk2[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P14PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P15PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P16PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P17PFS;

+	char           wk3[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P26PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P27PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P30PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P31PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P32PFS;

+	char           wk4[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+		} BIT;

+	} P35PFS;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P40PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P41PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P42PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P43PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P44PFS;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P46PFS;

+	char           wk7[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P54PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P55PFS;

+	char           wk8[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA1PFS;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA4PFS;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA6PFS;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB1PFS;

+	char           wk12[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB3PFS;

+	char           wk13[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB7PFS;

+	char           wk14[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC7PFS;

+	char           wk15[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE1PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE7PFS;

+	char           wk16[30];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ7PFS;

+};

+

+struct st_mtu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OE4D:1;

+			unsigned char OE4C:1;

+			unsigned char OE3D:1;

+			unsigned char OE4B:1;

+			unsigned char OE4A:1;

+			unsigned char OE3B:1;

+		} BIT;

+	} TOER;

+	char           wk0[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BDC:1;

+			unsigned char N:1;

+			unsigned char P:1;

+			unsigned char FB:1;

+			unsigned char WF:1;

+			unsigned char VF:1;

+			unsigned char UF:1;

+		} BIT;

+	} TGCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSYE:1;

+			unsigned char :2;

+			unsigned char TOCL:1;

+			unsigned char TOCS:1;

+			unsigned char OLSN:1;

+			unsigned char OLSP:1;

+		} BIT;

+	} TOCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BF:2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOCR2;

+	char           wk1[4];

+	unsigned short TCDR;

+	unsigned short TDDR;

+	char           wk2[8];

+	unsigned short TCNTS;

+	unsigned short TCBR;

+	char           wk3[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char T3AEN:1;

+			unsigned char T3ACOR:3;

+			unsigned char T4VEN:1;

+			unsigned char T4VCOR:3;

+		} BIT;

+	} TITCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char T3ACNT:3;

+			unsigned char :1;

+			unsigned char T4VCNT:3;

+		} BIT;

+	} TITCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char BTE:2;

+		} BIT;

+	} TBTER;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TDER:1;

+		} BIT;

+	} TDER;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOLBR;

+	char           wk6[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCE:1;

+			unsigned char :6;

+			unsigned char WRE:1;

+		} BIT;

+	} TWCR;

+	char           wk7[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CST4:1;

+			unsigned char CST3:1;

+			unsigned char :3;

+			unsigned char CST2:1;

+			unsigned char CST1:1;

+			unsigned char CST0:1;

+		} BIT;

+	} TSTR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SYNC4:1;

+			unsigned char SYNC3:1;

+			unsigned char :3;

+			unsigned char SYNC2:1;

+			unsigned char SYNC1:1;

+			unsigned char SYNC0:1;

+		} BIT;

+	} TSYR;

+	char           wk8[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char RWE:1;

+		} BIT;

+	} TRWER;

+};

+

+struct st_mtu0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[111];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BFE:1;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk1[16];

+	unsigned short TGRE;

+	unsigned short TGRF;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TGIEF:1;

+			unsigned char TGIEE:1;

+		} BIT;

+	} TIER2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+};

+

+struct st_mtu1 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[238];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk3[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char I2BE:1;

+			unsigned char I2AE:1;

+			unsigned char I1BE:1;

+			unsigned char I1AE:1;

+		} BIT;

+	} TICCR;

+};

+

+struct st_mtu2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[365];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+};

+

+struct st_mtu3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk3[7];

+	unsigned short TCNT;

+	char           wk4[6];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk5[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk6[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk8[90];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu4 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char TTGE2:1;

+			unsigned char :1;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk4[8];

+	unsigned short TCNT;

+	char           wk5[8];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk6[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk8[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk9[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BF:2;

+			unsigned short :6;

+			unsigned short UT4AE:1;

+			unsigned short DT4AE:1;

+			unsigned short UT4BE:1;

+			unsigned short DT4BE:1;

+			unsigned short ITA3AE:1;

+			unsigned short ITA4VE:1;

+			unsigned short ITB3AE:1;

+			unsigned short ITB4VE:1;

+		} BIT;

+	} TADCR;

+	char           wk10[2];

+	unsigned short TADCORA;

+	unsigned short TADCORB;

+	unsigned short TADCOBRA;

+	unsigned short TADCOBRB;

+	char           wk11[72];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu5 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char :1;

+			unsigned char NFWEN:1;

+			unsigned char NFVEN:1;

+			unsigned char NFUEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[490];

+	unsigned short TCNTU;

+	unsigned short TGRU;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRU;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORU;

+	char           wk3[9];

+	unsigned short TCNTV;

+	unsigned short TGRV;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRV;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORV;

+	char           wk5[9];

+	unsigned short TCNTW;

+	unsigned short TGRW;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRW;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORW;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TGIE5U:1;

+			unsigned char TGIE5V:1;

+			unsigned char TGIE5W:1;

+		} BIT;

+	} TIER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CSTU5:1;

+			unsigned char CSTV5:1;

+			unsigned char CSTW5:1;

+		} BIT;

+	} TSTR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CMPCLR5U:1;

+			unsigned char CMPCLR5V:1;

+			unsigned char CMPCLR5W:1;

+		} BIT;

+	} TCNTCMPCLR;

+};

+

+struct st_poe {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char POE3F:1;

+			unsigned char POE2F:1;

+			unsigned char POE1F:1;

+			unsigned char POE0F:1;

+			unsigned char :3;

+			unsigned char PIE1:1;

+			unsigned char POE3M:2;

+			unsigned char POE2M:2;

+			unsigned char POE1M:2;

+			unsigned char POE0M:2;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char OSF1:1;

+			unsigned char :5;

+			unsigned char OCE1:1;

+			unsigned char OIE1:1;

+		} BIT;

+	} OCSR1;

+	char           wk0[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char POE8F:1;

+			unsigned char :2;

+			unsigned char POE8E:1;

+			unsigned char PIE2:1;

+			unsigned char :6;

+			unsigned char POE8M:2;

+		} BIT;

+	} ICSR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char CH0HIZ:1;

+			unsigned char CH34HIZ:1;

+		} BIT;

+	} SPOER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PE3ZE:1;

+			unsigned char PE2ZE:1;

+			unsigned char PE1ZE:1;

+			unsigned char PE0ZE:1;

+		} BIT;

+	} POECR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char P1CZEA:1;

+			unsigned char P2CZEA:1;

+			unsigned char P3CZEA:1;

+		} BIT;

+	} POECR2;

+	char           wk1[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OSTSTF:1;

+			unsigned char :2;

+			unsigned char OSTSTE:1;

+		} BIT;

+	} ICSR3;

+};

+

+struct st_port {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char PSEL5:1;

+			unsigned char :1;

+			unsigned char PSEL3:1;

+			unsigned char :1;

+			unsigned char PSEL1:1;

+			unsigned char PSEL0:1;

+		} BIT;

+	} PSRB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL7:1;

+			unsigned char PSEL6:1;

+		} BIT;

+	} PSRA;

+};

+

+struct st_port0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[33];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[61];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR1;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port4 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+};

+

+struct st_port5 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porta {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :3;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[52];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[42];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+		} BIT;

+	} ODR1;

+	char           wk4[51];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PMR;

+	char           wk3[43];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[50];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porte {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[45];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[48];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_riic {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ICE:1;

+			unsigned char IICRST:1;

+			unsigned char CLO:1;

+			unsigned char SOWP:1;

+			unsigned char SCLO:1;

+			unsigned char SDAO:1;

+			unsigned char SCLI:1;

+			unsigned char SDAI:1;

+		} BIT;

+	} ICCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BBSY:1;

+			unsigned char MST:1;

+			unsigned char TRS:1;

+			unsigned char :1;

+			unsigned char SP:1;

+			unsigned char RS:1;

+			unsigned char ST:1;

+		} BIT;

+	} ICCR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTWP:1;

+			unsigned char CKS:3;

+			unsigned char BCWP:1;

+			unsigned char BC:3;

+		} BIT;

+	} ICMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DLCS:1;

+			unsigned char SDDL:3;

+			unsigned char TMWE:1;

+			unsigned char TMOH:1;

+			unsigned char TMOL:1;

+			unsigned char TMOS:1;

+		} BIT;

+	} ICMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMBS:1;

+			unsigned char WAIT:1;

+			unsigned char RDRFS:1;

+			unsigned char ACKWP:1;

+			unsigned char ACKBT:1;

+			unsigned char ACKBR:1;

+			unsigned char NF:2;

+		} BIT;

+	} ICMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SCLE:1;

+			unsigned char NFE:1;

+			unsigned char NACKE:1;

+			unsigned char SALE:1;

+			unsigned char NALE:1;

+			unsigned char MALE:1;

+			unsigned char TMOE:1;

+		} BIT;

+	} ICFER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOAE:1;

+			unsigned char :1;

+			unsigned char DIDE:1;

+			unsigned char :1;

+			unsigned char GCAE:1;

+			unsigned char SAR2E:1;

+			unsigned char SAR1E:1;

+			unsigned char SAR0E:1;

+		} BIT;

+	} ICSER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char TEIE:1;

+			unsigned char RIE:1;

+			unsigned char NAKIE:1;

+			unsigned char SPIE:1;

+			unsigned char STIE:1;

+			unsigned char ALIE:1;

+			unsigned char TMOIE:1;

+		} BIT;

+	} ICIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOA:1;

+			unsigned char :1;

+			unsigned char DID:1;

+			unsigned char :1;

+			unsigned char GCA:1;

+			unsigned char AAS2:1;

+			unsigned char AAS1:1;

+			unsigned char AAS0:1;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TDRE:1;

+			unsigned char TEND:1;

+			unsigned char RDRF:1;

+			unsigned char NACKF:1;

+			unsigned char STOP:1;

+			unsigned char START:1;

+			unsigned char AL:1;

+			unsigned char TMOF:1;

+		} BIT;

+	} ICSR2;

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char SVA:7;

+				unsigned char SVA0:1;

+			} BIT;

+		} SARL0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTL;

+	};

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char :5;

+				unsigned char SVA:2;

+				unsigned char FS:1;

+			} BIT;

+		} SARU0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTH;

+	};

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRL:5;

+		} BIT;

+	} ICBRL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRH:5;

+		} BIT;

+	} ICBRH;

+	unsigned char  ICDRT;

+	unsigned char  ICDRR;

+};

+

+struct st_rspi {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPRIE:1;

+			unsigned char SPE:1;

+			unsigned char SPTIE:1;

+			unsigned char SPEIE:1;

+			unsigned char MSTR:1;

+			unsigned char MODFEN:1;

+			unsigned char TXMD:1;

+			unsigned char SPMS:1;

+		} BIT;

+	} SPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char SSL3P:1;

+			unsigned char SSL2P:1;

+			unsigned char SSL1P:1;

+			unsigned char SSL0P:1;

+		} BIT;

+	} SSLP;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char MOIFE:1;

+			unsigned char MOIFV:1;

+			unsigned char :2;

+			unsigned char SPLP2:1;

+			unsigned char SPLP:1;

+		} BIT;

+	} SPPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PERF:1;

+			unsigned char MODF:1;

+			unsigned char IDLNF:1;

+			unsigned char OVRF:1;

+		} BIT;

+	} SPSR;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned short H;

+		} WORD;

+	} SPDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPSLN:3;

+		} BIT;

+	} SPSCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SPECM:3;

+			unsigned char :1;

+			unsigned char SPCP:3;

+		} BIT;

+	} SPSSR;

+	unsigned char SPBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char SPLW:1;

+			unsigned char SPRDTD:1;

+			unsigned char :2;

+			unsigned char SPFC:2;

+		} BIT;

+	} SPDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SCKDL:3;

+		} BIT;

+	} SPCKD;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SLNDL:3;

+		} BIT;

+	} SSLND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPNDL:3;

+		} BIT;

+	} SPND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PTE:1;

+			unsigned char SPIIE:1;

+			unsigned char SPOE:1;

+			unsigned char SPPE:1;

+		} BIT;

+	} SPCR2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD5;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD6;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD7;

+};

+

+struct st_rtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char F1HZ:1;

+			unsigned char F2HZ:1;

+			unsigned char F4HZ:1;

+			unsigned char F8HZ:1;

+			unsigned char F16HZ:1;

+			unsigned char F32HZ:1;

+			unsigned char F64HZ:1;

+		} BIT;

+	} R64CNT;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECCNT;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINCNT;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRCNT;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKCNT;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYCNT;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONCNT;

+	char           wk6[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECAR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINAR;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRAR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :4;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKAR;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :1;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYAR;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :2;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONAR;

+	char           wk12[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRAR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+		} BIT;

+	} RYRAREN;

+	char           wk13[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PES:4;

+			unsigned char RTCOS:1;

+			unsigned char PIE:1;

+			unsigned char CIE:1;

+			unsigned char AIE:1;

+		} BIT;

+	} RCR1;

+	char           wk14[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CNTMD:1;

+			unsigned char HR24:1;

+			unsigned char AADJP:1;

+			unsigned char AADJE:1;

+			unsigned char RTCOE:1;

+			unsigned char ADJ30:1;

+			unsigned char RESET:1;

+			unsigned char START:1;

+		} BIT;

+	} RCR2;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char RTCDV:2;

+			unsigned char RTCEN:1;

+		} BIT;

+	} RCR3;

+	char           wk16[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PMADJ:2;

+			unsigned char ADJ:6;

+		} BIT;

+	} RADJ;

+};

+

+struct st_rtcb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT0;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT1;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT3;

+	char           wk3[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT0AR;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT1AR;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT2AR;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT3AR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT0AER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT1AER;

+	char           wk9[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short ENB:8;

+		} BIT;

+	} BCNT2AER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT3AER;

+};

+

+struct st_s12ad {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADST:1;

+			unsigned short ADCS:2;

+			unsigned short ADIE:1;

+			unsigned short :1;

+			unsigned short ADHSC:1;

+			unsigned short TRGE:1;

+			unsigned short EXTRG:1;

+			unsigned short DBLE:1;

+			unsigned short GBADIE:1;

+			unsigned short :1;

+			unsigned short DBLANS:5;

+		} BIT;

+	} ADCSR;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSA15:1;

+			unsigned short ANSA14:1;

+			unsigned short ANSA13:1;

+			unsigned short ANSA12:1;

+			unsigned short ANSA11:1;

+			unsigned short ANSA10:1;

+			unsigned short ANSA9:1;

+			unsigned short ANSA8:1;

+			unsigned short :1;

+			unsigned short ANSA6:1;

+			unsigned short :1;

+			unsigned short ANSA4:1;

+			unsigned short ANSA3:1;

+			unsigned short ANSA2:1;

+			unsigned short ANSA1:1;

+			unsigned short ANSA0:1;

+		} BIT;

+	} ADANSA;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADS15:1;

+			unsigned short ADS14:1;

+			unsigned short ADS13:1;

+			unsigned short ADS12:1;

+			unsigned short ADS11:1;

+			unsigned short ADS10:1;

+			unsigned short ADS9:1;

+			unsigned short ADS8:1;

+			unsigned short :1;

+			unsigned short ADS6:1;

+			unsigned short :1;

+			unsigned short ADS4:1;

+			unsigned short ADS3:1;

+			unsigned short ADS2:1;

+			unsigned short ADS1:1;

+			unsigned short ADS0:1;

+		} BIT;

+	} ADADS;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char ADC:2;

+		} BIT;

+	} ADADC;

+	char           wk3[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADRFMT:1;

+			unsigned short :9;

+			unsigned short ACE:1;

+		} BIT;

+	} ADCER;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short TRSA:4;

+			unsigned short :4;

+			unsigned short TRSB:4;

+		} BIT;

+	} ADSTRGR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short OCS:1;

+			unsigned short TSS:1;

+			unsigned short :6;

+			unsigned short OCSAD:1;

+		} BIT;

+	} ADEXICR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSB15:1;

+			unsigned short ANSB14:1;

+			unsigned short ANSB13:1;

+			unsigned short ANSB12:1;

+			unsigned short ANSB11:1;

+			unsigned short ANSB10:1;

+			unsigned short ANSB9:1;

+			unsigned short ANSB8:1;

+			unsigned short :1;

+			unsigned short ANSB6:1;

+			unsigned short :1;

+			unsigned short ANSB4:1;

+			unsigned short ANSB3:1;

+			unsigned short ANSB2:1;

+			unsigned short ANSB1:1;

+			unsigned short ANSB0:1;

+		} BIT;

+	} ADANSB;

+	char           wk4[2];

+	unsigned short ADDBLDR;

+	unsigned short ADTSDR;

+	unsigned short ADOCDR;

+	char           wk5[2];

+	unsigned short ADDR0;

+	unsigned short ADDR1;

+	unsigned short ADDR2;

+	unsigned short ADDR3;

+	unsigned short ADDR4;

+	char           wk6[2];

+	unsigned short ADDR6;

+	char           wk7[2];

+	unsigned short ADDR8;

+	unsigned short ADDR9;

+	unsigned short ADDR10;

+	unsigned short ADDR11;

+	unsigned short ADDR12;

+	unsigned short ADDR13;

+	unsigned short ADDR14;

+	unsigned short ADDR15;

+	char           wk8[32];

+	unsigned char  ADSSTR0;

+	unsigned char  ADSSTRL;

+	char           wk9[14];

+	unsigned char  ADSSTRT;

+	unsigned char  ADSSTRO;

+	char           wk10[1];

+	unsigned char  ADSSTR1;

+	unsigned char  ADSSTR2;

+	unsigned char  ADSSTR3;

+	unsigned char  ADSSTR4;

+	char           wk11[1];

+	unsigned char  ADSSTR6;

+};

+

+struct st_sci1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+};

+

+struct st_sci12 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+	char           wk0[18];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ESME:1;

+		} BIT;

+	} ESMER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char BRME:1;

+			unsigned char RXDSF:1;

+			unsigned char SFSF:1;

+		} BIT;

+	} CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PIBS:3;

+			unsigned char PIBE:1;

+			unsigned char CF1DS:2;

+			unsigned char CF0RE:1;

+			unsigned char BFE:1;

+		} BIT;

+	} CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RTS:2;

+			unsigned char BCCS:2;

+			unsigned char :1;

+			unsigned char DFCS:3;

+		} BIT;

+	} CR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SDST:1;

+		} BIT;

+	} CR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SHARPS:1;

+			unsigned char :2;

+			unsigned char RXDXPS:1;

+			unsigned char TXDXPS:1;

+		} BIT;

+	} PCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDIE:1;

+			unsigned char BCDIE:1;

+			unsigned char PIBDIE:1;

+			unsigned char CF1MIE:1;

+			unsigned char CF0MIE:1;

+			unsigned char BFDIE:1;

+		} BIT;

+	} ICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDF:1;

+			unsigned char BCDF:1;

+			unsigned char PIBDF:1;

+			unsigned char CF1MF:1;

+			unsigned char CF0MF:1;

+			unsigned char BFDF:1;

+		} BIT;

+	} STR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDCL:1;

+			unsigned char BCDCL:1;

+			unsigned char PIBDCL:1;

+			unsigned char CF1MCL:1;

+			unsigned char CF0MCL:1;

+			unsigned char BFDCL:1;

+		} BIT;

+	} STCR;

+	unsigned char  CF0DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF0CE7:1;

+			unsigned char CF0CE6:1;

+			unsigned char CF0CE5:1;

+			unsigned char CF0CE4:1;

+			unsigned char CF0CE3:1;

+			unsigned char CF0CE2:1;

+			unsigned char CF0CE1:1;

+			unsigned char CF0CE0:1;

+		} BIT;

+	} CF0CR;

+	unsigned char  CF0RR;

+	unsigned char  PCF1DR;

+	unsigned char  SCF1DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF1CE7:1;

+			unsigned char CF1CE6:1;

+			unsigned char CF1CE5:1;

+			unsigned char CF1CE4:1;

+			unsigned char CF1CE3:1;

+			unsigned char CF1CE2:1;

+			unsigned char CF1CE1:1;

+			unsigned char CF1CE0:1;

+		} BIT;

+	} CF1CR;

+	unsigned char  CF1RR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TCST:1;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char TCSS:3;

+			unsigned char TWRC:1;

+			unsigned char :1;

+			unsigned char TOMS:2;

+		} BIT;

+	} TMR;

+	unsigned char  TPRE;

+	unsigned char  TCNT;

+};

+

+struct st_smci {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char GM:1;

+			unsigned char BLK:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char BCP:2;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char ERS:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+};

+

+struct st_system {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short MD:1;

+		} BIT;

+	} MDMONR;

+	char           wk0[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short RAME:1;

+		} BIT;

+	} SYSCR1;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SSBY:1;

+		} BIT;

+	} SBYCR;

+	char           wk2[2];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :3;

+			unsigned long MSTPA28:1;

+			unsigned long :8;

+			unsigned long MSTPA19:1;

+			unsigned long :1;

+			unsigned long MSTPA17:1;

+			unsigned long :1;

+			unsigned long MSTPA15:1;

+			unsigned long :5;

+			unsigned long MSTPA9:1;

+		} BIT;

+	} MSTPCRA;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :1;

+			unsigned long MSTPB30:1;

+			unsigned long :3;

+			unsigned long MSTPB26:1;

+			unsigned long :2;

+			unsigned long MSTPB23:1;

+			unsigned long :1;

+			unsigned long MSTPB21:1;

+			unsigned long :1;

+			unsigned long MSTPB19:1;

+			unsigned long :1;

+			unsigned long MSTPB17:1;

+			unsigned long :7;

+			unsigned long MSTPB9:1;

+			unsigned long :2;

+			unsigned long MSTPB6:1;

+			unsigned long :1;

+			unsigned long MSTPB4:1;

+		} BIT;

+	} MSTPCRB;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long DSLPE:1;

+			unsigned long :11;

+			unsigned long MSTPC19:1;

+			unsigned long :18;

+			unsigned long MSTPC0:1;

+		} BIT;

+	} MSTPCRC;

+	char           wk3[4];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long FCK:4;

+			unsigned long ICK:4;

+			unsigned long :12;

+			unsigned long PCKB:4;

+			unsigned long :4;

+			unsigned long PCKD:4;

+		} BIT;

+	} SCKCR;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short CKSEL:3;

+		} BIT;

+	} SCKCR3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short STC:6;

+			unsigned short :6;

+			unsigned short PLIDIV:2;

+		} BIT;

+	} PLLCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char PLLEN:1;

+		} BIT;

+	} PLLCR2;

+	char           wk5[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char MOSTP:1;

+		} BIT;

+	} MOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SOSTP:1;

+		} BIT;

+	} SOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char LCSTP:1;

+		} BIT;

+	} LOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ILCSTP:1;

+		} BIT;

+	} ILOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char HCSTP:1;

+		} BIT;

+	} HOCOCR;

+	char           wk6[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char HCOVF:1;

+			unsigned char PLOVF:1;

+			unsigned char :1;

+			unsigned char MOOVF:1;

+		} BIT;

+	} OSCOVFSR;

+	char           wk7[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKOSTP:1;

+			unsigned short CKODIV:3;

+			unsigned short :1;

+			unsigned short CKOSEL:3;

+		} BIT;

+	} CKOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OSTDE:1;

+			unsigned char :6;

+			unsigned char OSTDIE:1;

+		} BIT;

+	} OSTDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char OSTDF:1;

+		} BIT;

+	} OSTDSR;

+	char           wk8[94];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OPCMTSF:1;

+			unsigned char :1;

+			unsigned char OPCM:3;

+		} BIT;

+	} OPCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTCKEN:1;

+			unsigned char :4;

+			unsigned char RSTCKSEL:3;

+		} BIT;

+	} RSTCKCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MSTS:5;

+		} BIT;

+	} MOSCWTCR;

+	char           wk9[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SOPCMTSF:1;

+			unsigned char :3;

+			unsigned char SOPCM:1;

+		} BIT;

+	} SOPCCR;

+	char           wk10[21];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SWRF:1;

+			unsigned char :1;

+			unsigned char IWDTRF:1;

+		} BIT;

+	} RSTSR2;

+	char           wk11[1];

+	unsigned short SWRR;

+	char           wk12[28];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD1IRQSEL:1;

+			unsigned char LVD1IDTSEL:2;

+		} BIT;

+	} LVD1CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD1MON:1;

+			unsigned char LVD1DET:1;

+		} BIT;

+	} LVD1SR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD2IRQSEL:1;

+			unsigned char LVD2IDTSEL:2;

+		} BIT;

+	} LVD2CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD2MON:1;

+			unsigned char LVD2DET:1;

+		} BIT;

+	} LVD2SR;

+	char           wk13[794];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PRKEY:8;

+			unsigned short :4;

+			unsigned short PRC3:1;

+			unsigned short :1;

+			unsigned short PRC1:1;

+			unsigned short PRC0:1;

+		} BIT;

+	} PRCR;

+	char           wk14[48784];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char LVD2RF:1;

+			unsigned char LVD1RF:1;

+			unsigned char :1;

+			unsigned char PORF:1;

+		} BIT;

+	} RSTSR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CWSF:1;

+		} BIT;

+	} RSTSR1;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MOSEL:1;

+			unsigned char MODRV21:1;

+		} BIT;

+	} MOFCR;

+	char           wk16[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char LVD2E:1;

+			unsigned char LVD1E:1;

+			unsigned char :1;

+			unsigned char EXVCCINP2:1;

+		} BIT;

+	} LVCMPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2LVL:2;

+			unsigned char LVD1LVL:4;

+		} BIT;

+	} LVDLVLR;

+	char           wk17[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1RN:1;

+			unsigned char LVD1RI:1;

+			unsigned char :3;

+			unsigned char LVD1CMPE:1;

+			unsigned char :1;

+			unsigned char LVD1RIE:1;

+		} BIT;

+	} LVD1CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2RN:1;

+			unsigned char LVD2RI:1;

+			unsigned char :3;

+			unsigned char LVD2CMPE:1;

+			unsigned char :1;

+			unsigned char LVD2RIE:1;

+		} BIT;

+	} LVD2CR0;

+};

+

+struct st_usb {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short SCKE:1;

+			unsigned short :1;

+			unsigned short CNEN:1;

+			unsigned short :1;

+			unsigned short DCFM:1;

+			unsigned short DRPD:1;

+			unsigned short DPRPU:1;

+			unsigned short :3;

+			unsigned short USBE:1;

+		} BIT;

+	} SYSCFG;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVCMON:2;

+			unsigned short :7;

+			unsigned short HTACT:1;

+			unsigned short :3;

+			unsigned short IDMON:1;

+			unsigned short LNST:2;

+		} BIT;

+	} SYSSTS0;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short HNPBTOA:1;

+			unsigned short EXICEN:1;

+			unsigned short VBUSEN:1;

+			unsigned short WKUP:1;

+			unsigned short RWUPE:1;

+			unsigned short USBRST:1;

+			unsigned short RESUME:1;

+			unsigned short UACT:1;

+			unsigned short :1;

+			unsigned short RHST:3;

+		} BIT;

+	} DVSTCTR0;

+	char           wk2[10];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} CFIFO;

+	char           wk3[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D0FIFO;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D1FIFO;

+	char           wk5[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short :3;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :2;

+			unsigned short ISEL:1;

+			unsigned short :1;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} CFIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} CFIFOCTR;

+	char           wk6[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D0FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D0FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D1FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D1FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBSE:1;

+			unsigned short RSME:1;

+			unsigned short SOFE:1;

+			unsigned short DVSE:1;

+			unsigned short CTRE:1;

+			unsigned short BEMPE:1;

+			unsigned short NRDYE:1;

+			unsigned short BRDYE:1;

+		} BIT;

+	} INTENB0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCRE:1;

+			unsigned short BCHGE:1;

+			unsigned short :1;

+			unsigned short DTCHE:1;

+			unsigned short ATTCHE:1;

+			unsigned short :4;

+			unsigned short EOFERRE:1;

+			unsigned short SIGNE:1;

+			unsigned short SACKE:1;

+			unsigned short :3;

+			unsigned short PDDETINTE0:1;

+		} BIT;

+	} INTENB1;

+	char           wk7[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDYE:1;

+			unsigned short PIPE8BRDYE:1;

+			unsigned short PIPE7BRDYE:1;

+			unsigned short PIPE6BRDYE:1;

+			unsigned short PIPE5BRDYE:1;

+			unsigned short PIPE4BRDYE:1;

+			unsigned short PIPE3BRDYE:1;

+			unsigned short PIPE2BRDYE:1;

+			unsigned short PIPE1BRDYE:1;

+			unsigned short PIPE0BRDYE:1;

+		} BIT;

+	} BRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDYE:1;

+			unsigned short PIPE8NRDYE:1;

+			unsigned short PIPE7NRDYE:1;

+			unsigned short PIPE6NRDYE:1;

+			unsigned short PIPE5NRDYE:1;

+			unsigned short PIPE4NRDYE:1;

+			unsigned short PIPE3NRDYE:1;

+			unsigned short PIPE2NRDYE:1;

+			unsigned short PIPE1NRDYE:1;

+			unsigned short PIPE0NRDYE:1;

+		} BIT;

+	} NRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMPE:1;

+			unsigned short PIPE8BEMPE:1;

+			unsigned short PIPE7BEMPE:1;

+			unsigned short PIPE6BEMPE:1;

+			unsigned short PIPE5BEMPE:1;

+			unsigned short PIPE4BEMPE:1;

+			unsigned short PIPE3BEMPE:1;

+			unsigned short PIPE2BEMPE:1;

+			unsigned short PIPE1BEMPE:1;

+			unsigned short PIPE0BEMPE:1;

+		} BIT;

+	} BEMPENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :7;

+			unsigned short TRNENSEL:1;

+			unsigned short :1;

+			unsigned short BRDYM:1;

+			unsigned short :1;

+			unsigned short EDGESTS:1;

+		} BIT;

+	} SOFCFG;

+	char           wk8[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBINT:1;

+			unsigned short RESM:1;

+			unsigned short SOFR:1;

+			unsigned short DVST:1;

+			unsigned short CTRT:1;

+			unsigned short BEMP:1;

+			unsigned short NRDY:1;

+			unsigned short BRDY:1;

+			unsigned short VBSTS:1;

+			unsigned short DVSQ:3;

+			unsigned short VALID:1;

+			unsigned short CTSQ:3;

+		} BIT;

+	} INTSTS0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCR:1;

+			unsigned short BCHG:1;

+			unsigned short :1;

+			unsigned short DTCH:1;

+			unsigned short ATTCH:1;

+			unsigned short :4;

+			unsigned short EOFERR:1;

+			unsigned short SIGN:1;

+			unsigned short SACK:1;

+			unsigned short :3;

+			unsigned short PDDETINT0:1;

+		} BIT;

+	} INTSTS1;

+	char           wk9[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDY:1;

+			unsigned short PIPE8BRDY:1;

+			unsigned short PIPE7BRDY:1;

+			unsigned short PIPE6BRDY:1;

+			unsigned short PIPE5BRDY:1;

+			unsigned short PIPE4BRDY:1;

+			unsigned short PIPE3BRDY:1;

+			unsigned short PIPE2BRDY:1;

+			unsigned short PIPE1BRDY:1;

+			unsigned short PIPE0BRDY:1;

+		} BIT;

+	} BRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDY:1;

+			unsigned short PIPE8NRDY:1;

+			unsigned short PIPE7NRDY:1;

+			unsigned short PIPE6NRDY:1;

+			unsigned short PIPE5NRDY:1;

+			unsigned short PIPE4NRDY:1;

+			unsigned short PIPE3NRDY:1;

+			unsigned short PIPE2NRDY:1;

+			unsigned short PIPE1NRDY:1;

+			unsigned short PIPE0NRDY:1;

+		} BIT;

+	} NRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMP:1;

+			unsigned short PIPE8BEMP:1;

+			unsigned short PIPE7BEMP:1;

+			unsigned short PIPE6BEMP:1;

+			unsigned short PIPE5BEMP:1;

+			unsigned short PIPE4BEMP:1;

+			unsigned short PIPE3BEMP:1;

+			unsigned short PIPE2BEMP:1;

+			unsigned short PIPE1BEMP:1;

+			unsigned short PIPE0BEMP:1;

+		} BIT;

+	} BEMPSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRN:1;

+			unsigned short CRCE:1;

+			unsigned short :3;

+			unsigned short FRNM:11;

+		} BIT;

+	} FRMNUM;

+	char           wk10[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BREQUEST:8;

+			unsigned short BMREQUESTTYPE:8;

+		} BIT;

+	} USBREQ;

+	unsigned short USBVAL;

+	unsigned short USBINDX;

+	unsigned short USBLENG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+		} BIT;

+	} DCPCFG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :5;

+			unsigned short MXPS:7;

+		} BIT;

+	} DCPMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short SUREQ:1;

+			unsigned short :2;

+			unsigned short SUREQCLR:1;

+			unsigned short :2;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :2;

+			unsigned short CCPL:1;

+			unsigned short PID:2;

+		} BIT;

+	} DCPCTR;

+	char           wk11[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :12;

+			unsigned short PIPESEL:4;

+		} BIT;

+	} PIPESEL;

+	char           wk12[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TYPE:2;

+			unsigned short :3;

+			unsigned short BFRE:1;

+			unsigned short DBLB:1;

+			unsigned short :1;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+			unsigned short EPNUM:4;

+		} BIT;

+	} PIPECFG;

+	char           wk13[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :3;

+			unsigned short MXPS:9;

+		} BIT;

+	} PIPEMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :3;

+			unsigned short IFIS:1;

+			unsigned short :9;

+			unsigned short IITV:3;

+		} BIT;

+	} PIPEPERI;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE1CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE2CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE3CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE4CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE5CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE6CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE7CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE8CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE9CTR;

+	char           wk14[14];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE1TRE;

+	unsigned short PIPE1TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE2TRE;

+	unsigned short PIPE2TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE3TRE;

+	unsigned short PIPE3TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE4TRE;

+	unsigned short PIPE4TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE5TRE;

+	unsigned short PIPE5TRN;

+	char           wk15[12];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PDDETSTS0:1;

+			unsigned short CHGDETSTS0:1;

+			unsigned short BATCHGE0:1;

+			unsigned short DCPMODE0:1;

+			unsigned short VDMSRCE0:1;

+			unsigned short IDPSINKE0:1;

+			unsigned short VDPSRCE0:1;

+			unsigned short IDMSINKE0:1;

+			unsigned short IDPSRCE0:1;

+			unsigned short RPDME0:1;

+		} BIT;

+	} USBBCCTRL0;

+	char           wk16[26];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short VBRPDCUT:1;

+			unsigned short :6;

+			unsigned short VDDUSBE:1;

+		} BIT;

+	} USBMC;

+	char           wk17[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD5;

+};

+

+#endif  /*endian  */

+

+enum enum_ir {

+IR_BSC_BUSERR=16,IR_ICU_SWINT=27,

+IR_CMT0_CMI0,

+IR_CMT1_CMI1,

+IR_CAC_FERRF=32,IR_CAC_MENDF,IR_CAC_OVFF,

+IR_USB0_D0FIFO0=36,IR_USB0_D1FIFO0,IR_USB0_USBI0,

+IR_RSPI0_SPEI0=44,IR_RSPI0_SPRI0,IR_RSPI0_SPTI0,IR_RSPI0_SPII0,

+IR_DOC_DOPCF=57,

+IR_RTC_CUP=63,

+IR_ICU_IRQ0,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7,

+IR_LVD_LVD1=88,IR_LVD_LVD2,

+IR_USB0_USBR0,

+IR_RTC_ALM=92,IR_RTC_PRD,

+IR_S12AD_S12ADI0=102,IR_S12AD_GBADI,

+IR_ELC_ELSR18I=106,

+IR_MTU0_TGIA0=114,IR_MTU0_TGIB0,IR_MTU0_TGIC0,IR_MTU0_TGID0,IR_MTU0_TCIV0,IR_MTU0_TGIE0,IR_MTU0_TGIF0,

+IR_MTU1_TGIA1,IR_MTU1_TGIB1,IR_MTU1_TCIV1,IR_MTU1_TCIU1,

+IR_MTU2_TGIA2,IR_MTU2_TGIB2,IR_MTU2_TCIV2,IR_MTU2_TCIU2,

+IR_MTU3_TGIA3,IR_MTU3_TGIB3,IR_MTU3_TGIC3,IR_MTU3_TGID3,IR_MTU3_TCIV3,

+IR_MTU4_TGIA4,IR_MTU4_TGIB4,IR_MTU4_TGIC4,IR_MTU4_TGID4,IR_MTU4_TCIV4,

+IR_MTU5_TGIU5,IR_MTU5_TGIV5,IR_MTU5_TGIW5,

+IR_POE_OEI1=170,IR_POE_OEI2,

+IR_SCI1_ERI1=218,IR_SCI1_RXI1,IR_SCI1_TXI1,IR_SCI1_TEI1,

+IR_SCI5_ERI5,IR_SCI5_RXI5,IR_SCI5_TXI5,IR_SCI5_TEI5,

+IR_SCI12_ERI12=238,IR_SCI12_RXI12,IR_SCI12_TXI12,IR_SCI12_TEI12,IR_SCI12_SCIX0,IR_SCI12_SCIX1,IR_SCI12_SCIX2,IR_SCI12_SCIX3,

+IR_RIIC0_EEI0,IR_RIIC0_RXI0,IR_RIIC0_TXI0,IR_RIIC0_TEI0

+};

+

+enum enum_dtce {

+DTCE_ICU_SWINT=27,

+DTCE_CMT0_CMI0,

+DTCE_CMT1_CMI1,

+DTCE_USB0_D0FIFO0=36,DTCE_USB0_D1FIFO0,

+DTCE_RSPI0_SPRI0=45,DTCE_RSPI0_SPTI0,

+DTCE_ICU_IRQ0=64,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7,

+DTCE_S12AD_S12ADI0=102,DTCE_S12AD_GBADI,

+DTCE_ELC_ELSR18I=106,

+DTCE_MTU0_TGIA0=114,DTCE_MTU0_TGIB0,DTCE_MTU0_TGIC0,DTCE_MTU0_TGID0,

+DTCE_MTU1_TGIA1=121,DTCE_MTU1_TGIB1,

+DTCE_MTU2_TGIA2=125,DTCE_MTU2_TGIB2,

+DTCE_MTU3_TGIA3=129,DTCE_MTU3_TGIB3,DTCE_MTU3_TGIC3,DTCE_MTU3_TGID3,

+DTCE_MTU4_TGIA4=134,DTCE_MTU4_TGIB4,DTCE_MTU4_TGIC4,DTCE_MTU4_TGID4,DTCE_MTU4_TCIV4,

+DTCE_MTU5_TGIU5,DTCE_MTU5_TGIV5,DTCE_MTU5_TGIW5,

+DTCE_SCI1_RXI1=219,DTCE_SCI1_TXI1,

+DTCE_SCI5_RXI5=223,DTCE_SCI5_TXI5,

+DTCE_SCI12_RXI12=239,DTCE_SCI12_TXI12,

+DTCE_RIIC0_RXI0=247,DTCE_RIIC0_TXI0

+};

+

+enum enum_ier {

+IER_BSC_BUSERR=0x02,

+IER_ICU_SWINT=0x03,

+IER_CMT0_CMI0=0x03,

+IER_CMT1_CMI1=0x03,

+IER_CAC_FERRF=0x04,IER_CAC_MENDF=0x04,IER_CAC_OVFF=0x04,

+IER_USB0_D0FIFO0=0x04,IER_USB0_D1FIFO0=0x04,IER_USB0_USBI0=0x04,

+IER_RSPI0_SPEI0=0x05,IER_RSPI0_SPRI0=0x05,IER_RSPI0_SPTI0=0x05,IER_RSPI0_SPII0=0x05,

+IER_DOC_DOPCF=0x07,

+IER_RTC_CUP=0x07,

+IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08,

+IER_LVD_LVD1=0x0B,IER_LVD_LVD2=0x0B,

+IER_USB0_USBR0=0x0B,

+IER_RTC_ALM=0x0B,IER_RTC_PRD=0x0B,

+IER_S12AD_S12ADI0=0x0C,IER_S12AD_GBADI=0x0C,

+IER_ELC_ELSR18I=0x0D,

+IER_MTU0_TGIA0=0x0E,IER_MTU0_TGIB0=0x0E,IER_MTU0_TGIC0=0x0E,IER_MTU0_TGID0=0x0E,IER_MTU0_TCIV0=0x0E,IER_MTU0_TGIE0=0x0E,IER_MTU0_TGIF0=0x0F,

+IER_MTU1_TGIA1=0x0F,IER_MTU1_TGIB1=0x0F,IER_MTU1_TCIV1=0x0F,IER_MTU1_TCIU1=0x0F,

+IER_MTU2_TGIA2=0x0F,IER_MTU2_TGIB2=0x0F,IER_MTU2_TCIV2=0x0F,IER_MTU2_TCIU2=0x10,

+IER_MTU3_TGIA3=0x10,IER_MTU3_TGIB3=0x10,IER_MTU3_TGIC3=0x10,IER_MTU3_TGID3=0x10,IER_MTU3_TCIV3=0x10,

+IER_MTU4_TGIA4=0x10,IER_MTU4_TGIB4=0x10,IER_MTU4_TGIC4=0x11,IER_MTU4_TGID4=0x11,IER_MTU4_TCIV4=0x11,

+IER_MTU5_TGIU5=0x11,IER_MTU5_TGIV5=0x11,IER_MTU5_TGIW5=0x11,

+IER_POE_OEI1=0x15,IER_POE_OEI2=0x15,

+IER_SCI1_ERI1=0x1B,IER_SCI1_RXI1=0x1B,IER_SCI1_TXI1=0x1B,IER_SCI1_TEI1=0x1B,

+IER_SCI5_ERI5=0x1B,IER_SCI5_RXI5=0x1B,IER_SCI5_TXI5=0x1C,IER_SCI5_TEI5=0x1C,

+IER_SCI12_ERI12=0x1D,IER_SCI12_RXI12=0x1D,IER_SCI12_TXI12=0x1E,IER_SCI12_TEI12=0x1E,IER_SCI12_SCIX0=0x1E,IER_SCI12_SCIX1=0x1E,IER_SCI12_SCIX2=0x1E,IER_SCI12_SCIX3=0x1E,

+IER_RIIC0_EEI0=0x1E,IER_RIIC0_RXI0=0x1E,IER_RIIC0_TXI0=0x1F,IER_RIIC0_TEI0=0x1F

+};

+

+enum enum_ipr {

+IPR_BSC_BUSERR=0,

+IPR_ICU_SWINT=3,

+IPR_CMT0_CMI0=4,

+IPR_CMT1_CMI1=5,

+IPR_CAC_FERRF=32,IPR_CAC_MENDF=33,IPR_CAC_OVFF=34,

+IPR_USB0_D0FIFO0=36,IPR_USB0_D1FIFO0=37,IPR_USB0_USBI0=38,

+IPR_RSPI0_SPEI0=44,IPR_RSPI0_SPRI0=44,IPR_RSPI0_SPTI0=44,IPR_RSPI0_SPII0=44,

+IPR_DOC_DOPCF=57,

+IPR_RTC_CUP=63,

+IPR_ICU_IRQ0=64,IPR_ICU_IRQ1=65,IPR_ICU_IRQ2=66,IPR_ICU_IRQ3=67,IPR_ICU_IRQ4=68,IPR_ICU_IRQ5=69,IPR_ICU_IRQ6=70,IPR_ICU_IRQ7=71,

+IPR_LVD_LVD1=88,IPR_LVD_LVD2=89,

+IPR_USB0_USBR0=90,

+IPR_RTC_ALM=92,IPR_RTC_PRD=93,

+IPR_S12AD_S12ADI0=102,IPR_S12AD_GBADI=103,

+IPR_ELC_ELSR18I=106,

+IPR_MTU0_TGIA0=114,IPR_MTU0_TGIB0=114,IPR_MTU0_TGIC0=114,IPR_MTU0_TGID0=114,IPR_MTU0_TCIV0=118,IPR_MTU0_TGIE0=118,IPR_MTU0_TGIF0=118,

+IPR_MTU1_TGIA1=121,IPR_MTU1_TGIB1=121,IPR_MTU1_TCIV1=123,IPR_MTU1_TCIU1=123,

+IPR_MTU2_TGIA2=125,IPR_MTU2_TGIB2=125,IPR_MTU2_TCIV2=127,IPR_MTU2_TCIU2=127,

+IPR_MTU3_TGIA3=129,IPR_MTU3_TGIB3=129,IPR_MTU3_TGIC3=129,IPR_MTU3_TGID3=129,IPR_MTU3_TCIV3=133,

+IPR_MTU4_TGIA4=134,IPR_MTU4_TGIB4=134,IPR_MTU4_TGIC4=134,IPR_MTU4_TGID4=134,IPR_MTU4_TCIV4=138,

+IPR_MTU5_TGIU5=139,IPR_MTU5_TGIV5=139,IPR_MTU5_TGIW5=139,

+IPR_POE_OEI1=170,IPR_POE_OEI2=171,

+IPR_SCI1_ERI1=218,IPR_SCI1_RXI1=218,IPR_SCI1_TXI1=218,IPR_SCI1_TEI1=218,

+IPR_SCI5_ERI5=222,IPR_SCI5_RXI5=222,IPR_SCI5_TXI5=222,IPR_SCI5_TEI5=222,

+IPR_SCI12_ERI12=238,IPR_SCI12_RXI12=238,IPR_SCI12_TXI12=238,IPR_SCI12_TEI12=238,IPR_SCI12_SCIX0=242,IPR_SCI12_SCIX1=243,IPR_SCI12_SCIX2=244,IPR_SCI12_SCIX3=245,

+IPR_RIIC0_EEI0=246,IPR_RIIC0_RXI0=247,IPR_RIIC0_TXI0=248,IPR_RIIC0_TEI0=249,

+IPR_BSC_=0,

+IPR_CMT0_=4,

+IPR_CMT1_=5,

+IPR_RSPI0_=44,

+IPR_DOC_=57,

+IPR_ELC_=106,

+IPR_MTU1_TGI=121,

+IPR_MTU1_TCI=123,

+IPR_MTU2_TGI=125,

+IPR_MTU2_TCI=127,

+IPR_MTU3_TGI=129,

+IPR_MTU4_TGI=134,

+IPR_MTU5_=139,

+IPR_MTU5_TGI=139,

+IPR_SCI1_=218,

+IPR_SCI5_=222

+};

+

+#define	IEN_BSC_BUSERR		IEN0

+#define	IEN_ICU_SWINT		IEN3

+#define	IEN_CMT0_CMI0		IEN4

+#define	IEN_CMT1_CMI1		IEN5

+#define	IEN_CAC_FERRF		IEN0

+#define	IEN_CAC_MENDF		IEN1

+#define	IEN_CAC_OVFF		IEN2

+#define	IEN_USB0_D0FIFO0	IEN4

+#define	IEN_USB0_D1FIFO0	IEN5

+#define	IEN_USB0_USBI0		IEN6

+#define	IEN_RSPI0_SPEI0		IEN4

+#define	IEN_RSPI0_SPRI0		IEN5

+#define	IEN_RSPI0_SPTI0		IEN6

+#define	IEN_RSPI0_SPII0		IEN7

+#define	IEN_DOC_DOPCF		IEN1

+#define	IEN_RTC_CUP			IEN7

+#define	IEN_ICU_IRQ0		IEN0

+#define	IEN_ICU_IRQ1		IEN1

+#define	IEN_ICU_IRQ2		IEN2

+#define	IEN_ICU_IRQ3		IEN3

+#define	IEN_ICU_IRQ4		IEN4

+#define	IEN_ICU_IRQ5		IEN5

+#define	IEN_ICU_IRQ6		IEN6

+#define	IEN_ICU_IRQ7		IEN7

+#define	IEN_LVD_LVD1		IEN0

+#define	IEN_LVD_LVD2		IEN1

+#define	IEN_USB0_USBR0		IEN2

+#define	IEN_RTC_ALM			IEN4

+#define	IEN_RTC_PRD			IEN5

+#define	IEN_S12AD_S12ADI0	IEN6

+#define	IEN_S12AD_GBADI		IEN7

+#define	IEN_ELC_ELSR18I		IEN2

+#define	IEN_MTU0_TGIA0		IEN2

+#define	IEN_MTU0_TGIB0		IEN3

+#define	IEN_MTU0_TGIC0		IEN4

+#define	IEN_MTU0_TGID0		IEN5

+#define	IEN_MTU0_TCIV0		IEN6

+#define	IEN_MTU0_TGIE0		IEN7

+#define	IEN_MTU0_TGIF0		IEN0

+#define	IEN_MTU1_TGIA1		IEN1

+#define	IEN_MTU1_TGIB1		IEN2

+#define	IEN_MTU1_TCIV1		IEN3

+#define	IEN_MTU1_TCIU1		IEN4

+#define	IEN_MTU2_TGIA2		IEN5

+#define	IEN_MTU2_TGIB2		IEN6

+#define	IEN_MTU2_TCIV2		IEN7

+#define	IEN_MTU2_TCIU2		IEN0

+#define	IEN_MTU3_TGIA3		IEN1

+#define	IEN_MTU3_TGIB3		IEN2

+#define	IEN_MTU3_TGIC3		IEN3

+#define	IEN_MTU3_TGID3		IEN4

+#define	IEN_MTU3_TCIV3		IEN5

+#define	IEN_MTU4_TGIA4		IEN6

+#define	IEN_MTU4_TGIB4		IEN7

+#define	IEN_MTU4_TGIC4		IEN0

+#define	IEN_MTU4_TGID4		IEN1

+#define	IEN_MTU4_TCIV4		IEN2

+#define	IEN_MTU5_TGIU5		IEN3

+#define	IEN_MTU5_TGIV5		IEN4

+#define	IEN_MTU5_TGIW5		IEN5

+#define	IEN_POE_OEI1		IEN2

+#define	IEN_POE_OEI2		IEN3

+#define	IEN_SCI1_ERI1		IEN2

+#define	IEN_SCI1_RXI1		IEN3

+#define	IEN_SCI1_TXI1		IEN4

+#define	IEN_SCI1_TEI1		IEN5

+#define	IEN_SCI5_ERI5		IEN6

+#define	IEN_SCI5_RXI5		IEN7

+#define	IEN_SCI5_TXI5		IEN0

+#define	IEN_SCI5_TEI5		IEN1

+#define	IEN_SCI12_ERI12		IEN6

+#define	IEN_SCI12_RXI12		IEN7

+#define	IEN_SCI12_TXI12		IEN0

+#define	IEN_SCI12_TEI12		IEN1

+#define	IEN_SCI12_SCIX0		IEN2

+#define	IEN_SCI12_SCIX1		IEN3

+#define	IEN_SCI12_SCIX2		IEN4

+#define	IEN_SCI12_SCIX3		IEN5

+#define	IEN_RIIC0_EEI0		IEN6

+#define	IEN_RIIC0_RXI0		IEN7

+#define	IEN_RIIC0_TXI0		IEN0

+#define	IEN_RIIC0_TEI0		IEN1

+

+#define	VECT_BSC_BUSERR		16

+#define	VECT_ICU_SWINT		27

+#define	VECT_CMT0_CMI0		28

+#define	VECT_CMT1_CMI1		29

+#define	VECT_CAC_FERRF		32

+#define	VECT_CAC_MENDF		33

+#define	VECT_CAC_OVFF		34

+#define	VECT_USB0_D0FIFO0	36

+#define	VECT_USB0_D1FIFO0	37

+#define	VECT_USB0_USBI0		38

+#define	VECT_RSPI0_SPEI0	44

+#define	VECT_RSPI0_SPRI0	45

+#define	VECT_RSPI0_SPTI0	46

+#define	VECT_RSPI0_SPII0	47

+#define	VECT_DOC_DOPCF		57

+#define	VECT_RTC_CUP		63

+#define	VECT_ICU_IRQ0		64

+#define	VECT_ICU_IRQ1		65

+#define	VECT_ICU_IRQ2		66

+#define	VECT_ICU_IRQ3		67

+#define	VECT_ICU_IRQ4		68

+#define	VECT_ICU_IRQ5		69

+#define	VECT_ICU_IRQ6		70

+#define	VECT_ICU_IRQ7		71

+#define	VECT_LVD_LVD1		88

+#define	VECT_LVD_LVD2		89

+#define	VECT_USB0_USBR0		90

+#define	VECT_RTC_ALM		92

+#define	VECT_RTC_PRD		93

+#define	VECT_S12AD_S12ADI0	102

+#define	VECT_S12AD_GBADI	103

+#define	VECT_ELC_ELSR18I	106

+#define	VECT_MTU0_TGIA0		114

+#define	VECT_MTU0_TGIB0		115

+#define	VECT_MTU0_TGIC0		116

+#define	VECT_MTU0_TGID0		117

+#define	VECT_MTU0_TCIV0		118

+#define	VECT_MTU0_TGIE0		119

+#define	VECT_MTU0_TGIF0		120

+#define	VECT_MTU1_TGIA1		121

+#define	VECT_MTU1_TGIB1		122

+#define	VECT_MTU1_TCIV1		123

+#define	VECT_MTU1_TCIU1		124

+#define	VECT_MTU2_TGIA2		125

+#define	VECT_MTU2_TGIB2		126

+#define	VECT_MTU2_TCIV2		127

+#define	VECT_MTU2_TCIU2		128

+#define	VECT_MTU3_TGIA3		129

+#define	VECT_MTU3_TGIB3		130

+#define	VECT_MTU3_TGIC3		131

+#define	VECT_MTU3_TGID3		132

+#define	VECT_MTU3_TCIV3		133

+#define	VECT_MTU4_TGIA4		134

+#define	VECT_MTU4_TGIB4		135

+#define	VECT_MTU4_TGIC4		136

+#define	VECT_MTU4_TGID4		137

+#define	VECT_MTU4_TCIV4		138

+#define	VECT_MTU5_TGIU5		139

+#define	VECT_MTU5_TGIV5		140

+#define	VECT_MTU5_TGIW5		141

+#define	VECT_POE_OEI1		170

+#define	VECT_POE_OEI2		171

+#define	VECT_SCI1_ERI1		218

+#define	VECT_SCI1_RXI1		219

+#define	VECT_SCI1_TXI1		220

+#define	VECT_SCI1_TEI1		221

+#define	VECT_SCI5_ERI5		222

+#define	VECT_SCI5_RXI5		223

+#define	VECT_SCI5_TXI5		224

+#define	VECT_SCI5_TEI5		225

+#define	VECT_SCI12_ERI12	238

+#define	VECT_SCI12_RXI12	239

+#define	VECT_SCI12_TXI12	240

+#define	VECT_SCI12_TEI12	241

+#define	VECT_SCI12_SCIX0	242

+#define	VECT_SCI12_SCIX1	243

+#define	VECT_SCI12_SCIX2	244

+#define	VECT_SCI12_SCIX3	245

+#define	VECT_RIIC0_EEI0		246

+#define	VECT_RIIC0_RXI0		247

+#define	VECT_RIIC0_TXI0		248

+#define	VECT_RIIC0_TEI0		249

+

+#define	MSTP_DTC	SYSTEM.MSTPCRA.BIT.MSTPA28

+#define	MSTP_DA		SYSTEM.MSTPCRA.BIT.MSTPA19

+#define	MSTP_S12AD	SYSTEM.MSTPCRA.BIT.MSTPA17

+#define	MSTP_CMT	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT0	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT1	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_MTU	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU0	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU1	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU2	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU3	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU4	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU5	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_SCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SMCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_SMCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_CRC	SYSTEM.MSTPCRB.BIT.MSTPB23

+#define	MSTP_RIIC0	SYSTEM.MSTPCRB.BIT.MSTPB21

+#define	MSTP_USB0	SYSTEM.MSTPCRB.BIT.MSTPB19

+#define	MSTP_RSPI0	SYSTEM.MSTPCRB.BIT.MSTPB17

+#define	MSTP_ELC	SYSTEM.MSTPCRB.BIT.MSTPB9

+#define	MSTP_DOC	SYSTEM.MSTPCRB.BIT.MSTPB6

+#define	MSTP_SCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_SMCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_CAC	SYSTEM.MSTPCRC.BIT.MSTPC19

+#define	MSTP_RAM0	SYSTEM.MSTPCRC.BIT.MSTPC0

+

+#define	__IR( x )		ICU.IR[ IR ## x ].BIT.IR

+#define	 _IR( x )		__IR( x )

+#define	  IR( x , y )	_IR( _ ## x ## _ ## y )

+#define	__DTCE( x )		ICU.DTCER[ DTCE ## x ].BIT.DTCE

+#define	 _DTCE( x )		__DTCE( x )

+#define	  DTCE( x , y )	_DTCE( _ ## x ## _ ## y )

+#define	__IEN( x )		ICU.IER[ IER ## x ].BIT.IEN ## x

+#define	 _IEN( x )		__IEN( x )

+#define	  IEN( x , y )	_IEN( _ ## x ## _ ## y )

+#define	__IPR( x )		ICU.IPR[ IPR ## x ].BIT.IPR

+#define	 _IPR( x )		__IPR( x )

+#define	  IPR( x , y )	_IPR( _ ## x ## _ ## y )

+#define	__VECT( x )		VECT ## x

+#define	 _VECT( x )		__VECT( x )

+#define	  VECT( x , y )	_VECT( _ ## x ## _ ## y )

+#define	__MSTP( x )		MSTP ## x

+#define	 _MSTP( x )		__MSTP( x )

+#define	  MSTP( x )		_MSTP( _ ## x )

+

+#define	BSC		(*(volatile struct st_bsc    *)0x81300)

+#define	CAC		(*(volatile struct st_cac    *)0x8B000)

+#define	CMT		(*(volatile struct st_cmt    *)0x88000)

+#define	CMT0	(*(volatile struct st_cmt0   *)0x88002)

+#define	CMT1	(*(volatile struct st_cmt0   *)0x88008)

+#define	CRC		(*(volatile struct st_crc    *)0x88280)

+#define	DA		(*(volatile struct st_da     *)0x880C0)

+#define	DOC		(*(volatile struct st_doc    *)0x8B080)

+#define	DTC		(*(volatile struct st_dtc    *)0x82400)

+#define	ELC		(*(volatile struct st_elc    *)0x8B100)

+#define	FLASH	(*(volatile struct st_flash  *)0x7FC090)

+#define	ICU		(*(volatile struct st_icu    *)0x87000)

+#define	IWDT	(*(volatile struct st_iwdt   *)0x88030)

+#define	MPC		(*(volatile struct st_mpc    *)0x8C11F)

+#define	MTU		(*(volatile struct st_mtu    *)0x8860A)

+#define	MTU0	(*(volatile struct st_mtu0   *)0x88690)

+#define	MTU1	(*(volatile struct st_mtu1   *)0x88690)

+#define	MTU2	(*(volatile struct st_mtu2   *)0x88692)

+#define	MTU3	(*(volatile struct st_mtu3   *)0x88600)

+#define	MTU4	(*(volatile struct st_mtu4   *)0x88600)

+#define	MTU5	(*(volatile struct st_mtu5   *)0x88694)

+#define	POE		(*(volatile struct st_poe    *)0x88900)

+#define	PORT	(*(volatile struct st_port   *)0x8C120)

+#define	PORT0	(*(volatile struct st_port0  *)0x8C000)

+#define	PORT1	(*(volatile struct st_port1  *)0x8C001)

+#define	PORT2	(*(volatile struct st_port2  *)0x8C002)

+#define	PORT3	(*(volatile struct st_port3  *)0x8C003)

+#define	PORT4	(*(volatile struct st_port4  *)0x8C004)

+#define	PORT5	(*(volatile struct st_port5  *)0x8C005)

+#define	PORTA	(*(volatile struct st_porta  *)0x8C00A)

+#define	PORTB	(*(volatile struct st_portb  *)0x8C00B)

+#define	PORTC	(*(volatile struct st_portc  *)0x8C00C)

+#define	PORTE	(*(volatile struct st_porte  *)0x8C00E)

+#define	RIIC0	(*(volatile struct st_riic   *)0x88300)

+#define	RSPI0	(*(volatile struct st_rspi   *)0x88380)

+#define	RTC		(*(volatile struct st_rtc    *)0x8C400)

+#define	RTCB	(*(volatile struct st_rtcb   *)0x8C402)

+#define	S12AD	(*(volatile struct st_s12ad  *)0x89000)

+#define	SCI1	(*(volatile struct st_sci1   *)0x8A020)

+#define	SCI5	(*(volatile struct st_sci1   *)0x8A0A0)

+#define	SCI12	(*(volatile struct st_sci12  *)0x8B300)

+#define	SMCI1	(*(volatile struct st_smci   *)0x8A020)

+#define	SMCI5	(*(volatile struct st_smci   *)0x8A0A0)

+#define	SMCI12	(*(volatile struct st_smci   *)0x8B300)

+#define	SYSTEM	(*(volatile struct st_system *)0x80000)

+#define	USB0	(*(volatile struct st_usb    *)0xA0000)

+#endif /*__RX_LITTLE_ENDIAN__*/

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
new file mode 100644
index 0000000..6ed672b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
@@ -0,0 +1,112 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : mcu_info.h

+* Device(s)    : RX111

+* Description  : Information about the MCU on this board (RSKRX111).

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef _MCU_INFO

+#define _MCU_INFO

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Gets MCU configuration information. */

+#include "r_bsp_config.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* MCU Series. */

+#if   MCU_PART_SERIES == 0x0

+    #define MCU_SERIES_RX100    (1)

+#else

+    #error "ERROR - MCU_PART_SERIES - Unknown MCU Series chosen in r_bsp_config.h"

+#endif

+

+/* MCU Group name. */

+#if   MCU_PART_GROUP == 0x1

+    #define MCU_RX111           (1)

+    #define MCU_RX11x           (1)

+#else

+    #error "ERROR - MCU_PART_GROUP - Unknown MCU Group chosen in r_bsp_config.h"

+#endif

+

+/* Package. */

+#if   MCU_PART_PACKAGE == 0x0

+    #define PACKAGE_LFQFP64     (1)

+#elif MCU_PART_PACKAGE == 0x1

+    #define PACKAGE_LQFP64      (1)

+#elif MCU_PART_PACKAGE == 0x2

+    #define PACKAGE_TFLGA64     (1)

+#elif MCU_PART_PACKAGE == 0x3

+    #define PACKAGE_LFQFP48     (1)

+#elif MCU_PART_PACKAGE == 0x4

+    #define PACKAGE_VQFN48      (1)

+#elif MCU_PART_PACKAGE == 0x5

+    #define PACKAGE_HWQFN36     (1)

+#elif MCU_PART_PACKAGE == 0x6

+    #define PACKAGE_WFLGA36     (1)

+#elif MCU_PART_PACKAGE == 0x7

+    #define PACKAGE_SSOP36      (1)

+#else

+    #error "ERROR - MCU_PART_PACKAGE - Unknown package chosen in r_bsp_config.h"

+#endif

+

+/* Memory size of your MCU. */

+#if   MCU_PART_MEMORY_SIZE == 0x0			// "J" parts

+    #define ROM_SIZE_BYTES      (16384)

+    #define RAM_SIZE_BYTES      (8192)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x1

+    #define ROM_SIZE_BYTES      (32768)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x3

+    #define ROM_SIZE_BYTES      (65536)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x4

+    #define ROM_SIZE_BYTES      (98304)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x5

+    #define ROM_SIZE_BYTES      (131072)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#else

+    #error "ERROR - MCU_PART_MEMORY_SIZE - Unknown memory size chosen in r_bsp_config.h"

+#endif

+

+/* System clock speed in Hz. */

+#define ICLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)

+/* Peripheral Module Clock B speed in Hz. */

+#define PCLKB_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV)

+/* Peripheral Module Clock D speed in Hz. */

+#define PCLKD_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV)

+/* FlashIF clock speed in Hz. */

+#define FCLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)

+

+#endif /* _MCU_INFO */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/reset_program.asm b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/reset_program.asm
new file mode 100644
index 0000000..4a1497c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/reset_program.asm
@@ -0,0 +1,175 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  reset_program.asm                              */
+/*      DESCRIPTION  :  Reset Program                                  */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/

+

+

+

+	/*reset_program.asm*/

+

+	.list

+	.section .text

+	.global _PowerON_Reset    /*global Start routine */

+

+	.extern _HardwareSetup  /*external Sub-routine to initialise Hardware*/

+	.extern _data

+	.extern _mdata

+	.extern _ebss

+	.extern _bss

+	.extern _edata

+	.extern _main

+	.extern _ustack

+	.extern _istack

+	.extern _rvectors

+	.extern _exit

+

+

+_PowerON_Reset :

+/* initialise user stack pointer */

+	mvtc	#_ustack,USP

+

+/* initialise interrupt stack pointer */

+	mvtc	#_istack,ISP

+

+/* setup intb */

+	mvtc	#_rvectors_start, intb	/* INTERRUPT VECTOR ADDRESS  definition	*/

+

+/* load data section from ROM to RAM */

+

+	mov     #_mdata,r2      /* src ROM address of data section in R2 */

+	mov     #_data,r1       /* dest start RAM address of data section in R1 */

+	mov     #_edata,r3      /* end RAM address of data section in R3 */

+	sub    r1,r3            /* size of data section in R3 (R3=R3-R1) */

+	smovf                   /* block copy R3 bytes from R2 to R1 */

+

+/* bss initialisation : zero out bss */

+

+	mov	#00h,r2  	/* load R2 reg with zero */

+	mov	#_ebss, r3  /* store the end address of bss in R3 */

+	mov	#_bss, r1 	/* store the start address of bss in R1 */

+	sub   r1,r3	   	/* size of bss section in R3 (R3=R3-R1) */

+	sstr.b

+/* call the hardware initialiser */

+	bsr.a	_HardwareSetup

+	nop

+

+#ifdef RUN_IN_USER_MODE
+/* setup PSW */

+	mvtc	#10000h, psw			/* Set Ubit & Ibit for PSW */

+

+/* change PSW PM to user-mode */
+	MVFC   PSW,R1

+	OR     #00100000h,R1

+	PUSH.L R1

+	MVFC   PC,R1

+	ADD    #10,R1

+	PUSH.L R1

+	RTE

+	NOP

+	NOP
+#endif

+#ifdef CPPAPP

+    bsr.a	__rx_init

+#endif

+/* start user program */

+	bsr.a	_main

+	bsr.a 	_exit

+

+#ifdef CPPAPP

+	.global	_rx_run_preinit_array

+	.type	_rx_run_preinit_array,@function

+_rx_run_preinit_array:

+	mov	#__preinit_array_start,r1

+	mov	#__preinit_array_end,r2

+	bra.a	_rx_run_inilist

+

+	.global	_rx_run_init_array

+	.type	_rx_run_init_array,@function

+_rx_run_init_array:

+	mov	#__init_array_start,r1

+	mov	#__init_array_end,r2

+	mov	#4, r3

+	bra.a	_rx_run_inilist

+

+	.global	_rx_run_fini_array

+	.type	_rx_run_fini_array,@function

+_rx_run_fini_array:

+	mov	#__fini_array_start,r2

+	mov	#__fini_array_end,r1

+	mov	#-4, r3

+	/* fall through */

+

+_rx_run_inilist:

+next_inilist:

+	cmp	r1,r2

+	beq.b	done_inilist

+	mov.l	[r1],r4

+	cmp	#-1, r4

+	beq.b	skip_inilist

+	cmp	#0, r4

+	beq.b	skip_inilist

+	pushm	r1-r3

+	jsr	r4

+	popm	r1-r3

+skip_inilist:

+	add	r3,r1

+	bra.b	next_inilist

+done_inilist:

+	rts

+

+	.section	.init,"ax"

+	.balign 4

+

+	.global __rx_init

+__rx_init:

+

+	.section	.fini,"ax"

+	.balign 4

+

+	.global __rx_fini

+__rx_fini:

+	bsr.a	_rx_run_fini_array

+

+        .section .sdata

+        .balign 4

+        .global __gp

+	.weak   __gp

+__gp:

+

+	.section .data

+	.global ___dso_handle

+	.weak   ___dso_handle

+___dso_handle:

+	.long	0

+

+     .section        .init,"ax"

+     bsr.a   _rx_run_preinit_array

+     bsr.a   _rx_run_init_array

+     rts

+

+    .global __rx_init_end

+__rx_init_end:

+

+    .section        .fini,"ax"

+

+    rts

+    .global __rx_fini_end

+__rx_fini_end:

+

+#endif

+

+/* call to exit*/

+_exit:

+	bra  _loop_here

+_loop_here:

+    bra _loop_here

+

+	.text

+	.end

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/typedefine.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/typedefine.h
new file mode 100644
index 0000000..a52e286
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/typedefine.h
@@ -0,0 +1,25 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  typedefine.h                                   */
+/*      DESCRIPTION  :  Aliases of Integer Type                        */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/                                                                           

+                                                                           

+                                                                           

+                                                                           

+                                                                          

+typedef signed char _SBYTE;

+typedef unsigned char _UBYTE;

+typedef signed short _SWORD;

+typedef unsigned short _UWORD;

+typedef signed int _SINT;

+typedef unsigned int _UINT;

+typedef signed long _SDWORD;

+typedef unsigned long _UDWORD;

+typedef signed long long _SQWORD;

+typedef unsigned long long _UQWORD;

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/vector_table.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/vector_table.c
new file mode 100644
index 0000000..aac394e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/vector_table.c
@@ -0,0 +1,590 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  vector_table.c                                 */
+/*      DESCRIPTION  :  Vector Table                                   */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/

+

+

+

+

+

+#include "interrupt_handlers.h"

+

+typedef void (*fp) (void);

+extern void PowerON_Reset (void);

+extern void stack (void);
+extern void vPortSoftwareInterruptISR( void );
+extern void vPortTickISR( void );
+extern void Dummy( void );
+extern void vButtonInterrupt( void );

+

+#ifdef __RX_LITTLE_ENDIAN__

+const unsigned char Endian_Select[]  __attribute__ ((section (".endian_bytes"))) = {

+	0xff, 0xff, 0xff, 0xff

+};

+#elif __RX_BIG_ENDIAN__

+const unsigned char Endian_Select[]  __attribute__ ((section (".endian_bytes"))) = {

+	0xff, 0xff, 0xff, 0xf8

+};

+#endif

+

+// Option bytes setting for OFS1:0xFFFFFF88 and OFS0:0xFFFFFF8C

+const unsigned char Security_Id[]  __attribute__ ((section (".option_bytes"))) = {

+	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff

+};

+

+

+#define FVECT_SECT          __attribute__ ((section (".fvectors")))

+

+const void *HardwareVectors[] FVECT_SECT  = {

+//;0xffffffd0  Exception(Supervisor Instruction)

+    INT_Excep_SuperVisorInst,

+//;0xffffffd4  Reserved

+    (fp)0,

+//;0xffffffd8  Reserved

+    (fp)0,

+//;0xffffffdc  Exception(Undefined Instruction)

+    INT_Excep_UndefinedInst,

+//;0xffffffe0  Reserved

+    (fp)0,

+//;0xffffffe4  Exception(Floating Point)

+    INT_Excep_FloatingPoint,

+//;0xffffffe8  Reserved

+    (fp)0,

+//;0xffffffec  Reserved

+    (fp)0,

+//;0xfffffff0  Reserved

+    (fp)0,

+//;0xfffffff4  Reserved

+    (fp)0,

+//;0xfffffff8  NMI

+    INT_NonMaskableInterrupt,

+//;0xfffffffc  RESET

+//;<<VECTOR DATA START (POWER ON RESET)>>

+//;Power On Reset PC

+    PowerON_Reset

+//;<<VECTOR DATA END (POWER ON RESET)>>

+};

+#define RVECT_SECT          __attribute__ ((section (".rvectors")))

+

+const fp RelocatableVectors[] RVECT_SECT  = {

+

+//;0x0000  Reserved
+	(fp)0,
+//;0x0004  Reserved
+	(fp)0,
+//;0x0008  Reserved
+	(fp)0,
+//;0x000C  Reserved
+	(fp)0,
+//;0x0010  Reserved
+	(fp)0,
+//;0x0014  Reserved
+	(fp)0,
+//;0x0018  Reserved
+	(fp)0,
+//;0x001C  Reserved
+	(fp)0,
+//;0x0020  Reserved
+	(fp)0,
+//;0x0024  Reserved
+	(fp)0,
+//;0x0028  Reserved
+	(fp)0,
+//;0x002C  Reserved
+	(fp)0,
+//;0x0030  Reserved
+	(fp)0,
+//;0x0034  Reserved
+	(fp)0,
+//;0x0038  Reserved
+	(fp)0,
+//;0x003C  Reserved
+	(fp)0,
+//;0x0040
+	(fp)Dummy,
+//;0x0044  Reserved
+	(fp)0,
+//;0x0048  Reserved
+	(fp)0,
+//;0x004C  Reserved
+	(fp)0,
+//;0x0050  Reserved
+	(fp)0,
+//;0x0054
+	(fp)Dummy,
+//;0x0058  Reserved
+	(fp)0,
+//;0x005C
+	(fp)Dummy,
+//;0x0060  Reserved
+	(fp)0,
+//;0x0064  Reserved
+	(fp)0,
+//;0x0068  Reserved
+	(fp)0,
+//;0x006C  Reserved
+	(fp)vPortSoftwareInterruptISR,
+//;0x0070  CMTU0_CMT0
+	(fp)vPortTickISR,
+//;0x0074
+	(fp)Dummy,
+//;0x0078
+	(fp)Dummy,
+//;0x007C
+	(fp)Dummy,
+//;0x0080
+	(fp)Dummy,
+//;0x0084  Reserved
+	(fp)0,
+//;0x0088  Reserved
+	(fp)0,
+//;0x008C  Reserved
+	(fp)0,
+//;0x0090  Reserved
+	(fp)0,
+//;0x0094  Reserved
+	(fp)0,
+//;0x0098  Reserved
+	(fp)0,
+//;0x009C  Reserved
+	(fp)0,
+//;0x00A0  Reserved
+	(fp)0,
+//;0x00A4  Reserved
+	(fp)0,
+//;0x00A8  Reserved
+	(fp)0,
+//;0x00AC  Reserved
+	(fp)0,
+//;0x00B0  Reserved
+	(fp)0,
+//;0x00B4  Reserved
+	(fp)0,
+//;0x00B8  Reserved
+	(fp)0,
+//;0x00BC  Reserved
+	(fp)0,
+//;0x00C0  Reserved
+	(fp)0,
+//;0x00C4  Reserved
+	(fp)0,
+//;0x00C8  Reserved
+	(fp)0,
+//;0x00CC  Reserved
+	(fp)0,
+//;0x00D0  Reserved
+	(fp)0,
+//;0x00D4  Reserved
+	(fp)0,
+//;0x00D8  Reserved
+	(fp)0,
+//;0x00DC  Reserved
+	(fp)0,
+//;0x00E0  Reserved
+	(fp)0,
+//;0x00E4  Reserved
+	(fp)0,
+//;0x00E8  Reserved
+	(fp)0,
+//;0x00EC  Reserved
+	(fp)0,
+//;0x00F0  Reserved
+	(fp)0,
+//;0x00F4  Reserved
+	(fp)0,
+//;0x00F8  Reserved
+	(fp)0,
+//;0x00FC  Reserved
+	(fp)0,
+//;0x0100  IRQ0
+	(fp)vButtonInterrupt,
+//;0x0104 IRQ1
+	(fp)vButtonInterrupt,
+//;0x0108 IRQ2
+	(fp)Dummy,
+//;0x010C IRQ3
+	(fp)Dummy,
+//;0x0110 IRQ4
+	(fp)vButtonInterrupt,
+//;0x0114 IRQ5
+	(fp)Dummy,
+//;0x0118 IRQ6
+	(fp)Dummy,
+//;0x011C IRQ7
+	(fp)Dummy,
+//;0x0120
+	(fp)Dummy,
+//;0x0124
+	(fp)Dummy,
+//;0x0128
+	(fp)Dummy,
+//;0x012C
+	(fp)Dummy,
+//;0x0130
+	(fp)Dummy,
+//;0x0134
+	(fp)Dummy,
+//;0x0138
+	(fp)Dummy,
+//;0x013C
+	(fp)Dummy,
+//;0x0140  Reserved
+	(fp)0,
+//;0x0144  Reserved
+	(fp)0,
+//;0x0148  Reserved
+	(fp)0,
+//;0x014C  Reserved
+	(fp)0,
+//;0x0150  Reserved
+	(fp)0,
+//;0x0154  Reserved
+	(fp)0,
+//;0x0158  Reserved
+	(fp)0,
+//;0x015C  Reserved
+	(fp)0,
+//;0x0160  Reserved
+	(fp)0,
+//;0x0164  Reserved
+	(fp)0,
+//;0x0168  Reserved
+	(fp)0,
+//;0x016C  Reserved
+	(fp)0,
+//;0x0170  Reserved
+	(fp)0,
+//;0x0174  Reserved
+	(fp)0,
+//;0x0178  Reserved
+	(fp)0,
+//;0x017C  Reserved
+	(fp)0,
+//;0x0180
+	(fp)Dummy,
+//;0x0184  Reserved
+	(fp)0,
+//;0x0188
+	(fp)Dummy,
+//;0x018C
+	(fp)Dummy,
+//;0x0190
+	(fp)Dummy,
+//;0x0194
+	(fp)Dummy,
+//;0x0198  Reserved
+	(fp)0,
+//;0x019C  Reserved
+	(fp)0,
+//;0x01A0
+	(fp)Dummy,
+//;0x01A4
+	(fp)Dummy,
+//;0x01A8
+	(fp)Dummy,
+//;0x01AC
+	(fp)Dummy,
+//;0x01B0
+	(fp)Dummy,
+//;0x01B4  Reserved
+	(fp)0,
+//;0x01B8  Reserved
+	(fp)0,
+//;0x01BC
+	(fp)Dummy,
+//;0x01C0
+	(fp)Dummy,
+//;0x01C4  Reserved
+	(fp)Dummy,
+//;0x01C8  Reserved
+	(fp)Dummy,
+//;0x01CC
+	(fp)Dummy,
+//;0x01D0
+	(fp)Dummy,
+//;0x01D4
+	(fp)Dummy,
+//;0x01D8
+	(fp)Dummy,
+//;0x01DC  Reserved
+	(fp)Dummy,
+//;0x01E0
+	(fp)Dummy,
+//;0x01E4
+	(fp)Dummy,
+//;0x01E8
+	(fp)Dummy,
+//;0x01EC
+	(fp)Dummy,
+//;0x01F0
+	(fp)Dummy,
+//;0x01F4
+	(fp)Dummy,
+//;0x01F8
+	(fp)Dummy,
+//;0x01FC
+	(fp)Dummy,
+//;0x0200
+	(fp)Dummy,
+//;0x0204  Reserved
+	(fp)Dummy,
+//;0x0208  Reserved
+	(fp)Dummy,
+//;0x020C
+	(fp)Dummy,
+//;0x0210
+	(fp)Dummy,
+//;0x0214
+	(fp)Dummy,
+//;0x0218
+	(fp)Dummy,
+//;0x021C  Reserved
+	(fp)Dummy,
+//;0x0220
+	(fp)Dummy,
+//;0x0224
+	(fp)Dummy,
+//;0x0228
+	(fp)Dummy,
+//;0x022C
+	(fp)Dummy,
+//;0x0230
+	(fp)Dummy,
+//;0x0234
+	(fp)Dummy,
+//;0x0238
+	(fp)Dummy,
+//;0x023C  Reserved
+	(fp)Dummy,
+//;0x0240  Reserved
+	(fp)Dummy,
+//;0x0244
+	(fp)Dummy,
+//;0x0248
+	(fp)Dummy,
+//;0x024C  Reserved
+	(fp)Dummy,
+//;0x0250  Reserved
+	(fp)Dummy,
+//;0x0254
+	(fp)Dummy,
+//;0x0258
+	(fp)Dummy,
+//;0x025C
+	(fp)Dummy,
+//;0x0260
+	(fp)Dummy,
+//;0x0264  Reserved
+	(fp)Dummy,
+//;0x0268
+	(fp)Dummy,
+//;0x026C
+	(fp)Dummy,
+//;0x0270
+	(fp)Dummy,
+//;0x0274
+	(fp)Dummy,
+//;0x0278
+	(fp)Dummy,
+//;0x027C
+	(fp)Dummy,
+//;0x0280
+	(fp)Dummy,
+//;0x0284
+	(fp)Dummy,
+//;0x0288
+	(fp)Dummy,
+//;0x028C  Reserved
+	(fp)Dummy,
+//;0x0290  Reserved
+	(fp)Dummy,
+//;0x0294
+	(fp)Dummy,
+//;0x0298
+	(fp)Dummy,
+//;0x029C
+	(fp)Dummy,
+//;0x02A0
+	(fp)Dummy,
+//;0x02A4  Reserved
+	(fp)Dummy,
+//;0x02A8
+	(fp)Dummy,
+//;0x02AC
+	(fp)Dummy,
+//;0x02B0  Reserved
+	(fp)Dummy,
+//;0x02B4  Reserved
+	(fp)Dummy,
+//;0x02B8
+	(fp)Dummy,
+//;0x02BC
+	(fp)Dummy,
+//;0x02C0
+	(fp)Dummy,
+//;0x02C4
+	(fp)Dummy,
+//;0x02C8
+	(fp)Dummy,
+//;0x02CC
+	(fp)Dummy,
+//;0x02D0
+	(fp)Dummy,
+//;0x02D4
+	(fp)Dummy,
+//;0x02D8
+	(fp)Dummy,
+//;0x02DC
+	(fp)Dummy,
+//;0x02E0
+	(fp)Dummy,
+//;0x02E4
+	(fp)Dummy,
+//;0x02E8  Reserved
+	(fp)Dummy,
+//;0x02EC  Reserved
+	(fp)Dummy,
+//;0x02F0  Reserved
+	(fp)Dummy,
+//;0x02F4  Reserved
+	(fp)Dummy,
+//;0x02F8  Reserved
+	(fp)Dummy,
+//;0x02FC  Reserved
+	(fp)Dummy,
+//;0x0300  Reserved
+	(fp)Dummy,
+//;0x0304  Reserved
+	(fp)Dummy,
+//;0x0308  Reserved
+	(fp)Dummy,
+//;0x030C  Reserved
+	(fp)Dummy,
+//;0x0310  Reserved
+	(fp)Dummy,
+//;0x0314  Reserved
+	(fp)Dummy,
+//;0x0318
+	(fp)Dummy,
+//;0x031C
+	(fp)Dummy,
+//;0x0320
+	(fp)Dummy,
+//;0x0324
+	(fp)Dummy,
+//;0x0328  Reserved
+	(fp)Dummy,
+//;0x032C  Reserved
+	(fp)Dummy,
+//;0x0330  Reserved
+	(fp)Dummy,
+//;0x0334  Reserved
+	(fp)Dummy,
+//;0x0338  Reserved
+	(fp)Dummy,
+//;0x033C  Reserved
+	(fp)Dummy,
+//;0x0340  Reserved
+	(fp)Dummy,
+//;0x0344  Reserved
+	(fp)Dummy,
+//;0x0348  Reserved
+	(fp)Dummy,
+//;0x034C  Reserved
+	(fp)Dummy,
+//;0x0350  Reserved
+	(fp)Dummy,
+//;0x0354  Reserved
+	(fp)Dummy,
+//;0x0358
+	(fp)Dummy,
+//;0x035C
+	(fp)Dummy,
+//;0x0360
+	(fp)Dummy,
+//;0x0364
+	(fp)Dummy,
+//;0x0368
+	(fp)Dummy,
+//;0x036C
+	(fp)Dummy,
+//;0x0370
+	(fp)Dummy,
+//;0x0374
+	(fp)Dummy,
+//;0x0378
+	(fp)Dummy,
+//;0x037C
+	(fp)Dummy,
+//;0x0380
+	(fp)Dummy,
+//;0x0384
+	(fp)Dummy,
+//;0x0388
+	(fp)Dummy,
+//;0x038C
+	(fp)Dummy,
+//;0x0390
+	(fp)Dummy,
+//;0x0394
+	(fp)Dummy,
+//;0x0398
+	(fp)Dummy,
+//;0x039C
+	(fp)Dummy,
+//;0x03A0
+	(fp)Dummy,
+//;0x03A4
+	(fp)Dummy,
+//;0x03A8
+	(fp)Dummy,
+//;0x03AC
+	(fp)Dummy,
+//;0x03B0
+	(fp)Dummy,
+//;0x03B4
+	(fp)Dummy,
+//;0x03B8
+	(fp)Dummy,
+//;0x03BC
+	(fp)Dummy,
+//;0x03C0
+	(fp)Dummy,
+//;0x03C4
+	(fp)Dummy,
+//;0x03C8  Reserved
+	(fp)Dummy,
+//;0x03CC  Reserved
+	(fp)Dummy,
+//;0x03D0  Reserved
+	(fp)Dummy,
+//;0x03D4  Reserved
+	(fp)Dummy,
+//;0x03D8
+	(fp)Dummy,
+//;0x03DC
+	(fp)Dummy,
+//;0x03E0
+	(fp)Dummy,
+//;0x03E4
+	(fp)Dummy,
+//;0x03E8
+	(fp)Dummy,
+//;0x03EC
+	(fp)Dummy,
+//;0x03F0
+	(fp)Dummy,
+//;0x03F4
+	(fp)Dummy,
+//;0x03F8  Reserved
+	(fp)0,
+//;0x03FC  Reserved
+	(fp)0,
+};

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h
new file mode 100644
index 0000000..3427aab
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h
@@ -0,0 +1,88 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : platform.h

+* Description  : The user chooses which MCU and board they are developing for in this file. If the board you are using

+*                is not listed below, please add your own or use the default 'User Board'.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 30.11.2011 1.00     First Release

+*         : 13.01.2012 1.10     Moved from having platform defined using macro defintion, to having platform defined

+*                               by choosing an include path. This makes this file simpler and cleans up the issue

+*                               where HEW shows all header files for all platforms under 'Dependencies'.

+*         : 14.02.2012 1.20     Added RX210 BSP.

+*         : 18.04.2012 1.30     Updated to v0.70 of FIT S/W Spec and v0.20 of FIT r_bsp Spec. This includes adding

+*                               locking.c and locking.h in board folders. Also, r_bsp can now be configured through

+*                               r_bsp_config.h.

+*         : 26.06.2012 1.40     Added new options such as exception callbacks and the ability to choose your MCU using

+*                               its part number in r_bsp_config.h. Moved mcu_info.h to the 'mcu' folder. Made an effort

+*                               to remove any extra files that the user would need to touch. Removed the flash_options.c

+*                               file and put its contents in vecttbl.c.

+*         : 17.07.2012 1.50     Fixed bug with exception callback function names. Added BCLK_OUTPUT and SDCLK_OUTPUT 

+*                               macro options in r_bsp_config.h. Added some extra code to handle exceptions in

+*                               vecttbl.c. Added vecttbl.h so that user has prototypes for exception callbacks.

+*         : 08.11.2012 1.60		Added RX111 BSP

+***********************************************************************************************************************/

+

+#ifndef _PLATFORM_H_

+#define _PLATFORM_H_

+

+/***********************************************************************************************************************

+DEFINE YOUR SYSTEM - UNCOMMENT THE INCLUDE PATH FOR THE PLATFORM YOU ARE USING.

+***********************************************************************************************************************/

+/* RSKRX610 */

+//#include "./board/rskrx610/r_bsp.h"

+

+/* RSKRX62N */

+//#include "./board/rskrx62n/r_bsp.h"

+

+/* RSKRX62T */

+//#include "./board/rskrx62t/r_bsp.h"

+

+/* RDKRX62N */

+//#include "./board/rdkrx62n/r_bsp.h"

+

+/* RSKRX630 */

+//#include "./board/rskrx630/r_bsp.h"

+

+/* RSKRX63N */

+//#include "./board/rskrx63n/r_bsp.h"

+

+/* RDKRX63N */

+//#include "./board/rdkrx63n/r_bsp.h"

+

+/* RSKRX210 */

+//#include "./board/rskrx210/r_bsp.h"

+

+/* RSKRX111 */

+#include "./board/rskrx111/r_bsp.h"

+

+/* User Board - Define your own board here. */

+//#include "./board/user/r_bsp.h"

+

+/***********************************************************************************************************************

+MAKE SURE AT LEAST ONE PLATFORM WAS DEFINED - DO NOT EDIT BELOW THIS POINT

+***********************************************************************************************************************/

+#ifndef PLATFORM_DEFINED

+#error  "Error - No platform defined in platform.h!"

+#endif

+

+#endif /* _PLATFORM_H_ */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h
new file mode 100644
index 0000000..537479e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such

+   as package and memory size.

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product.

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity.

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name.

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name.

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type.

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x001)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used.

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/

+#define CLOCK_SOURCE            (4)	// GI org 4

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV).

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)		// GI org 2

+/* PLL Frequency Multiplication Factor Select (STC).

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)		// GI org 6

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)		// NOTE: ICLK CANNOT BE SLOWER THAN PCLK!

+/* Peripheral Module Clock B Divider (PCKB).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)		// GI org 2

+/* Peripheral Module Clock D Divider (PCKD).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a

+   function to be called when the event occurs. For example, if the user wanted the function

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings.

+   OFS0 - Option Function Select Register 0

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (0)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt
new file mode 100644
index 0000000..c7ee2b7
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt
@@ -0,0 +1,100 @@
+r_bsp Package

+=============

+

+Document Number

+---------------

+N/A

+

+Version

+-------

+v1.60

+

+Overview

+--------

+The r_bsp package provides a foundation for code to be built on top of. It provides startup code, iodefines, and MCU

+information for different boards. There are 2 folders that make up the r_bsp package. The 'mcu' folder has iodefine

+files and a file named 'mcu_info.h' for each MCU group. The 'mcu_info.h' file has information about the MCU on the board

+and is configured based on the information given in r_bsp_config.h. The information in 'mcu_info.h' is used to help 

+configure Renesas middleware that uses the r_bsp package. The 'board' folder has a folder with startup code for each 

+supported board.  Which MCU and board is chosen is decided by the settings in 'platform.h'. The user can choose which 

+board they are using by uncommenting the include path that applies to their board. For example, if you are using the 

+RSK+RX62N then you would uncomment the #include "./board/rskrx62n/r_bsp.h" include path. Users are encouraged to add 

+their own boards to the 'board' directory. BSPs are configured by using the r_bsp_config.h file. Each board will have a 

+reference configuration file named r_bsp_config_reference.h. The user should copy this file to their project, rename it 

+to r_bsp_config.h, and use the options inside the file to configure the BSP for their project.

+

+Features

+--------

+* Provides foundation to build code on top of.

+* Provides MCU startup code.

+* Provides SFR access through iodefine.h

+* Stores details of MCU in 'mcu_info.h' to help configure Renesas middleware.

+* Easily configure BSP through r_bsp_config.h.

+* Choose MCU easily by inputting part number details in r_bsp_config.h.

+* Provides callbacks for MCU exceptions and the bus error interrupt.

+ 

+Limitations

+-----------

+N/A

+

+Peripherals Used Directly

+-------------------------

+N/A

+

+Required Packages

+-----------------

+* r_glyph [required if you want to use LCD for RDK boards]

+* r_rspi_rx [required if you want to use LCD for RDK boards]

+

+How to add to your project

+--------------------------

+* Copy the r_bsp folder to your project.

+* Add an include path to the 'r_bsp' directory. 

+* Add all of the source files for your board from the 'r_bsp\board\--YOUR_BOARD--' directory to your project. 

+* Uncomment the include path for your board in 'platform.h' which is located in the 'r_bsp' directory.

+* Copy the file r_bsp_config_reference.h from the 'r_bsp\board\--YOUR_BOARD--' directory and copy it to your project's

+  source code directory. Rename the file r_bsp_config.h.

+* Open r_bsp_config.h and use the macros to configure the BSP for your project.

+

+File Structure

+--------------

+r_bsp

+|   platform.h (choose which board is being used)

+|   readme.txt

+|

++---board (contains supported boards)

+|   +---rdkrx62n (contains BSP source and header files)

+|   |

+|   +---rdkrx63n

+|   |

+|	+---rskrx111

+|	|

+|   +---rskrx210

+|   |

+|   +---rskrx610

+|   |

+|   +---rskrx62n

+|   |

+|   +---rskrx62t

+|   |

+|   +---rskrx630

+|   |

+|   +---rskrx63n

+|   |

+|   \---user

+|

+\---mcu

+	+---rx111 (contains common files to this MCU group, e.g. iodefine.h)

+	|

+    +---rx210 

+    |

+    +---rx610

+    |

+    +---rx62n

+    |

+    +---rx62t

+    |

+    +---rx630

+    |

+    \---rx63n

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx
new file mode 100644
index 0000000..6fe7e86
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx
Binary files differ
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h
new file mode 100644
index 0000000..ba6d58f
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h
@@ -0,0 +1,47 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches_config.c

+* Description  : Configures the switches code

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+***********************************************************************************************************************/

+#ifndef SWITCHES_CONFIG_HEADER_FILE

+#define SWITCHES_CONFIG_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* This macro sets whether interrupts or polling is used for detecting switch presses. The benefit of using interrupts

+   is that no extra processing is used for polling and the use of a system timer tick is not a requirement. The downside

+   of using interrupts is that callback functions are called from within an interrupt so if your ISR is long then it can

+   degrade the real-time response of your system. The benefit of polling is that functions are called at the application

+   level and debouncing is supported. The downside to polling is that your system must call the R_SWITCHES_Update() on a

+   regular basis which requires extra processing.

+

+   0 = Use interrupts

+   1 = Use polling

+    */

+#define SWITCHES_DETECTION_MODE     (0)

+

+#endif /* SWITCHES_CONFIG_HEADER_FILE */

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h
new file mode 100644
index 0000000..c2f8d08
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h
@@ -0,0 +1,72 @@
+/***********************************************************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No
+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all
+* applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM
+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES
+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS
+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of
+* this software. By using this software, you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.
+***********************************************************************************************************************/
+/***********************************************************************************************************************
+* File Name    : r_switches_if.h
+* Description  : Functions for using switches with callback functions.
+************************************************************************************************************************
+* History : DD.MM.YYYY Version Description
+*         : 17.01.2012 1.00    First Release
+*         : 17.02.2012 1.10    Added RSKRX210 support.
+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).
+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.
+***********************************************************************************************************************/
+
+#ifndef SWITCHES_API_HEADER_FILE
+#define SWITCHES_API_HEADER_FILE
+
+/***********************************************************************************************************************
+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/
+/* Fixed width integer support. */

+#include <stdint.h>

+/* Used for configuring the code */
+#include "r_switches_config.h"
+
+/***********************************************************************************************************************
+Macro definitions
+***********************************************************************************************************************/
+/* Version Number of API. */
+#define SWITCHES_VERSION_MAJOR           (1)
+#define SWITCHES_VERSION_MINOR           (0)
+/* The process of getting the version number is done through the macro below. The version number is encoded where the
+   top 2 bytes are the major version number and the bottom 2 bytes are the minor version number. For example,
+   Version 4.25 would be returned as 0x00040019. */
+#define R_SWITCHES_GetVersion()  ((((uint32_t)SWITCHES_VERSION_MAJOR) << 16) | (uint32_t)SWITCHES_VERSION_MINOR)
+
+/***********************************************************************************************************************
+Public Functions
+***********************************************************************************************************************/
+void R_SWITCHES_Init(void);
+void R_SWITCHES_Update(void);
+
+/* Callback prototypes. */
+#if defined(SW1_CALLBACK_FUNCTION)
+void SW1_CALLBACK_FUNCTION(void);
+#endif
+
+#if defined(SW2_CALLBACK_FUNCTION)
+void SW2_CALLBACK_FUNCTION(void);
+#endif
+
+#if defined(SW3_CALLBACK_FUNCTION)
+void SW3_CALLBACK_FUNCTION(void);
+#endif
+
+#endif /* SWITCHES_API_HEADER_FILE */
+
diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt
new file mode 100644
index 0000000..d1e1e40
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt
@@ -0,0 +1,83 @@
+PLEASE REFER TO THE APPLICATION NOTE FOR THIS MIDDLEWARE FOR MORE INFORMATION

+

+Switches

+========

+

+Document Number 

+---------------

+N/A

+

+Version

+-------

+v1.40

+

+Overview

+--------

+Configures port pins for switches and calls user defined function on switch press. Switch presses can be detected using 

+IRQ interrupts or by polling. The benefit of using interrupts is that no extra processing is used for polling and the 

+use of a system timer tick is not a requirement. The downside of using interrupts is that callback functions are called 

+from within an interrupt so if your ISR is long then it can degrade the real-time response of your system. The benefit 

+of polling is that functions are called at the application level and debouncing is supported. The downside to polling is 

+that your system must call the R_SWITCHES_Update() on a regular basis which requires extra processing.

+

+Features

+--------

+* Call one function to setup switches.

+* Define function to call when switch is pressed.

+* Can be configured to be interrupt or poll driven.

+

+Supported MCUs

+--------------

+* RX610 Group

+* RX621, RX62N Group

+* RX62T Group

+* RX630 Group

+* RX631, RX63N Group

+* RX210 Group

+* RX111 Group

+

+Boards Tested On

+----------------

+* RSKRX610

+* RSK+RX62N

+* RSKRX62T

+* RDKRX62N

+* RSKRX630

+* RSKRX63N

+* RDKRX63N

+* RSKRX111

+

+Limitations

+-----------

+* None

+

+Peripherals Used Directly

+-------------------------

+* None

+

+Required Packages

+-----------------

+* None

+

+How to add to your project

+--------------------------

+* Add src\r_switches.c to your project.

+* Add an include path to the 'r_switches' directory. 

+* Add an include path to the 'r_switches\src' directory.

+* Configure middleware through r_switches_config.h.

+* Add a #include for r_switches_if.h to files that need to use this package. 

+

+Toolchain(s) Used

+-----------------

+* Renesas RX v1.02

+

+File Structure

+--------------

+r_switches

+|   readme.txt

+|   r_switches_config.h

+|   r_switches_if.h

+|

+\---src

+        r_switches.c

+                

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c
new file mode 100644
index 0000000..1fb19e1
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c
@@ -0,0 +1,232 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches.c

+* Description  : Functions for using switches with callback functions.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+*         : 07.11.2012 1.40	   Added support for RSKRX111

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Board and MCU support. */

+#include "platform.h"

+/* Switches prototypes. */

+#include "r_switches_if.h"

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+typedef int bool;

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* This helps reduce the amount of unique code for each supported board. */

+#define X_IRQ( x )   XX_IRQ( x )

+#define XX_IRQ( x )  _ICU_IRQ##x

+

+/* These macros define which IRQ pins are used for the switches. Note that these defintions cannot have parentheses

+   around them. */

+#if defined(PLATFORM_BOARD_RSKRX111)

+    #define SW1_IRQ_NUMBER     0

+    #define SW2_IRQ_NUMBER     1

+    #define SW3_IRQ_NUMBER     4

+#else

+	#error This file is only for use on the RX100 RSK

+#endif

+

+/* Number of switches on this board. */

+#define SWITCHES_NUM            (3)

+

+/* Register definitions not yet correct in iodefine.h. */

+#define MPC_P30PFS_REG	( * ( unsigned char * ) 0x0008C158 )

+#define MPC_P31PFS_REG ( * ( unsigned char * ) 0x0008C159 )

+#define MPC_PE4PFS_REG ( * ( unsigned char * ) 0x0008C1B4 )

+

+/***********************************************************************************************************************

+Typedef definitions

+***********************************************************************************************************************/

+typedef struct

+{

+    bool    active;

+    int32_t debounce_cnt;

+} switch_t;

+

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+#if SWITCHES_DETECTION_MODE == 1

+/* Update Hz */

+static uint32_t g_sw_debounce_cnts;

+/* Used for debounce. */

+switch_t g_switches[SWITCHES_NUM];

+#endif

+

+/***********************************************************************************************************************

+* Function Name: R_SWITCHES_Init

+* Description  : Initializes pins to be input and interrupt on switch presses.

+* Arguments    :

+* Return Value : none

+***********************************************************************************************************************/

+

+void R_SWITCHES_Init (void)

+{

+    /* Unlock protection register */

+    MPC.PWPR.BYTE &= 0x7F;

+    /* Unlock MPC registers */

+    MPC.PWPR.BYTE |= 0x40;

+

+    /* Make switch pins inputs. */

+    PORT3.PDR.BYTE &= 0xFC;

+    PORTE.PDR.BYTE &= 0xEF;

+

+    /* Set port mode registers for switches. */

+    PORT3.PMR.BYTE &= 0xFC;

+    PORTE.PMR.BYTE &= 0xEF;

+

+    MPC_P30PFS_REG = 0x40;    /* P30 is used as IRQ pin */

+    MPC_P31PFS_REG  = 0x40;    /* P31 is used as IRQ pin */

+    MPC_PE4PFS_REG  = 0x40;    /* PE4 is used as IRQ pin */

+

+    /* Set IRQ type (falling edge) */

+    ICU.IRQCR[ SW1_IRQ_NUMBER ].BYTE  = 0x04;

+    ICU.IRQCR[ SW2_IRQ_NUMBER ].BYTE  = 0x04;

+    ICU.IRQCR[ SW3_IRQ_NUMBER ].BYTE  = 0x04;

+

+    /* Set interrupt priorities, which must be below

+    configMAX_SYSCALL_INTERRUPT_PRIORITY. */

+    _IPR( X_IRQ(SW1_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW2_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW3_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+

+    /* Clear any pending interrupts */

+    _IR( X_IRQ(SW1_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW2_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW3_IRQ_NUMBER) ) = 0;

+

+    /* Enable the interrupts */

+    _IEN( X_IRQ(SW1_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW2_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW3_IRQ_NUMBER) )  = 1;

+}

+

+/* If using polling then the user must call the update function. */

+

+/***********************************************************************************************************************

+* Function name: R_SWITCHES_Update

+* Description  : Polls switches and calls callback functions as needed. If you are using IRQ mode then this function

+*                is not needed and can be removed if desired. It is left in so that code will not fail when switching

+*                between polling or IRQ mode.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void R_SWITCHES_Update (void)

+{

+#if SWITCHES_DETECTION_MODE == 1

+    /* This code is only needed for polling mode. */

+    /* Check switch 1. */

+    if (SW1 == SW_ACTIVE)

+    {

+        if (g_switches[0].active != true)

+        {

+            if (++g_switches[0].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[0].active = true;

+

+                /* Call callback function. */

+                SW1_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[0].debounce_cnt)

+        {

+            g_switches[0].active = false;

+        }

+        else

+        {

+            g_switches[0].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 2. */

+    if (SW2 == SW_ACTIVE)

+    {

+        if (g_switches[1].active != true)

+        {

+            if (++g_switches[1].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[1].active = true;

+

+                /* Call callback function. */

+                SW2_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[1].debounce_cnt)

+        {

+            g_switches[1].active = false;

+        }

+        else

+        {

+            g_switches[1].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 3. */

+    if (SW3 == SW_ACTIVE)

+    {

+        if (g_switches[2].active != true)

+        {

+            if (++g_switches[2].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[2].active = true;

+

+                /* Call callback function. */

+                SW3_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[2].debounce_cnt)

+        {

+            g_switches[2].active = false;

+        }

+        else

+        {

+            g_switches[2].debounce_cnt--;

+        }

+    }

+#endif /* SWITCHES_DETECTION_MODE */

+}

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main.c
new file mode 100644
index 0000000..194cde0
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main.c
@@ -0,0 +1,204 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/******************************************************************************

+ * This project provides two demo applications.  A low power project that

+ * demonstrates the FreeRTOS tickless mode, and a more comprehensive test and

+ * demo application.  The configCREATE_LOW_POWER_DEMO setting (defined at the

+ * top of FreeRTOSConfig.h) is used to select between the two.  The low power

+ * demo is implemented and described in main_low_power.c.  The more

+ * comprehensive test and demo application is implemented and described in

+ * main_full.c.

+ *

+ * This file implements the code that is not demo specific, including the

+ * hardware setup and FreeRTOS hook functions.

+ */

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Platform includes. */

+#include "lcd.h"

+

+/*-----------------------------------------------------------*/

+

+/*

+ * main_low_power() is used when configCREATE_LOW_POWER_DEMO is set to 1.

+ * main_full() is used when configCREATE_LOW_POWER_DEMO is set to 0.

+ */

+extern void main_low_power( void );

+extern void main_full( void );

+

+/* Prototypes for the standard FreeRTOS callback/hook functions implemented

+within this file. */

+void vApplicationMallocFailedHook( void );

+void vApplicationIdleHook( void );

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName );

+void vApplicationTickHook( void );

+

+/*-----------------------------------------------------------*/

+

+/* See the documentation page for this demo on the FreeRTOS.org web site for

+full information - including hardware setup requirements. */

+

+void main( void )

+{

+	lcd_initialize();

+	lcd_display( LCD_LINE1, "FreeRTOS" );

+

+	/* The configCREATE_LOW_POWER_DEMO setting is described in FreeRTOSConfig.h. */

+	#if configCREATE_LOW_POWER_DEMO == 1

+	{

+		lcd_display( LCD_LINE2, "LP Demo" );

+		main_low_power();

+	}

+	#else

+	{

+		lcd_display( LCD_LINE2, "Ful Demo" );

+		main_full();

+	}

+	#endif

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationMallocFailedHook( void )

+{

+	/* vApplicationMallocFailedHook() will only be called if

+	configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook

+	function that will get called if a call to pvPortMalloc() fails.

+	pvPortMalloc() is called internally by the kernel whenever a task, queue,

+	timer or semaphore is created.  It is also called by various parts of the

+	demo application.  If heap_1.c, heap_2.c or heap_4.c are used, then the size

+	of the heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE

+	in FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used

+	to query the size of free heap space that remains (although it does not

+	provide information on how the remaining heap might be fragmented). */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationIdleHook( void )

+{

+	/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set

+	to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle

+	task.  It is essential that code added to this hook function never attempts

+	to block in any way (for example, call xQueueReceive() with a block time

+	specified, or call vTaskDelay()).  If the application makes use of the

+	vTaskDelete() API function (as this demo application does) then it is also

+	important that vApplicationIdleHook() is permitted to return to its calling

+	function, because it is the responsibility of the idle task to clean up

+	memory allocated by the kernel to any task that has since been deleted. */

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName )

+{

+	( void ) pcTaskName;

+	( void ) pxTask;

+

+	/* Run time stack overflow checking is performed if

+	configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook	function is

+	called if a stack overflow is detected. */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationTickHook( void )

+{

+	/* This function will be called by each tick interrupt if

+	configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h.  User code can be

+	added here, but the tick hook is called from an interrupt context, so

+	code must not attempt to block, and only the interrupt safe FreeRTOS API

+	functions can be used (those that end in FromISR()). */

+}

+/*-----------------------------------------------------------*/

+

+void vAssertCalled( void )

+{

+volatile unsigned long ul = 0;

+

+	taskENTER_CRITICAL();

+	{

+		/* Set ul to a non-zero value using the debugger to step out of this

+		function. */

+		while( ul == 0 )

+		{

+			__asm volatile( "NOP" );

+		}

+	}

+	taskEXIT_CRITICAL();

+}

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_full.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_full.c
new file mode 100644
index 0000000..1a2934c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_full.c
@@ -0,0 +1,540 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * This project includes a lot of tasks and tests and is therefore complex.

+ * If you would prefer a much simpler project to get started with then select

+ * the 'low power' demo by setting configCREATE_LOW_POWER_DEMO to 1 in

+ * FreeRTOSConfig.h.  When configCREATE_LOW_POWER_DEMO is set to 1 main() will

+ * call main_low_power() instead of main_full().

+ * ****************************************************************************

+ *

+ * Creates all the demo application tasks, then starts the scheduler.  The web

+ * documentation provides more details of the standard demo application tasks,

+ * which provide no particular functionality but do provide a good example of

+ * how to use the FreeRTOS API.

+ *

+ * In addition to the standard demo tasks, the following tasks and tests are

+ * defined and/or created within this file:

+ *

+ * "Reg test" tasks - These fill the registers with known values, then

+ * repeatedly check that each register still contains its expected value for

+ * the lifetime of the tasks.  Each task uses different values.  The tasks run

+ * with very low priority so get preempted very frequently.  A check variable

+ * is incremented on each iteration of the test loop.  A register containing an

+ * unexpected value is indicative of an error in the context switching

+ * mechanism and will result in a branch to a null loop - which in turn will

+ * prevent the check variable from incrementing any further and allow the check

+ * timer (described below) to determine that an error has occurred.  The nature

+ * of the reg test tasks necessitates that they are written in assembly code.

+ *

+ * "Check Timer" and Callback Function - The check timer period is initially

+ * set to three seconds.  The check timer callback function checks that all the

+ * standard demo tasks are not only still executing, but are executing without

+ * reporting any errors.  If the check timer discovers that a task has either

+ * stalled, or reported an error, then it changes its own period from the

+ * initial three seconds, to just 200ms.  The check timer callback function

+ * also toggles LED 0 each time it is called.  This provides a visual

+ * indication of the system status:  If the LED toggles every three seconds,

+ * then no issues have been discovered.  If the LED toggles every 200ms, then

+ * an issue has been discovered with at least one task.

+ *

+ * *NOTE 1* The CPU must be in Supervisor mode when the scheduler is started.

+ * The PowerON_Reset_PC() supplied in resetprg.c with this demo has

+ * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.

+*/

+

+/* Standard includes. */

+#include <string.h>

+

+/* Hardware specific includes. */

+#include "iodefine.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "timers.h"

+#include "semphr.h"

+

+/* Standard demo includes. */

+#include "partest.h"

+#include "death.h"

+#include "blocktim.h"

+#include "GenQTest.h"

+#include "recmutex.h"

+

+/* The code in this file is only built when configCREATE_LOW_POWER_DEMO is set

+to 0, otherwise the code in main_low_power.c is used. */

+#if configCREATE_LOW_POWER_DEMO == 0

+

+

+/* Values that are passed into the reg test tasks using the task parameter.

+The tasks check that the values are passed in correctly. */

+#define mainREG_TEST_1_PARAMETER	( 0x12121212UL )

+#define mainREG_TEST_2_PARAMETER	( 0x12345678UL )

+

+/* Priorities at which the standard demo tasks are created. */

+#define mainGEN_QUEUE_TASK_PRIORITY	( tskIDLE_PRIORITY )

+#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )

+

+/* The LED toggled by the check timer. */

+#define mainCHECK_LED				( 0 )

+

+/* The period at which the check timer will expire, in ms, provided no errors

+have been reported by any of the standard demo tasks.  ms are converted to the

+equivalent in ticks using the portTICK_RATE_MS constant. */

+#define mainCHECK_TIMER_PERIOD_MS			( 3000UL / portTICK_RATE_MS )

+

+/* The period at which the check timer will expire, in ms, if an error has been

+reported in one of the standard demo tasks.  ms are converted to the equivalent

+in ticks using the portTICK_RATE_MS constant. */

+#define mainERROR_CHECK_TIMER_PERIOD_MS 	( 200UL / portTICK_RATE_MS )

+

+/* A block time of zero simple means "Don't Block". */

+#define mainDONT_BLOCK				( 0UL )

+

+/*

+ * The reg test tasks as described at the top of this file.

+ */

+static void prvRegTest1Task( void *pvParameters );

+static void prvRegTest2Task( void *pvParameters );

+

+/*

+ * The actual implementation of the reg test functionality, which, because of

+ * the direct register access, have to be in assembly.

+ */

+static void prvRegTest1Implementation( void ) __attribute__(( naked ));

+static void prvRegTest2Implementation( void ) __attribute__(( naked ));

+

+/*

+ * The check timer callback function, as described at the top of this file.

+ */

+static void prvCheckTimerCallback( xTimerHandle xTimer );

+

+

+/*-----------------------------------------------------------*/

+

+/* Variables that are incremented on each iteration of the reg test tasks -

+provided the tasks have not reported any errors.  The check timer inspects these

+variables to ensure they are still incrementing as expected.  If a variable

+stops incrementing then it is likely that its associated task has stalled. */

+unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;

+

+/* The check timer.  This uses prvCheckTimerCallback() as its callback

+function. */

+static xTimerHandle xCheckTimer = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_full( void )

+{

+	/* Start the reg test tasks which test the context switching mechanism. */

+	xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );

+	xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );

+

+	/* Create the standard demo tasks. */

+	vCreateBlockTimeTasks();

+	vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );

+	vStartRecursiveMutexTasks();

+

+	/* The suicide tasks must be created last as they need to know how many

+	tasks were running prior to their creation in order to ascertain whether

+	or not the correct/expected number of tasks are running at any given time. */

+	vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );

+

+	/* Create the software timer that performs the 'check' functionality,

+	as described at the top of this file. */

+	xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */

+								( mainCHECK_TIMER_PERIOD_MS ),		/* The timer period, in this case 5000ms (5s). */

+								pdTRUE,								/* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */

+								( void * ) 0,						/* The ID is not used, so can be set to anything. */

+								prvCheckTimerCallback				/* The callback function that inspects the status of all the other tasks. */

+							  );

+

+	configASSERT( xCheckTimer );

+

+	/* Start the check timer.  It will actually start when the scheduler is

+	started. */

+	xTimerStart( xCheckTimer, mainDONT_BLOCK );

+

+	/* Start the tasks running. */

+	vTaskStartScheduler();

+

+	/* If all is well execution will never reach here as the scheduler will be

+	running.  If this null loop is reached then it is likely there was

+	insufficient FreeRTOS heap available for the idle task and/or timer task to

+	be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvCheckTimerCallback( xTimerHandle xTimer )

+{

+static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;

+static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;

+

+	/* Remove compiler warnings about unused parameters. */

+	( void ) xTimer;

+

+	/* Check the standard demo tasks are running without error. */

+	if( xAreGenericQueueTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xIsCreateTaskStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Check the reg test tasks are still cycling.  They will stop incrementing

+	their loop counters if they encounter an error. */

+	if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Remember the loop counter values this time around so they can be checked

+	again the next time this callback function executes. */

+	ulLastRegTest1CycleCount = ulRegTest1CycleCount;

+	ulLastRegTest2CycleCount = ulRegTest2CycleCount;

+

+	/* Toggle the check LED to give an indication of the system status.  If

+	the LED toggles every three seconds then everything is ok.  A faster toggle

+	indicates an error. */

+	vParTestToggleLED( mainCHECK_LED );

+

+	/* Was an error detected this time through the callback execution? */

+	if( lErrorStatus != pdPASS )

+	{

+		if( lChangedTimerPeriodAlready == pdFALSE )

+		{

+			lChangedTimerPeriodAlready = pdTRUE;

+

+			/* This call to xTimerChangePeriod() uses a zero block time.

+			Functions called from inside of a timer callback function must

+			*never* attempt	to block. */

+			xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest1Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	prvRegTest1Implementation();

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest2Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	prvRegTest2Implementation();

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest1Implementation( void )

+{

+	__asm volatile

+	(

+		/* Set each register to a known value. */

+		"	MOV.L	#0x33333333, R15			\n\t"

+		"	MVTACHI	R15							\n\t"

+		"	MOV.L	#0x44444444, R15			\n\t"

+		"	MVTACLO	R15							\n\t"

+		"	MOV.L	#1, R1						\n\t"

+		"	MOV.L	#2, R2						\n\t"

+		"	MOV.L	#3, R3						\n\t"

+		"	MOV.L	#4, R4						\n\t"

+		"	MOV.L	#5, R5						\n\t"

+		"	MOV.L	#6, R6						\n\t"

+		"	MOV.L	#7, R7						\n\t"

+		"	MOV.L	#8, R8						\n\t"

+		"	MOV.L	#9, R9						\n\t"

+		"	MOV.L	#10, R10					\n\t"

+		"	MOV.L	#11, R11					\n\t"

+		"	MOV.L	#12, R12					\n\t"

+		"	MOV.L	#13, R13					\n\t"

+		"	MOV.L	#14, R14					\n\t"

+		"	MOV.L	#15, R15					\n\t"

+		"										\n\t"

+		/* Loop, checking each iteration that each register still contains the

+		expected value. */

+		"TestLoop1:								\n\t"

+		"										\n\t"

+		/* Push the registers that are going to get clobbered. */

+		"	PUSHM	R14-R15						\n\t"

+		"										\n\t"

+		/* Increment the loop counter to show this task is still getting CPU

+		time. */

+		"	MOV.L	#_ulRegTest1CycleCount, R14	\n\t"

+		"	MOV.L	[ R14 ], R15				\n\t"

+		"	ADD		#1, R15						\n\t"

+		"	MOV.L	R15, [ R14 ]				\n\t"

+		"										\n\t"

+		/* Yield to extend the text coverage.  Set the bit in the ITU SWINTR

+		register. */

+		"	MOV.L	#1, R14						\n\t"

+		"	MOV.L 	#0872E0H, R15				\n\t"

+		"	MOV.B	R14, [R15]					\n\t"

+		"	NOP									\n\t"

+		"	NOP									\n\t"

+		"										\n\t"

+		/* Check the accumulator value. */

+		"	MVFACHI	R15							\n\t"

+		"	CMP		#0x33333333, R15			\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	MVFACMI	R15							\n\t"

+		"	CMP		#0x33334444, R15			\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"										\n\t"

+		/* Restore the clobbered registers. */

+		"	POPM	R14-R15						\n\t"

+		"										\n\t"

+		/* Now compare each register to ensure it still contains the value that

+		was set before this loop was entered. */

+		"	CMP		#1, R1						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#2, R2						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#3, R3						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#4, R4						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#5, R5						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#6, R6						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#7, R7						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#8, R8						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#9, R9						\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#10, R10					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#11, R11					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#12, R12					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#13, R13					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#14, R14					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"	CMP		#15, R15					\n\t"

+		"	BNE		RegTest1Error				\n\t"

+		"										\n\t"

+		/* All comparisons passed, start a new iteration of this loop. */

+		"	BRA		TestLoop1					\n\t"

+		"										\n\t"

+		/* A compare failed, just loop here so the loop counter stops

+		incrementing causing the check timer to indicate the error. */

+		"RegTest1Error:							\n\t"

+		"	BRA RegTest1Error					"

+	);

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest2Implementation( void )

+{

+	__asm volatile

+	(

+		/* Set each register to a known value. */

+		"	MOV.L	#0x11111111, R15			\n\t"

+		"	MVTACHI	R15							\n\t"

+		"	MOV.L	#0x22222222, R15			\n\t"

+		"	MVTACLO	R15							\n\t"

+		"	MOV.L	#100, R1					\n\t"

+		"	MOV.L	#200, R2					\n\t"

+		"	MOV.L	#300, R3					\n\t"

+		"	MOV.L	#400, R4					\n\t"

+		"	MOV.L	#500, R5					\n\t"

+		"	MOV.L	#600, R6					\n\t"

+		"	MOV.L	#700, R7					\n\t"

+		"	MOV.L	#800, R8					\n\t"

+		"	MOV.L	#900, R9					\n\t"

+		"	MOV.L	#1000, R10					\n\t"

+		"	MOV.L	#1001, R11					\n\t"

+		"	MOV.L	#1002, R12					\n\t"

+		"	MOV.L	#1003, R13					\n\t"

+		"	MOV.L	#1004, R14					\n\t"

+		"	MOV.L	#1005, R15					\n\t"

+		"										\n\t"

+		/* Loop, checking each iteration that each register still contains the

+		expected value. */

+		"TestLoop2:								\n\t"

+		"										\n\t"

+		/* Push the registers that are going to get clobbered. */

+		"	PUSHM	R14-R15						\n\t"

+		"										\n\t"

+		/* Increment the loop counter to show this task is still getting CPU

+		time. */

+		"	MOV.L	#_ulRegTest2CycleCount, R14	\n\t"

+		"	MOV.L	[ R14 ], R15				\n\t"

+		"	ADD		#1, R15						\n\t"

+		"	MOV.L	R15, [ R14 ]				\n\t"

+		"										\n\t"

+		/* Check the accumulator value. */

+		"	MVFACHI	R15							\n\t"

+		"	CMP		#0x11111111, R15			\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	MVFACMI	R15							\n\t"

+		"	CMP		#0x11112222, R15			\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"										\n\t"

+		/* Restore the clobbered registers. */

+		"	POPM	R14-R15						\n\t"

+		"										\n\t"

+		/* Now compare each register to ensure it still contains the value that

+		was set before this loop was entered. */

+		"	CMP		#100, R1					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#200, R2					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#300, R3					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#400, R4					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#500, R5					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#600, R6					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#700, R7					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#800, R8					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#900, R9					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1000, R10					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1001, R11					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1002, R12					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1003, R13					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1004, R14					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"	CMP		#1005, R15					\n\t"

+		"	BNE		RegTest2Error				\n\t"

+		"										\n\t"

+		/* All comparisons passed, start a new iteration of this loop. */

+		"	BRA		TestLoop2					\n\t"

+		"										\n\t"

+		/* A compare failed, just loop here so the loop counter stops

+		incrementing causing the check timer to indicate the error. */

+		"RegTest2Error:							\n\t"

+		"	BRA RegTest2Error					"

+	);

+}

+/*-----------------------------------------------------------*/

+

+#endif /* configCREATE_LOW_POWER_DEMO */

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_low_power.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_low_power.c
new file mode 100644
index 0000000..a693960
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/main_low_power.c
@@ -0,0 +1,436 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * When configCREATE_LOW_POWER_DEMO is set to 1 in FreeRTOSConfig.h main() will

+ * call main_low_power(), which is defined in this file.  main_low_power()

+ * demonstrates FreeRTOS tick suppression being used to allow the MCU to be

+ * placed into both the low power deep sleep mode and the low power software

+ * standby mode.  When configCREATE_LOW_POWER_DEMO is set to 0 main will

+ * instead call main_full(), which is a more comprehensive RTOS demonstration.

+ * ****************************************************************************

+ *

+ * This application demonstrates the FreeRTOS tickless idle mode (tick

+ * suppression).  See http://www.freertos.org/low-power-tickless-rtos.html

+ * The demo is configured to execute on the Renesas RX100 RSK.

+ *

+ *  Functionality:

+ *

+ *  + Two tasks are created, an Rx task and a Tx task.

+ *

+ *  + The Rx task repeatedly blocks on a queue to wait for data.  The Rx task

+ *    toggles LED 0 each time is receives a value from the queue.

+ *

+ *  + The Tx task repeatedly enters the Blocked state for an amount of time

+ *    that is set by the position of the potentiometer.  On exiting the blocked

+ *    state the Tx task sends a value through the queue to the Rx task (causing

+ *    the Rx task to exit the blocked state and toggle LED 0).

+ *

+ *    If the value read from the potentiometer is less than or equal to

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks for the equivalent

+ *    number of milliseconds.  For example, if the sampled analog value is

+ *    2000, then the Tx task blocks for 2000ms.  Blocking for a finite period

+ *    allows the kernel to stop the tick interrupt and place the RX100 into

+ *    deep sleep mode.

+ *

+ *    If the value read form the potentiometer is greater than

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks on a semaphore with

+ *    an infinite timeout.  Blocking with an infinite timeout allows the kernel

+ *    to stop the tick interrupt and place the RX100 into software standby

+ *    mode.  Pressing a button will generate an interrupt that causes the RX100

+ *    to exit software standby mode.  The interrupt service routine 'gives' the

+ *    semaphore to unblock the Tx task.

+ *

+ *

+ *  Using the Demo and Observed Behaviour:

+ *

+ *  1) Turn the potentiometer completely counter clockwise.

+ *

+ *  2) Program the RX100 with the application, then disconnect the programming/

+ *   debugging hardware to ensure power readings are not effected by any

+ *   connected interfaces.

+ *

+ *  3) Start the application running.  LED 0 will toggle quickly because the

+ *   potentiometer is turned to its lowest value.  LED 1 will be illuminated

+ *   when the RX100 is not in a power saving mode, but will appear to be off

+ *   because most execution time is spent in a sleep mode.  Led 2 will be

+ *   illuminated when the RX100 is in deep sleep mode, and will appear to be

+ *   always on, again because most execution time is spent in deep sleep mode.

+ *   The LEDs are turned on and off by the application defined pre and post

+ *   sleep macros (see the definitions of configPRE_SLEEP_PROCESSING() and

+ *   configPOST_SLEEP_PROCESSING() in FreeRTOSConfig.h).

+ *

+ *  4) Slowly turn the potentiometer in the clockwise direction.  This will

+ *   increase the value read from the potentiometer, which will increase the

+ *   time the Tx task spends in the Blocked state, which will therefore

+ *   decrease the frequency at which the Tx task sends data to the queue (and

+ *   the rate at which LED 0 is toggled).

+ *

+ *  5) Keep turning the potentiometer in the clockwise direction.  Eventually

+ *   the value read from the potentiometer will go above

+ *   mainSOFTWARE_STANDBY_DELAY, causing the Tx task to block on the semaphore

+ *   with an infinite timeout.  LED 0 will stop toggling because the Tx task is

+ *   no longer sending to the queue.  LED 1 and LED 2 will both be off because

+ *   the RX100 is neither running or in deep sleep mode (it is in software

+ *   standby mode).

+ *

+ *  6) Turn the potentiometer counter clockwise again to ensure its value goes

+ *   back below mainSOFTWARE_STANDBY_DELAY.

+ *

+ *  7) Press any of the three buttons to generate an interrupt.  The interrupt

+ *   will take the RX100 out of software standby mode, and the interrupt

+ *   service routine will unblock the Tx task by 'giving' the semaphore.  LED 0

+ *   will then start to toggle again.

+ *

+ */

+

+

+/* Hardware specific includes. */

+#include "platform.h"

+#include "r_switches_if.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "queue.h"

+#include "semphr.h"

+

+/* Common demo includes. */

+#include "partest.h"

+

+/* Priorities at which the Rx and Tx tasks are created. */

+#define configQUEUE_RECEIVE_TASK_PRIORITY	( tskIDLE_PRIORITY + 1 )

+#define	configQUEUE_SEND_TASK_PRIORITY		( tskIDLE_PRIORITY + 2 )

+

+/* The number of items the queue can hold.  This is 1 as the Rx task will

+remove items as they are added so the Tx task should always find the queue

+empty. */

+#define mainQUEUE_LENGTH					( 1 )

+

+/* The LED used to indicate that a value has been received on the queue. */

+#define mainQUEUE_LED						( 0 )

+

+/* The LED used to indicate that full power is being used (the MCU is not in

+deep sleep or software standby mode). */

+#define mainFULL_POWER_LED					( 1 )

+

+/* The LED used to indicate that deep sleep mode is being used. */

+#define mainDEEP_SLEEP_LED					( 2 )

+

+/* The Tx task sends to the queue with a frequency that is set by the value

+read from the potentiometer until the value goes above that set by the

+mainSOFTWARE_STANDBY_DELAY constant - at which time the Tx task instead blocks

+indefinitely on a semaphore. */

+#define mainSOFTWARE_STANDBY_DELAY			( 3000UL )

+

+/* A block time of zero simply means "don't block". */

+#define mainDONT_BLOCK						( 0 )

+

+/* The value that is sent from the Tx task to the Rx task on the queue. */

+#define mainQUEUED_VALUE					( 100UL )

+

+/*-----------------------------------------------------------*/

+

+/*

+ * The Rx and Tx tasks as described at the top of this file.

+ */

+static void prvQueueReceiveTask( void *pvParameters );

+static void prvQueueSendTask( void *pvParameters );

+

+/*

+ * Reads and returns the value of the ADC connected to the potentiometer built

+ * onto the RSK.

+ */

+static unsigned short prvReadPOT( void );

+

+/*

+ * The handler for the interrupt generated when any of the buttons are pressed.

+ */

+void vButtonInterrupt( void )  __attribute__((interrupt));

+

+/*-----------------------------------------------------------*/

+

+/* The queue to pass data from the Tx task to the Rx task. */

+static xQueueHandle xQueue = NULL;

+

+/* The semaphore that is 'given' by interrupts generated from button pushes. */

+static xSemaphoreHandle xSemaphore = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_low_power( void )

+{

+	/* Create the queue. */

+	xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );

+	configASSERT( xQueue );

+

+	/* Create the semaphore that is 'given' by an interrupt generated from a

+	button push. */

+	vSemaphoreCreateBinary( xSemaphore );

+	configASSERT( xSemaphore );

+

+	/* Make sure the semaphore starts in the expected state - no button pushes

+	have yet occurred.  A block time of zero can be used as it is guaranteed

+	that the semaphore will be available because it has just been created. */

+	xSemaphoreTake( xSemaphore, mainDONT_BLOCK );

+

+	/* Start the two tasks as described at the top of this file. */

+	xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, configQUEUE_RECEIVE_TASK_PRIORITY, NULL );

+	xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL );

+

+	/* The CPU is currently running, not sleeping, so turn on the LED that

+	shows the CPU is not in a sleep mode. */

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+

+	/* Start the scheduler running running. */

+	vTaskStartScheduler();

+

+	/* If all is well the next line of code will not be reached as the

+	scheduler will be running.  If the next line is reached then it is likely

+	there was insufficient FreeRTOS heap available for the idle task and/or

+	timer task to be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueSendTask( void *pvParameters )

+{

+portTickType xDelay;

+const unsigned long ulValueToSend = mainQUEUED_VALUE;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* The delay period between successive sends to the queue is set by

+		the potentiometer reading. */

+		xDelay = ( portTickType ) prvReadPOT();

+

+		/* If the block time is greater than 3000 milliseconds then block

+		indefinitely waiting for a button push. */

+		if( xDelay > mainSOFTWARE_STANDBY_DELAY )

+		{

+			/* As this is an indefinite delay the kernel will place the CPU

+			into software standby mode the next time the idle task runs. */

+			xSemaphoreTake( xSemaphore, portMAX_DELAY );

+		}

+		else

+		{

+			/* Convert a time in milliseconds to a time in ticks. */

+			xDelay /= portTICK_RATE_MS;

+

+			/* Place this task in the blocked state until it is time to run

+			again.  As this is not an indefinite sleep the kernel will place

+			the CPU into the deep sleep state when the idle task next runs. */

+			vTaskDelay( xDelay );

+		}

+

+		/* Send to the queue - causing the queue receive task to flash its LED.

+		It should not be necessary to block on the queue send because the Rx

+		task will have removed the last queued item. */

+		xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK );

+	}

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueReceiveTask( void *pvParameters )

+{

+unsigned long ulReceivedValue;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* Wait until something arrives in the queue - this will block

+		indefinitely provided INCLUDE_vTaskSuspend is set to 1 in

+		FreeRTOSConfig.h. */

+		xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );

+

+		/*  To get here something must have arrived, but is it the expected

+		value?  If it is, toggle the LED. */

+		if( ulReceivedValue == mainQUEUED_VALUE )

+		{

+			vParTestToggleLED( mainQUEUE_LED );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vPreSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel before it places the MCU into a sleep mode because

+	configPRE_SLEEP_PROCESSING() is #defined to vPreSleepProcessing().

+

+	NOTE:  Additional actions can be taken here to get the power consumption

+	even lower.  For example, the ADC input used by this demo could be turned

+	off here, and then back on again in the power sleep processing function.

+	For maximum power saving ensure all unused pins are in their lowest power

+	state. */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Is the MCU about to enter deep sleep mode or software standby mode? */

+	if( SYSTEM.SBYCR.BIT.SSBY == 0 )

+	{

+		/* Turn on the LED that indicates deep sleep mode is being entered. */

+		vParTestSetLED( mainDEEP_SLEEP_LED, pdTRUE );

+	}

+	else

+	{

+		/* Software standby mode is being used, so no LEDs are illuminated to

+		ensure minimum power readings are obtained.  Ensure the Queue LED is

+		also off. */

+		vParTestSetLED( mainQUEUE_LED, pdFALSE );

+	}

+

+	/* Turn off the LED that indicates full power is being used. */

+	vParTestSetLED( mainFULL_POWER_LED, pdFALSE );

+}

+/*-----------------------------------------------------------*/

+

+void vPostSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel when the MCU exits a sleep mode because

+	configPOST_SLEEP_PROCESSING is #defined to vPostSleepProcessing(). */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Turn off the LED that indicates deep sleep mode, and turn on the LED

+	that indicates full power is being used. */

+	vParTestSetLED( mainDEEP_SLEEP_LED, pdFALSE );

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+}

+/*-----------------------------------------------------------*/

+

+static unsigned short prvReadPOT( void )

+{

+unsigned short usADCValue;

+const unsigned short usMinADCValue = 128;

+

+	/* Start an ADC scan. */

+	S12AD.ADCSR.BIT.ADST = 1;

+	while( S12AD.ADCSR.BIT.ADST == 1 )

+	{

+		/* Just waiting for the ADC scan to complete.  Inefficient

+		polling! */

+	}

+

+	usADCValue = S12AD.ADDR4;

+

+	/* Don't let the ADC value get too small as the LED behaviour will look

+	erratic. */

+	if( usADCValue < usMinADCValue )

+	{

+		usADCValue = usMinADCValue;

+	}

+

+	return usADCValue;

+}

+/*-----------------------------------------------------------*/

+

+void vButtonInterrupt( void )

+{

+long lHigherPriorityTaskWoken = pdFALSE;

+

+	/* The semaphore is only created when the build is configured to create the

+	low power demo. */

+	if( xSemaphore != NULL )

+	{

+		/* This interrupt will bring the CPU out of deep sleep and software

+		standby	modes.  Give the semaphore that was used to place the Tx task

+		into an indefinite sleep. */

+		if( uxQueueMessagesWaitingFromISR( xSemaphore ) == 0 )

+		{

+			xSemaphoreGiveFromISR( xSemaphore, &lHigherPriorityTaskWoken );

+		}

+		else

+		{

+			/* The semaphore was already available, so the task is not blocked

+			on it and there is no point giving it. */

+		}

+

+		/* If giving the semaphore caused a task to leave the Blocked state,

+		and the task that left the Blocked state has a priority equal to or

+		above the priority of the task that this interrupt interrupted, then

+		lHigherPriorityTaskWoken will have been set to pdTRUE inside the call

+		to xSemaphoreGiveFromISR(), and calling portYIELD_FROM_ISR() will cause

+		a context switch to the unblocked task. */

+		portYIELD_FROM_ISR( lHigherPriorityTaskWoken );

+	}

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/printf-stdarg.c b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/printf-stdarg.c
new file mode 100644
index 0000000..b5ac41b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo/printf-stdarg.c
@@ -0,0 +1,293 @@
+/*

+	Copyright 2001, 2002 Georges Menie (www.menie.org)

+	stdarg version contributed by Christian Ettinger

+

+    This program is free software; you can redistribute it and/or modify

+    it under the terms of the GNU Lesser General Public License as published by

+    the Free Software Foundation; either version 2 of the License, or

+    (at your option) any later version.

+

+    This program is distributed in the hope that it will be useful,

+    but WITHOUT ANY WARRANTY; without even the implied warranty of

+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

+    GNU Lesser General Public License for more details.

+

+    You should have received a copy of the GNU Lesser General Public License

+    along with this program; if not, write to the Free Software

+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

+*/

+

+/*

+	putchar is the only external dependency for this file,

+	if you have a working putchar, leave it commented out.

+	If not, uncomment the define below and

+	replace outbyte(c) by your own function call.

+

+*/

+

+#define putchar(c) c

+

+#include <stdarg.h>

+

+static void printchar(char **str, int c)

+{

+	//extern int putchar(int c);

+	

+	if (str) {

+		**str = (char)c;

+		++(*str);

+	}

+	else

+	{ 

+		(void)putchar(c);

+	}

+}

+

+#define PAD_RIGHT 1

+#define PAD_ZERO 2

+

+static int prints(char **out, const char *string, int width, int pad)

+{

+	register int pc = 0, padchar = ' ';

+

+	if (width > 0) {

+		register int len = 0;

+		register const char *ptr;

+		for (ptr = string; *ptr; ++ptr) ++len;

+		if (len >= width) width = 0;

+		else width -= len;

+		if (pad & PAD_ZERO) padchar = '0';

+	}

+	if (!(pad & PAD_RIGHT)) {

+		for ( ; width > 0; --width) {

+			printchar (out, padchar);

+			++pc;

+		}

+	}

+	for ( ; *string ; ++string) {

+		printchar (out, *string);

+		++pc;

+	}

+	for ( ; width > 0; --width) {

+		printchar (out, padchar);

+		++pc;

+	}

+

+	return pc;

+}

+

+/* the following should be enough for 32 bit int */

+#define PRINT_BUF_LEN 12

+

+static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase)

+{

+	char print_buf[PRINT_BUF_LEN];

+	register char *s;

+	register int t, neg = 0, pc = 0;

+	register unsigned int u = (unsigned int)i;

+

+	if (i == 0) {

+		print_buf[0] = '0';

+		print_buf[1] = '\0';

+		return prints (out, print_buf, width, pad);

+	}

+

+	if (sg && b == 10 && i < 0) {

+		neg = 1;

+		u = (unsigned int)-i;

+	}

+

+	s = print_buf + PRINT_BUF_LEN-1;

+	*s = '\0';

+

+	while (u) {

+		t = (unsigned int)u % b;

+		if( t >= 10 )

+			t += letbase - '0' - 10;

+		*--s = (char)(t + '0');

+		u /= b;

+	}

+

+	if (neg) {

+		if( width && (pad & PAD_ZERO) ) {

+			printchar (out, '-');

+			++pc;

+			--width;

+		}

+		else {

+			*--s = '-';

+		}

+	}

+

+	return pc + prints (out, s, width, pad);

+}

+

+static int print( char **out, const char *format, va_list args )

+{

+	register int width, pad;

+	register int pc = 0;

+	char scr[2];

+

+	for (; *format != 0; ++format) {

+		if (*format == '%') {

+			++format;

+			width = pad = 0;

+			if (*format == '\0') break;

+			if (*format == '%') goto out;

+			if (*format == '-') {

+				++format;

+				pad = PAD_RIGHT;

+			}

+			while (*format == '0') {

+				++format;

+				pad |= PAD_ZERO;

+			}

+			for ( ; *format >= '0' && *format <= '9'; ++format) {

+				width *= 10;

+				width += *format - '0';

+			}

+			if( *format == 's' ) {

+				register char *s = (char *)va_arg( args, int );

+				pc += prints (out, s?s:"(null)", width, pad);

+				continue;

+			}

+			if( *format == 'd' ) {

+				pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a');

+				continue;

+			}

+			if( *format == 'x' ) {

+				pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a');

+				continue;

+			}

+			if( *format == 'X' ) {

+				pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A');

+				continue;

+			}

+			if( *format == 'u' ) {

+				pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a');

+				continue;

+			}

+			if( *format == 'c' ) {

+				/* char are converted to int then pushed on the stack */

+				scr[0] = (char)va_arg( args, int );

+				scr[1] = '\0';

+				pc += prints (out, scr, width, pad);

+				continue;

+			}

+		}

+		else {

+		out:

+			printchar (out, *format);

+			++pc;

+		}

+	}

+	if (out) **out = '\0';

+	va_end( args );

+	return pc;

+}

+

+int printf(const char *format, ...)

+{

+        va_list args;

+        

+        va_start( args, format );

+        return print( 0, format, args );

+}

+

+int sprintf(char *out, const char *format, ...)

+{

+        va_list args;

+        

+        va_start( args, format );

+        return print( &out, format, args );

+}

+

+

+int snprintf( char *buf, unsigned int count, const char *format, ... )

+{

+        va_list args;

+        

+        ( void ) count;

+        

+        va_start( args, format );

+        return print( &buf, format, args );

+}

+

+

+#ifdef TEST_PRINTF

+int main(void)

+{

+	char *ptr = "Hello world!";

+	char *np = 0;

+	int i = 5;

+	unsigned int bs = sizeof(int)*8;

+	int mi;

+	char buf[80];

+

+	mi = (1 << (bs-1)) + 1;

+	printf("%s\n", ptr);

+	printf("printf test\n");

+	printf("%s is null pointer\n", np);

+	printf("%d = 5\n", i);

+	printf("%d = - max int\n", mi);

+	printf("char %c = 'a'\n", 'a');

+	printf("hex %x = ff\n", 0xff);

+	printf("hex %02x = 00\n", 0);

+	printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3);

+	printf("%d %s(s)%", 0, "message");

+	printf("\n");

+	printf("%d %s(s) with %%\n", 0, "message");

+	sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf);

+	sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf);

+	sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf);

+	sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf);

+	sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf);

+	sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf);

+	sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf);

+	sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf);

+

+	return 0;

+}

+

+/*

+ * if you compile this file with

+ *   gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c

+ * you will get a normal warning:

+ *   printf.c:214: warning: spurious trailing `%' in format

+ * this line is testing an invalid % at the end of the format string.

+ *

+ * this should display (on 32bit int machine) :

+ *

+ * Hello world!

+ * printf test

+ * (null) is null pointer

+ * 5 = 5

+ * -2147483647 = - max int

+ * char a = 'a'

+ * hex ff = ff

+ * hex 00 = 00

+ * signed -3 = unsigned 4294967293 = hex fffffffd

+ * 0 message(s)

+ * 0 message(s) with %

+ * justif: "left      "

+ * justif: "     right"

+ *  3: 0003 zero padded

+ *  3: 3    left justif.

+ *  3:    3 right justif.

+ * -3: -003 zero padded

+ * -3: -3   left justif.

+ * -3:   -3 right justif.

+ */

+

+#endif

+

+

+/* To keep linker happy. */

+int	write( int i, char* c, int n)

+{

+	(void)i;

+	(void)n;

+	(void)c;

+	return 0;

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo_GCC.launch b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo_GCC.launch
new file mode 100644
index 0000000..6bbe77a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/RTOSDemo_GCC.launch
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<launchConfiguration type="com.renesas.cdt.launch.dsf.gdbremote.launchConfigurationType">

+<intAttribute key="com.renesas.cdt.core.admPortNumber" value="61236"/>

+<stringAttribute key="com.renesas.cdt.core.initCommands" value=""/>

+<stringAttribute key="com.renesas.cdt.core.ipAddress" value="localhost"/>

+<stringAttribute key="com.renesas.cdt.core.jtagDevice" value="E1"/>

+<booleanAttribute key="com.renesas.cdt.core.loadImage" value="true"/>

+<stringAttribute key="com.renesas.cdt.core.optionInitCommands" value=""/>

+<intAttribute key="com.renesas.cdt.core.portNumber" value="61234"/>

+<stringAttribute key="com.renesas.cdt.core.runCommands" value=""/>

+<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1  -l 0 -t R5F51115  -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 12.0000 -uAllowClockSourceInternal= 1 -uUseFine= 1 -uFineBaudRate= 2.00 -w 0 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 0 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0"/>

+<booleanAttribute key="com.renesas.cdt.core.setResume" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.setStopAt" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>

+<stringAttribute key="com.renesas.cdt.core.stopAt" value="main"/>

+<stringAttribute key="com.renesas.cdt.core.targetDevice" value="R5F51115"/>

+<booleanAttribute key="com.renesas.cdt.core.useRemoteTarget" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.verboseMode" value="false"/>

+<stringAttribute key="com.renesas.cdt.launch.dsf.IO_MAP" value="${eclipse_home}..\internal\IoFiles\RX\RX111.sfrx"/>

+<booleanAttribute key="com.renesas.cdt.launch.dsf.USE_DEFAULT_IO_MAP" value="true"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>

+<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="0"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="false"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.execute.program" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.external_memory" value=""/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.fine.baud.rate" value="2.00"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.flash_overwrite_blocks" value=""/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.hw_break" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.id_code" value="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.inputclock" value="12.0000"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.clock.freq" value="16.5"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.or.fine" value="1"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.le" value="true"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.mode" value="0"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.mode_pin" value="0"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.prog_rewrite_dflash" value="false"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.prog_rewrite_irom" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.supply.voltage" value="3.3V"/>

+<intAttribute key="com.renesas.hardwaredebug.e1.work_ram_start" value="4096"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e20.le" value="true"/>

+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>

+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${eclipse_home}../DebugComp/rx-elf-gdb"/>

+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="true"/>

+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>

+<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>

+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="HardwareDebug\RTOSDemo_GCC.x"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RTOSDemo_GCC"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

+<listEntry value="/RTOSDemo_GCC"/>

+</listAttribute>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

+<listEntry value="4"/>

+</listAttribute>

+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>

+<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#13;&#10;"/>

+</launchConfiguration>

diff --git a/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/custom.bat b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/custom.bat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_GCC_e2studio/custom.bat
diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/FreeRTOSConfig.h b/FreeRTOS/Demo/RX100-RSK_IAR/FreeRTOSConfig.h
new file mode 100644
index 0000000..3fb787a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/FreeRTOSConfig.h
@@ -0,0 +1,183 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+

+#ifndef FREERTOS_CONFIG_H

+#define FREERTOS_CONFIG_H

+

+/* Hardware specifics. */

+#include "platform.h"

+

+/*-----------------------------------------------------------

+ * Application specific definitions.

+ *

+ * These definitions should be adjusted for your particular hardware and

+ * application requirements.

+ *

+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.

+ *

+ * See http://www.freertos.org/a00110.html.

+ *----------------------------------------------------------*/

+

+/* DEMO SPECIFIC SETTING:

+ * Set configCREATE_LOW_POWER_DEMO to one to run the low power demo with tick

+ * suppression, or 0 to run the more comprehensive test and demo application.

+ * If configCREATE_LOW_POWER_DEMO is set to 1 then main() calls main_low_power().

+ * If configCREATE_LOW_POWER_DEMO is set to 0 then main() calls main_full().

+ */

+#define configCREATE_LOW_POWER_DEMO		1

+

+

+#define configUSE_PREEMPTION			1

+#define configUSE_TICKLESS_IDLE			configCREATE_LOW_POWER_DEMO

+#define configUSE_IDLE_HOOK				0

+#define configUSE_TICK_HOOK				0

+#define configCPU_CLOCK_HZ				( ICLK_HZ ) /* Set in mcu_info.h. */

+#define configPERIPHERAL_CLOCK_HZ		( PCLKB_HZ ) /* Set in muc_info.h. */

+#define configTICK_RATE_HZ				( ( portTickType ) 1000 )

+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 100 )

+#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 9 * 1024 ) )

+#define configMAX_TASK_NAME_LEN			( 12 )

+#define configUSE_TRACE_FACILITY		1

+#define configUSE_16_BIT_TICKS			0

+#define configIDLE_SHOULD_YIELD			1

+#define configUSE_CO_ROUTINES 			0

+#define configUSE_MUTEXES				1

+#define configGENERATE_RUN_TIME_STATS	0

+#define configCHECK_FOR_STACK_OVERFLOW	2

+#define configUSE_RECURSIVE_MUTEXES		1

+#define configQUEUE_REGISTRY_SIZE		0

+#define configUSE_MALLOC_FAILED_HOOK	0

+#define configUSE_APPLICATION_TASK_TAG	0

+

+#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 7 )

+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

+

+/* Software timer definitions - only included when the demo is configured to

+build the full demo (as opposed to the low power demo). */

+#if configCREATE_LOW_POWER_DEMO == 1

+	#define configUSE_TIMERS				0

+#else

+	#define configUSE_TIMERS				1

+	#define configTIMER_TASK_PRIORITY		( 3 )

+	#define configTIMER_QUEUE_LENGTH		5

+	#define configTIMER_TASK_STACK_DEPTH	( configMINIMAL_STACK_SIZE )

+#endif /* configCREATE_LOW_POWER_DEMO */

+

+/*

+The interrupt priority used by the kernel itself for the tick interrupt and

+the pended interrupt is set by configKERNEL_INTERRUPT_PRIORITY.  This would

+normally be the lowest priority (1 in this case).  The maximum interrupt

+priority from which FreeRTOS API calls can be made is set by

+configMAX_SYSCALL_INTERRUPT_PRIORITY.  Interrupts that use a priority above this

+will not be effected by anything the kernel is doing.  Interrupts at or below

+this priority can use FreeRTOS API functions - but *only* those that end in

+"FromISR".  Both these constants are defined in 'PriorityDefinitions.h' so they

+can also be included in assembly source files.

+*/

+#include "PriorityDefinitions.h"

+

+/* Set the following definitions to 1 to include the API function, or zero

+to exclude the API function. */

+

+#define INCLUDE_vTaskPrioritySet			1

+#define INCLUDE_uxTaskPriorityGet			1

+#define INCLUDE_vTaskDelete					1

+#define INCLUDE_vTaskCleanUpResources		0

+#define INCLUDE_vTaskSuspend				1

+#define INCLUDE_vTaskDelayUntil				1

+#define INCLUDE_vTaskDelay					1

+#define INCLUDE_uxTaskGetStackHighWaterMark	1

+#define INCLUDE_xTaskGetSchedulerState		1

+

+extern void vAssertCalled( void );

+#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled();

+

+/* The configPRE_SLEEP_PROCESSING() and configPOST_SLEEP_PROCESSING() macros

+allow the application writer to add additional code before and after the MCU is

+placed into the low power state respectively.  The implementations provided in

+this demo can be extended to save even more power - for example the analog

+input used by the low power demo could be switched off in the pre-sleep macro

+and back on again in the post sleep macro. */

+void vPreSleepProcessing( unsigned long xExpectedIdleTime );

+void vPostSleepProcessing( unsigned long xExpectedIdleTime );

+#define configPRE_SLEEP_PROCESSING( xExpectedIdleTime ) vPreSleepProcessing( xExpectedIdleTime );

+#define configPOST_SLEEP_PROCESSING( xExpectedIdleTime ) vPostSleepProcessing( xExpectedIdleTime );

+

+/* configTICK_VECTOR must be set to the interrupt vector used by the peripheral

+that generates the tick interrupt. */

+#define configTICK_VECTOR VECT_CMT0_CMI0

+

+#endif /* FREERTOS_CONFIG_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/ParTest.c b/FreeRTOS/Demo/RX100-RSK_IAR/ParTest.c
new file mode 100644
index 0000000..827da19
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/ParTest.c
@@ -0,0 +1,200 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/*-----------------------------------------------------------

+ * Simple IO routines to control the LEDs.

+ *-----------------------------------------------------------*/

+

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Demo includes. */

+#include "partest.h"

+

+#define partestNUM_LEDS ( 4 )

+

+long lParTestGetLEDState( unsigned long ulLED );

+

+/*-----------------------------------------------------------*/

+

+void vParTestInitialise( void )

+{

+	/* Port pin configuration is done by the low level set up prior to this

+	function being called. */

+}

+/*-----------------------------------------------------------*/

+

+void vParTestSetLED( unsigned long ulLED, signed long xValue )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		if( xValue != 0 )

+		{

+			/* Turn the LED on. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_ON;

+							break;

+					case 1:	LED1 = LED_ON;

+							break;

+					case 2:	LED2 = LED_ON;

+							break;

+					case 3:	LED3 = LED_ON;

+							break;

+				}

+			}

+			taskEXIT_CRITICAL();

+		}

+		else

+		{

+			/* Turn the LED off. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_OFF;

+							break;

+					case 1:	LED1 = LED_OFF;

+							break;

+					case 2:	LED2 = LED_OFF;

+							break;

+					case 3:	LED3 = LED_OFF;

+							break;

+				}

+

+			}

+			taskEXIT_CRITICAL();

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vParTestToggleLED( unsigned long ulLED )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		taskENTER_CRITICAL();

+		{

+			if( lParTestGetLEDState( ulLED ) != 0x00 )

+			{

+				vParTestSetLED( ulLED, 0 );

+			}

+			else

+			{

+				vParTestSetLED( ulLED, 1 );

+			}

+		}

+		taskEXIT_CRITICAL();

+	}

+}

+/*-----------------------------------------------------------*/

+

+long lParTestGetLEDState( unsigned long ulLED )

+{

+long lReturn = pdTRUE;

+

+	if( ulLED < partestNUM_LEDS )

+	{

+		switch( ulLED )

+		{

+			case 0	:	if( LED0 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 1	:	if( LED1 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 2	:	if( LED2 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 3	:	if( LED3 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+		}

+	}

+

+	return lReturn;

+}

+/*-----------------------------------------------------------*/

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/PriorityDefinitions.h b/FreeRTOS/Demo/RX100-RSK_IAR/PriorityDefinitions.h
new file mode 100644
index 0000000..a530b5c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/PriorityDefinitions.h
@@ -0,0 +1,91 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+#ifndef PRIORITY_DEFINITIONS_H

+#define PRIORITY_DEFINITIONS_H

+

+

+/* The interrupt priority used by the kernel itself for the tick interrupt and

+the pended interrupt.  This would normally be the lowest priority. */

+#define configKERNEL_INTERRUPT_PRIORITY         1

+

+/* The maximum interrupt priority from which FreeRTOS API calls can be made.

+Interrupts that use a priority above this will not be effected by anything the

+kernel is doing but must not make any use of FreeRTOS functionality.

+interrupts that use a priority at or below configMAX_SYSCALL_INTERRUPT_PRIORITY

+can make use of FreeRTOS API function but *only* functions that end in

+"FromISR()". */

+#define configMAX_SYSCALL_INTERRUPT_PRIORITY    4

+

+#endif /* PRIORITY_DEFINITIONS_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.dep b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.dep
new file mode 100644
index 0000000..e4be4cf
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.dep
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<project>

+  <fileVersion>2</fileVersion>

+  <fileChecksum>1022944783</fileChecksum>

+  <configuration>

+    <name>Debug</name>

+    <outputs>

+      <file>$PROJ_DIR$\Debug\Obj\reg_test.o</file>

+      <file>$PROJ_DIR$\..\..\Source\include\queue.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\FreeRTOS.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\projdefs.h</file>

+      <file>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port.c</file>

+      <file>$PROJ_DIR$\Debug\Obj\port.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\heap_4.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\blocktim.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\queue.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\port_asm.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\ParTest.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\GenQTest.o</file>

+      <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>

+      <file>$PROJ_DIR$\Debug\Obj\main.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\lcd.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\list.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\blocktim.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\death.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\hardware_setup.o</file>

+      <file>$PROJ_DIR$\FreeRTOSConfig.h</file>

+      <file>$PROJ_DIR$\main.c</file>

+      <file>$PROJ_DIR$\main_full.c</file>

+      <file>$PROJ_DIR$\main_low_power.c</file>

+      <file>$PROJ_DIR$\ParTest.c</file>

+      <file>$PROJ_DIR$\reg_test.s</file>

+      <file>$PROJ_DIR$\Debug\Obj\main_low_power.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\timers.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\list.o</file>

+      <file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>

+      <file>$TOOLKIT_DIR$\inc\DLib_Product.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\xencoding_limits.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\DLib_Threads.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\platform.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\r_bsp.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\r_bsp_config.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\mcu\rx111\mcu_info.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\lcd.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\portable.h</file>

+      <file>$PROJ_DIR$\Debug\Obj\tasks.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\timers.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\lcd.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\queue.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\main_full.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\main_low_power.pbi</file>

+      <file>$PROJ_DIR$\Debug\Exe\templproj.out</file>

+      <file>$PROJ_DIR$\Debug\Obj\RTOSDemo_IAR.pbd</file>

+      <file>$TOOLKIT_DIR$\inc\c\limits.h</file>

+      <file>$PROJ_DIR$\PriorityDefinitions.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\rskrx111.h</file>

+      <file>$PROJ_DIR$\Debug\Obj\heap_4.o</file>

+      <file>$TOOLKIT_DIR$\inc\intrinsics.h</file>

+      <file>$TOOLKIT_DIR$\inc\iorx111.h</file>

+      <file>$PROJ_DIR$\Debug\Obj\port.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\hardware_setup.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\r_switches.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\death.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\GenQTest.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\recmutex.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\main_full.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\main.o</file>

+      <file>$PROJ_DIR$\Debug\Obj\ParTest.pbi</file>

+      <file>$PROJ_DIR$\Debug\Obj\tasks.o</file>

+      <file>$TOOLKIT_DIR$\lib\dlrxfllsn.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\mpu_wrappers.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\string.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\list.h</file>

+      <file>$PROJ_DIR$\Debug\Obj\recmutex.o</file>

+      <file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>

+      <file>$TOOLKIT_DIR$\inc\machine.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\task.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\timers.h</file>

+      <file>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port_asm.s</file>

+      <file>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\portmacro.h</file>

+      <file>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_4.c</file>

+      <file>$PROJ_DIR$\..\..\Source\list.c</file>

+      <file>$PROJ_DIR$\..\..\Source\queue.c</file>

+      <file>$PROJ_DIR$\..\..\Source\tasks.c</file>

+      <file>$PROJ_DIR$\..\..\Source\timers.c</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\board\user\hardware_setup.c</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_switches\src\r_switches.c</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\lcd.c</file>

+      <file>$PROJ_DIR$\..\Common\Minimal\blocktim.c</file>

+      <file>$PROJ_DIR$\..\Common\Minimal\death.c</file>

+      <file>$PROJ_DIR$\..\Common\Minimal\GenQTest.c</file>

+      <file>$PROJ_DIR$\..\Common\Minimal\recmutex.c</file>

+      <file>$PROJ_DIR$\Debug\Obj\r_switches.o</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_switches\r_switches_if.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\ystdio.h</file>

+      <file>$PROJ_DIR$\..\..\Source\include\StackMacros.h</file>

+      <file>$TOOLKIT_DIR$\inc\c\stdio.h</file>

+      <file>$PROJ_DIR$\Renesas_Files\r_switches\r_switches_config.h</file>

+    </outputs>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 56</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 5</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 50 30 12 28 66 29 31 32 2 35 36 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 73 69 68</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\main.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 63</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 13</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\main_full.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 62</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 46</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\main_low_power.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 25</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 47</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\ParTest.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 10</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 64</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\reg_test.s</name>

+      <outputs>

+        <tool>

+          <name>ARX</name>

+          <file> 0</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>[ROOT_NODE]</name>

+      <outputs>

+        <tool>

+          <name>ILINK</name>

+          <file> 48</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port_asm.s</name>

+      <outputs>

+        <tool>

+          <name>ARX</name>

+          <file> 9</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_4.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 53</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 6</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 71 30 12 28 66 29 31 32 36 2 35 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 73 69</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\list.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 27</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 15</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 71 30 12 28 66 29 31 32 36 2 35 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 69</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\queue.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 45</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 8</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 71 30 12 28 66 29 31 32 36 68 2 35 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 73 69 1</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\tasks.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 65</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 42</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 93 30 12 28 66 29 31 32 36 91 71 68 2 35 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 73 69 74 92</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\timers.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 26</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 43</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 2 35 30 12 28 66 29 31 32 36 3 19 33 34 38 55 39 52 40 37 51 41 76 54 72 67 73 69 1 74</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_bsp\board\user\hardware_setup.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 18</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 57</file>

+        </tool>

+      </outputs>

+      <inputs>

+        <tool>

+          <name>BICOMP</name>

+          <file> 33 34 38 55 39 52 40 37 30 12 28 66 29 31 32 90 94</file>

+        </tool>

+      </inputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_switches\src\r_switches.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 89</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 58</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\lcd.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 14</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 44</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 16</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 7</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\death.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 17</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 59</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\GenQTest.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 11</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 60</file>

+        </tool>

+      </outputs>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\recmutex.c</name>

+      <outputs>

+        <tool>

+          <name>ICCRX</name>

+          <file> 70</file>

+        </tool>

+        <tool>

+          <name>BICOMP</name>

+          <file> 61</file>

+        </tool>

+      </outputs>

+    </file>

+  </configuration>

+</project>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewd b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewd
new file mode 100644
index 0000000..91508e0
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewd
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<project>

+  <fileVersion>2</fileVersion>

+  <configuration>

+    <name>Debug</name>

+    <toolchain>

+      <name>RX</name>

+    </toolchain>

+    <debug>1</debug>

+    <settings>

+      <name>C-SPY</name>

+      <archiveVersion>2</archiveVersion>

+      <data>

+        <version>5</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>CMandatory</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CInput</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>DebuggerProcessorVariant</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CRunToEnable</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CRunToName</name>

+          <state>main</state>

+        </option>

+        <option>

+          <name>CMacOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CMacFile</name>

+          <state></state>

+        </option>

+        <option>

+          <name>DynDriver</name>

+          <state>RXEMUE20</state>

+        </option>

+        <option>

+          <name>DDFOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>DDFFile</name>

+          <state>$TOOLKIT_DIR$\config\debugger\ior5f51115.ddf</state>

+        </option>

+        <option>

+          <name>DebuggerUseExtraOptions</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>DebuggerExtraOptions</name>

+          <state></state>

+        </option>

+        <option>

+          <name>ODebuggerByteOrder</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>ODebuggerDoubleSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCImagesSuppressCheck1</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCImagesPath1</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCImagesSuppressCheck2</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCImagesPath2</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCImagesSuppressCheck3</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCImagesPath3</name>

+          <state></state>

+        </option>

+        <option>

+          <name>ODebuggerCore</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>ODebuggerIntSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCImagesOffset1</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCImagesOffset2</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCImagesOffset3</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCImagesUse1</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCImagesUse2</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCImagesUse3</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>RXEMUE20</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <version>3</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>EmuMandatory</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCEmuUseUSBSerialNo</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCEmuUSBSerialNo</name>

+          <state></state>

+        </option>

+        <option>

+          <name>OCDownloadSuppressDownload</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDownloadVerifyAll</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDownloadAttach</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDebuggingMode</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCExcecuteAfterFlash</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDownloadOnlyChangedBlocks</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>RXJLINK</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <version>4</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>JlinkMandatory</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OCJlinkDownloadSuppressDownload</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkDownloadVerifyAll</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDownloadAttach</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCDebuggingMode</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkExcecuteAfterFlash</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkScanChainEnable</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkDevicePosition</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkOtherDeviceTypes</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkPreceedingIRBits</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkUseUSBSerialNo</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCJlinkUSBSerialNo</name>

+          <state></state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>SIMRX</name>

+      <archiveVersion>1</archiveVersion>

+      <data>

+        <version>1</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>SimMandatory</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>SimEnablePSP</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>SimPspOverrideConfig</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>SimPspConfigFile</name>

+          <state>$TOOLKIT_DIR$\CONFIG\iocf.psp.config</state>

+        </option>

+      </data>

+    </settings>

+    <debuggerPlugins>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXRxPlugin.ENU.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>

+        <loadFlag>1</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>

+        <loadFlag>1</loadFlag>

+      </plugin>

+      <plugin>

+        <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>

+        <loadFlag>0</loadFlag>

+      </plugin>

+    </debuggerPlugins>

+  </configuration>

+</project>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewp b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewp
new file mode 100644
index 0000000..57000a6
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.ewp
@@ -0,0 +1,1018 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<project>

+  <fileVersion>2</fileVersion>

+  <configuration>

+    <name>Debug</name>

+    <toolchain>

+      <name>RX</name>

+    </toolchain>

+    <debug>1</debug>

+    <settings>

+      <name>General</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <version>4</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OGChipSelectMenu</name>

+          <state>R5F51115	R5F51115</state>

+        </option>

+        <option>

+          <name>GenDoubleSize</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GenCodeModel</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GenDataModel</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>GenByteOrder</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GOutputBinary</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>ExePath</name>

+          <state>Debug\Exe</state>

+        </option>

+        <option>

+          <name>ObjPath</name>

+          <state>Debug\Obj</state>

+        </option>

+        <option>

+          <name>ListPath</name>

+          <state>Debug\List</state>

+        </option>

+        <option>

+          <name>GenRuntimeLibSelect</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>GenRuntimeLibSelectSlave</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>GenRTDescription</name>

+          <state>Use the normal configuration of the C/EC++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>

+        </option>

+        <option>

+          <name>GenRTConfigPath</name>

+          <state>$TOOLKIT_DIR$\LIB\dlrxfllsn.h</state>

+        </option>

+        <option>

+          <name>GenLibInFormatter</name>

+          <version>1</version>

+          <state>7</state>

+        </option>

+        <option>

+          <name>GenLibInFormatterDescription</name>

+          <state>No specifier n, no float, no scan set, no assignment suppressing, without multibyte support.</state>

+        </option>

+        <option>

+          <name>GenLibOutFormatter</name>

+          <version>1</version>

+          <state>8</state>

+        </option>

+        <option>

+          <name>GenLibOutFormatterDescription</name>

+          <state>No specifier a or A, no specifier n, no float or long long, no flags.</state>

+        </option>

+        <option>

+          <name>GeneralEnableMisra</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GeneralMisraVerbose</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GeneralMisraVer</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>GeneralMisraRules04</name>

+          <version>0</version>

+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

+        </option>

+        <option>

+          <name>GeneralMisraRules98</name>

+          <version>0</version>

+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

+        </option>

+        <option>

+          <name>StackSize</name>

+          <state>0x4</state>

+        </option>

+        <option>

+          <name>IStackSize</name>

+          <state>0x200</state>

+        </option>

+        <option>

+          <name>HeapSize</name>

+          <state>0x4</state>

+        </option>

+        <option>

+          <name>GenSubnormalNumbers</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>GenIntSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>GenRopi</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>ICCRX</name>

+      <archiveVersion>5</archiveVersion>

+      <data>

+        <version>14</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>IccLockRegisters</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR8</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR9</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR10</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR11</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR12</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLockR13</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLanguageConformance</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccCharIs</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccMultibyteSupport</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccOptLevel</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccOptStrategy</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccOptLevelSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccOptAllowList</name>

+          <version>1</version>

+          <state>0000000</state>

+        </option>

+        <option>

+          <name>IccGenerateDebugInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccOutputFile</name>

+          <state>$FILE_BNAME$.o</state>

+        </option>

+        <option>

+          <name>IccProcessor</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccObjPrefix</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccLibConfigHeader</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccDoubleSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccDataModel</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmMacroChars</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccByteOrder</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CCDefines</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCPreprocFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCPreprocComments</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCPreprocLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCListCFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCListCMnemonics</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCListCMessages</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCListAssFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCListAssSource</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCEnableRemarks</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCDiagSuppress</name>

+          <state>Pa082</state>

+        </option>

+        <option>

+          <name>CCDiagRemark</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCDiagWarning</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCDiagError</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCDiagWarnAreErr</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CCCompilerRuntimeInfo</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>PreInclude</name>

+          <state></state>

+        </option>

+        <option>

+          <name>CCIncludePath2</name>

+          <state>$PROJ_DIR$\.</state>

+          <state>$PROJ_DIR$\..\Common\include</state>

+          <state>$PROJ_DIR$\..\..\Source\include</state>

+          <state>$PROJ_DIR$\..\..\Source\portable\IAR\RX100</state>

+          <state>$PROJ_DIR$/Renesas_Files/r_bsp/mcu/rx111</state>

+          <state>$PROJ_DIR$/Renesas_Files/r_bsp</state>

+          <state>$PROJ_DIR$/Renesas_Files/r_bsp/board/rskrx111</state>

+          <state>$PROJ_DIR$/Renesas_Files/r_switches</state>

+          <state>$PROJ_DIR$/Renesas_Files/r_switches/src}"</state>

+        </option>

+        <option>

+          <name>CCStdIncCheck</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CompilerMisraOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CompilerMisraRules04</name>

+          <version>0</version>

+          <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>

+        </option>

+        <option>

+          <name>CompilerMisraRules98</name>

+          <version>0</version>

+          <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>

+        </option>

+        <option>

+          <name>IccUseExtraOptions</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccExtraOptions</name>

+          <state>--no_clustering</state>

+        </option>

+        <option>

+          <name>CompilerCpuCore</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccLang</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccCDialect</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccAllowVLA</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccCppDialect</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccRequirePrototypes2</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccIntSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccPosIndRopi</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccCppInlineSemantics</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IccStaticDestr</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IccFloatSemantics</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CompilerFpu</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>NoSizeConstraints</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>ARX</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <version>6</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>AsmCaseSensitivity</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmMultibyteSupport</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmAllowMnemonics</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmAllowDirectives</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmMacroChars</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmDebugInfo</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmListFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListNoDiagnostics</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListIncludeCrossRef</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListMacroDefinitions</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListNoMacroExpansion</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListAssembledOnly</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmListTruncateMultiline</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmIncludePath</name>

+          <state>$TOOLKIT_DIR$\INC\</state>

+          <state>$PROJ_DIR$\.</state>

+        </option>

+        <option>

+          <name>AsmDefines</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmPreprocOutput</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmPreprocComment</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmPreprocLine</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmEnableRemarks</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmDiagnosticsSuppress</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmDiagnosticsRemark</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmDiagnosticsWarning</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmDiagnosticsError</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmDiagnosticsWarningsAreErrors</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmLimitNumberOfErrors</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmMaxNumberOfErrors</name>

+          <state>100</state>

+        </option>

+        <option>

+          <name>AsmProcessor</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmObjPrefix</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmOutputFile</name>

+          <state>$FILE_BNAME$.o</state>

+        </option>

+        <option>

+          <name>AsmByteOrder</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmUseExtraOptions</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmExtraOptions</name>

+          <state></state>

+        </option>

+        <option>

+          <name>AsmDataModel</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmDoubleSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmStdIncludeIgnore2</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>AsmIntSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmPosIndRopi</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>AsmCpuCore</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>PreInclude</name>

+          <state></state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>OBJCOPY</name>

+      <archiveVersion>1</archiveVersion>

+      <data>

+        <version>0</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>OOCOutputFormat</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OCOutputOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>OOCOutputFile</name>

+          <state>RTOSDemo_IAR.srec</state>

+        </option>

+        <option>

+          <name>OOCCommandLineProducer</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>OOCObjCopyEnable</name>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>CUSTOM</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <extensions></extensions>

+        <cmdline></cmdline>

+      </data>

+    </settings>

+    <settings>

+      <name>BICOMP</name>

+      <archiveVersion>0</archiveVersion>

+      <data/>

+    </settings>

+    <settings>

+      <name>BUILDACTION</name>

+      <archiveVersion>1</archiveVersion>

+      <data>

+        <prebuild></prebuild>

+        <postbuild></postbuild>

+      </data>

+    </settings>

+    <settings>

+      <name>ILINK</name>

+      <archiveVersion>3</archiveVersion>

+      <data>

+        <version>4</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>IlinkLibIOConfig</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>XLinkMisraHandler</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkInputFileSlave</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkOutputFile</name>

+          <state>templproj.out</state>

+        </option>

+        <option>

+          <name>IlinkDebugInfoEnable</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkKeepSymbols</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkRawBinaryFile</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkRawBinarySymbol</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkRawBinarySegment</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkRawBinaryAlign</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkDefines</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkConfigDefines</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkMapFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogFile</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogInitialization</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogModule</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogSection</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogVeneer</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkIcfOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkIcfFile</name>

+          <state>$TOOLKIT_DIR$\CONFIG\lnkr5f51115.icf</state>

+        </option>

+        <option>

+          <name>IlinkIcfFileSlave</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkEnableRemarks</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkSuppressDiags</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkTreatAsRem</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkTreatAsWarn</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkTreatAsErr</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkWarningsAreErrors</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkUStackSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkIStackSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkHeapSize</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkUseExtraOptions</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkExtraOptions</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkAutoLibEnable</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkAdditionalLibs</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IlinkOverrideProgramEntryLabel</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkProgramEntryLabelSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkProgramEntryLabel</name>

+          <state>__iar_program_start</state>

+        </option>

+        <option>

+          <name>DoFill</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>FillerByte</name>

+          <state>0xFF</state>

+        </option>

+        <option>

+          <name>FillerStart</name>

+          <state>0x0</state>

+        </option>

+        <option>

+          <name>FillerEnd</name>

+          <state>0x0</state>

+        </option>

+        <option>

+          <name>CrcSize</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CrcAlign</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CrcPoly</name>

+          <state>0x11021</state>

+        </option>

+        <option>

+          <name>CrcCompl</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CrcBitOrder</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CrcInitialValue</name>

+          <state>0x0</state>

+        </option>

+        <option>

+          <name>DoCrc</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CrcFullSize</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkCspyDebugSupportEnable</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkCspyBufferedWrite</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogAutoLibSelect</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogRedirSymbols</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkLogUnusedFragments</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkSubnormal</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkCrcReverseByteOrder</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkCrcUseAsInput</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkOptInline</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkOptMergeDuplSections</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IlinkOptUseVfe</name>

+          <state>1</state>

+        </option>

+        <option>

+          <name>IlinkOptForceVfe</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>CrcAlgorithm</name>

+          <version>0</version>

+          <state>1</state>

+        </option>

+        <option>

+          <name>CrcUnitSize</name>

+          <version>0</version>

+          <state>0</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>IARCHIVE</name>

+      <archiveVersion>1</archiveVersion>

+      <data>

+        <version>0</version>

+        <wantNonLocal>1</wantNonLocal>

+        <debug>1</debug>

+        <option>

+          <name>IarchiveInputs</name>

+          <state></state>

+        </option>

+        <option>

+          <name>IarchiveOverride</name>

+          <state>0</state>

+        </option>

+        <option>

+          <name>IarchiveOutput</name>

+          <state>###Unitialized###</state>

+        </option>

+      </data>

+    </settings>

+    <settings>

+      <name>BILINK</name>

+      <archiveVersion>0</archiveVersion>

+      <data/>

+    </settings>

+  </configuration>

+  <group>

+    <name>FreeRTOS Source</name>

+    <group>

+      <name>include</name>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\FreeRTOS.h</name>

+      </file>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\projdefs.h</name>

+      </file>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\queue.h</name>

+      </file>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\semphr.h</name>

+      </file>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\task.h</name>

+      </file>

+      <file>

+        <name>$PROJ_DIR$\..\..\Source\include\timers.h</name>

+      </file>

+    </group>

+    <group>

+      <name>portable</name>

+      <group>

+        <name>IAR</name>

+        <group>

+          <name>RX100</name>

+          <file>

+            <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port.c</name>

+          </file>

+          <file>

+            <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\port_asm.s</name>

+          </file>

+          <file>

+            <name>$PROJ_DIR$\..\..\Source\portable\IAR\RX100\portmacro.h</name>

+          </file>

+        </group>

+      </group>

+      <group>

+        <name>MemMang</name>

+        <file>

+          <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_4.c</name>

+        </file>

+      </group>

+    </group>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\list.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\queue.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\tasks.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\..\Source\timers.c</name>

+    </file>

+  </group>

+  <group>

+    <name>Renesas Files</name>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_bsp\board\user\hardware_setup.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_bsp\board\rskrx111\lcd.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\Renesas_Files\r_switches\src\r_switches.c</name>

+    </file>

+  </group>

+  <group>

+    <name>Standard Demo Tasks</name>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\blocktim.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\death.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\GenQTest.c</name>

+    </file>

+    <file>

+      <name>$PROJ_DIR$\..\Common\Minimal\recmutex.c</name>

+    </file>

+  </group>

+  <file>

+    <name>$PROJ_DIR$\FreeRTOSConfig.h</name>

+  </file>

+  <file>

+    <name>$PROJ_DIR$\main.c</name>

+  </file>

+  <file>

+    <name>$PROJ_DIR$\main_full.c</name>

+  </file>

+  <file>

+    <name>$PROJ_DIR$\main_low_power.c</name>

+  </file>

+  <file>

+    <name>$PROJ_DIR$\ParTest.c</name>

+  </file>

+  <file>

+    <name>$PROJ_DIR$\reg_test.s</name>

+  </file>

+</project>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.eww b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.eww
new file mode 100644
index 0000000..f4971a4
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IAR.eww
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<workspace>

+  <project>

+    <path>$WS_DIR$\RTOSDemo_IAR.ewp</path>

+  </project>

+  <batchBuild/>

+</workspace>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IARCustomSfr.sfr b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IARCustomSfr.sfr
new file mode 100644
index 0000000..5ac9e8b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/RTOSDemo_IARCustomSfr.sfr
@@ -0,0 +1,4 @@
+[Sfr]

+

+

+[SfrGroupInfo]
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.c b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.c
new file mode 100644
index 0000000..a904f76
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.c
@@ -0,0 +1,252 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.c

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Standard string manipulation & formatting functions */

+#include <stdio.h>

+#include <string.h>

+/* Defines standard variable types used in this function */

+#include <stdint.h>

+/* Bring in board includes. */

+#include "platform.h"

+/* Following header file provides function prototypes for LCD controlling functions & macro defines */

+#include "lcd.h"

+

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs);

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value);

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value);

+

+/***********************************************************************************************************************

+* Function name : lcd_initialize

+* Description   : Initializes the LCD display.

+* Arguments     : none

+* Return Value  : none

+***********************************************************************************************************************/

+void lcd_initialize(void)

+{

+    /* Set LCD data pins as outputs. */

+    PORT4.PDR.BYTE |= 0x0F;

+

+    /* Set LCD control pins as outputs. */

+    RS_PIN_DDR = 1;

+    E_PIN_DDR = 1;

+

+	/* Power Up Delay for the LCD Module */

+    lcd_delay(50000000);

+

+	/* Display initialises in 8 bit mode - so send one write (seen as 8 bit) to set to 4 bit mode. */

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+	lcd_delay(5000000);

+

+	/* Function Set */

+	lcd_nibble_write(CTRL_WR, 0x02);

+    lcd_delay(39000);

+	lcd_nibble_write(CTRL_WR, 0x02);

+	lcd_nibble_write(CTRL_WR, (LCD_DISPLAY_ON | LCD_TWO_LINE ));

+    lcd_delay(39000);

+

+	/* Display ON/OFF control */

+	lcd_write(CTRL_WR, LCD_CURSOR_OFF);

+    lcd_delay(39000);

+

+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);

+

+	/* Entry Mode Set */

+	lcd_write(CTRL_WR, 0x06);

+    lcd_delay(39000);

+

+    /* Home the cursor */

+	lcd_write(CTRL_WR, LCD_HOME_L1);

+    lcd_delay(5000000);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_clear

+* Description   : Clears the LCD

+* Arguments     : none

+* Return Value  : none

+***********************************************************************************************************************/

+void lcd_clear(void)

+{

+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_display

+* Description   : This function controls LCD writes to line 1 or 2 of the LCD.

+*                 You need to use the defines LCD_LINE1 and LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello")

+* Arguments     : position -

+*                     Line number of display

+*                 string -

+*                     Pointer to null terminated string

+* Return Value  : none

+***********************************************************************************************************************/

+void lcd_display(uint8_t position, uint8_t const * string)

+{

+	/* Declare next position variable */

+	static uint8_t next_pos = 0xFF;

+

+	/* Set line position if needed. We don't want to if we don't need to because LCD control operations take longer

+       than LCD data operations. */

+	if (next_pos != position)

+	{

+		if(position < LCD_LINE2)

+		{

+			/* Display on Line 1 */

+		  	lcd_write(CTRL_WR, ((uint8_t)(LCD_HOME_L1 + position)));

+		}

+		else

+		{

+			/* Display on Line 2 */

+		  	lcd_write(CTRL_WR, ((uint8_t)((LCD_HOME_L2 + position) - LCD_LINE2)));

+		}

+

+        lcd_delay(39000);

+

+		/* set position index to known value */

+		next_pos = position;

+	}

+

+	do

+	{

+        /* Write character to LCD. */

+		lcd_write(DATA_WR,*string++);

+

+        lcd_delay(43000);

+

+		/* Increment position index */

+		next_pos++;

+	}

+	while(*string);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_delay

+* Description   : Implements LCD required delays.

+* Arguments     : nsecs -

+*                     Number of nanoseconds to delay. RX111 has max clock of 32MHz which gives a cycle time of 31.3ns.

+*                     This means that nothing under 313ns should be input. 313ns would be 10 cycles which is still

+*                     being optimistic for getting in and out of this function.

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs)

+{

+    while (0 < nsecs)

+    {

+        /* Subtract off 10 cycles per iteration. This number was obtained when using the Renesas toolchain at

+           optimization level 2. The number to nanoseconds to subtract off below is calculated off of the ICLK speed. */

+        nsecs -= (int32_t)((313.0)*(32000000.0/(float)ICLK_HZ));

+    }

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_nibble_write

+* Description   : Writes data to display. Sends command to display.

+* Arguments     : value -

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Set Register Select pin high for Data */

+	if (data_or_ctrl == DATA_WR)

+	{

+        /* Data write. */

+        RS_PIN = 1;

+	}

+	else

+	{

+        /* Control write. */

+        RS_PIN = 0;

+	}

+

+	/* tsu1 delay */

+    lcd_delay(60);

+

+  	/* EN enable chip (HIGH) */

+    E_PIN = 1;

+

+	/* Output the data */

+    PORT4.PODR.BYTE = (value & 0x0F);

+

+	/* tw delay */

+    lcd_delay(450);

+

+	/* Latch data by dropping E */

+    E_PIN = 0;

+

+	/* th2 delay */

+    lcd_delay(10);

+

+	/* tc delay */

+    lcd_delay(480);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_write

+* Description   : This function controls LCD writes to line 1 or 2 of the LCD. You need to use the defines LCD_LINE1 and

+*                 LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello")

+* Arguments     : value -

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Write upper nibble first */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)((value & 0xF0) >> 4));

+

+	/* Write lower nibble second */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)(value & 0x0F));

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.h
new file mode 100644
index 0000000..7a57f77
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/lcd.h
@@ -0,0 +1,101 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.h

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/* Multiple inclusion prevention macro */

+#ifndef LCD_H

+#define LCD_H

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Defines standard integer variable types used in this file */

+#include <stdint.h>

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* RS register select pin */

+#define RS_PIN      PORTC.PODR.BIT.B5

+#define RS_PIN_DDR  PORTC.PDR.BIT.B5

+/* Display enable pin */

+#define E_PIN       PORTB.PODR.BIT.B1

+#define E_PIN_DDR   PORTB.PDR.BIT.B1

+/* Data write/read definition */

+#define DATA_WR 1

+/* Control write/read definition */

+#define CTRL_WR 0

+/* Maximum characters per line of LCD display. */

+#define NUMB_CHARS_PER_LINE	8

+/* Number of lines on the LCD display */

+#define MAXIMUM_LINES		2

+/* Character position of LCD line 1 */

+#define LCD_LINE1 0

+/* Character position of LCD line 2 */

+#define LCD_LINE2 16

+/* Clear LCD display and home cursor */

+#define LCD_CLEAR        0x01

+/* Move cursor to line 1 */

+#define LCD_HOME_L1      0x80

+/* Move cursor to line 2 */

+#define LCD_HOME_L2      0xC0

+/* Cursor auto decrement after R/W */

+#define CURSOR_MODE_DEC  0x04

+/* Cursor auto increment after R/W */

+#define CURSOR_MODE_INC  0x06

+/* Setup, 4 bits,2 lines, 5X7 */

+#define FUNCTION_SET     0x28

+/* Display ON with Cursor */

+#define LCD_CURSOR_ON    0x0E

+/* Display ON with Cursor off */

+#define LCD_CURSOR_OFF   0x0C

+/* Display on with blinking cursor */

+#define LCD_CURSOR_BLINK 0x0D

+/* Move Cursor Left One Position */

+#define LCD_CURSOR_LEFT  0x10

+/* Move Cursor Right One Position */

+#define LCD_CURSOR_RIGHT 0x14

+/* Enable LCD display */

+#define LCD_DISPLAY_ON   0x04

+/* Enable both LCD lines */

+#define LCD_TWO_LINE     0x08

+

+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+/* LCD initialisation function declaration */

+void lcd_initialize (void);

+

+/* Update display function declaration */

+void lcd_display(uint8_t position, uint8_t const * string);

+

+/* Clear LCD function delcaration */

+void lcd_clear (void);

+

+/* End of multiple inclusion prevention macro */

+#endif

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
new file mode 100644
index 0000000..19e36ac
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
@@ -0,0 +1,50 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h

+* H/W Platform : RSKRX111

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_RSKRX111

+#define PLATFORM_BOARD_RSKRX111

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+#include    "r_bsp_config.h"

+#include    "iorx111.h"

+#include    ".\mcu\rx111\mcu_info.h"

+#include    ".\board\rskrx111\rskrx111.h"

+#include    ".\board\rskrx111\lcd.h"

+

+#endif /* PLATFORM_BOARD_RSKRX111 */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
new file mode 100644
index 0000000..da6dc9d
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description           

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such 

+   as package and memory size. 

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name  

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product. 

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity. 

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name. 

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name. 

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/  

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type. 

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a 

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x400)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used. 

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator  

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/ 

+#define CLOCK_SOURCE            (4)

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV). 

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)

+/* PLL Frequency Multiplication Factor Select (STC). 

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)

+/* Peripheral Module Clock B Divider (PCKB). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)

+/* Peripheral Module Clock D Divider (PCKD). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and 

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a 

+   function to be called when the event occurs. For example, if the user wanted the function 

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+   

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/   

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings. 

+   OFS0 - Option Function Select Register 0 

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (1)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
new file mode 100644
index 0000000..8ab534a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
@@ -0,0 +1,63 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : rskrx111.h

+* H/W Platform : RSKRX111

+* Description  : Board specific definitions for the RSKRX111.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef RSKRX111_H

+#define RSKRX111_H

+

+/* Local defines */

+#define LED_ON              (0)

+#define LED_OFF             (1)

+#define SET_BIT_HIGH        (1)

+#define SET_BIT_LOW         (0)

+#define SET_BYTE_HIGH       (0xFF)

+#define SET_BYTE_LOW        (0x00)

+

+/* Switches */

+#define SW_ACTIVE           0

+#define	SW1 			    PORT3.PIDR.BIT.B0

+#define SW2 			    PORT3.PIDR.BIT.B1

+#define SW3 			    PORTE.PIDR.BIT.B4

+#define SW1_PDR			    PORT3.PDR.BIT.B0

+#define SW2_PDR			    PORT3.PDR.BIT.B1

+#define SW3_PDR			    PORTE.PDR.BIT.B4

+#define SW1_PMR			    PORT3.PMR.BIT.B0

+#define SW2_PMR			    PORT3.PMR.BIT.B1

+#define SW3_PMR			    PORTE.PMR.BIT.B4

+

+/* LEDs */

+#define	LED0			    PORTB.PODR.BIT.B7

+#define	LED1			    PORTA.PODR.BIT.B0

+#define	LED2			    PORT5.PODR.BIT.B4

+#define	LED3			    PORT1.PODR.BIT.B7

+#define	LED0_PDR		    PORTB.PDR.BIT.B7

+#define	LED1_PDR		    PORTA.PDR.BIT.B0

+#define	LED2_PDR		    PORT5.PDR.BIT.B4

+#define	LED3_PDR		    PORT1.PDR.BIT.B7

+

+

+#endif /* RSKRX111_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/hardware_setup.c b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/hardware_setup.c
new file mode 100644
index 0000000..2be30ad
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/hardware_setup.c
@@ -0,0 +1,366 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : hwsetup.c

+* Device(s)    : RX

+* H/W Platform : RSKRX210

+* Description  : Defines the initialization routines used each time the MCU is restarted.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* I/O Register and board definitions */

+#include "platform.h"

+#include "r_switches_if.h"

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+/* MCU I/O port configuration function delcaration */

+static void output_ports_configure(void);

+

+/* Interrupt configuration function delcaration */

+static void interrupts_configure(void);

+

+/* MCU peripheral module configuration function declaration */

+static void peripheral_modules_enable(void);

+

+/* Configure MCU clocks. */

+static void clock_source_select (void);

+void operating_frequency_set(void);

+

+/***********************************************************************************************************************

+* Function name: hardware_setup

+* Description  : Contains setup functions called at device restart

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void vHardwareSetup(void)

+{

+	operating_frequency_set();

+    output_ports_configure();

+    interrupts_configure();

+    peripheral_modules_enable();

+}

+

+/***********************************************************************************************************************

+* Function name: output_ports_configure

+* Description  : Configures the port and pin direction settings, and sets the pin outputs to a safe level.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void output_ports_configure(void)

+{

+    /* Enable LEDs. */

+    /* Start with LEDs off. */

+    LED0 = LED_OFF;

+    LED1 = LED_OFF;

+    LED2 = LED_OFF;

+    LED3 = LED_OFF;

+

+    /* Set LED pins as outputs. */

+    LED0_PDR = 1;

+    LED1_PDR = 1;

+    LED2_PDR = 1;

+    LED3_PDR = 1;

+

+    /* Enable switches. */

+    /* Set pins as inputs. */

+    SW1_PDR = 0;

+    SW2_PDR = 0;

+    SW3_PDR = 0;

+

+    /* Set port mode registers for switches. */

+    SW1_PMR = 0;

+    SW2_PMR = 0;

+    SW3_PMR = 0;

+

+    /* Unlock MPC registers to enable writing to them. */

+    MPC.PWPR.BIT.B0WI = 0 ;     /* Unlock protection register */

+    MPC.PWPR.BIT.PFSWE = 1 ;    /* Unlock MPC registers */

+

+    /* TXD1 is output. */

+    PORT1.PDR.BIT.B6 = 1;

+    PORT1.PMR.BIT.B6 = 1;

+    MPC.P16PFS.BYTE  = 0x0A;

+    /* RXD1 is input. */

+    PORT1.PDR.BIT.B5 = 0;

+    PORT1.PMR.BIT.B5 = 1;

+    MPC.P15PFS.BYTE  = 0x0A;

+

+    /* Configure the pin connected to the ADC Pot as an input */

+    PORT4.PDR.BIT.B4 = 0;

+

+    /* Protect off. */

+    SYSTEM.PRCR.WORD = 0xA50B;

+

+    /* Turn off module stop for the A2D converter. */

+    SYSTEM.MSTPCRA.BIT.MSTPA17 = 0;

+

+    /* Protect on. */

+    SYSTEM.PRCR.WORD = 0xA500;

+

+    /* Initialise the first button to generate an interrupt. */

+    R_SWITCHES_Init();

+}

+

+/***********************************************************************************************************************

+* Function name: interrupts_configure

+* Description  : Configures interrupts used

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void interrupts_configure(void)

+{

+    /* Add code here to setup additional interrupts */

+}

+

+/***********************************************************************************************************************

+* Function name: peripheral_modules_enable

+* Description  : Enables and configures peripheral devices on the MCU

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void peripheral_modules_enable(void)

+{

+	/* Enable triggers to start an ADC conversion. */

+	S12AD.ADCSR.BIT.TRGE = 1;

+

+	/* Only channel 4 is going to be used. */

+	S12AD.ADANSA.BIT.ANSA4 = 1;

+}

+

+/***********************************************************************************************************************

+* Function name: operating_frequency_set

+* Description  : Configures the clock settings for each of the device clocks

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void operating_frequency_set(void)

+{

+    /* Used for constructing value to write to SCKCR and CKOCR registers. */

+    uint32_t temp_clock = 0;

+

+    /*

+    Clock Description              Frequency

+    ----------------------------------------

+    Input Clock Frequency............  16 MHz

+    PLL frequency (x3)...............  48 MHz

+    Internal Clock Frequency.........  24 MHz

+    Peripheral Clock Frequency.......  24 MHz

+    Clock Out Frequency..............  1  MHz */

+

+    volatile unsigned int i;

+

+    /* Protect off. */

+    SYSTEM.PRCR.WORD = 0xA50B;

+

+    /* Select the clock based upon user's choice. */

+    clock_source_select();

+

+

+    /* Figure out setting for FCK bits. */

+#if   FCK_DIV == 1

+    /* Do nothing since FCK bits should be 0. */

+#elif FCK_DIV == 2

+    temp_clock |= 0x10000000;

+#elif FCK_DIV == 4

+    temp_clock |= 0x20000000;

+#elif FCK_DIV == 8

+    temp_clock |= 0x30000000;

+#elif FCK_DIV == 16

+    temp_clock |= 0x40000000;

+#elif FCK_DIV == 32

+    temp_clock |= 0x50000000;

+#elif FCK_DIV == 64

+    temp_clock |= 0x60000000;

+#else

+    #error "Error! Invalid setting for FCK_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for ICK bits. */

+#if   ICK_DIV == 1

+    /* Do nothing since ICK bits should be 0. */

+#elif ICK_DIV == 2

+    temp_clock |= 0x01000000;

+#elif ICK_DIV == 4

+    temp_clock |= 0x02000000;

+#elif ICK_DIV == 8

+    temp_clock |= 0x03000000;

+#elif ICK_DIV == 16

+    temp_clock |= 0x04000000;

+#elif ICK_DIV == 32

+    temp_clock |= 0x05000000;

+#elif ICK_DIV == 64

+    temp_clock |= 0x06000000;

+#else

+    #error "Error! Invalid setting for ICK_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for PCKB bits. */

+#if   PCKB_DIV == 1

+    /* Do nothing since PCKB bits should be 0. */

+#elif PCKB_DIV == 2

+    temp_clock |= 0x00000100;

+#elif PCKB_DIV == 4

+    temp_clock |= 0x00000200;

+#elif PCKB_DIV == 8

+    temp_clock |= 0x00000300;

+#elif PCKB_DIV == 16

+    temp_clock |= 0x00000400;

+#elif PCKB_DIV == 32

+    temp_clock |= 0x00000500;

+#elif PCKB_DIV == 64

+    temp_clock |= 0x00000600;

+#else

+    #error "Error! Invalid setting for PCKB_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for PCKD bits. */

+#if   PCKD_DIV == 1

+    /* Do nothing since PCKD bits should be 0. */

+#elif PCKD_DIV == 2

+    temp_clock |= 0x00000001;

+#elif PCKD_DIV == 4

+    temp_clock |= 0x00000002;

+#elif PCKD_DIV == 8

+    temp_clock |= 0x00000003;

+#elif PCKD_DIV == 16

+    temp_clock |= 0x00000004;

+#elif PCKD_DIV == 32

+    temp_clock |= 0x00000005;

+#elif PCKD_DIV == 64

+    temp_clock |= 0x00000006;

+#else

+    #error "Error! Invalid setting for PCKD_DIV in r_bsp_config.h"

+#endif

+

+    /* Set SCKCR register. */

+    SYSTEM.SCKCR.LONG = temp_clock;

+

+    /* Choose clock source. Default for r_bsp_config.h is PLL. */

+    SYSTEM.SCKCR3.WORD = ((uint16_t)CLOCK_SOURCE) << 8;

+

+    /* Protect on. */

+    SYSTEM.PRCR.WORD = 0xA500;

+}

+

+/***********************************************************************************************************************

+* Function name: clock_source_select

+* Description  : Enables and disables clocks as chosen by the user. This function also implements the software delays

+*                needed for the clocks to stabilize.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+static void clock_source_select (void)

+{

+    /* Declared volatile for software delay purposes. */

+    volatile unsigned int i;

+

+    /* NOTE: AS OF VERSION 0.50 OF THE RX111 HARDWARE MANUAL, ALL OF THE CLOCK

+     * STABILIZATION TIMES ARE TBD. FOR NOW, WHERE EVER A WAIT COUNT REGISTER

+     * IS AVAILABLE, THE DELAY IS SET TO THE MAX NUMBER OF CYCLES. WHERE EVER

+     * DELAY LOOPS ARE PRESENT, THE VALUES FROM THE 63N ARE RE-USED. KEEP IN

+     * MIND THAT THE 63N RUNS ON A FASTER CRYSTAL.

+     */

+

+#if (CLOCK_SOURCE == 1)

+    /* HOCO is chosen. Start it operating. */

+    SYSTEM.HOCOCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the HOCO has stabilized.*/

+    for(i = 0; i< 28; i++)			// tHOCOWT2 is TBD

+    {

+        __asm volatile( "NOP" );

+    }

+#else

+    /* HOCO is not chosen. Stop the HOCO. */

+    SYSTEM.HOCOCR.BYTE = 0x01;

+#endif

+

+#if (CLOCK_SOURCE == 2)

+    /* Main clock oscillator is chosen. Start it operating. */

+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles

+    /* Set the main clock to operating. */

+    SYSTEM.MOSCCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the main clock has stabilized. */

+    for(i = 0; i< 140; i++)			// tMAINOSCWT is TBD

+    {

+        __asm volatile( "NOT" );

+    }

+#endif

+

+#if (CLOCK_SOURCE == 3)

+    /* Sub-clock oscillator is chosen. Start it operating. */

+    /* In section 9.8.4, there is a reference to a SOSCWTCR register, but there is no

+     * description for this register in the manual nor reference for it in iorx111.h. */

+

+    /* Set the sub-clock to operating. */

+    SYSTEM.SOSCCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the sub-clock has stabilized. */

+    for(i = 0; i< 30233; i++)		// tSUBOSCWT0 is TBD

+    {

+        __asm volatile( "NOP" );

+    }

+#else

+    /* Set the sub-clock to stopped. */

+    SYSTEM.SOSCCR.BYTE = 0x01;

+#endif

+

+#if (CLOCK_SOURCE == 4)

+    /* PLL is chosen. Start it operating. Must start main clock as well since PLL uses it. */

+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles

+    /* Set the main clock to operating. */

+    SYSTEM.MOSCCR.BYTE = 0x00;

+

+    /* Set PLL Input Divisor. */

+    SYSTEM.PLLCR.BIT.PLIDIV = PLL_DIV >> 1;

+

+    /* Set PLL Multiplier. */

+    SYSTEM.PLLCR.BIT.STC = (PLL_MUL * 2) - 1;

+

+    /* Set the PLL to operating. */

+    SYSTEM.PLLCR2.BYTE = 0x00;

+    /* The delay period needed is to make sure that the main clock and PLL have stabilized. */

+    for(i = 0; i< 140; i++)			// tPLLWT2 is TBD

+    {

+        __asm volatile( "NOP" );

+    }

+#endif

+

+    /* LOCO is saved for last since it is what is running by default out of reset. This means you do not want to turn

+       it off until another clock has been enabled and is ready to use. */

+#if (CLOCK_SOURCE == 0)

+    /* LOCO is chosen. This is the default out of reset. */

+    SYSTEM.LOCOCR.BYTE = 0x00;

+#else

+    /* LOCO is not chosen and another clock has already been setup. Turn off the LOCO. */

+    SYSTEM.LOCOCR.BYTE = 0x01;

+#endif

+

+    /* Make sure a valid clock was chosen. */

+#if (CLOCK_SOURCE > 4) || (CLOCK_SOURCE < 0)

+    #error "ERROR - Valid clock source must be chosen in r_bsp_config.h using CLOCK_SOURCE macro."

+#endif

+}

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/r_bsp.h
new file mode 100644
index 0000000..bd8881c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/board/user/r_bsp.h
@@ -0,0 +1,54 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h 

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 13.01.2012 1.00     First Release

+*         : 27.06.2012 1.10     Updated with new information to reflect udpated r_bsp structure.

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_USER

+#define PLATFORM_BOARD_USER

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+/* This is a user defined board. Start off by:

+   1)Copy and rename one of the 'board' folders that most closely matches your system (same MCU Series and Group).

+   2)Substitute in your MCU Group for the *MCU Group* option in the #include below for mcu_info.h.

+   3)Copy the other #includes from the r_bsp.h in the 'board' folder that you copied earlier.

+   4)Configure the BSP for your board by modifying the r_bsp_config_reference.h.

+   5)Copy r_bsp_config_reference.h to your project directory and rename it r_bsp_config.h.

+   You can also add your own include files here as well. */

+#include    "r_bsp_config.h"

+#include    ".\mcu\*MCU Group*\mcu_info.h"           

+

+#endif /* PLATFORM_BOARD_USER */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/Copy of iodefine.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/Copy of iodefine.h
new file mode 100644
index 0000000..30d7bd4
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/Copy of iodefine.h
@@ -0,0 +1,5142 @@
+/********************************************************************************/

+/*                                                                              */

+/* Device     : RX/RX100/RX111                                                  */

+/* File Name  : iodefine.h                                                      */

+/* Abstract   : Definition of I/O Register.                                     */

+/* History    : V0.5  (2012-09-25)  [Hardware Manual Revision : 0.50]           */

+/* Note       : This is a typical example.                                      */

+/*                                                                              */

+/*  Copyright(c) 2012 Renesas Electronics Corp.                                 */

+/*                  And Renesas Solutions Corp. ,All Rights Reserved.           */

+/*                                                                              */

+/********************************************************************************/

+/*                                                                              */

+/*  DESCRIPTION : Definition of ICU Register                                    */

+/*  CPU TYPE    : RX111                                                         */

+/*                                                                              */

+/*  Usage : IR,DTCER,IER,IPR of ICU Register                                    */

+/*     The following IR, DTCE, IEN, IPR macro functions simplify usage.         */

+/*     The bit access operation is "Bit_Name(interrupt source,name)".           */

+/*     A part of the name can be omitted.                                       */

+/*     for example :                                                            */

+/*       IR(MTU0,TGIA0) = 0;     expands to :                                   */

+/*         ICU.IR[114].BIT.IR = 0;                                              */

+/*                                                                              */

+/*       DTCE(ICU,IRQ0) = 1;     expands to :                                   */

+/*         ICU.DTCER[64].BIT.DTCE = 1;                                          */

+/*                                                                              */

+/*       IEN(CMT0,CMI0) = 1;     expands to :                                   */

+/*         ICU.IER[0x03].BIT.IEN4 = 1;                                          */

+/*                                                                              */

+/*       IPR(MTU1,TGIA1) = 2;    expands to :                                   */

+/*       IPR(MTU1,TGI  ) = 2;    // TGIA1,TGIB1 share IPR level.                */

+/*         ICU.IPR[121].BIT.IPR = 2;                                            */

+/*                                                                              */

+/*       IPR(SCI1,ERI1) = 3;     expands to :                                   */

+/*       IPR(SCI1,    ) = 3;     // SCI1 uses single IPR for all sources.       */

+/*         ICU.IPR[218].BIT.IPR = 3;                                            */

+/*                                                                              */

+/*  Usage : #pragma interrupt Function_Identifier(vect=**)                      */

+/*     The number of vector is "(interrupt source, name)".                      */

+/*     for example :                                                            */

+/*       #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0))          expands to :  */

+/*         #pragma interrupt INT_IRQ0(vect=64)                                  */

+/*       #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0))    expands to :  */

+/*         #pragma interrupt INT_CMT0_CMI0(vect=28)                             */

+/*       #pragma interrupt INT_MTU0_TGIA0(vect=VECT(MTU0,TGIA0))  expands to :  */

+/*         #pragma interrupt INT_MTU0_TGIA0(vect=114)                           */

+/*                                                                              */

+/*  Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register                          */

+/*     The bit access operation is "MSTP(name)".                                */

+/*     The name that can be used is a macro name defined with "iodefine.h".     */

+/*     for example :                                                            */

+/*       MSTP(MTU4) = 0;    // MTU,MTU0,MTU1,MTU2,MTU3,MTU4,MTU5  expands to :  */

+/*         SYSTEM.MSTPCRA.BIT.MSTPA9  = 0;                                      */

+/*                                                                              */

+/*                                                                              */

+/********************************************************************************/

+#ifndef __RX111IODEFINE_HEADER__

+#define __RX111IODEFINE_HEADER__

+

+

+struct st_bsc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char STSCLR:1;

+		} BIT;

+	} BERCLR;

+	char           wk0[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IGAEN:1;

+		} BIT;

+	} BEREN;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MST:3;

+			unsigned char :3;

+			unsigned char IA:1;

+		} BIT;

+	} BERSR1;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADDR:13;

+		} BIT;

+	} BERSR2;

+	char           wk3[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short BPFB:2;

+			unsigned short :2;

+			unsigned short BPGB:2;

+			unsigned short BPIB:2;

+			unsigned short BPRO:2;

+			unsigned short BPRA:2;

+		} BIT;

+	} BUSPRI;

+};

+

+struct st_cac {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CFME:1;

+		} BIT;

+	} CACR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char EDGES:2;

+			unsigned char TCSS:2;

+			unsigned char FMCS:3;

+			unsigned char CACREFE:1;

+		} BIT;

+	} CACR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DFS:2;

+			unsigned char RCDS:2;

+			unsigned char RSCS:3;

+			unsigned char RPS:1;

+		} BIT;

+	} CACR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char OVFFCL:1;

+			unsigned char MENDFCL:1;

+			unsigned char FERRFCL:1;

+			unsigned char :1;

+			unsigned char OVFIE:1;

+			unsigned char MENDIE:1;

+			unsigned char FERRIE:1;

+		} BIT;

+	} CAICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char OVFF:1;

+			unsigned char MENDF:1;

+			unsigned char FERRF:1;

+		} BIT;

+	} CASTR;

+	char           wk0[1];

+	unsigned short CAULVR;

+	unsigned short CALLVR;

+	unsigned short CACNTBR;

+};

+

+struct st_cmt {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :14;

+			unsigned short STR1:1;

+			unsigned short STR0:1;

+		} BIT;

+	} CMSTR0;

+};

+

+struct st_cmt0 {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :9;

+			unsigned short CMIE:1;

+			unsigned short :4;

+			unsigned short CKS:2;

+		} BIT;

+	} CMCR;

+	unsigned short CMCNT;

+	unsigned short CMCOR;

+};

+

+struct st_crc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DORCLR:1;

+			unsigned char :4;

+			unsigned char LMS:1;

+			unsigned char GPS:2;

+		} BIT;

+	} CRCCR;

+	unsigned char  CRCDIR;

+	unsigned short CRCDOR;

+};

+

+struct st_da {

+	unsigned short DADR0;

+	unsigned short DADR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAOE1:1;

+			unsigned char DAOE0:1;

+		} BIT;

+	} DACR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DPSEL:1;

+		} BIT;

+	} DADPR;

+};

+

+struct st_doc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char DOPCFCL:1;

+			unsigned char DOPCF:1;

+			unsigned char DOPCIE:1;

+			unsigned char :1;

+			unsigned char DCSEL:1;

+			unsigned char OMS:2;

+		} BIT;

+	} DOCR;

+	char           wk0[1];

+	unsigned short DODIR;

+	unsigned short DODSR;

+};

+

+struct st_dtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char RRS:1;

+		} BIT;

+	} DTCCR;

+	char           wk0[3];

+	void          *DTCVBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SHORT:1;

+		} BIT;

+	} DTCADMOD;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCST:1;

+		} BIT;

+	} DTCST;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ACT:1;

+			unsigned short :7;

+			unsigned short VECN:8;

+		} BIT;

+	} DTCSTS;

+};

+

+struct st_elc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELCON:1;

+		} BIT;

+	} ELCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELS:8;

+		} BIT;

+	} ELSR[26];

+	char           wk0[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTU3MD:2;

+			unsigned char MTU2MD:2;

+			unsigned char MTU1MD:2;

+		} BIT;

+	} ELOPA;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char MTU4MD:2;

+		} BIT;

+	} ELOPB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char CMT1MD:2;

+		} BIT;

+	} ELOPC;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PGR7:1;

+			unsigned char PGR6:1;

+			unsigned char PGR5:1;

+			unsigned char PGR4:1;

+			unsigned char PGR3:1;

+			unsigned char PGR2:1;

+			unsigned char PGR1:1;

+			unsigned char PGR0:1;

+		} BIT;

+	} PGR1;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PGCO:3;

+			unsigned char :1;

+			unsigned char PGCOVE:1;

+			unsigned char PGCI:2;

+		} BIT;

+	} PGC1;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PDBF7:1;

+			unsigned char PDBF6:1;

+			unsigned char PDBF5:1;

+			unsigned char PDBF4:1;

+			unsigned char PDBF3:1;

+			unsigned char PDBF2:1;

+			unsigned char PDBF1:1;

+			unsigned char PDBF0:1;

+		} BIT;

+	} PDBF1;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL1;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char WI:1;

+			unsigned char WE:1;

+			unsigned char :5;

+			unsigned char SEG:1;

+		} BIT;

+	} ELSEGR;

+};

+

+struct st_flash {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DFLEN:1;

+		} BIT;

+	} DFLCTL;

+};

+

+struct st_icu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IR:1;

+		} BIT;

+	} IR[250];

+	char           wk0[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCE:1;

+		} BIT;

+	} DTCER[249];

+	char           wk1[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IEN7:1;

+			unsigned char IEN6:1;

+			unsigned char IEN5:1;

+			unsigned char IEN4:1;

+			unsigned char IEN3:1;

+			unsigned char IEN2:1;

+			unsigned char IEN1:1;

+			unsigned char IEN0:1;

+		} BIT;

+	} IER[32];

+	char           wk2[192];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SWINT:1;

+		} BIT;

+	} SWINTR;

+	char           wk3[15];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FIEN:1;

+			unsigned short :7;

+			unsigned short FVCT:8;

+		} BIT;

+	} FIR;

+	char           wk4[14];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IPR:4;

+		} BIT;

+	} IPR[250];

+	char           wk5[262];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IRQMD:2;

+		} BIT;

+	} IRQCR[8];

+	char           wk6[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FLTEN7:1;

+			unsigned char FLTEN6:1;

+			unsigned char FLTEN5:1;

+			unsigned char FLTEN4:1;

+			unsigned char FLTEN3:1;

+			unsigned char FLTEN2:1;

+			unsigned char FLTEN1:1;

+			unsigned char FLTEN0:1;

+		} BIT;

+	} IRQFLTE0;

+	char           wk7[3];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FCLKSEL7:2;

+			unsigned short FCLKSEL6:2;

+			unsigned short FCLKSEL5:2;

+			unsigned short FCLKSEL4:2;

+			unsigned short FCLKSEL3:2;

+			unsigned short FCLKSEL2:2;

+			unsigned short FCLKSEL1:2;

+			unsigned short FCLKSEL0:2;

+		} BIT;

+	} IRQFLTC0;

+	char           wk8[106];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2ST:1;

+			unsigned char LVD1ST:1;

+			unsigned char IWDTST:1;

+			unsigned char :1;

+			unsigned char OSTST:1;

+			unsigned char NMIST:1;

+		} BIT;

+	} NMISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2EN:1;

+			unsigned char LVD1EN:1;

+			unsigned char IWDTEN:1;

+			unsigned char :1;

+			unsigned char OSTEN:1;

+			unsigned char NMIEN:1;

+		} BIT;

+	} NMIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2CLR:1;

+			unsigned char LVD1CLR:1;

+			unsigned char IWDTCLR:1;

+			unsigned char :1;

+			unsigned char OSTCLR:1;

+			unsigned char NMICLR:1;

+		} BIT;

+	} NMICLR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char NMIMD:1;

+		} BIT;

+	} NMICR;

+	char           wk9[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char NFLTEN:1;

+		} BIT;

+	} NMIFLTE;

+	char           wk10[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char NFCLKSEL:2;

+		} BIT;

+	} NMIFLTC;

+};

+

+struct st_iwdt {

+	unsigned char  IWDTRR;

+	char           wk0[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short RPSS:2;

+			unsigned short :2;

+			unsigned short RPES:2;

+			unsigned short CKS:4;

+			unsigned short :2;

+			unsigned short TOPS:2;

+		} BIT;

+	} IWDTCR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short REFEF:1;

+			unsigned short UNDFF:1;

+			unsigned short CNTVAL:14;

+		} BIT;

+	} IWDTSR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTIRQS:1;

+		} BIT;

+	} IWDTRCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SLCSTP:1;

+		} BIT;

+	} IWDTCSTPR;

+};

+

+struct st_mpc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0WI:1;

+			unsigned char PFSWE:1;

+		} BIT;

+	} PWPR;

+	char           wk0[35];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P03PFS;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P05PFS;

+	char           wk2[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P14PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P15PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P16PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P17PFS;

+	char           wk3[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P26PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P27PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P30PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P31PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P32PFS;

+	char           wk4[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+		} BIT;

+	} P35PFS;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P40PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P41PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P42PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P43PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P44PFS;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P46PFS;

+	char           wk7[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P54PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P55PFS;

+	char           wk8[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA1PFS;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA4PFS;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA6PFS;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB1PFS;

+	char           wk12[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB3PFS;

+	char           wk13[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB7PFS;

+	char           wk14[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC7PFS;

+	char           wk15[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE1PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE7PFS;

+	char           wk16[30];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ7PFS;

+};

+

+struct st_mtu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OE4D:1;

+			unsigned char OE4C:1;

+			unsigned char OE3D:1;

+			unsigned char OE4B:1;

+			unsigned char OE4A:1;

+			unsigned char OE3B:1;

+		} BIT;

+	} TOER;

+	char           wk0[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BDC:1;

+			unsigned char N:1;

+			unsigned char P:1;

+			unsigned char FB:1;

+			unsigned char WF:1;

+			unsigned char VF:1;

+			unsigned char UF:1;

+		} BIT;

+	} TGCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSYE:1;

+			unsigned char :2;

+			unsigned char TOCL:1;

+			unsigned char TOCS:1;

+			unsigned char OLSN:1;

+			unsigned char OLSP:1;

+		} BIT;

+	} TOCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BF:2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOCR2;

+	char           wk1[4];

+	unsigned short TCDR;

+	unsigned short TDDR;

+	char           wk2[8];

+	unsigned short TCNTS;

+	unsigned short TCBR;

+	char           wk3[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char T3AEN:1;

+			unsigned char T3ACOR:3;

+			unsigned char T4VEN:1;

+			unsigned char T4VCOR:3;

+		} BIT;

+	} TITCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char T3ACNT:3;

+			unsigned char :1;

+			unsigned char T4VCNT:3;

+		} BIT;

+	} TITCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char BTE:2;

+		} BIT;

+	} TBTER;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TDER:1;

+		} BIT;

+	} TDER;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOLBR;

+	char           wk6[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCE:1;

+			unsigned char :6;

+			unsigned char WRE:1;

+		} BIT;

+	} TWCR;

+	char           wk7[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CST4:1;

+			unsigned char CST3:1;

+			unsigned char :3;

+			unsigned char CST2:1;

+			unsigned char CST1:1;

+			unsigned char CST0:1;

+		} BIT;

+	} TSTR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SYNC4:1;

+			unsigned char SYNC3:1;

+			unsigned char :3;

+			unsigned char SYNC2:1;

+			unsigned char SYNC1:1;

+			unsigned char SYNC0:1;

+		} BIT;

+	} TSYR;

+	char           wk8[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char RWE:1;

+		} BIT;

+	} TRWER;

+};

+

+struct st_mtu0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[111];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BFE:1;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk1[16];

+	unsigned short TGRE;

+	unsigned short TGRF;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TGIEF:1;

+			unsigned char TGIEE:1;

+		} BIT;

+	} TIER2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+};

+

+struct st_mtu1 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[238];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk3[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char I2BE:1;

+			unsigned char I2AE:1;

+			unsigned char I1BE:1;

+			unsigned char I1AE:1;

+		} BIT;

+	} TICCR;

+};

+

+struct st_mtu2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[365];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+};

+

+struct st_mtu3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk3[7];

+	unsigned short TCNT;

+	char           wk4[6];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk5[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk6[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk8[90];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu4 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char TTGE2:1;

+			unsigned char :1;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk4[8];

+	unsigned short TCNT;

+	char           wk5[8];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk6[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk8[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk9[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BF:2;

+			unsigned short :6;

+			unsigned short UT4AE:1;

+			unsigned short DT4AE:1;

+			unsigned short UT4BE:1;

+			unsigned short DT4BE:1;

+			unsigned short ITA3AE:1;

+			unsigned short ITA4VE:1;

+			unsigned short ITB3AE:1;

+			unsigned short ITB4VE:1;

+		} BIT;

+	} TADCR;

+	char           wk10[2];

+	unsigned short TADCORA;

+	unsigned short TADCORB;

+	unsigned short TADCOBRA;

+	unsigned short TADCOBRB;

+	char           wk11[72];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu5 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char :1;

+			unsigned char NFWEN:1;

+			unsigned char NFVEN:1;

+			unsigned char NFUEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[490];

+	unsigned short TCNTU;

+	unsigned short TGRU;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRU;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORU;

+	char           wk3[9];

+	unsigned short TCNTV;

+	unsigned short TGRV;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRV;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORV;

+	char           wk5[9];

+	unsigned short TCNTW;

+	unsigned short TGRW;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRW;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORW;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TGIE5U:1;

+			unsigned char TGIE5V:1;

+			unsigned char TGIE5W:1;

+		} BIT;

+	} TIER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CSTU5:1;

+			unsigned char CSTV5:1;

+			unsigned char CSTW5:1;

+		} BIT;

+	} TSTR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CMPCLR5U:1;

+			unsigned char CMPCLR5V:1;

+			unsigned char CMPCLR5W:1;

+		} BIT;

+	} TCNTCMPCLR;

+};

+

+struct st_poe {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char POE3F:1;

+			unsigned char POE2F:1;

+			unsigned char POE1F:1;

+			unsigned char POE0F:1;

+			unsigned char :3;

+			unsigned char PIE1:1;

+			unsigned char POE3M:2;

+			unsigned char POE2M:2;

+			unsigned char POE1M:2;

+			unsigned char POE0M:2;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char OSF1:1;

+			unsigned char :5;

+			unsigned char OCE1:1;

+			unsigned char OIE1:1;

+		} BIT;

+	} OCSR1;

+	char           wk0[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char POE8F:1;

+			unsigned char :2;

+			unsigned char POE8E:1;

+			unsigned char PIE2:1;

+			unsigned char :6;

+			unsigned char POE8M:2;

+		} BIT;

+	} ICSR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char CH0HIZ:1;

+			unsigned char CH34HIZ:1;

+		} BIT;

+	} SPOER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PE3ZE:1;

+			unsigned char PE2ZE:1;

+			unsigned char PE1ZE:1;

+			unsigned char PE0ZE:1;

+		} BIT;

+	} POECR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char P1CZEA:1;

+			unsigned char P2CZEA:1;

+			unsigned char P3CZEA:1;

+		} BIT;

+	} POECR2;

+	char           wk1[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OSTSTF:1;

+			unsigned char :2;

+			unsigned char OSTSTE:1;

+		} BIT;

+	} ICSR3;

+};

+

+struct st_port {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char PSEL5:1;

+			unsigned char :1;

+			unsigned char PSEL3:1;

+			unsigned char :1;

+			unsigned char PSEL1:1;

+			unsigned char PSEL0:1;

+		} BIT;

+	} PSRB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL7:1;

+			unsigned char PSEL6:1;

+		} BIT;

+	} PSRA;

+};

+

+struct st_port0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[33];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[61];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR1;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port4 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+};

+

+struct st_port5 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porta {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :3;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[52];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[42];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+		} BIT;

+	} ODR1;

+	char           wk4[51];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PMR;

+	char           wk3[43];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[50];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porte {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[45];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[48];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_riic {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ICE:1;

+			unsigned char IICRST:1;

+			unsigned char CLO:1;

+			unsigned char SOWP:1;

+			unsigned char SCLO:1;

+			unsigned char SDAO:1;

+			unsigned char SCLI:1;

+			unsigned char SDAI:1;

+		} BIT;

+	} ICCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BBSY:1;

+			unsigned char MST:1;

+			unsigned char TRS:1;

+			unsigned char :1;

+			unsigned char SP:1;

+			unsigned char RS:1;

+			unsigned char ST:1;

+		} BIT;

+	} ICCR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTWP:1;

+			unsigned char CKS:3;

+			unsigned char BCWP:1;

+			unsigned char BC:3;

+		} BIT;

+	} ICMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DLCS:1;

+			unsigned char SDDL:3;

+			unsigned char TMWE:1;

+			unsigned char TMOH:1;

+			unsigned char TMOL:1;

+			unsigned char TMOS:1;

+		} BIT;

+	} ICMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMBS:1;

+			unsigned char WAIT:1;

+			unsigned char RDRFS:1;

+			unsigned char ACKWP:1;

+			unsigned char ACKBT:1;

+			unsigned char ACKBR:1;

+			unsigned char NF:2;

+		} BIT;

+	} ICMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SCLE:1;

+			unsigned char NFE:1;

+			unsigned char NACKE:1;

+			unsigned char SALE:1;

+			unsigned char NALE:1;

+			unsigned char MALE:1;

+			unsigned char TMOE:1;

+		} BIT;

+	} ICFER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOAE:1;

+			unsigned char :1;

+			unsigned char DIDE:1;

+			unsigned char :1;

+			unsigned char GCAE:1;

+			unsigned char SAR2E:1;

+			unsigned char SAR1E:1;

+			unsigned char SAR0E:1;

+		} BIT;

+	} ICSER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char TEIE:1;

+			unsigned char RIE:1;

+			unsigned char NAKIE:1;

+			unsigned char SPIE:1;

+			unsigned char STIE:1;

+			unsigned char ALIE:1;

+			unsigned char TMOIE:1;

+		} BIT;

+	} ICIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOA:1;

+			unsigned char :1;

+			unsigned char DID:1;

+			unsigned char :1;

+			unsigned char GCA:1;

+			unsigned char AAS2:1;

+			unsigned char AAS1:1;

+			unsigned char AAS0:1;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TDRE:1;

+			unsigned char TEND:1;

+			unsigned char RDRF:1;

+			unsigned char NACKF:1;

+			unsigned char STOP:1;

+			unsigned char START:1;

+			unsigned char AL:1;

+			unsigned char TMOF:1;

+		} BIT;

+	} ICSR2;

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char SVA:7;

+				unsigned char SVA0:1;

+			} BIT;

+		} SARL0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTL;

+	};

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char :5;

+				unsigned char SVA:2;

+				unsigned char FS:1;

+			} BIT;

+		} SARU0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTH;

+	};

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRL:5;

+		} BIT;

+	} ICBRL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRH:5;

+		} BIT;

+	} ICBRH;

+	unsigned char  ICDRT;

+	unsigned char  ICDRR;

+};

+

+struct st_rspi {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPRIE:1;

+			unsigned char SPE:1;

+			unsigned char SPTIE:1;

+			unsigned char SPEIE:1;

+			unsigned char MSTR:1;

+			unsigned char MODFEN:1;

+			unsigned char TXMD:1;

+			unsigned char SPMS:1;

+		} BIT;

+	} SPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char SSL3P:1;

+			unsigned char SSL2P:1;

+			unsigned char SSL1P:1;

+			unsigned char SSL0P:1;

+		} BIT;

+	} SSLP;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char MOIFE:1;

+			unsigned char MOIFV:1;

+			unsigned char :2;

+			unsigned char SPLP2:1;

+			unsigned char SPLP:1;

+		} BIT;

+	} SPPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PERF:1;

+			unsigned char MODF:1;

+			unsigned char IDLNF:1;

+			unsigned char OVRF:1;

+		} BIT;

+	} SPSR;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned short H;

+		} WORD;

+	} SPDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPSLN:3;

+		} BIT;

+	} SPSCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SPECM:3;

+			unsigned char :1;

+			unsigned char SPCP:3;

+		} BIT;

+	} SPSSR;

+	unsigned char SPBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char SPLW:1;

+			unsigned char SPRDTD:1;

+			unsigned char :2;

+			unsigned char SPFC:2;

+		} BIT;

+	} SPDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SCKDL:3;

+		} BIT;

+	} SPCKD;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SLNDL:3;

+		} BIT;

+	} SSLND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPNDL:3;

+		} BIT;

+	} SPND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PTE:1;

+			unsigned char SPIIE:1;

+			unsigned char SPOE:1;

+			unsigned char SPPE:1;

+		} BIT;

+	} SPCR2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD5;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD6;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD7;

+};

+

+struct st_rtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char F1HZ:1;

+			unsigned char F2HZ:1;

+			unsigned char F4HZ:1;

+			unsigned char F8HZ:1;

+			unsigned char F16HZ:1;

+			unsigned char F32HZ:1;

+			unsigned char F64HZ:1;

+		} BIT;

+	} R64CNT;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECCNT;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINCNT;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRCNT;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKCNT;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYCNT;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONCNT;

+	char           wk6[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECAR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINAR;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRAR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :4;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKAR;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :1;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYAR;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :2;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONAR;

+	char           wk12[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRAR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+		} BIT;

+	} RYRAREN;

+	char           wk13[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PES:4;

+			unsigned char RTCOS:1;

+			unsigned char PIE:1;

+			unsigned char CIE:1;

+			unsigned char AIE:1;

+		} BIT;

+	} RCR1;

+	char           wk14[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CNTMD:1;

+			unsigned char HR24:1;

+			unsigned char AADJP:1;

+			unsigned char AADJE:1;

+			unsigned char RTCOE:1;

+			unsigned char ADJ30:1;

+			unsigned char RESET:1;

+			unsigned char START:1;

+		} BIT;

+	} RCR2;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char RTCDV:2;

+			unsigned char RTCEN:1;

+		} BIT;

+	} RCR3;

+	char           wk16[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PMADJ:2;

+			unsigned char ADJ:6;

+		} BIT;

+	} RADJ;

+};

+

+struct st_rtcb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT0;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT1;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT3;

+	char           wk3[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT0AR;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT1AR;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT2AR;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT3AR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT0AER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT1AER;

+	char           wk9[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short ENB:8;

+		} BIT;

+	} BCNT2AER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT3AER;

+};

+

+struct st_s12ad {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADST:1;

+			unsigned short ADCS:2;

+			unsigned short ADIE:1;

+			unsigned short :1;

+			unsigned short ADHSC:1;

+			unsigned short TRGE:1;

+			unsigned short EXTRG:1;

+			unsigned short DBLE:1;

+			unsigned short GBADIE:1;

+			unsigned short :1;

+			unsigned short DBLANS:5;

+		} BIT;

+	} ADCSR;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSA15:1;

+			unsigned short ANSA14:1;

+			unsigned short ANSA13:1;

+			unsigned short ANSA12:1;

+			unsigned short ANSA11:1;

+			unsigned short ANSA10:1;

+			unsigned short ANSA9:1;

+			unsigned short ANSA8:1;

+			unsigned short :1;

+			unsigned short ANSA6:1;

+			unsigned short :1;

+			unsigned short ANSA4:1;

+			unsigned short ANSA3:1;

+			unsigned short ANSA2:1;

+			unsigned short ANSA1:1;

+			unsigned short ANSA0:1;

+		} BIT;

+	} ADANSA;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADS15:1;

+			unsigned short ADS14:1;

+			unsigned short ADS13:1;

+			unsigned short ADS12:1;

+			unsigned short ADS11:1;

+			unsigned short ADS10:1;

+			unsigned short ADS9:1;

+			unsigned short ADS8:1;

+			unsigned short :1;

+			unsigned short ADS6:1;

+			unsigned short :1;

+			unsigned short ADS4:1;

+			unsigned short ADS3:1;

+			unsigned short ADS2:1;

+			unsigned short ADS1:1;

+			unsigned short ADS0:1;

+		} BIT;

+	} ADADS;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char ADC:2;

+		} BIT;

+	} ADADC;

+	char           wk3[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADRFMT:1;

+			unsigned short :9;

+			unsigned short ACE:1;

+		} BIT;

+	} ADCER;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short TRSA:4;

+			unsigned short :4;

+			unsigned short TRSB:4;

+		} BIT;

+	} ADSTRGR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short OCS:1;

+			unsigned short TSS:1;

+			unsigned short :6;

+			unsigned short OCSAD:1;

+		} BIT;

+	} ADEXICR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSB15:1;

+			unsigned short ANSB14:1;

+			unsigned short ANSB13:1;

+			unsigned short ANSB12:1;

+			unsigned short ANSB11:1;

+			unsigned short ANSB10:1;

+			unsigned short ANSB9:1;

+			unsigned short ANSB8:1;

+			unsigned short :1;

+			unsigned short ANSB6:1;

+			unsigned short :1;

+			unsigned short ANSB4:1;

+			unsigned short ANSB3:1;

+			unsigned short ANSB2:1;

+			unsigned short ANSB1:1;

+			unsigned short ANSB0:1;

+		} BIT;

+	} ADANSB;

+	char           wk4[2];

+	unsigned short ADDBLDR;

+	unsigned short ADTSDR;

+	unsigned short ADOCDR;

+	char           wk5[2];

+	unsigned short ADDR0;

+	unsigned short ADDR1;

+	unsigned short ADDR2;

+	unsigned short ADDR3;

+	unsigned short ADDR4;

+	char           wk6[2];

+	unsigned short ADDR6;

+	char           wk7[2];

+	unsigned short ADDR8;

+	unsigned short ADDR9;

+	unsigned short ADDR10;

+	unsigned short ADDR11;

+	unsigned short ADDR12;

+	unsigned short ADDR13;

+	unsigned short ADDR14;

+	unsigned short ADDR15;

+	char           wk8[32];

+	unsigned char  ADSSTR0;

+	unsigned char  ADSSTRL;

+	char           wk9[14];

+	unsigned char  ADSSTRT;

+	unsigned char  ADSSTRO;

+	char           wk10[1];

+	unsigned char  ADSSTR1;

+	unsigned char  ADSSTR2;

+	unsigned char  ADSSTR3;

+	unsigned char  ADSSTR4;

+	char           wk11[1];

+	unsigned char  ADSSTR6;

+};

+

+struct st_sci1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+};

+

+struct st_sci12 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+	char           wk0[18];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ESME:1;

+		} BIT;

+	} ESMER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char BRME:1;

+			unsigned char RXDSF:1;

+			unsigned char SFSF:1;

+		} BIT;

+	} CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PIBS:3;

+			unsigned char PIBE:1;

+			unsigned char CF1DS:2;

+			unsigned char CF0RE:1;

+			unsigned char BFE:1;

+		} BIT;

+	} CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RTS:2;

+			unsigned char BCCS:2;

+			unsigned char :1;

+			unsigned char DFCS:3;

+		} BIT;

+	} CR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SDST:1;

+		} BIT;

+	} CR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SHARPS:1;

+			unsigned char :2;

+			unsigned char RXDXPS:1;

+			unsigned char TXDXPS:1;

+		} BIT;

+	} PCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDIE:1;

+			unsigned char BCDIE:1;

+			unsigned char PIBDIE:1;

+			unsigned char CF1MIE:1;

+			unsigned char CF0MIE:1;

+			unsigned char BFDIE:1;

+		} BIT;

+	} ICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDF:1;

+			unsigned char BCDF:1;

+			unsigned char PIBDF:1;

+			unsigned char CF1MF:1;

+			unsigned char CF0MF:1;

+			unsigned char BFDF:1;

+		} BIT;

+	} STR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDCL:1;

+			unsigned char BCDCL:1;

+			unsigned char PIBDCL:1;

+			unsigned char CF1MCL:1;

+			unsigned char CF0MCL:1;

+			unsigned char BFDCL:1;

+		} BIT;

+	} STCR;

+	unsigned char  CF0DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF0CE7:1;

+			unsigned char CF0CE6:1;

+			unsigned char CF0CE5:1;

+			unsigned char CF0CE4:1;

+			unsigned char CF0CE3:1;

+			unsigned char CF0CE2:1;

+			unsigned char CF0CE1:1;

+			unsigned char CF0CE0:1;

+		} BIT;

+	} CF0CR;

+	unsigned char  CF0RR;

+	unsigned char  PCF1DR;

+	unsigned char  SCF1DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF1CE7:1;

+			unsigned char CF1CE6:1;

+			unsigned char CF1CE5:1;

+			unsigned char CF1CE4:1;

+			unsigned char CF1CE3:1;

+			unsigned char CF1CE2:1;

+			unsigned char CF1CE1:1;

+			unsigned char CF1CE0:1;

+		} BIT;

+	} CF1CR;

+	unsigned char  CF1RR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TCST:1;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char TCSS:3;

+			unsigned char TWRC:1;

+			unsigned char :1;

+			unsigned char TOMS:2;

+		} BIT;

+	} TMR;

+	unsigned char  TPRE;

+	unsigned char  TCNT;

+};

+

+struct st_smci {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char GM:1;

+			unsigned char BLK:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char BCP:2;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char ERS:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+};

+

+struct st_system {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short MD:1;

+		} BIT;

+	} MDMONR;

+	char           wk0[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short RAME:1;

+		} BIT;

+	} SYSCR1;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SSBY:1;

+		} BIT;

+	} SBYCR;

+	char           wk2[2];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :3;

+			unsigned long MSTPA28:1;

+			unsigned long :8;

+			unsigned long MSTPA19:1;

+			unsigned long :1;

+			unsigned long MSTPA17:1;

+			unsigned long :1;

+			unsigned long MSTPA15:1;

+			unsigned long :5;

+			unsigned long MSTPA9:1;

+		} BIT;

+	} MSTPCRA;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :1;

+			unsigned long MSTPB30:1;

+			unsigned long :3;

+			unsigned long MSTPB26:1;

+			unsigned long :2;

+			unsigned long MSTPB23:1;

+			unsigned long :1;

+			unsigned long MSTPB21:1;

+			unsigned long :1;

+			unsigned long MSTPB19:1;

+			unsigned long :1;

+			unsigned long MSTPB17:1;

+			unsigned long :7;

+			unsigned long MSTPB9:1;

+			unsigned long :2;

+			unsigned long MSTPB6:1;

+			unsigned long :1;

+			unsigned long MSTPB4:1;

+		} BIT;

+	} MSTPCRB;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long DSLPE:1;

+			unsigned long :11;

+			unsigned long MSTPC19:1;

+			unsigned long :18;

+			unsigned long MSTPC0:1;

+		} BIT;

+	} MSTPCRC;

+	char           wk3[4];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long FCK:4;

+			unsigned long ICK:4;

+			unsigned long :12;

+			unsigned long PCKB:4;

+			unsigned long :4;

+			unsigned long PCKD:4;

+		} BIT;

+	} SCKCR;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short CKSEL:3;

+		} BIT;

+	} SCKCR3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short STC:6;

+			unsigned short :6;

+			unsigned short PLIDIV:2;

+		} BIT;

+	} PLLCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char PLLEN:1;

+		} BIT;

+	} PLLCR2;

+	char           wk5[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char MOSTP:1;

+		} BIT;

+	} MOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SOSTP:1;

+		} BIT;

+	} SOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char LCSTP:1;

+		} BIT;

+	} LOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ILCSTP:1;

+		} BIT;

+	} ILOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char HCSTP:1;

+		} BIT;

+	} HOCOCR;

+	char           wk6[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char HCOVF:1;

+			unsigned char PLOVF:1;

+			unsigned char :1;

+			unsigned char MOOVF:1;

+		} BIT;

+	} OSCOVFSR;

+	char           wk7[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKOSTP:1;

+			unsigned short CKODIV:3;

+			unsigned short :1;

+			unsigned short CKOSEL:3;

+		} BIT;

+	} CKOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OSTDE:1;

+			unsigned char :6;

+			unsigned char OSTDIE:1;

+		} BIT;

+	} OSTDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char OSTDF:1;

+		} BIT;

+	} OSTDSR;

+	char           wk8[94];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OPCMTSF:1;

+			unsigned char :1;

+			unsigned char OPCM:3;

+		} BIT;

+	} OPCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTCKEN:1;

+			unsigned char :4;

+			unsigned char RSTCKSEL:3;

+		} BIT;

+	} RSTCKCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MSTS:5;

+		} BIT;

+	} MOSCWTCR;

+	char           wk9[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SOPCMTSF:1;

+			unsigned char :3;

+			unsigned char SOPCM:1;

+		} BIT;

+	} SOPCCR;

+	char           wk10[21];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SWRF:1;

+			unsigned char :1;

+			unsigned char IWDTRF:1;

+		} BIT;

+	} RSTSR2;

+	char           wk11[1];

+	unsigned short SWRR;

+	char           wk12[28];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD1IRQSEL:1;

+			unsigned char LVD1IDTSEL:2;

+		} BIT;

+	} LVD1CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD1MON:1;

+			unsigned char LVD1DET:1;

+		} BIT;

+	} LVD1SR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD2IRQSEL:1;

+			unsigned char LVD2IDTSEL:2;

+		} BIT;

+	} LVD2CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD2MON:1;

+			unsigned char LVD2DET:1;

+		} BIT;

+	} LVD2SR;

+	char           wk13[794];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PRKEY:8;

+			unsigned short :4;

+			unsigned short PRC3:1;

+			unsigned short :1;

+			unsigned short PRC1:1;

+			unsigned short PRC0:1;

+		} BIT;

+	} PRCR;

+	char           wk14[48784];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char LVD2RF:1;

+			unsigned char LVD1RF:1;

+			unsigned char :1;

+			unsigned char PORF:1;

+		} BIT;

+	} RSTSR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CWSF:1;

+		} BIT;

+	} RSTSR1;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MOSEL:1;

+			unsigned char MODRV21:1;

+		} BIT;

+	} MOFCR;

+	char           wk16[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char LVD2E:1;

+			unsigned char LVD1E:1;

+			unsigned char :1;

+			unsigned char EXVCCINP2:1;

+		} BIT;

+	} LVCMPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2LVL:2;

+			unsigned char LVD1LVL:4;

+		} BIT;

+	} LVDLVLR;

+	char           wk17[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1RN:1;

+			unsigned char LVD1RI:1;

+			unsigned char :3;

+			unsigned char LVD1CMPE:1;

+			unsigned char :1;

+			unsigned char LVD1RIE:1;

+		} BIT;

+	} LVD1CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2RN:1;

+			unsigned char LVD2RI:1;

+			unsigned char :3;

+			unsigned char LVD2CMPE:1;

+			unsigned char :1;

+			unsigned char LVD2RIE:1;

+		} BIT;

+	} LVD2CR0;

+};

+

+struct st_usb {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short SCKE:1;

+			unsigned short :1;

+			unsigned short CNEN:1;

+			unsigned short :1;

+			unsigned short DCFM:1;

+			unsigned short DRPD:1;

+			unsigned short DPRPU:1;

+			unsigned short :3;

+			unsigned short USBE:1;

+		} BIT;

+	} SYSCFG;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVCMON:2;

+			unsigned short :7;

+			unsigned short HTACT:1;

+			unsigned short :3;

+			unsigned short IDMON:1;

+			unsigned short LNST:2;

+		} BIT;

+	} SYSSTS0;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short HNPBTOA:1;

+			unsigned short EXICEN:1;

+			unsigned short VBUSEN:1;

+			unsigned short WKUP:1;

+			unsigned short RWUPE:1;

+			unsigned short USBRST:1;

+			unsigned short RESUME:1;

+			unsigned short UACT:1;

+			unsigned short :1;

+			unsigned short RHST:3;

+		} BIT;

+	} DVSTCTR0;

+	char           wk2[10];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} CFIFO;

+	char           wk3[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D0FIFO;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D1FIFO;

+	char           wk5[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short :3;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :2;

+			unsigned short ISEL:1;

+			unsigned short :1;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} CFIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} CFIFOCTR;

+	char           wk6[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D0FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D0FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D1FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D1FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBSE:1;

+			unsigned short RSME:1;

+			unsigned short SOFE:1;

+			unsigned short DVSE:1;

+			unsigned short CTRE:1;

+			unsigned short BEMPE:1;

+			unsigned short NRDYE:1;

+			unsigned short BRDYE:1;

+		} BIT;

+	} INTENB0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCRE:1;

+			unsigned short BCHGE:1;

+			unsigned short :1;

+			unsigned short DTCHE:1;

+			unsigned short ATTCHE:1;

+			unsigned short :4;

+			unsigned short EOFERRE:1;

+			unsigned short SIGNE:1;

+			unsigned short SACKE:1;

+			unsigned short :3;

+			unsigned short PDDETINTE0:1;

+		} BIT;

+	} INTENB1;

+	char           wk7[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDYE:1;

+			unsigned short PIPE8BRDYE:1;

+			unsigned short PIPE7BRDYE:1;

+			unsigned short PIPE6BRDYE:1;

+			unsigned short PIPE5BRDYE:1;

+			unsigned short PIPE4BRDYE:1;

+			unsigned short PIPE3BRDYE:1;

+			unsigned short PIPE2BRDYE:1;

+			unsigned short PIPE1BRDYE:1;

+			unsigned short PIPE0BRDYE:1;

+		} BIT;

+	} BRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDYE:1;

+			unsigned short PIPE8NRDYE:1;

+			unsigned short PIPE7NRDYE:1;

+			unsigned short PIPE6NRDYE:1;

+			unsigned short PIPE5NRDYE:1;

+			unsigned short PIPE4NRDYE:1;

+			unsigned short PIPE3NRDYE:1;

+			unsigned short PIPE2NRDYE:1;

+			unsigned short PIPE1NRDYE:1;

+			unsigned short PIPE0NRDYE:1;

+		} BIT;

+	} NRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMPE:1;

+			unsigned short PIPE8BEMPE:1;

+			unsigned short PIPE7BEMPE:1;

+			unsigned short PIPE6BEMPE:1;

+			unsigned short PIPE5BEMPE:1;

+			unsigned short PIPE4BEMPE:1;

+			unsigned short PIPE3BEMPE:1;

+			unsigned short PIPE2BEMPE:1;

+			unsigned short PIPE1BEMPE:1;

+			unsigned short PIPE0BEMPE:1;

+		} BIT;

+	} BEMPENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :7;

+			unsigned short TRNENSEL:1;

+			unsigned short :1;

+			unsigned short BRDYM:1;

+			unsigned short :1;

+			unsigned short EDGESTS:1;

+		} BIT;

+	} SOFCFG;

+	char           wk8[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBINT:1;

+			unsigned short RESM:1;

+			unsigned short SOFR:1;

+			unsigned short DVST:1;

+			unsigned short CTRT:1;

+			unsigned short BEMP:1;

+			unsigned short NRDY:1;

+			unsigned short BRDY:1;

+			unsigned short VBSTS:1;

+			unsigned short DVSQ:3;

+			unsigned short VALID:1;

+			unsigned short CTSQ:3;

+		} BIT;

+	} INTSTS0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCR:1;

+			unsigned short BCHG:1;

+			unsigned short :1;

+			unsigned short DTCH:1;

+			unsigned short ATTCH:1;

+			unsigned short :4;

+			unsigned short EOFERR:1;

+			unsigned short SIGN:1;

+			unsigned short SACK:1;

+			unsigned short :3;

+			unsigned short PDDETINT0:1;

+		} BIT;

+	} INTSTS1;

+	char           wk9[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDY:1;

+			unsigned short PIPE8BRDY:1;

+			unsigned short PIPE7BRDY:1;

+			unsigned short PIPE6BRDY:1;

+			unsigned short PIPE5BRDY:1;

+			unsigned short PIPE4BRDY:1;

+			unsigned short PIPE3BRDY:1;

+			unsigned short PIPE2BRDY:1;

+			unsigned short PIPE1BRDY:1;

+			unsigned short PIPE0BRDY:1;

+		} BIT;

+	} BRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDY:1;

+			unsigned short PIPE8NRDY:1;

+			unsigned short PIPE7NRDY:1;

+			unsigned short PIPE6NRDY:1;

+			unsigned short PIPE5NRDY:1;

+			unsigned short PIPE4NRDY:1;

+			unsigned short PIPE3NRDY:1;

+			unsigned short PIPE2NRDY:1;

+			unsigned short PIPE1NRDY:1;

+			unsigned short PIPE0NRDY:1;

+		} BIT;

+	} NRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMP:1;

+			unsigned short PIPE8BEMP:1;

+			unsigned short PIPE7BEMP:1;

+			unsigned short PIPE6BEMP:1;

+			unsigned short PIPE5BEMP:1;

+			unsigned short PIPE4BEMP:1;

+			unsigned short PIPE3BEMP:1;

+			unsigned short PIPE2BEMP:1;

+			unsigned short PIPE1BEMP:1;

+			unsigned short PIPE0BEMP:1;

+		} BIT;

+	} BEMPSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRN:1;

+			unsigned short CRCE:1;

+			unsigned short :3;

+			unsigned short FRNM:11;

+		} BIT;

+	} FRMNUM;

+	char           wk10[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BREQUEST:8;

+			unsigned short BMREQUESTTYPE:8;

+		} BIT;

+	} USBREQ;

+	unsigned short USBVAL;

+	unsigned short USBINDX;

+	unsigned short USBLENG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+		} BIT;

+	} DCPCFG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :5;

+			unsigned short MXPS:7;

+		} BIT;

+	} DCPMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short SUREQ:1;

+			unsigned short :2;

+			unsigned short SUREQCLR:1;

+			unsigned short :2;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :2;

+			unsigned short CCPL:1;

+			unsigned short PID:2;

+		} BIT;

+	} DCPCTR;

+	char           wk11[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :12;

+			unsigned short PIPESEL:4;

+		} BIT;

+	} PIPESEL;

+	char           wk12[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TYPE:2;

+			unsigned short :3;

+			unsigned short BFRE:1;

+			unsigned short DBLB:1;

+			unsigned short :1;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+			unsigned short EPNUM:4;

+		} BIT;

+	} PIPECFG;

+	char           wk13[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :3;

+			unsigned short MXPS:9;

+		} BIT;

+	} PIPEMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :3;

+			unsigned short IFIS:1;

+			unsigned short :9;

+			unsigned short IITV:3;

+		} BIT;

+	} PIPEPERI;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE1CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE2CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE3CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE4CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE5CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE6CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE7CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE8CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE9CTR;

+	char           wk14[14];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE1TRE;

+	unsigned short PIPE1TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE2TRE;

+	unsigned short PIPE2TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE3TRE;

+	unsigned short PIPE3TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE4TRE;

+	unsigned short PIPE4TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE5TRE;

+	unsigned short PIPE5TRN;

+	char           wk15[12];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PDDETSTS0:1;

+			unsigned short CHGDETSTS0:1;

+			unsigned short BATCHGE0:1;

+			unsigned short DCPMODE0:1;

+			unsigned short VDMSRCE0:1;

+			unsigned short IDPSINKE0:1;

+			unsigned short VDPSRCE0:1;

+			unsigned short IDMSINKE0:1;

+			unsigned short IDPSRCE0:1;

+			unsigned short RPDME0:1;

+		} BIT;

+	} USBBCCTRL0;

+	char           wk16[26];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short VBRPDCUT:1;

+			unsigned short :6;

+			unsigned short VDDUSBE:1;

+		} BIT;

+	} USBMC;

+	char           wk17[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD5;

+};

+

+enum enum_ir {

+IR_BSC_BUSERR=16,IR_ICU_SWINT=27,

+IR_CMT0_CMI0,

+IR_CMT1_CMI1,

+IR_CAC_FERRF=32,IR_CAC_MENDF,IR_CAC_OVFF,

+IR_USB0_D0FIFO0=36,IR_USB0_D1FIFO0,IR_USB0_USBI0,

+IR_RSPI0_SPEI0=44,IR_RSPI0_SPRI0,IR_RSPI0_SPTI0,IR_RSPI0_SPII0,

+IR_DOC_DOPCF=57,

+IR_RTC_CUP=63,

+IR_ICU_IRQ0,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7,

+IR_LVD_LVD1=88,IR_LVD_LVD2,

+IR_USB0_USBR0,

+IR_RTC_ALM=92,IR_RTC_PRD,

+IR_S12AD_S12ADI0=102,IR_S12AD_GBADI,

+IR_ELC_ELSR18I=106,

+IR_MTU0_TGIA0=114,IR_MTU0_TGIB0,IR_MTU0_TGIC0,IR_MTU0_TGID0,IR_MTU0_TCIV0,IR_MTU0_TGIE0,IR_MTU0_TGIF0,

+IR_MTU1_TGIA1,IR_MTU1_TGIB1,IR_MTU1_TCIV1,IR_MTU1_TCIU1,

+IR_MTU2_TGIA2,IR_MTU2_TGIB2,IR_MTU2_TCIV2,IR_MTU2_TCIU2,

+IR_MTU3_TGIA3,IR_MTU3_TGIB3,IR_MTU3_TGIC3,IR_MTU3_TGID3,IR_MTU3_TCIV3,

+IR_MTU4_TGIA4,IR_MTU4_TGIB4,IR_MTU4_TGIC4,IR_MTU4_TGID4,IR_MTU4_TCIV4,

+IR_MTU5_TGIU5,IR_MTU5_TGIV5,IR_MTU5_TGIW5,

+IR_POE_OEI1=170,IR_POE_OEI2,

+IR_SCI1_ERI1=218,IR_SCI1_RXI1,IR_SCI1_TXI1,IR_SCI1_TEI1,

+IR_SCI5_ERI5,IR_SCI5_RXI5,IR_SCI5_TXI5,IR_SCI5_TEI5,

+IR_SCI12_ERI12=238,IR_SCI12_RXI12,IR_SCI12_TXI12,IR_SCI12_TEI12,IR_SCI12_SCIX0,IR_SCI12_SCIX1,IR_SCI12_SCIX2,IR_SCI12_SCIX3,

+IR_RIIC0_EEI0,IR_RIIC0_RXI0,IR_RIIC0_TXI0,IR_RIIC0_TEI0

+};

+

+enum enum_dtce {

+DTCE_ICU_SWINT=27,

+DTCE_CMT0_CMI0,

+DTCE_CMT1_CMI1,

+DTCE_USB0_D0FIFO0=36,DTCE_USB0_D1FIFO0,

+DTCE_RSPI0_SPRI0=45,DTCE_RSPI0_SPTI0,

+DTCE_ICU_IRQ0=64,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7,

+DTCE_S12AD_S12ADI0=102,DTCE_S12AD_GBADI,

+DTCE_ELC_ELSR18I=106,

+DTCE_MTU0_TGIA0=114,DTCE_MTU0_TGIB0,DTCE_MTU0_TGIC0,DTCE_MTU0_TGID0,

+DTCE_MTU1_TGIA1=121,DTCE_MTU1_TGIB1,

+DTCE_MTU2_TGIA2=125,DTCE_MTU2_TGIB2,

+DTCE_MTU3_TGIA3=129,DTCE_MTU3_TGIB3,DTCE_MTU3_TGIC3,DTCE_MTU3_TGID3,

+DTCE_MTU4_TGIA4=134,DTCE_MTU4_TGIB4,DTCE_MTU4_TGIC4,DTCE_MTU4_TGID4,DTCE_MTU4_TCIV4,

+DTCE_MTU5_TGIU5,DTCE_MTU5_TGIV5,DTCE_MTU5_TGIW5,

+DTCE_SCI1_RXI1=219,DTCE_SCI1_TXI1,

+DTCE_SCI5_RXI5=223,DTCE_SCI5_TXI5,

+DTCE_SCI12_RXI12=239,DTCE_SCI12_TXI12,

+DTCE_RIIC0_RXI0=247,DTCE_RIIC0_TXI0

+};

+

+enum enum_ier {

+IER_BSC_BUSERR=0x02,

+IER_ICU_SWINT=0x03,

+IER_CMT0_CMI0=0x03,

+IER_CMT1_CMI1=0x03,

+IER_CAC_FERRF=0x04,IER_CAC_MENDF=0x04,IER_CAC_OVFF=0x04,

+IER_USB0_D0FIFO0=0x04,IER_USB0_D1FIFO0=0x04,IER_USB0_USBI0=0x04,

+IER_RSPI0_SPEI0=0x05,IER_RSPI0_SPRI0=0x05,IER_RSPI0_SPTI0=0x05,IER_RSPI0_SPII0=0x05,

+IER_DOC_DOPCF=0x07,

+IER_RTC_CUP=0x07,

+IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08,

+IER_LVD_LVD1=0x0B,IER_LVD_LVD2=0x0B,

+IER_USB0_USBR0=0x0B,

+IER_RTC_ALM=0x0B,IER_RTC_PRD=0x0B,

+IER_S12AD_S12ADI0=0x0C,IER_S12AD_GBADI=0x0C,

+IER_ELC_ELSR18I=0x0D,

+IER_MTU0_TGIA0=0x0E,IER_MTU0_TGIB0=0x0E,IER_MTU0_TGIC0=0x0E,IER_MTU0_TGID0=0x0E,IER_MTU0_TCIV0=0x0E,IER_MTU0_TGIE0=0x0E,IER_MTU0_TGIF0=0x0F,

+IER_MTU1_TGIA1=0x0F,IER_MTU1_TGIB1=0x0F,IER_MTU1_TCIV1=0x0F,IER_MTU1_TCIU1=0x0F,

+IER_MTU2_TGIA2=0x0F,IER_MTU2_TGIB2=0x0F,IER_MTU2_TCIV2=0x0F,IER_MTU2_TCIU2=0x10,

+IER_MTU3_TGIA3=0x10,IER_MTU3_TGIB3=0x10,IER_MTU3_TGIC3=0x10,IER_MTU3_TGID3=0x10,IER_MTU3_TCIV3=0x10,

+IER_MTU4_TGIA4=0x10,IER_MTU4_TGIB4=0x10,IER_MTU4_TGIC4=0x11,IER_MTU4_TGID4=0x11,IER_MTU4_TCIV4=0x11,

+IER_MTU5_TGIU5=0x11,IER_MTU5_TGIV5=0x11,IER_MTU5_TGIW5=0x11,

+IER_POE_OEI1=0x15,IER_POE_OEI2=0x15,

+IER_SCI1_ERI1=0x1B,IER_SCI1_RXI1=0x1B,IER_SCI1_TXI1=0x1B,IER_SCI1_TEI1=0x1B,

+IER_SCI5_ERI5=0x1B,IER_SCI5_RXI5=0x1B,IER_SCI5_TXI5=0x1C,IER_SCI5_TEI5=0x1C,

+IER_SCI12_ERI12=0x1D,IER_SCI12_RXI12=0x1D,IER_SCI12_TXI12=0x1E,IER_SCI12_TEI12=0x1E,IER_SCI12_SCIX0=0x1E,IER_SCI12_SCIX1=0x1E,IER_SCI12_SCIX2=0x1E,IER_SCI12_SCIX3=0x1E,

+IER_RIIC0_EEI0=0x1E,IER_RIIC0_RXI0=0x1E,IER_RIIC0_TXI0=0x1F,IER_RIIC0_TEI0=0x1F

+};

+

+enum enum_ipr {

+IPR_BSC_BUSERR=0,

+IPR_ICU_SWINT=3,

+IPR_CMT0_CMI0=4,

+IPR_CMT1_CMI1=5,

+IPR_CAC_FERRF=32,IPR_CAC_MENDF=33,IPR_CAC_OVFF=34,

+IPR_USB0_D0FIFO0=36,IPR_USB0_D1FIFO0=37,IPR_USB0_USBI0=38,

+IPR_RSPI0_SPEI0=44,IPR_RSPI0_SPRI0=44,IPR_RSPI0_SPTI0=44,IPR_RSPI0_SPII0=44,

+IPR_DOC_DOPCF=57,

+IPR_RTC_CUP=63,

+IPR_ICU_IRQ0=64,IPR_ICU_IRQ1=65,IPR_ICU_IRQ2=66,IPR_ICU_IRQ3=67,IPR_ICU_IRQ4=68,IPR_ICU_IRQ5=69,IPR_ICU_IRQ6=70,IPR_ICU_IRQ7=71,

+IPR_LVD_LVD1=88,IPR_LVD_LVD2=89,

+IPR_USB0_USBR0=90,

+IPR_RTC_ALM=92,IPR_RTC_PRD=93,

+IPR_S12AD_S12ADI0=102,IPR_S12AD_GBADI=103,

+IPR_ELC_ELSR18I=106,

+IPR_MTU0_TGIA0=114,IPR_MTU0_TGIB0=114,IPR_MTU0_TGIC0=114,IPR_MTU0_TGID0=114,IPR_MTU0_TCIV0=118,IPR_MTU0_TGIE0=118,IPR_MTU0_TGIF0=118,

+IPR_MTU1_TGIA1=121,IPR_MTU1_TGIB1=121,IPR_MTU1_TCIV1=123,IPR_MTU1_TCIU1=123,

+IPR_MTU2_TGIA2=125,IPR_MTU2_TGIB2=125,IPR_MTU2_TCIV2=127,IPR_MTU2_TCIU2=127,

+IPR_MTU3_TGIA3=129,IPR_MTU3_TGIB3=129,IPR_MTU3_TGIC3=129,IPR_MTU3_TGID3=129,IPR_MTU3_TCIV3=133,

+IPR_MTU4_TGIA4=134,IPR_MTU4_TGIB4=134,IPR_MTU4_TGIC4=134,IPR_MTU4_TGID4=134,IPR_MTU4_TCIV4=138,

+IPR_MTU5_TGIU5=139,IPR_MTU5_TGIV5=139,IPR_MTU5_TGIW5=139,

+IPR_POE_OEI1=170,IPR_POE_OEI2=171,

+IPR_SCI1_ERI1=218,IPR_SCI1_RXI1=218,IPR_SCI1_TXI1=218,IPR_SCI1_TEI1=218,

+IPR_SCI5_ERI5=222,IPR_SCI5_RXI5=222,IPR_SCI5_TXI5=222,IPR_SCI5_TEI5=222,

+IPR_SCI12_ERI12=238,IPR_SCI12_RXI12=238,IPR_SCI12_TXI12=238,IPR_SCI12_TEI12=238,IPR_SCI12_SCIX0=242,IPR_SCI12_SCIX1=243,IPR_SCI12_SCIX2=244,IPR_SCI12_SCIX3=245,

+IPR_RIIC0_EEI0=246,IPR_RIIC0_RXI0=247,IPR_RIIC0_TXI0=248,IPR_RIIC0_TEI0=249,

+IPR_BSC_=0,

+IPR_CMT0_=4,

+IPR_CMT1_=5,

+IPR_RSPI0_=44,

+IPR_DOC_=57,

+IPR_ELC_=106,

+IPR_MTU1_TGI=121,

+IPR_MTU1_TCI=123,

+IPR_MTU2_TGI=125,

+IPR_MTU2_TCI=127,

+IPR_MTU3_TGI=129,

+IPR_MTU4_TGI=134,

+IPR_MTU5_=139,

+IPR_MTU5_TGI=139,

+IPR_SCI1_=218,

+IPR_SCI5_=222

+};

+

+#define	IEN_BSC_BUSERR		IEN0

+#define	IEN_ICU_SWINT		IEN3

+#define	IEN_CMT0_CMI0		IEN4

+#define	IEN_CMT1_CMI1		IEN5

+#define	IEN_CAC_FERRF		IEN0

+#define	IEN_CAC_MENDF		IEN1

+#define	IEN_CAC_OVFF		IEN2

+#define	IEN_USB0_D0FIFO0	IEN4

+#define	IEN_USB0_D1FIFO0	IEN5

+#define	IEN_USB0_USBI0		IEN6

+#define	IEN_RSPI0_SPEI0		IEN4

+#define	IEN_RSPI0_SPRI0		IEN5

+#define	IEN_RSPI0_SPTI0		IEN6

+#define	IEN_RSPI0_SPII0		IEN7

+#define	IEN_DOC_DOPCF		IEN1

+#define	IEN_RTC_CUP			IEN7

+#define	IEN_ICU_IRQ0		IEN0

+#define	IEN_ICU_IRQ1		IEN1

+#define	IEN_ICU_IRQ2		IEN2

+#define	IEN_ICU_IRQ3		IEN3

+#define	IEN_ICU_IRQ4		IEN4

+#define	IEN_ICU_IRQ5		IEN5

+#define	IEN_ICU_IRQ6		IEN6

+#define	IEN_ICU_IRQ7		IEN7

+#define	IEN_LVD_LVD1		IEN0

+#define	IEN_LVD_LVD2		IEN1

+#define	IEN_USB0_USBR0		IEN2

+#define	IEN_RTC_ALM			IEN4

+#define	IEN_RTC_PRD			IEN5

+#define	IEN_S12AD_S12ADI0	IEN6

+#define	IEN_S12AD_GBADI		IEN7

+#define	IEN_ELC_ELSR18I		IEN2

+#define	IEN_MTU0_TGIA0		IEN2

+#define	IEN_MTU0_TGIB0		IEN3

+#define	IEN_MTU0_TGIC0		IEN4

+#define	IEN_MTU0_TGID0		IEN5

+#define	IEN_MTU0_TCIV0		IEN6

+#define	IEN_MTU0_TGIE0		IEN7

+#define	IEN_MTU0_TGIF0		IEN0

+#define	IEN_MTU1_TGIA1		IEN1

+#define	IEN_MTU1_TGIB1		IEN2

+#define	IEN_MTU1_TCIV1		IEN3

+#define	IEN_MTU1_TCIU1		IEN4

+#define	IEN_MTU2_TGIA2		IEN5

+#define	IEN_MTU2_TGIB2		IEN6

+#define	IEN_MTU2_TCIV2		IEN7

+#define	IEN_MTU2_TCIU2		IEN0

+#define	IEN_MTU3_TGIA3		IEN1

+#define	IEN_MTU3_TGIB3		IEN2

+#define	IEN_MTU3_TGIC3		IEN3

+#define	IEN_MTU3_TGID3		IEN4

+#define	IEN_MTU3_TCIV3		IEN5

+#define	IEN_MTU4_TGIA4		IEN6

+#define	IEN_MTU4_TGIB4		IEN7

+#define	IEN_MTU4_TGIC4		IEN0

+#define	IEN_MTU4_TGID4		IEN1

+#define	IEN_MTU4_TCIV4		IEN2

+#define	IEN_MTU5_TGIU5		IEN3

+#define	IEN_MTU5_TGIV5		IEN4

+#define	IEN_MTU5_TGIW5		IEN5

+#define	IEN_POE_OEI1		IEN2

+#define	IEN_POE_OEI2		IEN3

+#define	IEN_SCI1_ERI1		IEN2

+#define	IEN_SCI1_RXI1		IEN3

+#define	IEN_SCI1_TXI1		IEN4

+#define	IEN_SCI1_TEI1		IEN5

+#define	IEN_SCI5_ERI5		IEN6

+#define	IEN_SCI5_RXI5		IEN7

+#define	IEN_SCI5_TXI5		IEN0

+#define	IEN_SCI5_TEI5		IEN1

+#define	IEN_SCI12_ERI12		IEN6

+#define	IEN_SCI12_RXI12		IEN7

+#define	IEN_SCI12_TXI12		IEN0

+#define	IEN_SCI12_TEI12		IEN1

+#define	IEN_SCI12_SCIX0		IEN2

+#define	IEN_SCI12_SCIX1		IEN3

+#define	IEN_SCI12_SCIX2		IEN4

+#define	IEN_SCI12_SCIX3		IEN5

+#define	IEN_RIIC0_EEI0		IEN6

+#define	IEN_RIIC0_RXI0		IEN7

+#define	IEN_RIIC0_TXI0		IEN0

+#define	IEN_RIIC0_TEI0		IEN1

+

+#define	VECT_BSC_BUSERR		16

+#define	VECT_ICU_SWINT		27

+#define	VECT_CMT0_CMI0		28

+#define	VECT_CMT1_CMI1		29

+#define	VECT_CAC_FERRF		32

+#define	VECT_CAC_MENDF		33

+#define	VECT_CAC_OVFF		34

+#define	VECT_USB0_D0FIFO0	36

+#define	VECT_USB0_D1FIFO0	37

+#define	VECT_USB0_USBI0		38

+#define	VECT_RSPI0_SPEI0	44

+#define	VECT_RSPI0_SPRI0	45

+#define	VECT_RSPI0_SPTI0	46

+#define	VECT_RSPI0_SPII0	47

+#define	VECT_DOC_DOPCF		57

+#define	VECT_RTC_CUP		63

+#define	VECT_ICU_IRQ0		64

+#define	VECT_ICU_IRQ1		65

+#define	VECT_ICU_IRQ2		66

+#define	VECT_ICU_IRQ3		67

+#define	VECT_ICU_IRQ4		68

+#define	VECT_ICU_IRQ5		69

+#define	VECT_ICU_IRQ6		70

+#define	VECT_ICU_IRQ7		71

+#define	VECT_LVD_LVD1		88

+#define	VECT_LVD_LVD2		89

+#define	VECT_USB0_USBR0		90

+#define	VECT_RTC_ALM		92

+#define	VECT_RTC_PRD		93

+#define	VECT_S12AD_S12ADI0	102

+#define	VECT_S12AD_GBADI	103

+#define	VECT_ELC_ELSR18I	106

+#define	VECT_MTU0_TGIA0		114

+#define	VECT_MTU0_TGIB0		115

+#define	VECT_MTU0_TGIC0		116

+#define	VECT_MTU0_TGID0		117

+#define	VECT_MTU0_TCIV0		118

+#define	VECT_MTU0_TGIE0		119

+#define	VECT_MTU0_TGIF0		120

+#define	VECT_MTU1_TGIA1		121

+#define	VECT_MTU1_TGIB1		122

+#define	VECT_MTU1_TCIV1		123

+#define	VECT_MTU1_TCIU1		124

+#define	VECT_MTU2_TGIA2		125

+#define	VECT_MTU2_TGIB2		126

+#define	VECT_MTU2_TCIV2		127

+#define	VECT_MTU2_TCIU2		128

+#define	VECT_MTU3_TGIA3		129

+#define	VECT_MTU3_TGIB3		130

+#define	VECT_MTU3_TGIC3		131

+#define	VECT_MTU3_TGID3		132

+#define	VECT_MTU3_TCIV3		133

+#define	VECT_MTU4_TGIA4		134

+#define	VECT_MTU4_TGIB4		135

+#define	VECT_MTU4_TGIC4		136

+#define	VECT_MTU4_TGID4		137

+#define	VECT_MTU4_TCIV4		138

+#define	VECT_MTU5_TGIU5		139

+#define	VECT_MTU5_TGIV5		140

+#define	VECT_MTU5_TGIW5		141

+#define	VECT_POE_OEI1		170

+#define	VECT_POE_OEI2		171

+#define	VECT_SCI1_ERI1		218

+#define	VECT_SCI1_RXI1		219

+#define	VECT_SCI1_TXI1		220

+#define	VECT_SCI1_TEI1		221

+#define	VECT_SCI5_ERI5		222

+#define	VECT_SCI5_RXI5		223

+#define	VECT_SCI5_TXI5		224

+#define	VECT_SCI5_TEI5		225

+#define	VECT_SCI12_ERI12	238

+#define	VECT_SCI12_RXI12	239

+#define	VECT_SCI12_TXI12	240

+#define	VECT_SCI12_TEI12	241

+#define	VECT_SCI12_SCIX0	242

+#define	VECT_SCI12_SCIX1	243

+#define	VECT_SCI12_SCIX2	244

+#define	VECT_SCI12_SCIX3	245

+#define	VECT_RIIC0_EEI0		246

+#define	VECT_RIIC0_RXI0		247

+#define	VECT_RIIC0_TXI0		248

+#define	VECT_RIIC0_TEI0		249

+

+#define	MSTP_DTC	SYSTEM.MSTPCRA.BIT.MSTPA28

+#define	MSTP_DA		SYSTEM.MSTPCRA.BIT.MSTPA19

+#define	MSTP_S12AD	SYSTEM.MSTPCRA.BIT.MSTPA17

+#define	MSTP_CMT	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT0	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT1	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_MTU	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU0	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU1	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU2	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU3	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU4	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU5	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_SCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SMCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_SMCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_CRC	SYSTEM.MSTPCRB.BIT.MSTPB23

+#define	MSTP_RIIC0	SYSTEM.MSTPCRB.BIT.MSTPB21

+#define	MSTP_USB0	SYSTEM.MSTPCRB.BIT.MSTPB19

+#define	MSTP_RSPI0	SYSTEM.MSTPCRB.BIT.MSTPB17

+#define	MSTP_ELC	SYSTEM.MSTPCRB.BIT.MSTPB9

+#define	MSTP_DOC	SYSTEM.MSTPCRB.BIT.MSTPB6

+#define	MSTP_SCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_SMCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_CAC	SYSTEM.MSTPCRC.BIT.MSTPC19

+#define	MSTP_RAM0	SYSTEM.MSTPCRC.BIT.MSTPC0

+

+#define	__IR( x )		ICU.IR[ IR ## x ].BIT.IR

+#define	 _IR( x )		__IR( x )

+#define	  IR( x , y )	_IR( _ ## x ## _ ## y )

+#define	__DTCE( x )		ICU.DTCER[ DTCE ## x ].BIT.DTCE

+#define	 _DTCE( x )		__DTCE( x )

+#define	  DTCE( x , y )	_DTCE( _ ## x ## _ ## y )

+#define	__IEN( x )		ICU.IER[ IER ## x ].BIT.IEN ## x

+#define	 _IEN( x )		__IEN( x )

+#define	  IEN( x , y )	_IEN( _ ## x ## _ ## y )

+#define	__IPR( x )		ICU.IPR[ IPR ## x ].BIT.IPR

+#define	 _IPR( x )		__IPR( x )

+#define	  IPR( x , y )	_IPR( _ ## x ## _ ## y )

+#define	__VECT( x )		VECT ## x

+#define	 _VECT( x )		__VECT( x )

+#define	  VECT( x , y )	_VECT( _ ## x ## _ ## y )

+#define	__MSTP( x )		MSTP ## x

+#define	 _MSTP( x )		__MSTP( x )

+#define	  MSTP( x )		_MSTP( _ ## x )

+

+#define	BSC		(*(volatile struct st_bsc     *)0x81300)

+#define	CAC		(*(volatile struct st_cac     *)0x8B000)

+#define	CMT		(*(volatile struct st_cmt     *)0x88000)

+#define	CMT0	(*(volatile struct st_cmt0    *)0x88002)

+#define	CMT1	(*(volatile struct st_cmt0    *)0x88008)

+#define	CRC		(*(volatile struct st_crc     *)0x88280)

+#define	DA		(*(volatile struct st_da      *)0x880C0)

+#define	DOC		(*(volatile struct st_doc     *)0x8B080)

+#define	DTC		(*(volatile struct st_dtc     *)0x82400)

+#define	ELC		(*(volatile struct st_elc     *)0x8B100)

+#define	FLASH	(*(volatile struct st_flash   *)0x7FC090)

+#define	ICU		(*(volatile struct st_icu     *)0x87000)

+#define	IWDT	(*(volatile struct st_iwdt    *)0x88030)

+#define	MPC		(*(volatile struct st_mpc     *)0x8C11F)

+#define	MTU		(*(volatile struct st_mtu     *)0x8860A)

+#define	MTU0	(*(volatile struct st_mtu0    *)0x88690)

+#define	MTU1	(*(volatile struct st_mtu1    *)0x88690)

+#define	MTU2	(*(volatile struct st_mtu2    *)0x88692)

+#define	MTU3	(*(volatile struct st_mtu3    *)0x88600)

+#define	MTU4	(*(volatile struct st_mtu4    *)0x88600)

+#define	MTU5	(*(volatile struct st_mtu5    *)0x88694)

+#define	POE		(*(volatile struct st_poe     *)0x88900)

+#define	PORT	(*(volatile struct st_port    *)0x8C120)

+#define	PORT0	(*(volatile struct st_port0   *)0x8C000)

+#define	PORT1	(*(volatile struct st_port1   *)0x8C001)

+#define	PORT2	(*(volatile struct st_port2   *)0x8C002)

+#define	PORT3	(*(volatile struct st_port3   *)0x8C003)

+#define	PORT4	(*(volatile struct st_port4   *)0x8C004)

+#define	PORT5	(*(volatile struct st_port5   *)0x8C005)

+#define	PORTA	(*(volatile struct st_porta   *)0x8C00A)

+#define	PORTB	(*(volatile struct st_portb   *)0x8C00B)

+#define	PORTC	(*(volatile struct st_portc   *)0x8C00C)

+#define	PORTE	(*(volatile struct st_porte   *)0x8C00E)

+#define	RIIC0	(*(volatile struct st_riic    *)0x88300)

+#define	RSPI0	(*(volatile struct st_rspi    *)0x88380)

+#define	RTC		(*(volatile struct st_rtc     *)0x8C400)

+#define	RTCB	(*(volatile struct st_rtcb    *)0x8C402)

+#define	S12AD	(*(volatile struct st_s12ad   *)0x89000)

+#define	SCI1	(*(volatile struct st_sci1    *)0x8A020)

+#define	SCI5	(*(volatile struct st_sci1    *)0x8A0A0)

+#define	SCI12	(*(volatile struct st_sci12   *)0x8B300)

+#define	SMCI1	(*(volatile struct st_smci    *)0x8A020)

+#define	SMCI5	(*(volatile struct st_smci    *)0x8A0A0)

+#define	SMCI12	(*(volatile struct st_smci    *)0x8B300)

+#define	SYSTEM	(*(volatile struct st_system  *)0x80000)

+#define	USB0	(*(volatile struct st_usb     *)0xA0000)

+#endif

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
new file mode 100644
index 0000000..6ed672b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
@@ -0,0 +1,112 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : mcu_info.h

+* Device(s)    : RX111

+* Description  : Information about the MCU on this board (RSKRX111).

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef _MCU_INFO

+#define _MCU_INFO

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Gets MCU configuration information. */

+#include "r_bsp_config.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* MCU Series. */

+#if   MCU_PART_SERIES == 0x0

+    #define MCU_SERIES_RX100    (1)

+#else

+    #error "ERROR - MCU_PART_SERIES - Unknown MCU Series chosen in r_bsp_config.h"

+#endif

+

+/* MCU Group name. */

+#if   MCU_PART_GROUP == 0x1

+    #define MCU_RX111           (1)

+    #define MCU_RX11x           (1)

+#else

+    #error "ERROR - MCU_PART_GROUP - Unknown MCU Group chosen in r_bsp_config.h"

+#endif

+

+/* Package. */

+#if   MCU_PART_PACKAGE == 0x0

+    #define PACKAGE_LFQFP64     (1)

+#elif MCU_PART_PACKAGE == 0x1

+    #define PACKAGE_LQFP64      (1)

+#elif MCU_PART_PACKAGE == 0x2

+    #define PACKAGE_TFLGA64     (1)

+#elif MCU_PART_PACKAGE == 0x3

+    #define PACKAGE_LFQFP48     (1)

+#elif MCU_PART_PACKAGE == 0x4

+    #define PACKAGE_VQFN48      (1)

+#elif MCU_PART_PACKAGE == 0x5

+    #define PACKAGE_HWQFN36     (1)

+#elif MCU_PART_PACKAGE == 0x6

+    #define PACKAGE_WFLGA36     (1)

+#elif MCU_PART_PACKAGE == 0x7

+    #define PACKAGE_SSOP36      (1)

+#else

+    #error "ERROR - MCU_PART_PACKAGE - Unknown package chosen in r_bsp_config.h"

+#endif

+

+/* Memory size of your MCU. */

+#if   MCU_PART_MEMORY_SIZE == 0x0			// "J" parts

+    #define ROM_SIZE_BYTES      (16384)

+    #define RAM_SIZE_BYTES      (8192)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x1

+    #define ROM_SIZE_BYTES      (32768)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x3

+    #define ROM_SIZE_BYTES      (65536)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x4

+    #define ROM_SIZE_BYTES      (98304)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x5

+    #define ROM_SIZE_BYTES      (131072)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#else

+    #error "ERROR - MCU_PART_MEMORY_SIZE - Unknown memory size chosen in r_bsp_config.h"

+#endif

+

+/* System clock speed in Hz. */

+#define ICLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)

+/* Peripheral Module Clock B speed in Hz. */

+#define PCLKB_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV)

+/* Peripheral Module Clock D speed in Hz. */

+#define PCLKD_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV)

+/* FlashIF clock speed in Hz. */

+#define FCLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)

+

+#endif /* _MCU_INFO */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/typedefine.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/typedefine.h
new file mode 100644
index 0000000..a52e286
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/mcu/rx111/typedefine.h
@@ -0,0 +1,25 @@
+/***********************************************************************/
+/*  													               */
+/*      PROJECT NAME :  RTOSDemo_GCC                                   */
+/*      FILE         :  typedefine.h                                   */
+/*      DESCRIPTION  :  Aliases of Integer Type                        */
+/*      CPU SERIES   :  RX100                                          */
+/*      CPU TYPE     :  RX111                                          */
+/*  													               */
+/*      This file is generated by e2studio.                        */
+/*  													               */
+/***********************************************************************/                                                                           

+                                                                           

+                                                                           

+                                                                           

+                                                                          

+typedef signed char _SBYTE;

+typedef unsigned char _UBYTE;

+typedef signed short _SWORD;

+typedef unsigned short _UWORD;

+typedef signed int _SINT;

+typedef unsigned int _UINT;

+typedef signed long _SDWORD;

+typedef unsigned long _UDWORD;

+typedef signed long long _SQWORD;

+typedef unsigned long long _UQWORD;

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/platform.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/platform.h
new file mode 100644
index 0000000..3427aab
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/platform.h
@@ -0,0 +1,88 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : platform.h

+* Description  : The user chooses which MCU and board they are developing for in this file. If the board you are using

+*                is not listed below, please add your own or use the default 'User Board'.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 30.11.2011 1.00     First Release

+*         : 13.01.2012 1.10     Moved from having platform defined using macro defintion, to having platform defined

+*                               by choosing an include path. This makes this file simpler and cleans up the issue

+*                               where HEW shows all header files for all platforms under 'Dependencies'.

+*         : 14.02.2012 1.20     Added RX210 BSP.

+*         : 18.04.2012 1.30     Updated to v0.70 of FIT S/W Spec and v0.20 of FIT r_bsp Spec. This includes adding

+*                               locking.c and locking.h in board folders. Also, r_bsp can now be configured through

+*                               r_bsp_config.h.

+*         : 26.06.2012 1.40     Added new options such as exception callbacks and the ability to choose your MCU using

+*                               its part number in r_bsp_config.h. Moved mcu_info.h to the 'mcu' folder. Made an effort

+*                               to remove any extra files that the user would need to touch. Removed the flash_options.c

+*                               file and put its contents in vecttbl.c.

+*         : 17.07.2012 1.50     Fixed bug with exception callback function names. Added BCLK_OUTPUT and SDCLK_OUTPUT 

+*                               macro options in r_bsp_config.h. Added some extra code to handle exceptions in

+*                               vecttbl.c. Added vecttbl.h so that user has prototypes for exception callbacks.

+*         : 08.11.2012 1.60		Added RX111 BSP

+***********************************************************************************************************************/

+

+#ifndef _PLATFORM_H_

+#define _PLATFORM_H_

+

+/***********************************************************************************************************************

+DEFINE YOUR SYSTEM - UNCOMMENT THE INCLUDE PATH FOR THE PLATFORM YOU ARE USING.

+***********************************************************************************************************************/

+/* RSKRX610 */

+//#include "./board/rskrx610/r_bsp.h"

+

+/* RSKRX62N */

+//#include "./board/rskrx62n/r_bsp.h"

+

+/* RSKRX62T */

+//#include "./board/rskrx62t/r_bsp.h"

+

+/* RDKRX62N */

+//#include "./board/rdkrx62n/r_bsp.h"

+

+/* RSKRX630 */

+//#include "./board/rskrx630/r_bsp.h"

+

+/* RSKRX63N */

+//#include "./board/rskrx63n/r_bsp.h"

+

+/* RDKRX63N */

+//#include "./board/rdkrx63n/r_bsp.h"

+

+/* RSKRX210 */

+//#include "./board/rskrx210/r_bsp.h"

+

+/* RSKRX111 */

+#include "./board/rskrx111/r_bsp.h"

+

+/* User Board - Define your own board here. */

+//#include "./board/user/r_bsp.h"

+

+/***********************************************************************************************************************

+MAKE SURE AT LEAST ONE PLATFORM WAS DEFINED - DO NOT EDIT BELOW THIS POINT

+***********************************************************************************************************************/

+#ifndef PLATFORM_DEFINED

+#error  "Error - No platform defined in platform.h!"

+#endif

+

+#endif /* _PLATFORM_H_ */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/r_bsp_config.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/r_bsp_config.h
new file mode 100644
index 0000000..537479e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/r_bsp_config.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such

+   as package and memory size.

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product.

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity.

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name.

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name.

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type.

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x001)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used.

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/

+#define CLOCK_SOURCE            (4)	// GI org 4

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV).

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)		// GI org 2

+/* PLL Frequency Multiplication Factor Select (STC).

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)		// GI org 6

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)		// NOTE: ICLK CANNOT BE SLOWER THAN PCLK!

+/* Peripheral Module Clock B Divider (PCKB).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)		// GI org 2

+/* Peripheral Module Clock D Divider (PCKD).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a

+   function to be called when the event occurs. For example, if the user wanted the function

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings.

+   OFS0 - Option Function Select Register 0

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (0)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/readme.txt b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/readme.txt
new file mode 100644
index 0000000..c7ee2b7
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_bsp/readme.txt
@@ -0,0 +1,100 @@
+r_bsp Package

+=============

+

+Document Number

+---------------

+N/A

+

+Version

+-------

+v1.60

+

+Overview

+--------

+The r_bsp package provides a foundation for code to be built on top of. It provides startup code, iodefines, and MCU

+information for different boards. There are 2 folders that make up the r_bsp package. The 'mcu' folder has iodefine

+files and a file named 'mcu_info.h' for each MCU group. The 'mcu_info.h' file has information about the MCU on the board

+and is configured based on the information given in r_bsp_config.h. The information in 'mcu_info.h' is used to help 

+configure Renesas middleware that uses the r_bsp package. The 'board' folder has a folder with startup code for each 

+supported board.  Which MCU and board is chosen is decided by the settings in 'platform.h'. The user can choose which 

+board they are using by uncommenting the include path that applies to their board. For example, if you are using the 

+RSK+RX62N then you would uncomment the #include "./board/rskrx62n/r_bsp.h" include path. Users are encouraged to add 

+their own boards to the 'board' directory. BSPs are configured by using the r_bsp_config.h file. Each board will have a 

+reference configuration file named r_bsp_config_reference.h. The user should copy this file to their project, rename it 

+to r_bsp_config.h, and use the options inside the file to configure the BSP for their project.

+

+Features

+--------

+* Provides foundation to build code on top of.

+* Provides MCU startup code.

+* Provides SFR access through iodefine.h

+* Stores details of MCU in 'mcu_info.h' to help configure Renesas middleware.

+* Easily configure BSP through r_bsp_config.h.

+* Choose MCU easily by inputting part number details in r_bsp_config.h.

+* Provides callbacks for MCU exceptions and the bus error interrupt.

+ 

+Limitations

+-----------

+N/A

+

+Peripherals Used Directly

+-------------------------

+N/A

+

+Required Packages

+-----------------

+* r_glyph [required if you want to use LCD for RDK boards]

+* r_rspi_rx [required if you want to use LCD for RDK boards]

+

+How to add to your project

+--------------------------

+* Copy the r_bsp folder to your project.

+* Add an include path to the 'r_bsp' directory. 

+* Add all of the source files for your board from the 'r_bsp\board\--YOUR_BOARD--' directory to your project. 

+* Uncomment the include path for your board in 'platform.h' which is located in the 'r_bsp' directory.

+* Copy the file r_bsp_config_reference.h from the 'r_bsp\board\--YOUR_BOARD--' directory and copy it to your project's

+  source code directory. Rename the file r_bsp_config.h.

+* Open r_bsp_config.h and use the macros to configure the BSP for your project.

+

+File Structure

+--------------

+r_bsp

+|   platform.h (choose which board is being used)

+|   readme.txt

+|

++---board (contains supported boards)

+|   +---rdkrx62n (contains BSP source and header files)

+|   |

+|   +---rdkrx63n

+|   |

+|	+---rskrx111

+|	|

+|   +---rskrx210

+|   |

+|   +---rskrx610

+|   |

+|   +---rskrx62n

+|   |

+|   +---rskrx62t

+|   |

+|   +---rskrx630

+|   |

+|   +---rskrx63n

+|   |

+|   \---user

+|

+\---mcu

+	+---rx111 (contains common files to this MCU group, e.g. iodefine.h)

+	|

+    +---rx210 

+    |

+    +---rx610

+    |

+    +---rx62n

+    |

+    +---rx62t

+    |

+    +---rx630

+    |

+    \---rx63n

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/doc/r_switches.docx b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/doc/r_switches.docx
new file mode 100644
index 0000000..6fe7e86
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/doc/r_switches.docx
Binary files differ
diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_config.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_config.h
new file mode 100644
index 0000000..ba6d58f
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_config.h
@@ -0,0 +1,47 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches_config.c

+* Description  : Configures the switches code

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+***********************************************************************************************************************/

+#ifndef SWITCHES_CONFIG_HEADER_FILE

+#define SWITCHES_CONFIG_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* This macro sets whether interrupts or polling is used for detecting switch presses. The benefit of using interrupts

+   is that no extra processing is used for polling and the use of a system timer tick is not a requirement. The downside

+   of using interrupts is that callback functions are called from within an interrupt so if your ISR is long then it can

+   degrade the real-time response of your system. The benefit of polling is that functions are called at the application

+   level and debouncing is supported. The downside to polling is that your system must call the R_SWITCHES_Update() on a

+   regular basis which requires extra processing.

+

+   0 = Use interrupts

+   1 = Use polling

+    */

+#define SWITCHES_DETECTION_MODE     (0)

+

+#endif /* SWITCHES_CONFIG_HEADER_FILE */

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_if.h b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_if.h
new file mode 100644
index 0000000..b08f8f5
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/r_switches_if.h
@@ -0,0 +1,72 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches_if.h

+* Description  : Functions for using switches with callback functions.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+***********************************************************************************************************************/

+

+#ifndef SWITCHES_API_HEADER_FILE

+#define SWITCHES_API_HEADER_FILE

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Fixed width integer support. */

+#include <stdint.h>

+/* Used for configuring the code */

+#include "r_switches_config.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* Version Number of API. */

+#define SWITCHES_VERSION_MAJOR           (1)

+#define SWITCHES_VERSION_MINOR           (0)

+/* The process of getting the version number is done through the macro below. The version number is encoded where the

+   top 2 bytes are the major version number and the bottom 2 bytes are the minor version number. For example,

+   Version 4.25 would be returned as 0x00040019. */

+#define R_SWITCHES_GetVersion()  ((((uint32_t)SWITCHES_VERSION_MAJOR) << 16) | (uint32_t)SWITCHES_VERSION_MINOR)

+

+/***********************************************************************************************************************

+Public Functions

+***********************************************************************************************************************/

+void R_SWITCHES_Init(void);

+void R_SWITCHES_Update(void);

+

+/* Callback prototypes. */

+#if defined(SW1_CALLBACK_FUNCTION)

+void SW1_CALLBACK_FUNCTION(void);

+#endif

+

+#if defined(SW2_CALLBACK_FUNCTION)

+void SW2_CALLBACK_FUNCTION(void);

+#endif

+

+#if defined(SW3_CALLBACK_FUNCTION)

+void SW3_CALLBACK_FUNCTION(void);

+#endif

+

+#endif /* SWITCHES_API_HEADER_FILE */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/readme.txt b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/readme.txt
new file mode 100644
index 0000000..d1e1e40
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/readme.txt
@@ -0,0 +1,83 @@
+PLEASE REFER TO THE APPLICATION NOTE FOR THIS MIDDLEWARE FOR MORE INFORMATION

+

+Switches

+========

+

+Document Number 

+---------------

+N/A

+

+Version

+-------

+v1.40

+

+Overview

+--------

+Configures port pins for switches and calls user defined function on switch press. Switch presses can be detected using 

+IRQ interrupts or by polling. The benefit of using interrupts is that no extra processing is used for polling and the 

+use of a system timer tick is not a requirement. The downside of using interrupts is that callback functions are called 

+from within an interrupt so if your ISR is long then it can degrade the real-time response of your system. The benefit 

+of polling is that functions are called at the application level and debouncing is supported. The downside to polling is 

+that your system must call the R_SWITCHES_Update() on a regular basis which requires extra processing.

+

+Features

+--------

+* Call one function to setup switches.

+* Define function to call when switch is pressed.

+* Can be configured to be interrupt or poll driven.

+

+Supported MCUs

+--------------

+* RX610 Group

+* RX621, RX62N Group

+* RX62T Group

+* RX630 Group

+* RX631, RX63N Group

+* RX210 Group

+* RX111 Group

+

+Boards Tested On

+----------------

+* RSKRX610

+* RSK+RX62N

+* RSKRX62T

+* RDKRX62N

+* RSKRX630

+* RSKRX63N

+* RDKRX63N

+* RSKRX111

+

+Limitations

+-----------

+* None

+

+Peripherals Used Directly

+-------------------------

+* None

+

+Required Packages

+-----------------

+* None

+

+How to add to your project

+--------------------------

+* Add src\r_switches.c to your project.

+* Add an include path to the 'r_switches' directory. 

+* Add an include path to the 'r_switches\src' directory.

+* Configure middleware through r_switches_config.h.

+* Add a #include for r_switches_if.h to files that need to use this package. 

+

+Toolchain(s) Used

+-----------------

+* Renesas RX v1.02

+

+File Structure

+--------------

+r_switches

+|   readme.txt

+|   r_switches_config.h

+|   r_switches_if.h

+|

+\---src

+        r_switches.c

+                

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/src/r_switches.c b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/src/r_switches.c
new file mode 100644
index 0000000..6013835
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/Renesas_Files/r_switches/src/r_switches.c
@@ -0,0 +1,232 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches.c

+* Description  : Functions for using switches with callback functions.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+*         : 07.11.2012 1.40	   Added support for RSKRX111

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Board and MCU support. */

+#include "platform.h"

+/* Switches prototypes. */

+#include "r_switches_if.h"

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+typedef int bool;

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* This helps reduce the amount of unique code for each supported board. */

+#define X_IRQ( x )   XX_IRQ( x )

+#define XX_IRQ( x )  _ICU_IRQ##x

+

+/* These macros define which IRQ pins are used for the switches. Note that these defintions cannot have parentheses

+   around them. */

+#if defined(PLATFORM_BOARD_RSKRX111)

+    #define SW1_IRQ_NUMBER     0

+    #define SW2_IRQ_NUMBER     1

+    #define SW3_IRQ_NUMBER     4

+#else

+	#error This file is only for use on the RX100 RSK

+#endif

+

+/* Number of switches on this board. */

+#define SWITCHES_NUM            (3)

+

+/* Register definitions not yet correct in iorx111.h. */

+#define MPC_P30PFS_REG	( * ( unsigned char * ) 0x0008C158 )

+#define MPC_P31PFS_REG ( * ( unsigned char * ) 0x0008C159 )

+#define MPC_PE4PFS_REG ( * ( unsigned char * ) 0x0008C1B4 )

+

+/***********************************************************************************************************************

+Typedef definitions

+***********************************************************************************************************************/

+typedef struct

+{

+    bool    active;

+    int32_t debounce_cnt;

+} switch_t;

+

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+#if SWITCHES_DETECTION_MODE == 1

+/* Update Hz */

+static uint32_t g_sw_debounce_cnts;

+/* Used for debounce. */

+switch_t g_switches[SWITCHES_NUM];

+#endif

+

+/***********************************************************************************************************************

+* Function Name: R_SWITCHES_Init

+* Description  : Initializes pins to be input and interrupt on switch presses.

+* Arguments    :

+* Return Value : none

+***********************************************************************************************************************/

+

+void R_SWITCHES_Init (void)

+{

+    /* Unlock protection register */

+    MPC.PWPR.BYTE &= 0x7F;

+    /* Unlock MPC registers */

+    MPC.PWPR.BYTE |= 0x40;

+

+    /* Make switch pins inputs. */

+    PORT3.PDR.BYTE &= 0xFC;

+    PORTE.PDR.BYTE &= 0xEF;

+

+    /* Set port mode registers for switches. */

+    PORT3.PMR.BYTE &= 0xFC;

+    PORTE.PMR.BYTE &= 0xEF;

+

+    MPC_P30PFS_REG = 0x40;    /* P30 is used as IRQ pin */

+    MPC_P31PFS_REG  = 0x40;    /* P31 is used as IRQ pin */

+    MPC_PE4PFS_REG  = 0x40;    /* PE4 is used as IRQ pin */

+

+    /* Set IRQ type (falling edge) */

+    ICU.IRQCR[ SW1_IRQ_NUMBER ].BYTE  = 0x04;

+    ICU.IRQCR[ SW2_IRQ_NUMBER ].BYTE  = 0x04;

+    ICU.IRQCR[ SW3_IRQ_NUMBER ].BYTE  = 0x04;

+

+    /* Set interrupt priorities, which must be below

+    configMAX_SYSCALL_INTERRUPT_PRIORITY. */

+    _IPR( X_IRQ(SW1_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW2_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW3_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+

+    /* Clear any pending interrupts */

+    _IR( X_IRQ(SW1_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW2_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW3_IRQ_NUMBER) ) = 0;

+

+    /* Enable the interrupts */

+    _IEN( X_IRQ(SW1_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW2_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW3_IRQ_NUMBER) )  = 1;

+}

+

+/* If using polling then the user must call the update function. */

+

+/***********************************************************************************************************************

+* Function name: R_SWITCHES_Update

+* Description  : Polls switches and calls callback functions as needed. If you are using IRQ mode then this function

+*                is not needed and can be removed if desired. It is left in so that code will not fail when switching

+*                between polling or IRQ mode.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void R_SWITCHES_Update (void)

+{

+#if SWITCHES_DETECTION_MODE == 1

+    /* This code is only needed for polling mode. */

+    /* Check switch 1. */

+    if (SW1 == SW_ACTIVE)

+    {

+        if (g_switches[0].active != true)

+        {

+            if (++g_switches[0].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[0].active = true;

+

+                /* Call callback function. */

+                SW1_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[0].debounce_cnt)

+        {

+            g_switches[0].active = false;

+        }

+        else

+        {

+            g_switches[0].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 2. */

+    if (SW2 == SW_ACTIVE)

+    {

+        if (g_switches[1].active != true)

+        {

+            if (++g_switches[1].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[1].active = true;

+

+                /* Call callback function. */

+                SW2_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[1].debounce_cnt)

+        {

+            g_switches[1].active = false;

+        }

+        else

+        {

+            g_switches[1].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 3. */

+    if (SW3 == SW_ACTIVE)

+    {

+        if (g_switches[2].active != true)

+        {

+            if (++g_switches[2].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[2].active = true;

+

+                /* Call callback function. */

+                SW3_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[2].debounce_cnt)

+        {

+            g_switches[2].active = false;

+        }

+        else

+        {

+            g_switches[2].debounce_cnt--;

+        }

+    }

+#endif /* SWITCHES_DETECTION_MODE */

+}

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/main.c b/FreeRTOS/Demo/RX100-RSK_IAR/main.c
new file mode 100644
index 0000000..c2d786b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/main.c
@@ -0,0 +1,211 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/******************************************************************************

+ * This project provides two demo applications.  A low power project that

+ * demonstrates the FreeRTOS tickless mode, and a more comprehensive test and

+ * demo application.  The configCREATE_LOW_POWER_DEMO setting (defined at the

+ * top of FreeRTOSConfig.h) is used to select between the two.  The low power

+ * demo is implemented and described in main_low_power.c.  The more

+ * comprehensive test and demo application is implemented and described in

+ * main_full.c.

+ *

+ * This file implements the code that is not demo specific, including the

+ * hardware setup and FreeRTOS hook functions.

+ */

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Platform includes. */

+#include "lcd.h"

+

+/*-----------------------------------------------------------*/

+

+/*

+ * Prepare the board of the demo.

+ */

+extern void vHardwareSetup( void );

+

+/*

+ * main_low_power() is used when configCREATE_LOW_POWER_DEMO is set to 1.

+ * main_full() is used when configCREATE_LOW_POWER_DEMO is set to 0.

+ */

+extern void main_low_power( void );

+extern void main_full( void );

+

+/* Prototypes for the standard FreeRTOS callback/hook functions implemented

+within this file. */

+void vApplicationMallocFailedHook( void );

+void vApplicationIdleHook( void );

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName );

+void vApplicationTickHook( void );

+

+/*-----------------------------------------------------------*/

+

+/* See the documentation page for this demo on the FreeRTOS.org web site for

+full information - including hardware setup requirements. */

+

+void main( void )

+{

+	/* Call the Renesas provided setup. */

+	vHardwareSetup();

+	lcd_initialize();

+	lcd_display( LCD_LINE1, "FreeRTOS" );

+

+	/* The configCREATE_LOW_POWER_DEMO setting is described in FreeRTOSConfig.h. */

+	#if configCREATE_LOW_POWER_DEMO == 1

+	{

+		lcd_display( LCD_LINE2, "LP Demo" );

+		main_low_power();

+	}

+	#else

+	{

+		lcd_display( LCD_LINE2, "Ful Demo" );

+		main_full();

+	}

+	#endif

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationMallocFailedHook( void )

+{

+	/* vApplicationMallocFailedHook() will only be called if

+	configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook

+	function that will get called if a call to pvPortMalloc() fails.

+	pvPortMalloc() is called internally by the kernel whenever a task, queue,

+	timer or semaphore is created.  It is also called by various parts of the

+	demo application.  If heap_1.c, heap_2.c or heap_4.c are used, then the size

+	of the heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE

+	in FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used

+	to query the size of free heap space that remains (although it does not

+	provide information on how the remaining heap might be fragmented). */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationIdleHook( void )

+{

+	/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set

+	to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle

+	task.  It is essential that code added to this hook function never attempts

+	to block in any way (for example, call xQueueReceive() with a block time

+	specified, or call vTaskDelay()).  If the application makes use of the

+	vTaskDelete() API function (as this demo application does) then it is also

+	important that vApplicationIdleHook() is permitted to return to its calling

+	function, because it is the responsibility of the idle task to clean up

+	memory allocated by the kernel to any task that has since been deleted. */

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName )

+{

+	( void ) pcTaskName;

+	( void ) pxTask;

+

+	/* Run time stack overflow checking is performed if

+	configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook	function is

+	called if a stack overflow is detected. */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationTickHook( void )

+{

+	/* This function will be called by each tick interrupt if

+	configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h.  User code can be

+	added here, but the tick hook is called from an interrupt context, so

+	code must not attempt to block, and only the interrupt safe FreeRTOS API

+	functions can be used (those that end in FromISR()). */

+}

+/*-----------------------------------------------------------*/

+

+void vAssertCalled( void )

+{

+volatile unsigned long ul = 0;

+

+	taskENTER_CRITICAL();

+	{

+		/* Set ul to a non-zero value using the debugger to step out of this

+		function. */

+		while( ul == 0 )

+		{

+			__asm volatile( "NOP" );

+		}

+	}

+	taskEXIT_CRITICAL();

+}

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/main_full.c b/FreeRTOS/Demo/RX100-RSK_IAR/main_full.c
new file mode 100644
index 0000000..1380948
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/main_full.c
@@ -0,0 +1,346 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * This project includes a lot of tasks and tests and is therefore complex.

+ * If you would prefer a much simpler project to get started with then select

+ * the 'low power' demo by setting configCREATE_LOW_POWER_DEMO to 1 in

+ * FreeRTOSConfig.h.  When configCREATE_LOW_POWER_DEMO is set to 1 main() will

+ * call main_low_power() instead of main_full().

+ * ****************************************************************************

+ *

+ * Creates all the demo application tasks, then starts the scheduler.  The web

+ * documentation provides more details of the standard demo application tasks,

+ * which provide no particular functionality but do provide a good example of

+ * how to use the FreeRTOS API.

+ *

+ * In addition to the standard demo tasks, the following tasks and tests are

+ * defined and/or created within this file:

+ *

+ * "Reg test" tasks - These fill the registers with known values, then

+ * repeatedly check that each register still contains its expected value for

+ * the lifetime of the tasks.  Each task uses different values.  The tasks run

+ * with very low priority so get preempted very frequently.  A check variable

+ * is incremented on each iteration of the test loop.  A register containing an

+ * unexpected value is indicative of an error in the context switching

+ * mechanism and will result in a branch to a null loop - which in turn will

+ * prevent the check variable from incrementing any further and allow the check

+ * timer (described below) to determine that an error has occurred.  The nature

+ * of the reg test tasks necessitates that they are written in assembly code.

+ *

+ * "Check Timer" and Callback Function - The check timer period is initially

+ * set to three seconds.  The check timer callback function checks that all the

+ * standard demo tasks are not only still executing, but are executing without

+ * reporting any errors.  If the check timer discovers that a task has either

+ * stalled, or reported an error, then it changes its own period from the

+ * initial three seconds, to just 200ms.  The check timer callback function

+ * also toggles LED 0 each time it is called.  This provides a visual

+ * indication of the system status:  If the LED toggles every three seconds,

+ * then no issues have been discovered.  If the LED toggles every 200ms, then

+ * an issue has been discovered with at least one task.

+ *

+ * *NOTE 1* The CPU must be in Supervisor mode when the scheduler is started.

+ * The PowerON_Reset_PC() supplied in resetprg.c with this demo has

+ * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.

+*/

+

+/* Standard includes. */

+#include <string.h>

+

+/* Hardware specific includes. */

+#include "iorx111.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "timers.h"

+#include "semphr.h"

+

+/* Standard demo includes. */

+#include "partest.h"

+#include "death.h"

+#include "blocktim.h"

+#include "GenQTest.h"

+#include "recmutex.h"

+

+

+/* Variables that are incremented on each iteration of the reg test tasks are

+declared outside of the #if configCREATE_LOW_POWER_DEMO conditional compilation

+to prevent linker issues when configCREATE_LOW_POWER_DEMO is set to 1.  The

+check timer inspects these variables to ensure they are still incrementing as

+expected.  If a variable stops incrementing then it is likely that its associate

+task has stalled. */

+unsigned long volatile ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;

+

+

+/* The code in this file is only built when configCREATE_LOW_POWER_DEMO is set

+to 0, otherwise the code in main_low_power.c is used. */

+#if configCREATE_LOW_POWER_DEMO == 0

+

+

+/* Values that are passed into the reg test tasks using the task parameter.

+The tasks check that the values are passed in correctly. */

+#define mainREG_TEST_1_PARAMETER	( 0x12121212UL )

+#define mainREG_TEST_2_PARAMETER	( 0x12345678UL )

+

+/* Priorities at which the standard demo tasks are created. */

+#define mainGEN_QUEUE_TASK_PRIORITY	( tskIDLE_PRIORITY )

+#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )

+

+/* The LED toggled by the check timer. */

+#define mainCHECK_LED				( 0 )

+

+/* The period at which the check timer will expire, in ms, provided no errors

+have been reported by any of the standard demo tasks.  ms are converted to the

+equivalent in ticks using the portTICK_RATE_MS constant. */

+#define mainCHECK_TIMER_PERIOD_MS			( 3000UL / portTICK_RATE_MS )

+

+/* The period at which the check timer will expire, in ms, if an error has been

+reported in one of the standard demo tasks.  ms are converted to the equivalent

+in ticks using the portTICK_RATE_MS constant. */

+#define mainERROR_CHECK_TIMER_PERIOD_MS 	( 200UL / portTICK_RATE_MS )

+

+/* A block time of zero simple means "Don't Block". */

+#define mainDONT_BLOCK				( 0UL )

+

+/*

+ * The reg test tasks as described at the top of this file.

+ */

+static void prvRegTest1Task( void *pvParameters );

+static void prvRegTest2Task( void *pvParameters );

+

+/*

+ * The actual implementation of the reg test functionality, which, because of

+ * the direct register access, have to be in assembly.

+ */

+void vRegTest1Implementation( void );

+void vRegTest2Implementation( void );

+

+/*

+ * The check timer callback function, as described at the top of this file.

+ */

+static void prvCheckTimerCallback( xTimerHandle xTimer );

+

+

+/*-----------------------------------------------------------*/

+

+/* The check timer.  This uses prvCheckTimerCallback() as its callback

+function. */

+static xTimerHandle xCheckTimer = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_full( void )

+{

+	/* Start the reg test tasks which test the context switching mechanism. */

+	xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );

+	xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );

+

+	/* Create the standard demo tasks. */

+	vCreateBlockTimeTasks();

+	vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );

+	vStartRecursiveMutexTasks();

+

+	/* The suicide tasks must be created last as they need to know how many

+	tasks were running prior to their creation in order to ascertain whether

+	or not the correct/expected number of tasks are running at any given time. */

+	vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );

+

+	/* Create the software timer that performs the 'check' functionality,

+	as described at the top of this file. */

+	xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */

+								( mainCHECK_TIMER_PERIOD_MS ),		/* The timer period, in this case 5000ms (5s). */

+								pdTRUE,								/* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */

+								( void * ) 0,						/* The ID is not used, so can be set to anything. */

+								prvCheckTimerCallback				/* The callback function that inspects the status of all the other tasks. */

+							  );

+

+	configASSERT( xCheckTimer );

+

+	/* Start the check timer.  It will actually start when the scheduler is

+	started. */

+	xTimerStart( xCheckTimer, mainDONT_BLOCK );

+

+	/* Start the tasks running. */

+	vTaskStartScheduler();

+

+	/* If all is well execution will never reach here as the scheduler will be

+	running.  If this null loop is reached then it is likely there was

+	insufficient FreeRTOS heap available for the idle task and/or timer task to

+	be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvCheckTimerCallback( xTimerHandle xTimer )

+{

+static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;

+static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;

+

+	/* Remove compiler warnings about unused parameters. */

+	( void ) xTimer;

+

+	/* Check the standard demo tasks are running without error. */

+	if( xAreGenericQueueTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xIsCreateTaskStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Check the reg test tasks are still cycling.  They will stop incrementing

+	their loop counters if they encounter an error. */

+	if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Remember the loop counter values this time around so they can be checked

+	again the next time this callback function executes. */

+	ulLastRegTest1CycleCount = ulRegTest1CycleCount;

+	ulLastRegTest2CycleCount = ulRegTest2CycleCount;

+

+	/* Toggle the check LED to give an indication of the system status.  If

+	the LED toggles every three seconds then everything is ok.  A faster toggle

+	indicates an error. */

+	vParTestToggleLED( mainCHECK_LED );

+

+	/* Was an error detected this time through the callback execution? */

+	if( lErrorStatus != pdPASS )

+	{

+		if( lChangedTimerPeriodAlready == pdFALSE )

+		{

+			lChangedTimerPeriodAlready = pdTRUE;

+

+			/* This call to xTimerChangePeriod() uses a zero block time.

+			Functions called from inside of a timer callback function must

+			*never* attempt	to block. */

+			xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest1Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	vRegTest1Implementation();

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest2Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	vRegTest2Implementation();

+}

+/*-----------------------------------------------------------*/

+

+#endif /* configCREATE_LOW_POWER_DEMO */

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/main_low_power.c b/FreeRTOS/Demo/RX100-RSK_IAR/main_low_power.c
new file mode 100644
index 0000000..1a3f6d0
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/main_low_power.c
@@ -0,0 +1,437 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * When configCREATE_LOW_POWER_DEMO is set to 1 in FreeRTOSConfig.h main() will

+ * call main_low_power(), which is defined in this file.  main_low_power()

+ * demonstrates FreeRTOS tick suppression being used to allow the MCU to be

+ * placed into both the low power deep sleep mode and the low power software

+ * standby mode.  When configCREATE_LOW_POWER_DEMO is set to 0 main will

+ * instead call main_full(), which is a more comprehensive RTOS demonstration.

+ * ****************************************************************************

+ *

+ * This application demonstrates the FreeRTOS tickless idle mode (tick

+ * suppression).  See http://www.freertos.org/low-power-tickless-rtos.html

+ * The demo is configured to execute on the Renesas RX100 RSK.

+ *

+ *  Functionality:

+ *

+ *  + Two tasks are created, an Rx task and a Tx task.

+ *

+ *  + The Rx task repeatedly blocks on a queue to wait for data.  The Rx task

+ *    toggles LED 0 each time is receives a value from the queue.

+ *

+ *  + The Tx task repeatedly enters the Blocked state for an amount of time

+ *    that is set by the position of the potentiometer.  On exiting the blocked

+ *    state the Tx task sends a value through the queue to the Rx task (causing

+ *    the Rx task to exit the blocked state and toggle LED 0).

+ *

+ *    If the value read from the potentiometer is less than or equal to

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks for the equivalent

+ *    number of milliseconds.  For example, if the sampled analog value is

+ *    2000, then the Tx task blocks for 2000ms.  Blocking for a finite period

+ *    allows the kernel to stop the tick interrupt and place the RX100 into

+ *    deep sleep mode.

+ *

+ *    If the value read form the potentiometer is greater than

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks on a semaphore with

+ *    an infinite timeout.  Blocking with an infinite timeout allows the kernel

+ *    to stop the tick interrupt and place the RX100 into software standby

+ *    mode.  Pressing a button will generate an interrupt that causes the RX100

+ *    to exit software standby mode.  The interrupt service routine 'gives' the

+ *    semaphore to unblock the Tx task.

+ *

+ *

+ *  Using the Demo and Observed Behaviour:

+ *

+ *  1) Turn the potentiometer completely counter clockwise.

+ *

+ *  2) Program the RX100 with the application, then disconnect the programming/

+ *   debugging hardware to ensure power readings are not effected by any

+ *   connected interfaces.

+ *

+ *  3) Start the application running.  LED 0 will toggle quickly because the

+ *   potentiometer is turned to its lowest value.  LED 1 will be illuminated

+ *   when the RX100 is not in a power saving mode, but will appear to be off

+ *   because most execution time is spent in a sleep mode.  Led 2 will be

+ *   illuminated when the RX100 is in deep sleep mode, and will appear to be

+ *   always on, again because most execution time is spent in deep sleep mode.

+ *   The LEDs are turned on and off by the application defined pre and post

+ *   sleep macros (see the definitions of configPRE_SLEEP_PROCESSING() and

+ *   configPOST_SLEEP_PROCESSING() in FreeRTOSConfig.h).

+ *

+ *  4) Slowly turn the potentiometer in the clockwise direction.  This will

+ *   increase the value read from the potentiometer, which will increase the

+ *   time the Tx task spends in the Blocked state, which will therefore

+ *   decrease the frequency at which the Tx task sends data to the queue (and

+ *   the rate at which LED 0 is toggled).

+ *

+ *  5) Keep turning the potentiometer in the clockwise direction.  Eventually

+ *   the value read from the potentiometer will go above

+ *   mainSOFTWARE_STANDBY_DELAY, causing the Tx task to block on the semaphore

+ *   with an infinite timeout.  LED 0 will stop toggling because the Tx task is

+ *   no longer sending to the queue.  LED 1 and LED 2 will both be off because

+ *   the RX100 is neither running or in deep sleep mode (it is in software

+ *   standby mode).

+ *

+ *  6) Turn the potentiometer counter clockwise again to ensure its value goes

+ *   back below mainSOFTWARE_STANDBY_DELAY.

+ *

+ *  7) Press any of the three buttons to generate an interrupt.  The interrupt

+ *   will take the RX100 out of software standby mode, and the interrupt

+ *   service routine will unblock the Tx task by 'giving' the semaphore.  LED 0

+ *   will then start to toggle again.

+ *

+ */

+

+

+/* Hardware specific includes. */

+#include "platform.h"

+#include "r_switches_if.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "queue.h"

+#include "semphr.h"

+

+/* Common demo includes. */

+#include "partest.h"

+

+/* Priorities at which the Rx and Tx tasks are created. */

+#define configQUEUE_RECEIVE_TASK_PRIORITY	( tskIDLE_PRIORITY + 1 )

+#define	configQUEUE_SEND_TASK_PRIORITY		( tskIDLE_PRIORITY + 2 )

+

+/* The number of items the queue can hold.  This is 1 as the Rx task will

+remove items as they are added so the Tx task should always find the queue

+empty. */

+#define mainQUEUE_LENGTH					( 1 )

+

+/* The LED used to indicate that a value has been received on the queue. */

+#define mainQUEUE_LED						( 0 )

+

+/* The LED used to indicate that full power is being used (the MCU is not in

+deep sleep or software standby mode). */

+#define mainFULL_POWER_LED					( 1 )

+

+/* The LED used to indicate that deep sleep mode is being used. */

+#define mainDEEP_SLEEP_LED					( 2 )

+

+/* The Tx task sends to the queue with a frequency that is set by the value

+read from the potentiometer until the value goes above that set by the

+mainSOFTWARE_STANDBY_DELAY constant - at which time the Tx task instead blocks

+indefinitely on a semaphore. */

+#define mainSOFTWARE_STANDBY_DELAY			( 3000UL )

+

+/* A block time of zero simply means "don't block". */

+#define mainDONT_BLOCK						( 0 )

+

+/* The value that is sent from the Tx task to the Rx task on the queue. */

+#define mainQUEUED_VALUE					( 100UL )

+

+/*-----------------------------------------------------------*/

+

+/*

+ * The Rx and Tx tasks as described at the top of this file.

+ */

+static void prvQueueReceiveTask( void *pvParameters );

+static void prvQueueSendTask( void *pvParameters );

+

+/*

+ * Reads and returns the value of the ADC connected to the potentiometer built

+ * onto the RSK.

+ */

+static unsigned short prvReadPOT( void );

+

+/*

+ * The handler for the interrupt generated when any of the buttons are pressed.

+ */

+__interrupt void vButtonInterrupt( void );

+

+/*-----------------------------------------------------------*/

+

+/* The queue to pass data from the Tx task to the Rx task. */

+static xQueueHandle xQueue = NULL;

+

+/* The semaphore that is 'given' by interrupts generated from button pushes. */

+static xSemaphoreHandle xSemaphore = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_low_power( void )

+{

+	/* Create the queue. */

+	xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );

+	configASSERT( xQueue );

+

+	/* Create the semaphore that is 'given' by an interrupt generated from a

+	button push. */

+	vSemaphoreCreateBinary( xSemaphore );

+	configASSERT( xSemaphore );

+

+	/* Make sure the semaphore starts in the expected state - no button pushes

+	have yet occurred.  A block time of zero can be used as it is guaranteed

+	that the semaphore will be available because it has just been created. */

+	xSemaphoreTake( xSemaphore, mainDONT_BLOCK );

+

+	/* Start the two tasks as described at the top of this file. */

+	xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, configQUEUE_RECEIVE_TASK_PRIORITY, NULL );

+	xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL );

+

+	/* The CPU is currently running, not sleeping, so turn on the LED that

+	shows the CPU is not in a sleep mode. */

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+

+	/* Start the scheduler running running. */

+	vTaskStartScheduler();

+

+	/* If all is well the next line of code will not be reached as the

+	scheduler will be running.  If the next line is reached then it is likely

+	there was insufficient FreeRTOS heap available for the idle task and/or

+	timer task to be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueSendTask( void *pvParameters )

+{

+portTickType xDelay;

+const unsigned long ulValueToSend = mainQUEUED_VALUE;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* The delay period between successive sends to the queue is set by

+		the potentiometer reading. */

+		xDelay = ( portTickType ) prvReadPOT();

+

+		/* If the block time is greater than 3000 milliseconds then block

+		indefinitely waiting for a button push. */

+		if( xDelay > mainSOFTWARE_STANDBY_DELAY )

+		{

+			/* As this is an indefinite delay the kernel will place the CPU

+			into software standby mode the next time the idle task runs. */

+			xSemaphoreTake( xSemaphore, portMAX_DELAY );

+		}

+		else

+		{

+			/* Convert a time in milliseconds to a time in ticks. */

+			xDelay /= portTICK_RATE_MS;

+

+			/* Place this task in the blocked state until it is time to run

+			again.  As this is not an indefinite sleep the kernel will place

+			the CPU into the deep sleep state when the idle task next runs. */

+			vTaskDelay( xDelay );

+		}

+

+		/* Send to the queue - causing the queue receive task to flash its LED.

+		It should not be necessary to block on the queue send because the Rx

+		task will have removed the last queued item. */

+		xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK );

+	}

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueReceiveTask( void *pvParameters )

+{

+unsigned long ulReceivedValue;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* Wait until something arrives in the queue - this will block

+		indefinitely provided INCLUDE_vTaskSuspend is set to 1 in

+		FreeRTOSConfig.h. */

+		xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );

+

+		/*  To get here something must have arrived, but is it the expected

+		value?  If it is, toggle the LED. */

+		if( ulReceivedValue == mainQUEUED_VALUE )

+		{

+			vParTestToggleLED( mainQUEUE_LED );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vPreSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel before it places the MCU into a sleep mode because

+	configPRE_SLEEP_PROCESSING() is #defined to vPreSleepProcessing().

+

+	NOTE:  Additional actions can be taken here to get the power consumption

+	even lower.  For example, the ADC input used by this demo could be turned

+	off here, and then back on again in the post sleep processing function.

+	For maximum power saving ensure all unused pins are in their lowest power

+	state. */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Is the MCU about to enter deep sleep mode or software standby mode? */

+	if( SYSTEM.SBYCR.BIT.SSBY == 0 )

+	{

+		/* Turn on the LED that indicates deep sleep mode is being entered. */

+		vParTestSetLED( mainDEEP_SLEEP_LED, pdTRUE );

+	}

+	else

+	{

+		/* Software standby mode is being used, so no LEDs are illuminated to

+		ensure minimum power readings are obtained.  Ensure the Queue LED is

+		also off. */

+		vParTestSetLED( mainQUEUE_LED, pdFALSE );

+	}

+

+	/* Turn off the LED that indicates full power is being used. */

+	vParTestSetLED( mainFULL_POWER_LED, pdFALSE );

+}

+/*-----------------------------------------------------------*/

+

+void vPostSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel when the MCU exits a sleep mode because

+	configPOST_SLEEP_PROCESSING is #defined to vPostSleepProcessing(). */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Turn off the LED that indicates deep sleep mode, and turn on the LED

+	that indicates full power is being used. */

+	vParTestSetLED( mainDEEP_SLEEP_LED, pdFALSE );

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+}

+/*-----------------------------------------------------------*/

+

+static unsigned short prvReadPOT( void )

+{

+unsigned short usADCValue;

+const unsigned short usMinADCValue = 128;

+

+	/* Start an ADC scan. */

+	S12AD.ADCSR.BIT.ADST = 1;

+	while( S12AD.ADCSR.BIT.ADST == 1 )

+	{

+		/* Just waiting for the ADC scan to complete.  Inefficient

+		polling! */

+	}

+

+	usADCValue = S12AD.ADDR4;

+

+	/* Don't let the ADC value get too small as the LED behaviour will look

+	erratic. */

+	if( usADCValue < usMinADCValue )

+	{

+		usADCValue = usMinADCValue;

+	}

+

+	return usADCValue;

+}

+/*-----------------------------------------------------------*/

+

+#pragma vector = VECT_ICU_IRQ0, VECT_ICU_IRQ1, VECT_ICU_IRQ4

+__interrupt void vButtonInterrupt1( void )

+{

+long lHigherPriorityTaskWoken = pdFALSE;

+

+	/* The semaphore is only created when the build is configured to create the

+	low power demo. */

+	if( xSemaphore != NULL )

+	{

+		/* This interrupt will bring the CPU out of deep sleep and software

+		standby	modes.  Give the semaphore that was used to place the Tx task

+		into an indefinite sleep. */

+		if( uxQueueMessagesWaitingFromISR( xSemaphore ) == 0 )

+		{

+			xSemaphoreGiveFromISR( xSemaphore, &lHigherPriorityTaskWoken );

+		}

+		else

+		{

+			/* The semaphore was already available, so the task is not blocked

+			on it and there is no point giving it. */

+		}

+

+		/* If giving the semaphore caused a task to leave the Blocked state,

+		and the task that left the Blocked state has a priority equal to or

+		above the priority of the task that this interrupt interrupted, then

+		lHigherPriorityTaskWoken will have been set to pdTRUE inside the call

+		to xSemaphoreGiveFromISR(), and calling portYIELD_FROM_ISR() will cause

+		a context switch to the unblocked task. */

+		portYIELD_FROM_ISR( lHigherPriorityTaskWoken );

+	}

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/reg_test.s b/FreeRTOS/Demo/RX100-RSK_IAR/reg_test.s
new file mode 100644
index 0000000..f467be4
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/reg_test.s
@@ -0,0 +1,274 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+	PUBLIC _vRegTest1Implementation

+	PUBLIC _vRegTest2Implementation

+

+	EXTERN _ulRegTest1CycleCount

+	EXTERN _ulRegTest2CycleCount

+

+	RSEG CODE:CODE(4)

+

+_vRegTest1Implementation:

+

+		/* Set each register to a known value. */

+		MOV.L	#0x33333333, R15

+		MVTACHI	R15

+		MOV.L	#0x44444444, R15

+		MVTACLO	R15

+		MOV.L	#1, R1

+		MOV.L	#2, R2

+		MOV.L	#3, R3

+		MOV.L	#4, R4

+		MOV.L	#5, R5

+		MOV.L	#6, R6

+		MOV.L	#7, R7

+		MOV.L	#8, R8

+		MOV.L	#9, R9

+		MOV.L	#10, R10

+		MOV.L	#11, R11

+		MOV.L	#12, R12

+		MOV.L	#13, R13

+		MOV.L	#14, R14

+		MOV.L	#15, R15

+

+	/* Loop, checking each iteration that each register still contains the

+	expected value. */

+	TestLoop1:

+

+		/* Push the registers that are going to get clobbered. */

+		PUSHM	R14-R15

+

+		/* Increment the loop counter to show this task is still getting CPU

+		time. */

+		MOV.L	#_ulRegTest1CycleCount, R14

+		MOV.L	[ R14 ], R15

+		ADD		#1, R15

+		MOV.L	R15, [ R14 ]

+

+		/* Yield to extend the text coverage.  Set the bit in the ITU SWINTR

+		register. */

+		MOV.L	#1, R14

+		MOV.L 	#0872E0H, R15

+		MOV.B	R14, [R15]

+		NOP

+		NOP

+

+		/* Check the accumulator value. */

+		MVFACHI	R15

+		CMP		#0x33333333, R15

+		BNE		RegTest2Error

+		MVFACMI	R15

+		CMP		#0x33334444, R15

+		BNE		RegTest2Error

+

+		/* Restore the clobbered registers. */

+		POPM	R14-R15

+

+		/* Now compare each register to ensure it still contains the value that

+		was set before this loop was entered. */

+		CMP		#1, R1

+		BNE		RegTest1Error

+		CMP		#2, R2

+		BNE		RegTest1Error

+		CMP		#3, R3

+		BNE		RegTest1Error

+		CMP		#4, R4

+		BNE		RegTest1Error

+		CMP		#5, R5

+		BNE		RegTest1Error

+		CMP		#6, R6

+		BNE		RegTest1Error

+		CMP		#7, R7

+		BNE		RegTest1Error

+		CMP		#8, R8

+		BNE		RegTest1Error

+		CMP		#9, R9

+		BNE		RegTest1Error

+		CMP		#10, R10

+		BNE		RegTest1Error

+		CMP		#11, R11

+		BNE		RegTest1Error

+		CMP		#12, R12

+		BNE		RegTest1Error

+		CMP		#13, R13

+		BNE		RegTest1Error

+		CMP		#14, R14

+		BNE		RegTest1Error

+		CMP		#15, R15

+		BNE		RegTest1Error

+

+		/* All comparisons passed, start a new iteration of this loop. */

+		BRA		TestLoop1

+

+	/* A compare failed, just loop here so the loop counter stops

+	incrementing causing the check timer to indicate the error. */

+	RegTest1Error:

+		BRA RegTest1Error

+

+/*-----------------------------------------------------------*/

+

+_vRegTest2Implementation:

+

+		/* Set each register to a known value. */

+		MOV.L	#0x11111111, R15

+		MVTACHI	R15

+		MOV.L	#0x22222222, R15

+		MVTACLO	R15

+		MOV.L	#100, R1

+		MOV.L	#200, R2

+		MOV.L	#300, R3

+		MOV.L	#400, R4

+		MOV.L	#500, R5

+		MOV.L	#600, R6

+		MOV.L	#700, R7

+		MOV.L	#800, R8

+		MOV.L	#900, R9

+		MOV.L	#1000, R10

+		MOV.L	#1001, R11

+		MOV.L	#1002, R12

+		MOV.L	#1003, R13

+		MOV.L	#1004, R14

+		MOV.L	#1005, R15

+

+	/* Loop, checking each iteration that each register still contains the

+	expected value. */

+	TestLoop2:

+

+		/* Push the registers that are going to get clobbered. */

+		PUSHM	R14-R15

+

+		/* Increment the loop counter to show this task is still getting CPU

+		time. */

+		MOV.L	#_ulRegTest2CycleCount, R14

+		MOV.L	[ R14 ], R15

+		ADD		#1, R15

+		MOV.L	R15, [ R14 ]

+

+		/* Check the accumulator value. */

+		MVFACHI	R15

+		CMP		#0x11111111, R15

+		BNE		RegTest2Error

+		MVFACMI	R15

+		CMP		#0x11112222, R15

+		BNE		RegTest2Error

+

+		/* Restore the clobbered registers. */

+		POPM	R14-R15

+

+		/* Now compare each register to ensure it still contains the value that

+		was set before this loop was entered. */

+		CMP		#100, R1

+		BNE		RegTest2Error

+		CMP		#200, R2

+		BNE		RegTest2Error

+		CMP		#300, R3

+		BNE		RegTest2Error

+		CMP		#400, R4

+		BNE		RegTest2Error

+		CMP		#500, R5

+		BNE		RegTest2Error

+		CMP		#600, R6

+		BNE		RegTest2Error

+		CMP		#700, R7

+		BNE		RegTest2Error

+		CMP		#800, R8

+		BNE		RegTest2Error

+		CMP		#900, R9

+		BNE		RegTest2Error

+		CMP		#1000, R10

+		BNE		RegTest2Error

+		CMP		#1001, R11

+		BNE		RegTest2Error

+		CMP		#1002, R12

+		BNE		RegTest2Error

+		CMP		#1003, R13

+		BNE		RegTest2Error

+		CMP		#1004, R14

+		BNE		RegTest2Error

+		CMP		#1005, R15

+		BNE		RegTest2Error

+

+		/* All comparisons passed, start a new iteration of this loop. */

+		BRA		TestLoop2

+

+	/* A compare failed, just loop here so the loop counter stops

+	incrementing causing the check timer to indicate the error. */

+	RegTest2Error:

+		BRA RegTest2Error

+

+/*-----------------------------------------------------------*/

+

+		END

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.cspy.bat b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.cspy.bat
new file mode 100644
index 0000000..5197919
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.cspy.bat
@@ -0,0 +1,24 @@
+@REM This batch file has been generated by the IAR Embedded Workbench

+@REM C-SPY Debugger, as an aid to preparing a command line for running

+@REM the cspybat command line utility using the appropriate settings.

+@REM

+@REM Note that this file is generated every time a new debug session

+@REM is initialized, so you may want to move or rename the file before

+@REM making changes.

+@REM

+@REM You can launch cspybat by typing the name of this batch file followed

+@REM by the name of the debug file (usually an ELF/DWARF or UBROF file).

+@REM

+@REM Read about available command line parameters in the C-SPY Debugging

+@REM Guide. Hints about additional command line parameters that may be

+@REM useful in specific cases:

+@REM   --download_only   Downloads a code image without starting a debug

+@REM                     session afterwards.

+@REM   --silent          Omits the sign-on message.

+@REM   --timeout         Limits the maximum allowed execution time.

+@REM 

+

+

+"C:\devtools\IAR Systems\Embedded Workbench 6.5\common\bin\cspybat" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rx\bin\rxproc.dll" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rx\bin\rxemue20.dll"  %1 --plugin "C:\devtools\IAR Systems\Embedded Workbench 6.5\rx\bin\rxbat.dll" --backend -B "-p" "C:\devtools\IAR Systems\Embedded Workbench 6.5\rx\config\debugger\ior5f51115.ddf" "--endian" "l" "--double" "32" "--core" "RX100" "--int" "32" "-d" "emue20" "--drv_mode" "debugging" "--drv_communication" "USB" 

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dbgdt b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dbgdt
new file mode 100644
index 0000000..4ae27b5
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dbgdt
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<Project>

+  <Desktop>

+    <Static>

+      <Debug-Log>

+        

+        

+      <ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1622</ColumnWidth1></Debug-Log>

+      <Build>

+        <ColumnWidth0>20</ColumnWidth0>

+        <ColumnWidth1>1216</ColumnWidth1>

+        <ColumnWidth2>324</ColumnWidth2>

+        <ColumnWidth3>81</ColumnWidth3>

+      </Build>

+      <Workspace>

+        <ColumnWidths>

+          

+          

+          

+          

+        <Column0>231</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

+      </Workspace>

+      <Disassembly>

+        <col-names>

+          

+          

+        <item>Disassembly</item><item>_I0</item></col-names>

+        <col-widths>

+          

+          

+        <item>599</item><item>20</item></col-widths>

+        <DisasmHistory/>

+        <PreferedWindows>

+          

+          

+          

+          

+        <Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>

+        

+        

+      <ShowCodeCoverage>1</ShowCodeCoverage><ShowInstrProfiling>1</ShowInstrProfiling></Disassembly>

+    <Register><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows></Register><WATCH_1><PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><expressions><item>lErrorStatus</item><item>lChangedTimerPeriodAlready</item><item/></expressions><col-names><item>Expression</item><item>Location</item><item>Type</item><item>Value</item></col-names><col-widths><item>200</item><item>150</item><item>100</item><item>62</item></col-widths></WATCH_1></Static>

+    <Windows>

+      

+      

+    <Wnd0>

+        <Tabs>

+          <Tab>

+            <Identity>TabID-27185-11031</Identity>

+            <TabName>Debug Log</TabName>

+            <Factory>Debug-Log</Factory>

+            <Session/>

+          </Tab>

+          <Tab>

+            <Identity>TabID-26662-11041</Identity>

+            <TabName>Build</TabName>

+            <Factory>Build</Factory>

+            <Session/>

+          </Tab>

+        </Tabs>

+        

+      <SelectedTab>0</SelectedTab></Wnd0><Wnd1>

+        <Tabs>

+          <Tab>

+            <Identity>TabID-5165-11034</Identity>

+            <TabName>Workspace</TabName>

+            <Factory>Workspace</Factory>

+            <Session>

+              

+            <NodeDict><ExpandedNode>RTOSDemo_IAR</ExpandedNode><ExpandedNode>RTOSDemo_IAR/FreeRTOS Source</ExpandedNode><ExpandedNode>RTOSDemo_IAR/FreeRTOS Source/portable</ExpandedNode><ExpandedNode>RTOSDemo_IAR/FreeRTOS Source/portable/IAR</ExpandedNode><ExpandedNode>RTOSDemo_IAR/FreeRTOS Source/portable/IAR/RX100</ExpandedNode></NodeDict></Session>

+          </Tab>

+        </Tabs>

+        

+      <SelectedTab>0</SelectedTab></Wnd1></Windows>

+    <Editor>

+      

+      

+      

+      

+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>104</YPos2><SelStart2>6014</SelStart2><SelEnd2>6014</SelEnd2></Tab><ActiveTab>0</ActiveTab><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\FreeRTOSConfig.h</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>72</YPos2><SelStart2>5237</SelStart2><SelEnd2>5237</SelEnd2></Tab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

+    <Positions>

+      

+      

+      

+      

+      

+    <Top><Row0><Sizes><Toolbar-01349150><key>iaridepm.enu1</key></Toolbar-01349150></Sizes></Row0><Row1><Sizes><Toolbar-05ac2708><key>debuggergui.enu1</key></Toolbar-05ac2708></Sizes></Row1></Top><Left><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>716</Bottom><Right>305</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>182738</sizeVertCX><sizeVertCY>731161</sizeVertCY></Rect></Wnd1></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>198</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>200</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd0></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

+  </Desktop>

+</Project>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dni b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dni
new file mode 100644
index 0000000..2d503d3
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.dni
@@ -0,0 +1,104 @@
+[Stack]

+FillEnabled=0

+OverflowWarningsEnabled=1

+WarningThreshold=90

+SpWarningsEnabled=1

+WarnLogOnly=1

+UseTrigger=1

+TriggerName=main

+LimitSize=0

+ByteLimit=50

+[DebugChecksum]

+Checksum=222757635

+[CallStack]

+ShowArgs=0

+[Disassembly]

+MixedMode=1

+[InterruptLog]

+LogEnabled=0

+SumEnabled=0

+GraphEnabled=0

+ShowTimeLog=1

+ShowTimeSum=1

+SumSortOrder=0

+[DataLog]

+LogEnabled=0

+SumEnabled=0

+GraphEnabled=0

+ShowTimeLog=1

+ShowTimeSum=1

+[Breakpoints2]

+Count=0

+[Interrupts]

+Enabled=1

+[MemoryMap]

+Enabled=0

+Base=0

+UseAuto=0

+TypeViolation=1

+UnspecRange=1

+ActionState=1

+[E1/E20 Emulator]

+BlockBits=15

+B0=1,0

+B1=1,1024

+B2=1,2048

+B3=1,3072

+StartEnabled=0

+StartSymbol=

+StopEnabled=0

+StopSymbol=

+TraceMode=0

+TraceOutput=2

+TraceCapacity=0

+TraceRestart=0

+OperatingFrequency=22.000000

+PerfEnabled=0

+PerfCondition=0,0

+PerfDisplayTime=0,0

+PerfOnlyOnce=0,0

+PerfUse64Bit=0

+ChipName=R5F51115

+PinMode=0

+RegMode=0

+Endian=0

+ExtMemBlockNum=0

+InputClock=22.000000

+AllowClkSrcChange=0

+WorkRamStart=4096

+ComunicationSelect=1

+JtagClock=0

+FINE=2000000

+FlashOvrNum=0

+DebugFlags=0,0

+EmulatorMode=0

+PowerTargetFromEmulator=0

+Voltage=0

+NeedInit=0

+[Log file]

+LoggingEnabled=_ 0

+LogFile=_ ""

+Category=_ 0

+[TermIOLog]

+LoggingEnabled=_ 0

+LogFile=_ ""

+[CallStackLog]

+Enabled=0

+[DriverProfiling]

+Enabled=0

+Mode=1

+Graph=0

+Symbiont=0

+Exclusions=

+[Breakpoints]

+Bp0=_ "STD_CODE" "{$PROJ_DIR$\Renesas_Files\r_bsp\board\user\hardware_setup.c}.60.2" 0 0 0 0 "" 0 ""

+Count=1

+[Monitor Execution]

+Leave target running=0

+Release target=0

+[Aliases]

+Count=0

+SuppressDialog=0

+[Trace1]

+Enabled=0

+ShowSource=1

diff --git a/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.wsdt b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.wsdt
new file mode 100644
index 0000000..d06af2e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_IAR/settings/RTOSDemo_IAR.wsdt
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+

+<Workspace>

+  <ConfigDictionary>

+    

+  <CurrentConfigs><Project>RTOSDemo_IAR/Debug</Project></CurrentConfigs></ConfigDictionary>

+  <Desktop>

+    <Static>

+      <Workspace>

+        <ColumnWidths>

+          

+          

+          

+          

+        <Column0>199</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>

+      </Workspace>

+    <Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1216</ColumnWidth1><ColumnWidth2>324</ColumnWidth2><ColumnWidth3>81</ColumnWidth3></Build><Select-Ambiguous-Definitions><ColumnWidth0>580</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>994</ColumnWidth2></Select-Ambiguous-Definitions><TerminalIO/><Find-in-Files><ColumnWidth0>695</ColumnWidth0><ColumnWidth1>82</ColumnWidth1><ColumnWidth2>994</ColumnWidth2></Find-in-Files></Static>

+    <Windows>

+      

+    <Wnd0>

+        <Tabs>

+          <Tab>

+            <Identity>TabID-3933-19799</Identity>

+            <TabName>Workspace</TabName>

+            <Factory>Workspace</Factory>

+            <Session>

+              

+            <NodeDict><ExpandedNode>RTOSDemo_IAR</ExpandedNode><ExpandedNode>RTOSDemo_IAR/Renesas Files</ExpandedNode></NodeDict></Session>

+          </Tab>

+        </Tabs>

+        

+      <SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-4909-11467</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-18506-4030</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab><Tab><Identity>TabID-16773-20028</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows>

+    <Editor>

+      

+      

+      

+      

+    <Pane><Tab><Factory>TextEditor</Factory><Filename>$WS_DIR$\main.c</Filename><XPos>0</XPos><YPos>0</YPos><SelStart>0</SelStart><SelEnd>0</SelEnd><XPos2>0</XPos2><YPos2>74</YPos2><SelStart2>6014</SelStart2><SelEnd2>6014</SelEnd2></Tab><ActiveTab>0</ActiveTab></Pane><ActivePane>0</ActivePane><Sizes><Pane><X>1000000</X><Y>1000000</Y></Pane></Sizes><SplitMode>1</SplitMode></Editor>

+    <Positions>

+      

+      

+      

+      

+      

+    <Top><Row0><Sizes><Toolbar-01349150><key>iaridepm.enu1</key></Toolbar-01349150></Sizes></Row0><Row1><Sizes/></Row1><Row2><Sizes/></Row2></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>648</Bottom><Right>273</Right><x>-2</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>119048</sizeHorzCX><sizeHorzCY>203666</sizeHorzCY><sizeVertCX>163690</sizeVertCX><sizeVertCY>661914</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>290</Bottom><Right>1682</Right><x>-2</x><y>-2</y><xscreen>1684</xscreen><yscreen>292</yscreen><sizeHorzCX>1002381</sizeHorzCX><sizeHorzCY>297352</sizeHorzCY><sizeVertCX>119048</sizeVertCX><sizeVertCY>203666</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>

+  </Desktop>

+</Workspace>

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.HardwareDebuglinker b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.HardwareDebuglinker
new file mode 100644
index 0000000..2a9748a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.HardwareDebuglinker
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ASCII"?>

+<com.renesas.linkersection.model:SectionContainer xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com.renesas.linkersection.model="http:///LinkerSection.ecore">

+  <sections name="SU">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress"/>

+  </sections>

+  <sections name="SI"/>

+  <sections name="B_1"/>

+  <sections name="R_1"/>

+  <sections name="B_2"/>

+  <sections name="R_2"/>

+  <sections name="B"/>

+  <sections name="R"/>

+  <sections name="PResetPRG">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294836224"/>

+  </sections>

+  <sections name="C_1">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294840320"/>

+  </sections>

+  <sections name="C_2"/>

+  <sections name="C"/>

+  <sections name="C$*"/>

+  <sections name="D*"/>

+  <sections name="W*"/>

+  <sections name="L"/>

+  <sections name="PIntPRG">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294860800"/>

+  </sections>

+  <sections name="P">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294868992"/>

+  </sections>

+  <sections name="FIXEDVECT">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967248"/>

+  </sections>

+</com.renesas.linkersection.model:SectionContainer>

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.Releaselinker b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.Releaselinker
new file mode 100644
index 0000000..2a9748a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.Releaselinker
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ASCII"?>

+<com.renesas.linkersection.model:SectionContainer xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com.renesas.linkersection.model="http:///LinkerSection.ecore">

+  <sections name="SU">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress"/>

+  </sections>

+  <sections name="SI"/>

+  <sections name="B_1"/>

+  <sections name="R_1"/>

+  <sections name="B_2"/>

+  <sections name="R_2"/>

+  <sections name="B"/>

+  <sections name="R"/>

+  <sections name="PResetPRG">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294836224"/>

+  </sections>

+  <sections name="C_1">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294840320"/>

+  </sections>

+  <sections name="C_2"/>

+  <sections name="C"/>

+  <sections name="C$*"/>

+  <sections name="D*"/>

+  <sections name="W*"/>

+  <sections name="L"/>

+  <sections name="PIntPRG">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294860800"/>

+  </sections>

+  <sections name="P">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294868992"/>

+  </sections>

+  <sections name="FIXEDVECT">

+    <sectionAddress xsi:type="com.renesas.linkersection.model:FixedAddress" fixedAddress="4294967248"/>

+  </sections>

+</com.renesas.linkersection.model:SectionContainer>

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.cproject b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.cproject
new file mode 100644
index 0000000..afcd0cb
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.cproject
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<?fileVersion 4.0.0?>

+

+<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">

+	<storageModule moduleId="org.eclipse.cdt.core.settings">

+		<cconfiguration id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189">

+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189" moduleId="org.eclipse.cdt.core.settings" name="HardwareDebug">

+				<externalSettings/>

+				<extensions>

+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>

+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>

+					<extension id="com.renesas.cdt.core.KPITGCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="com.renesas.cdt.core.KPITVCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="com.renesas.cdt.core.KPITGASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="com.renesas.cdt.core.KPITMakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+					<extension id="com.renesas.cdt.core.KPITGLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>

+				</extensions>

+			</storageModule>

+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">

+				<configuration artifactExtension="mot" artifactName="RTOSDemo_Renesas" 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 *.x *.lbp src/*.src src/*.p src/*.pp *.bls *.libelf *.lbk *.abs" description="Debug on hardware" errorParsers="com.renesas.cdt.core.KPITMakeErrorParser;com.renesas.cdt.core.KPITGCCErrorParser;com.renesas.cdt.core.KPITGASErrorParser;com.renesas.cdt.core.KPITGLDErrorParser;com.renesas.cdt.core.KPITVCErrorParser" id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189" name="HardwareDebug" parent="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id">

+					<folderInfo id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189." name="/" resourcePath="">

+						<toolChain id="com.renesas.cdt.rxc.hardwaredebug.win32.toolChain.Id.1936925667" name="Renesas RXC Toolchain" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.toolChain.Id" targetTool="com.renesas.cdt.rxc.debug.win32.tool.convertor.Id">

+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.rxc.hardwaredebug.win32.targetPlatform.Id.1377846111" isAbstract="false" osList="win32" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.targetPlatform.Id"/>

+							<builder buildPath="${workspace_loc:/BSP111/HardwareDebug}" id="com.renesas.cdt.rxc.hardwaredebug.win32.builder.Id.2044615069" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="SHC Make Builder" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.builder.Id"/>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.compiler.Id.486948393" name="Compiler" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.compiler.Id">

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpuType.982467441" name="CPU type" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpuType" value="RX100" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.endian.1621733056" name="Data Endian" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.endian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.roundTo.915599060" name="Round to" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.roundTo" value="Nearest" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.precisionDouble.786447340" name="Precision of double" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.precisionDouble" value="Single precision" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signChar.262626578" name="Sign of char" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signChar" value="unsigned" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signBitField.564578464" name="Sign of bit field" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signBitField" value="unsigned" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.allocLowerBit.767627724" name="Allocate from lower bit" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.allocLowerBit" value="Lower bit" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.widthDivergence.1950840170" name="Width of divergence of function" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.widthDivergence" value="24 bit" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.patchCode.12062932" name="Patch code generation" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.patchCode" value="None" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.registerFastInterrupt.936233376" name="Fast interrupt register" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.registerFastInterrupt" value="None" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.ROM.695038388" name="ROM" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.ROM" value="None" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.RAM.1544552703" name="RAM" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.RAM" value="None" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.addressRegister.970641430" name="Address Register" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.addressRegister" value="None" valueType="enumerated"/>

+								<option id="com.renesas.cdt.renesas.Compiler.option.C.441900014" name="C :" superClass="com.renesas.cdt.renesas.Compiler.option.C" value="com.renesas.cdt.renesas.Compiler.option.C99" valueType="enumerated"/>

+								<option id="com.renesas.cdt.renesas.Compiler.option.incFileDirectories.1933791951" name="Include file directories" superClass="com.renesas.cdt.renesas.Compiler.option.incFileDirectories" valueType="includePath">

+									<listOptionValue builtIn="false" value="&quot;${INC_RX}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Common_Demo_Tasks/include}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/FreeRTOS_Source/include}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/FreeRTOS_Source/portable/Renesas/RX100}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_switches}&quot;"/>

+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RTOSDemo/Renesas_Files/r_switches/src}&quot;"/>

+								</option>

+								<option id="com.renesas.cdt.renesas.Compiler.option.CPUSeries.322057583" name="Cpu Series" superClass="com.renesas.cdt.renesas.Compiler.option.CPUSeries" value="RX111" valueType="string"/>

+								<option id="com.renesas.cdt.renesas.Compiler.option.UserDef.1497284878" name="User-defined options" superClass="com.renesas.cdt.renesas.Compiler.option.UserDef" valueType="stringList">

+									<listOptionValue builtIn="false" value="-nologo"/>

+									<listOptionValue builtIn="false" value="-change_message=warning"/>

+								</option>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpu.529811854" name="CPU" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpu" value="RX111" valueType="string"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.1070547061" name="Optimize level" superClass="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel" value="com.renesas.cdt.rxc.HardwareDebug.Compiler.option.optimizeLevel.0" valueType="enumerated"/>

+								<inputType id="%Base.Compiler.Shc.C.Input.Id.1298690760" name="C Input" superClass="%Base.Compiler.Shc.C.Input.Id"/>

+							</tool>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.assembler.Id.299640407" name="Assembler" outputFlag="-output=" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.assembler.Id">

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.cpu.371490144" name="CPU" superClass="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.cpu" value="RX100" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.endian.660114428" name="Data Endian" superClass="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.endian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.address.869973823" name="Address" superClass="com.renesas.cdt.rxc.HardwareDebug.Assembler.option.address" value="00000000" valueType="string"/>

+								<option id="com.renesas.cdt.renesas.Assembler.option.userDefine.1248628654" name="User-defined options" superClass="com.renesas.cdt.renesas.Assembler.option.userDefine" valueType="stringList">

+									<listOptionValue builtIn="false" value="-nologo"/>

+									<listOptionValue builtIn="false" value=""/>

+									<listOptionValue builtIn="false" value=""/>

+								</option>

+								<inputType id="%Base.Assembler.shcInputType.Id.1801607357" name="Assembler InputType" superClass="%Base.Assembler.shcInputType.Id"/>

+							</tool>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id.1083452385" name="Linker" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id">

+								<option id="com.renesas.cdt.renesas.Linker.option.userDefined.1041569977" name="User-defined options" superClass="com.renesas.cdt.renesas.Linker.option.userDefined" valueType="stringList">

+									<listOptionValue builtIn="false" value="-rom=D=R,D_1=R_1,D_2=R_2"/>

+									<listOptionValue builtIn="false" value="-nomessage"/>

+									<listOptionValue builtIn="false" value="-nologo"/>

+								</option>

+								<option id="com.renesas.cdt.renesas.Linker.option.showVector.1685941890" name="Show vector" superClass="com.renesas.cdt.renesas.Linker.option.showVector" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.renesas.Linker.option.showTotalSectionSize.684296766" name="Show total section size" superClass="com.renesas.cdt.renesas.Linker.option.showTotalSectionSize" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.renesas.Linker.option.showCrossReference.1722254828" name="Show cross-reference" superClass="com.renesas.cdt.renesas.Linker.option.showCrossReference" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.renesas.Linker.option.showReference.912872658" name="Show reference" superClass="com.renesas.cdt.renesas.Linker.option.showReference" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.renesas.Linker.option.showSymbol.382153207" name="Show symbol" superClass="com.renesas.cdt.renesas.Linker.option.showSymbol" value="true" valueType="boolean"/>

+								<option id="com.renesas.cdt.renesas.Linker.option.enableAll.1808678203" name="Enable all" superClass="com.renesas.cdt.renesas.Linker.option.enableAll" value="true" valueType="boolean"/>

+							</tool>

+							<tool command="lbgrx" id="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id.1500253254" name="Standard Library" superClass="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id">

+								<option id="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.cpu.1800175066" name="CPU" superClass="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.cpu" value="RX100" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian.392081833" name="Data Endian" superClass="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian" value="Little-endian data" valueType="enumerated"/>

+								<option id="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.address.1948593009" name="Address" superClass="com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.address" value="00000000" valueType="string"/>

+								<option id="com.renesas.cdt.renesas.StandardLibrary.option.libConfiguration.1111135642" name="Library configuration" superClass="com.renesas.cdt.renesas.StandardLibrary.option.libConfiguration" value="C99" valueType="enumerated"/>

+								<option id="com.renesas.cdt.renesas.StandardLibrary.option.mathc89.624663395" name="math.h (C89/C99): Mathematical/trigonometric operations (double-precision)" superClass="com.renesas.cdt.renesas.StandardLibrary.option.mathc89" value="false" valueType="boolean"/>

+							</tool>

+							<tool command="optlnk" id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id.340881453" name="Converter" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id"/>

+						</toolChain>

+					</folderInfo>

+					<folderInfo id="com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189.158419194" name="/" resourcePath="RTOSDemo/Renesas_Files/r_switches">

+						<toolChain id="com.renesas.cdt.rxc.hardwaredebug.win32.toolChain.Id.859624060" name="Renesas RXC Toolchain" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.toolChain.Id" unusedChildren="">

+							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="com.renesas.cdt.rxc.hardwaredebug.win32.targetPlatform.Id" isAbstract="false" osList="win32" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.targetPlatform.Id"/>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.compiler.Id.1029821514" name="Compiler" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.compiler.Id.486948393">

+								<inputType id="%Base.Compiler.Shc.C.Input.Id.43411981" name="C Input" superClass="%Base.Compiler.Shc.C.Input.Id"/>

+							</tool>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.assembler.Id.1012693747" name="Assembler" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.assembler.Id.299640407">

+								<inputType id="%Base.Assembler.shcInputType.Id.314236670" name="Assembler InputType" superClass="%Base.Assembler.shcInputType.Id"/>

+							</tool>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id.1484775969" name="Linker" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.linker.Id.1083452385"/>

+							<tool id="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id.1649982231" name="Standard Library" superClass="%com.renesas.cdt.rxc.hardwaredebug.win32.tool.libgen.Id.1500253254"/>

+							<tool id="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id.357794366" name="Converter" superClass="com.renesas.cdt.rxc.hardwaredebug.win32.tool.convertor.Id.340881453"/>

+						</toolChain>

+					</folderInfo>

+					<sourceEntries>

+						<entry excluding="RTOSDemo/Renesas_Files/r_sci_multi_ch|RTOSDemo/Renesas_Files/r_delay|RTOSDemo/OriginalDemo.c|r_sci_multi_ch|r_switches|src|r_bsp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>

+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>

+					</sourceEntries>

+				</configuration>

+			</storageModule>

+			<storageModule moduleId="scannerConfiguration">

+				<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>

+				<profile id="com.iar.cdt.v850.scanner.IAR_V850_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.v850.toolchain.scannerInfoProvider1">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="com.iar.cdt.rl78.scanner.IAR_RL78_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.rl78.toolchain.scannerInfoProviderRL78">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="com.iar.cdt.rx.scanner.IAR_RX_PerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="false" filePath=""/>

+						<parser enabled="false"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="com.iar.cdt.rx.toolchain.scannerInfoProviderRX">

+						<runAction arguments="" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="makefileGenerator">

+						<runAction arguments="-E -P -v -dD" command="" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">

+					<buildOutputProvider>

+						<openAction enabled="true" filePath=""/>

+						<parser enabled="true"/>

+					</buildOutputProvider>

+					<scannerInfoProvider id="specsFile">

+						<runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>

+						<parser enabled="true"/>

+					</scannerInfoProvider>

+				</profile>

+			</storageModule>

+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>

+			<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>

+			<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>

+		</cconfiguration>

+	</storageModule>

+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">

+		<project id="BSP111.com.renesas.cdt.rxc.projectType.win32.Id.1210290450" name="RenesasRXC" projectType="com.renesas.cdt.rxc.projectType.win32.Id"/>

+	</storageModule>

+</cproject>

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.info b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.info
new file mode 100644
index 0000000..0b75c11
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.info
@@ -0,0 +1,5 @@
+TOOL_CHAIN=Renesas RXC Toolchain
+VERSION=v1.02.01
+TC_INSTALL=C:\Devtools\Renesas\Hew\Tools\Renesas\RX\1_2_1\
+VERSION_IDE=3.06.02.080
+E2STUDIO_VERSION=1.1.1.7
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.project b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.project
new file mode 100644
index 0000000..33fd546
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.project
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>RTOSDemo_Renesas</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>com.renesas.cdt.core.genmakebuilder</name>

+			<arguments>

+				<dictionary>

+					<key>?name?</key>

+					<value></value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.append_environment</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>

+					<value>all</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildArguments</key>

+					<value></value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildCommand</key>

+					<value>make</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.buildLocation</key>

+					<value>${workspace_loc:/BSP111/HardwareDebug}</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>

+					<value>clean</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.contents</key>

+					<value>org.eclipse.cdt.make.core.configurationIds</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>

+					<value>false</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.enableFullBuild</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>

+					<value>all</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.stopOnError</key>

+					<value>true</value>

+				</dictionary>

+				<dictionary>

+					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>

+					<value>true</value>

+				</dictionary>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>

+			<triggers>full,incremental,</triggers>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>org.eclipse.cdt.core.cnature</nature>

+		<nature>com.renesas.cdt.core.kpitcnature</nature>

+		<nature>com.renesas.cdt.core.kpitccnature</nature>

+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>

+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>

+	</natures>

+</projectDescription>

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/Project_Generation_Prefrences.prefs b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/Project_Generation_Prefrences.prefs
new file mode 100644
index 0000000..73b6fd7
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/Project_Generation_Prefrences.prefs
@@ -0,0 +1,69 @@
+#Tue Nov 06 09:14:28 EST 2012

+com.renesas.cdt.renesas.Assembler.option.userDefine=-nologo;;;

+com.renesas.cdt.renesas.Compiler.option.C=com.renesas.cdt.renesas.Compiler.option.C99

+com.renesas.cdt.renesas.Compiler.option.UserDef=-nologo;-change_message\=warning;

+com.renesas.cdt.renesas.Compiler.option.incFileDirectories="C\:\\PROGRA~1\\Renesas\\Hew\\Tools\\Renesas\\RX\\1_2_0\\include";

+com.renesas.cdt.renesas.Linker.option.userDefined=-rom\=D\=R,D_1\=R_1,D_2\=R_2;-nomessage;-nologo;

+com.renesas.cdt.renesas.StandardLibrary.option.complexC99=false

+com.renesas.cdt.renesas.StandardLibrary.option.ctypec89=false

+com.renesas.cdt.renesas.StandardLibrary.option.fenvC99=false

+com.renesas.cdt.renesas.StandardLibrary.option.inttypesC99=false

+com.renesas.cdt.renesas.StandardLibrary.option.libConfiguration=C99

+com.renesas.cdt.renesas.StandardLibrary.option.mathc89=false

+com.renesas.cdt.renesas.StandardLibrary.option.mathfc89=false

+com.renesas.cdt.renesas.StandardLibrary.option.runtime=true

+com.renesas.cdt.renesas.StandardLibrary.option.rxccomplexCPP=false

+com.renesas.cdt.renesas.StandardLibrary.option.rxciosCPP=false

+com.renesas.cdt.renesas.StandardLibrary.option.rxcnewCPP=true

+com.renesas.cdt.renesas.StandardLibrary.option.rxcstringCPP=false

+com.renesas.cdt.renesas.StandardLibrary.option.stdargc89=false

+com.renesas.cdt.renesas.StandardLibrary.option.stdioc89=true

+com.renesas.cdt.renesas.StandardLibrary.option.stdlibc89=true

+com.renesas.cdt.renesas.StandardLibrary.option.stringc89=true

+com.renesas.cdt.renesas.StandardLibrary.option.wcharC99=false

+com.renesas.cdt.renesas.StandardLibrary.option.wctypeC99=false

+com.renesas.cdt.rxc.HardwareDebug.Assembler.option.endian=Little-endian data

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.RAM=None

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.ROM=None

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.address=00000000

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.addressRegister=None

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.allocLowerBit=Lower bit

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.cpuType=RX100

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.denormalized=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.endian=Little-endian data

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.enumSize=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.packStructures=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.patchCode=None

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.precisionDouble=Single precision

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.registerFastInterrupt=None

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.replaceFromIntWithShort=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.roundTo=Nearest

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signBitField=unsigned

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.signChar=unsigned

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.useDynamic=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.useTry=false

+com.renesas.cdt.rxc.HardwareDebug.Compiler.option.widthDivergence=24 bit

+com.renesas.cdt.rxc.HardwareDebug.StandardLibrary.option.endian=Little-endian data

+com.renesas.cdt.rxc.Release.Assembler.option.endian=Little-endian data

+com.renesas.cdt.rxc.Release.Compiler.option.RAM=None

+com.renesas.cdt.rxc.Release.Compiler.option.ROM=None

+com.renesas.cdt.rxc.Release.Compiler.option.address=00000000

+com.renesas.cdt.rxc.Release.Compiler.option.addressRegister=None

+com.renesas.cdt.rxc.Release.Compiler.option.allocLowerBit=Lower bit

+com.renesas.cdt.rxc.Release.Compiler.option.cpuType=RX100

+com.renesas.cdt.rxc.Release.Compiler.option.denormalized=false

+com.renesas.cdt.rxc.Release.Compiler.option.endian=Little-endian data

+com.renesas.cdt.rxc.Release.Compiler.option.enumSize=false

+com.renesas.cdt.rxc.Release.Compiler.option.packStructures=false

+com.renesas.cdt.rxc.Release.Compiler.option.patchCode=None

+com.renesas.cdt.rxc.Release.Compiler.option.precisionDouble=Single precision

+com.renesas.cdt.rxc.Release.Compiler.option.registerFastInterrupt=None

+com.renesas.cdt.rxc.Release.Compiler.option.replaceFromIntWithShort=false

+com.renesas.cdt.rxc.Release.Compiler.option.roundTo=Nearest

+com.renesas.cdt.rxc.Release.Compiler.option.signBitField=unsigned

+com.renesas.cdt.rxc.Release.Compiler.option.signChar=unsigned

+com.renesas.cdt.rxc.Release.Compiler.option.useDynamic=false

+com.renesas.cdt.rxc.Release.Compiler.option.useTry=false

+com.renesas.cdt.rxc.Release.Compiler.option.widthDivergence=24 bit

+com.renesas.cdt.rxc.Release.StandardLibrary.option.endian=Little-endian data

+eclipse.preferences.version=1

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/org.eclipse.cdt.managedbuilder.core.prefs
new file mode 100644
index 0000000..d3ebcda
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/.settings/org.eclipse.cdt.managedbuilder.core.prefs
@@ -0,0 +1,12 @@
+#Fri Nov 09 15:36:42 EST 2012

+eclipse.preferences.version=1

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/CPATH/delimiter=;

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/CPATH/operation=remove

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/C_INCLUDE_PATH/delimiter=;

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/C_INCLUDE_PATH/operation=remove

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/append=true

+environment/buildEnvironmentInclude/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/appendContributed=true

+environment/buildEnvironmentLibrary/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/LIBRARY_PATH/delimiter=;

+environment/buildEnvironmentLibrary/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/LIBRARY_PATH/operation=remove

+environment/buildEnvironmentLibrary/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/append=true

+environment/buildEnvironmentLibrary/com.renesas.cdt.rxc.hardwaredebug.win32.configuration.Id.287456189/appendContributed=true

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/BSP111.launch b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/BSP111.launch
new file mode 100644
index 0000000..03ec6f9
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/BSP111.launch
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<launchConfiguration type="com.renesas.cdt.launch.dsf.gdbremote.launchConfigurationType">

+<intAttribute key="com.renesas.cdt.core.admPortNumber" value="61236"/>

+<stringAttribute key="com.renesas.cdt.core.initCommands" value=""/>

+<stringAttribute key="com.renesas.cdt.core.ipAddress" value="localhost"/>

+<stringAttribute key="com.renesas.cdt.core.jtagDevice" value="E1"/>

+<booleanAttribute key="com.renesas.cdt.core.loadImage" value="true"/>

+<stringAttribute key="com.renesas.cdt.core.optionInitCommands" value=""/>

+<intAttribute key="com.renesas.cdt.core.portNumber" value="61234"/>

+<stringAttribute key="com.renesas.cdt.core.runCommands" value=""/>

+<stringAttribute key="com.renesas.cdt.core.serverParam" value="-g E1  -l 0 -t R5F51115  -p 61234 -d 61236 -uClockSrcHoco= 0 -uInputClock= 16.0000 -uAllowClockSourceInternal= 1 -uUseFine= 1 -uFineBaudRate= 2.00 -w 0 -z 0 -uRegisterSetting= 0 -uModePin= 0 -uDebugMode= 1 -uExecuteProgram= 0 -uIdCode= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -n 0 -uWorkRamAddress= 1000 -uProgReWriteIRom= 0 -uProgReWriteDFlash= 0"/>

+<booleanAttribute key="com.renesas.cdt.core.setResume" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.setStopAt" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.startServer" value="true"/>

+<stringAttribute key="com.renesas.cdt.core.stopAt" value="main"/>

+<stringAttribute key="com.renesas.cdt.core.targetDevice" value="R5F51115"/>

+<booleanAttribute key="com.renesas.cdt.core.useRemoteTarget" value="true"/>

+<booleanAttribute key="com.renesas.cdt.core.verboseMode" value="false"/>

+<stringAttribute key="com.renesas.cdt.launch.dsf.IO_MAP" value="${eclipse_home}..\internal\IoFiles\RX\RX111.sfrx"/>

+<booleanAttribute key="com.renesas.cdt.launch.dsf.USE_DEFAULT_IO_MAP" value="true"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.allow.clock.source.internal" value="true"/>

+<intAttribute key="com.renesas.hardwaredebug.e1.clock_source" value="0"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.connection.mode" value="1"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.e1_pwr" value="false"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.execute.program" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.external_memory" value=""/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.fine.baud.rate" value="2.00"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.flash_overwrite_blocks" value=""/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.hw_break" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.id_code" value="FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.inputclock" value="16.0000"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.clock.freq" value="16.5"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.jtag.or.fine" value="1"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.le" value="true"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.mode" value="0"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.mode_pin" value="0"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.prog_rewrite_dflash" value="false"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e1.prog_rewrite_irom" value="false"/>

+<stringAttribute key="com.renesas.hardwaredebug.e1.supply.voltage" value="3.3V"/>

+<intAttribute key="com.renesas.hardwaredebug.e1.work_ram_start" value="4096"/>

+<booleanAttribute key="com.renesas.hardwaredebug.e20.le" value="true"/>

+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="3"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>

+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>

+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>

+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${eclipse_home}../DebugComp/rx-elf-gdb"/>

+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="true"/>

+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>

+<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>

+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="HardwareDebug\BSP111.x"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="BSP111"/>

+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value=""/>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

+<listEntry value="/BSP111"/>

+</listAttribute>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

+<listEntry value="4"/>

+</listAttribute>

+<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#13;&#10;"/>

+</launchConfiguration>

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/CreateProjectDirectoryStructure.bat
new file mode 100644
index 0000000..b2261ea
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/CreateProjectDirectoryStructure.bat
@@ -0,0 +1,52 @@
+REM This file should be executed from the command line prior to the first

+REM build.  It will be necessary to refresh the Eclipse project once the

+REM .bat file has been executed (normally just press F5 to refresh).

+

+REM Copies all the required files from their location within the standard

+REM FreeRTOS directory structure to under the Eclipse project directory.

+REM This permits the Eclipse project to be used in 'managed' mode and without

+REM having to setup any linked resources.

+

+REM Standard paths

+SET FREERTOS_SOURCE=..\..\Source

+SET COMMON_SOURCE=..\Common\minimal

+SET COMMON_INCLUDE=..\Common\include

+

+REM Have the files already been copied?

+IF EXIST RTOSDemo\FreeRTOS_Source Goto END

+

+    REM Create the required directory structure.

+    MD RTOSDemo\FreeRTOS_Source

+	MD RTOSDemo\FreeRTOS_Source\include

+	MD RTOSDemo\FreeRTOS_Source\portable

+	MD RTOSDemo\FreeRTOS_Source\portable\MemMang

+	MD RTOSDemo\FreeRTOS_Source\portable\Renesas

+	MD RTOSDemo\FreeRTOS_Source\portable\Renesas\RX100

+    MD RTOSDemo\Common_Demo_Tasks

+	MD RTOSDemo\Common_Demo_Tasks\include

+

+    REM Copy the core kernel files into the project directory

+    copy %FREERTOS_SOURCE%\tasks.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\queue.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\list.c RTOSDemo\FreeRTOS_Source

+    copy %FREERTOS_SOURCE%\timers.c RTOSDemo\FreeRTOS_Source

+

+    REM Copy the common header files into the project directory

+    copy %FREERTOS_SOURCE%\include\*.* RTOSDemo\FreeRTOS_Source\include

+

+    REM Copy the portable layer files into the project directory

+    copy %FREERTOS_SOURCE%\portable\Renesas\RX100\*.* RTOSDemo\FreeRTOS_Source\portable\Renesas\RX100

+

+    REM Copy the memory allocation files into the project directory

+    copy %FREERTOS_SOURCE%\portable\MemMang\heap_4.c RTOSDemo\FreeRTOS_Source\portable\MemMang

+

+    REM Copy the files that define the common demo tasks.

+    copy %COMMON_SOURCE%\death.c           RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\blocktim.c        RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\GenQTest.c        RTOSDemo\Common_Demo_Tasks

+    copy %COMMON_SOURCE%\recmutex.c        RTOSDemo\Common_Demo_Tasks

+

+    REM Copy the common demo file headers.

+    copy %COMMON_INCLUDE%\*.h              RTOSDemo\Common_Demo_Tasks\include

+

+: END

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/FreeRTOSConfig.h
new file mode 100644
index 0000000..c29caee
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/FreeRTOSConfig.h
@@ -0,0 +1,188 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+

+/*

+ * The following #error directive is to remind users that a batch file must be

+ * executed prior to this project being built.  The batch file *cannot* be

+ * executed from within the IDE!  Once it has been executed, re-open or refresh

+ * the Eclipse project and remove the #error line below.

+ */

+//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building.  See comment immediately above.

+

+

+#ifndef FREERTOS_CONFIG_H

+#define FREERTOS_CONFIG_H

+

+/* Hardware specifics. */

+#include "platform.h"

+

+/*-----------------------------------------------------------

+ * Application specific definitions.

+ *

+ * These definitions should be adjusted for your particular hardware and

+ * application requirements.

+ *

+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE

+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.

+ *

+ * See http://www.freertos.org/a00110.html.

+ *----------------------------------------------------------*/

+

+/* DEMO SPECIFIC SETTING:

+ * Set configCREATE_LOW_POWER_DEMO to one to run the low power demo with tick

+ * suppression, or 0 to run the more comprehensive test and demo application.

+ * If configCREATE_LOW_POWER_DEMO is set to 1 then main() calls main_low_power().

+ * If configCREATE_LOW_POWER_DEMO is set to 0 then main() calls main_full().

+ */

+#define configCREATE_LOW_POWER_DEMO		1

+

+

+#define configUSE_PREEMPTION			1

+#define configUSE_TICKLESS_IDLE			configCREATE_LOW_POWER_DEMO

+#define configUSE_IDLE_HOOK				0

+#define configUSE_TICK_HOOK				0

+#define configCPU_CLOCK_HZ				( ICLK_HZ ) /* Set in mcu_info.h. */

+#define configPERIPHERAL_CLOCK_HZ		( PCLKB_HZ ) /* Set in muc_info.h. */

+#define configTICK_RATE_HZ				( ( portTickType ) 1000 )

+#define configMINIMAL_STACK_SIZE		( ( unsigned short ) 100 )

+#define configTOTAL_HEAP_SIZE			( ( size_t ) ( 9 * 1024 ) )

+#define configMAX_TASK_NAME_LEN			( 12 )

+#define configUSE_TRACE_FACILITY		1

+#define configUSE_16_BIT_TICKS			0

+#define configIDLE_SHOULD_YIELD			1

+#define configUSE_CO_ROUTINES 			0

+#define configUSE_MUTEXES				1

+#define configGENERATE_RUN_TIME_STATS	0

+#define configCHECK_FOR_STACK_OVERFLOW	2

+#define configUSE_RECURSIVE_MUTEXES		1

+#define configQUEUE_REGISTRY_SIZE		0

+#define configUSE_MALLOC_FAILED_HOOK	0

+#define configUSE_APPLICATION_TASK_TAG	0

+

+#define configMAX_PRIORITIES			( ( unsigned portBASE_TYPE ) 7 )

+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )

+

+/* Software timer definitions - only included when the demo is configured to

+build the full demo (as opposed to the low power demo). */

+#if configCREATE_LOW_POWER_DEMO == 1

+	#define configUSE_TIMERS				0

+#else

+	#define configUSE_TIMERS				1

+	#define configTIMER_TASK_PRIORITY		( 3 )

+	#define configTIMER_QUEUE_LENGTH		5

+	#define configTIMER_TASK_STACK_DEPTH	( configMINIMAL_STACK_SIZE )

+#endif /* configCREATE_LOW_POWER_DEMO */

+

+/* The interrupt priority used by the kernel itself for the tick interrupt and

+the pended interrupt.  This would normally be the lowest priority. */

+#define configKERNEL_INTERRUPT_PRIORITY         1

+

+/* The maximum interrupt priority from which FreeRTOS API calls can be made.

+Interrupts that use a priority above this will not be effected by anything the

+kernel is doing. */

+#define configMAX_SYSCALL_INTERRUPT_PRIORITY    4

+

+/* Set the following definitions to 1 to include the API function, or zero

+to exclude the API function. */

+

+#define INCLUDE_vTaskPrioritySet			1

+#define INCLUDE_uxTaskPriorityGet			1

+#define INCLUDE_vTaskDelete					1

+#define INCLUDE_vTaskCleanUpResources		0

+#define INCLUDE_vTaskSuspend				1

+#define INCLUDE_vTaskDelayUntil				1

+#define INCLUDE_vTaskDelay					1

+#define INCLUDE_uxTaskGetStackHighWaterMark	1

+#define INCLUDE_xTaskGetSchedulerState		1

+

+extern void vAssertCalled( void );

+#define configASSERT( x ) if( ( x ) == 0 ) vAssertCalled();

+

+/* The configPRE_SLEEP_PROCESSING() and configPOST_SLEEP_PROCESSING() macros

+allow the application writer to add additional code before and after the MCU is

+placed into the low power state respectively.  The implementations provided in

+this demo can be extended to save even more power - for example the analog

+input used by the low power demo could be switched off in the pre-sleep macro

+and back on again in the post sleep macro. */

+void vPreSleepProcessing( unsigned long xExpectedIdleTime );

+void vPostSleepProcessing( unsigned long xExpectedIdleTime );

+#define configPRE_SLEEP_PROCESSING( xExpectedIdleTime ) vPreSleepProcessing( xExpectedIdleTime );

+#define configPOST_SLEEP_PROCESSING( xExpectedIdleTime ) vPostSleepProcessing( xExpectedIdleTime );

+

+/* configTICK_VECTOR must be set to the interrupt vector used by the peripheral

+that generates the tick interrupt. */

+#define configTICK_VECTOR VECT_CMT0_CMI0

+

+#endif /* FREERTOS_CONFIG_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/ParTest.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/ParTest.c
new file mode 100644
index 0000000..827da19
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/ParTest.c
@@ -0,0 +1,200 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/*-----------------------------------------------------------

+ * Simple IO routines to control the LEDs.

+ *-----------------------------------------------------------*/

+

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Demo includes. */

+#include "partest.h"

+

+#define partestNUM_LEDS ( 4 )

+

+long lParTestGetLEDState( unsigned long ulLED );

+

+/*-----------------------------------------------------------*/

+

+void vParTestInitialise( void )

+{

+	/* Port pin configuration is done by the low level set up prior to this

+	function being called. */

+}

+/*-----------------------------------------------------------*/

+

+void vParTestSetLED( unsigned long ulLED, signed long xValue )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		if( xValue != 0 )

+		{

+			/* Turn the LED on. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_ON;

+							break;

+					case 1:	LED1 = LED_ON;

+							break;

+					case 2:	LED2 = LED_ON;

+							break;

+					case 3:	LED3 = LED_ON;

+							break;

+				}

+			}

+			taskEXIT_CRITICAL();

+		}

+		else

+		{

+			/* Turn the LED off. */

+			taskENTER_CRITICAL();

+			{

+				switch( ulLED )

+				{

+					case 0:	LED0 = LED_OFF;

+							break;

+					case 1:	LED1 = LED_OFF;

+							break;

+					case 2:	LED2 = LED_OFF;

+							break;

+					case 3:	LED3 = LED_OFF;

+							break;

+				}

+

+			}

+			taskEXIT_CRITICAL();

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vParTestToggleLED( unsigned long ulLED )

+{

+	if( ulLED < partestNUM_LEDS )

+	{

+		taskENTER_CRITICAL();

+		{

+			if( lParTestGetLEDState( ulLED ) != 0x00 )

+			{

+				vParTestSetLED( ulLED, 0 );

+			}

+			else

+			{

+				vParTestSetLED( ulLED, 1 );

+			}

+		}

+		taskEXIT_CRITICAL();

+	}

+}

+/*-----------------------------------------------------------*/

+

+long lParTestGetLEDState( unsigned long ulLED )

+{

+long lReturn = pdTRUE;

+

+	if( ulLED < partestNUM_LEDS )

+	{

+		switch( ulLED )

+		{

+			case 0	:	if( LED0 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 1	:	if( LED1 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 2	:	if( LED2 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+			case 3	:	if( LED3 != 0 )

+						{

+							lReturn =  pdFALSE;

+						}

+						break;

+		}

+	}

+

+	return lReturn;

+}

+/*-----------------------------------------------------------*/

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/dbsct.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/dbsct.c
new file mode 100644
index 0000000..b92493a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/dbsct.c
@@ -0,0 +1,83 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : dbsct.c

+* Device(s)	   : RX

+* Description  : Defines the structure of the ROM and RAM areas.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 26.10.2011 1.00     First Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Defines type structures used in this file */
+#include <stdint.h>
+
+/* Preprocessor directive */
+#pragma unpack
+
+/* Section start */
+#pragma section C C$DSEC
+
+/* MCU ROM and RAM structure definition */
+extern const struct {
+    uint8_t *rom_s;       /* Start address of the initialized data section in ROM */
+    uint8_t *rom_e;       /* End address of the initialized data section in ROM   */
+    uint8_t *ram_s;       /* Start address of the initialized data section in RAM */
+}   _DTBL[] = {
+    { __sectop("D"), __secend("D"), __sectop("R") },
+    { __sectop("D_2"), __secend("D_2"), __sectop("R_2") },
+    { __sectop("D_1"), __secend("D_1"), __sectop("R_1") }
+};
+
+/* Section start */
+#pragma section C C$BSEC
+
+/* MCU ROM and RAM structure definition */
+extern const struct {
+    uint8_t *b_s;         /* Start address of non-initialized data section */
+    uint8_t *b_e;         /* End address of non-initialized data section */
+}   _BTBL[] = {
+    { __sectop("B"), __secend("B") },
+    { __sectop("B_2"), __secend("B_2") },
+    { __sectop("B_1"), __secend("B_1") }
+};
+
+/* Section start */
+#pragma section
+
+/* CTBL prevents excessive output of L1100 messages when linking.
+   Even if CTBL is deleted, the operation of the program does not change. */
+uint8_t * const _CTBL[] = {
+    __sectop("C_1"), __sectop("C_2"), __sectop("C"),
+    __sectop("W_1"), __sectop("W_2"), __sectop("W")
+};
+
+/* Preprocessor directive */
+#pragma packoption
+

+/* This is to ensure compatibility with new L section in version 1.1 and up of the RXC compiler.  Do not remove! */

+#pragma section C L

+const unsigned long deadSpace = 0xDEADDEAD;

+#pragma section   

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.c
new file mode 100644
index 0000000..3ba6ce5
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.c
@@ -0,0 +1,149 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : hwsetup.c

+* Device(s)    : RX

+* H/W Platform : RSKRX210

+* Description  : Defines the initialization routines used each time the MCU is restarted.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* I/O Register and board definitions */

+#include "platform.h"

+/* Contains delcarations for the functions defined in this file */
+#include "hwsetup.h"

+#include "r_switches_config.h"

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+/* MCU I/O port configuration function delcaration */
+static void output_ports_configure(void);

+
+/* Interrupt configuration function delcaration */
+static void interrupts_configure(void);

+
+/* MCU peripheral module configuration function declaration */
+static void peripheral_modules_enable(void);
+
+
+/***********************************************************************************************************************

+* Function name: hardware_setup

+* Description  : Contains setup functions called at device restart

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void hardware_setup(void)
+{
+    output_ports_configure();
+    interrupts_configure();
+    peripheral_modules_enable();
+}
+
+/***********************************************************************************************************************

+* Function name: output_ports_configure
+* Description  : Configures the port and pin direction settings, and sets the pin outputs to a safe level.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void output_ports_configure(void)
+{
+    /* Enable LEDs. */

+    /* Start with LEDs off. */

+    LED0 = LED_OFF;

+    LED1 = LED_OFF;

+    LED2 = LED_OFF;

+    LED3 = LED_OFF;

+

+    /* Set LED pins as outputs. */

+    LED0_PDR = 1;

+    LED1_PDR = 1;

+    LED2_PDR = 1;

+    LED3_PDR = 1;

+

+    /* Enable switches. */

+    /* Set pins as inputs. */

+    SW1_PDR = 0;

+    SW2_PDR = 0;

+    SW3_PDR = 0;

+

+    /* Set port mode registers for switches. */

+    SW1_PMR = 0;

+    SW2_PMR = 0;

+    SW3_PMR = 0;

+

+    /* Unlock MPC registers to enable writing to them. */

+    MPC.PWPR.BIT.B0WI = 0 ;     /* Unlock protection register */

+    MPC.PWPR.BIT.PFSWE = 1 ;    /* Unlock MPC registers */

+

+    /* TXD1 is output. */

+    PORT1.PDR.BIT.B6 = 1;

+    PORT1.PMR.BIT.B6 = 1;

+    MPC.P16PFS.BYTE  = 0x0A;

+    /* RXD1 is input. */

+    PORT1.PDR.BIT.B5 = 0;

+    PORT1.PMR.BIT.B5 = 1;

+    MPC.P15PFS.BYTE  = 0x0A;

+

+    /* Configure the pin connected to the ADC Pot as an input */

+    PORT4.PDR.BIT.B4 = 0;

+

+    /* Protect off. */

+    SYSTEM.PRCR.WORD = 0xA50B;

+

+    /* Turn off module stop for the A2D converter. */

+    SYSTEM.MSTPCRA.BIT.MSTPA17 = 0;

+

+    /* Protect on. */

+    SYSTEM.PRCR.WORD = 0xA500;

+

+    /* Initialise the first button to generate an interrupt. */

+    R_SWITCHES_Init();

+}
+
+/***********************************************************************************************************************

+* Function name: interrupts_configure

+* Description  : Configures interrupts used

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void interrupts_configure(void)
+{

+    /* Add code here to setup additional interrupts */

+}
+
+/***********************************************************************************************************************

+* Function name: peripheral_modules_enable

+* Description  : Enables and configures peripheral devices on the MCU

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void peripheral_modules_enable(void)
+{

+	/* Enable triggers to start an ADC conversion. */
+	S12AD.ADCSR.BIT.TRGE = 1;

+

+	/* Only channel 4 is going to be used. */

+	S12AD.ADANSA.BIT.ANSA4 = 1;

+}
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.h
new file mode 100644
index 0000000..35e0686
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/hwsetup.h
@@ -0,0 +1,42 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : hwsetup.h

+* Description  : Hardware setup header file.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 26.10.2011 1.00     First Release

+***********************************************************************************************************************/

+
+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* Multiple inclusion prevention macro */
+#ifndef HWSETUP_H
+#define HWSETUP_H
+
+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+/* Hardware setup funtion declaration */
+void hardware_setup(void);
+
+/* End of multiple inclusion prevention macro */
+#endif
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c
new file mode 100644
index 0000000..a012802
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.c
@@ -0,0 +1,254 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.c

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+
+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Processor-specific details */
+#include <machine.h>
+/* Standard string manipulation & formatting functions */
+#include <stdio.h>
+#include <string.h>
+/* Defines standard variable types used in this function */
+#include <stdint.h>

+/* Bring in board includes. */

+#include "platform.h"
+/* Following header file provides function prototypes for LCD controlling functions & macro defines */
+#include "lcd.h"
+
+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs);

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value);

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value);

+
+/***********************************************************************************************************************
+* Function name : lcd_initialize
+* Description   : Initializes the LCD display. 
+* Arguments     : none
+* Return Value  : none
+***********************************************************************************************************************/

+void lcd_initialize(void)
+{

+    /* Set LCD data pins as outputs. */

+    PORT4.PDR.BYTE |= 0x0F;

+    

+    /* Set LCD control pins as outputs. */

+    RS_PIN_DDR = 1;

+    E_PIN_DDR = 1;

+	

+	/* Power Up Delay for the LCD Module */   	

+    lcd_delay(50000000);

+

+	/* Display initialises in 8 bit mode - so send one write (seen as 8 bit) to set to 4 bit mode. */

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+    lcd_delay(5000000);

+	lcd_nibble_write(CTRL_WR, 0x03);

+	lcd_delay(5000000);

+    

+	/* Function Set */

+	lcd_nibble_write(CTRL_WR, 0x02);

+    lcd_delay(39000);    

+	lcd_nibble_write(CTRL_WR, 0x02);

+	lcd_nibble_write(CTRL_WR, (LCD_DISPLAY_ON | LCD_TWO_LINE ));

+    lcd_delay(39000);    

+ 

+	/* Display ON/OFF control */

+	lcd_write(CTRL_WR, LCD_CURSOR_OFF);

+    lcd_delay(39000);

+

+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);

+

+	/* Entry Mode Set */

+	lcd_write(CTRL_WR, 0x06);

+    lcd_delay(39000);

+

+    /* Home the cursor */

+	lcd_write(CTRL_WR, LCD_HOME_L1);

+    lcd_delay(5000000);    

+}
+
+/***********************************************************************************************************************
+* Function name : lcd_clear
+* Description   : Clears the LCD
+* Arguments     : none
+* Return Value  : none
+***********************************************************************************************************************/
+void lcd_clear(void)
+{
+	/* Display Clear */

+	lcd_write(CTRL_WR, LCD_CLEAR);

+    lcd_delay(2000000);    

+}
+
+/***********************************************************************************************************************
+* Function name : lcd_display
+* Description   : This function controls LCD writes to line 1 or 2 of the LCD.

+*                 You need to use the defines LCD_LINE1 and LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello")
+* Arguments     : position - 

+*                     Line number of display
+*                 string - 

+*                     Pointer to null terminated string
+* Return Value  : none
+***********************************************************************************************************************/
+void lcd_display(uint8_t position, uint8_t const * string)
+{
+	/* Declare next position variable */

+	static uint8_t next_pos = 0xFF;

+	

+	/* Set line position if needed. We don't want to if we don't need to because LCD control operations take longer 

+       than LCD data operations. */

+	if (next_pos != position)

+	{

+		if(position < LCD_LINE2)

+		{

+			/* Display on Line 1 */

+		  	lcd_write(CTRL_WR, ((uint8_t)(LCD_HOME_L1 + position)));

+		}

+		else

+		{

+			/* Display on Line 2 */

+		  	lcd_write(CTRL_WR, ((uint8_t)((LCD_HOME_L2 + position) - LCD_LINE2)));

+		}

+

+        lcd_delay(39000);

+

+		/* set position index to known value */

+		next_pos = position;		

+	}

+

+	do

+	{

+        /* Write character to LCD. */

+		lcd_write(DATA_WR,*string++);

+

+        lcd_delay(43000);

+		

+		/* Increment position index */

+		next_pos++;				

+	} 

+	while(*string);	

+}

+
+/***********************************************************************************************************************

+* Function name : lcd_delay

+* Description   : Implements LCD required delays.

+* Arguments     : nsecs - 

+*                     Number of nanoseconds to delay. RX111 has max clock of 32MHz which gives a cycle time of 31.3ns.

+*                     This means that nothing under 313ns should be input. 313ns would be 10 cycles which is still

+*                     being optimistic for getting in and out of this function.

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_delay(volatile int32_t nsecs)

+{

+    while (0 < nsecs)

+    {

+        /* Subtract off 10 cycles per iteration. This number was obtained when using the Renesas toolchain at 

+           optimization level 2. The number to nanoseconds to subtract off below is calculated off of the ICLK speed. */

+        nsecs -= (int32_t)((313.0)*(32000000.0/(float)ICLK_HZ));

+    }

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_nibble_write

+* Description   : Writes data to display. Sends command to display. 

+* Arguments     : value - 

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_nibble_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Set Register Select pin high for Data */

+	if (data_or_ctrl == DATA_WR)

+	{

+        /* Data write. */

+        RS_PIN = 1;

+	}

+	else

+	{

+        /* Control write. */

+        RS_PIN = 0;

+	}

+	

+	/* tsu1 delay */

+    lcd_delay(60);    

+	

+  	/* EN enable chip (HIGH) */

+    E_PIN = 1;    

+	

+	/* Output the data */

+    PORT4.PODR.BYTE = (value & 0x0F);

+	

+	/* tw delay */	            

+    lcd_delay(450);    

+	

+	/* Latch data by dropping E */		

+    E_PIN = 0;

+	

+	/* th2 delay */				

+    lcd_delay(10);

+	

+	/* tc delay */

+    lcd_delay(480);

+}

+

+/***********************************************************************************************************************

+* Function name : lcd_write

+* Description   : This function controls LCD writes to line 1 or 2 of the LCD. You need to use the defines LCD_LINE1 and 

+*                 LCD_LINE2 in order to specify the starting position.

+*				  For example, to start at the 2nd position on line 1...

+*				   		lcd_display(LCD_LINE1 + 1, "Hello") 

+* Arguments     : value - 

+*                     The value to write

+*                 data_or_ctrl -

+*                     Whether to write data or control.

+*                     1 = DATA

+*                     0 = CONTROL

+* Return Value  : none

+***********************************************************************************************************************/

+static void lcd_write(uint8_t data_or_ctrl, uint8_t value)

+{

+	/* Write upper nibble first */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)((value & 0xF0) >> 4));

+	

+	/* Write lower nibble second */

+	lcd_nibble_write(data_or_ctrl, (uint8_t)(value & 0x0F));

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h
new file mode 100644
index 0000000..0c7ee08
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lcd.h
@@ -0,0 +1,101 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lcd.h

+* Device(s)    : RX

+* H/W Platform : RSKRX111

+* Description  : Provides variable and function declarations for lcd.c file

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/* Multiple inclusion prevention macro */
+#ifndef LCD_H
+#define LCD_H
+
+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/
+/* Defines standard integer variable types used in this file */
+#include <stdint.h>
+
+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* RS register select pin */

+#define RS_PIN      PORTC.PODR.BIT.B5

+#define RS_PIN_DDR  PORTC.PDR.BIT.B5

+/* Display enable pin */	

+#define E_PIN       PORTB.PODR.BIT.B1

+#define E_PIN_DDR   PORTB.PDR.BIT.B1

+/* Data write/read definition */ 

+#define DATA_WR 1

+/* Control write/read definition */

+#define CTRL_WR 0

+/* Maximum characters per line of LCD display. */	

+#define NUMB_CHARS_PER_LINE	8

+/* Number of lines on the LCD display */

+#define MAXIMUM_LINES		2		

+/* Character position of LCD line 1 */

+#define LCD_LINE1 0

+/* Character position of LCD line 2 */

+#define LCD_LINE2 16

+/* Clear LCD display and home cursor */

+#define LCD_CLEAR        0x01

+/* Move cursor to line 1 */

+#define LCD_HOME_L1      0x80

+/* Move cursor to line 2 */      

+#define LCD_HOME_L2      0xC0

+/* Cursor auto decrement after R/W */  

+#define CURSOR_MODE_DEC  0x04

+/* Cursor auto increment after R/W */

+#define CURSOR_MODE_INC  0x06

+/* Setup, 4 bits,2 lines, 5X7 */

+#define FUNCTION_SET     0x28

+/* Display ON with Cursor */

+#define LCD_CURSOR_ON    0x0E

+/* Display ON with Cursor off */

+#define LCD_CURSOR_OFF   0x0C

+/* Display on with blinking cursor */

+#define LCD_CURSOR_BLINK 0x0D

+/* Move Cursor Left One Position */

+#define LCD_CURSOR_LEFT  0x10

+/* Move Cursor Right One Position */

+#define LCD_CURSOR_RIGHT 0x14     

+/* Enable LCD display */

+#define LCD_DISPLAY_ON   0x04

+/* Enable both LCD lines */

+#define LCD_TWO_LINE     0x08

+
+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+/* LCD initialisation function declaration */
+void lcd_initialize (void);

+
+/* Update display function declaration */
+void lcd_display(uint8_t position, uint8_t const * string);

+
+/* Clear LCD function delcaration */
+void lcd_clear (void);
+
+/* End of multiple inclusion prevention macro */
+#endif
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.c
new file mode 100644
index 0000000..0e9e0ff
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.c
@@ -0,0 +1,118 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : locking.c

+* Description  : This implements a locking mechanism that can be used by all code. The locking is done atomically so

+*                common resources can be accessed safely.

+***********************************************************************************************************************/

+/**********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 07.03.2012 1.00     First Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Fixed-size integer typedefs. */

+#include <stdint.h>

+/* bool support. */

+#include <stdbool.h>

+/* Has intrinsic support. Includes xchg() which is used in this code. */

+#include <machine.h>

+/* Includes board and MCU related header files. */

+#include "platform.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Typedef definitions

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Exported global variables (to be accessed by other files)

+***********************************************************************************************************************/

+ 

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+* Function Name: R_BSP_Lock

+* Description  : Attempt to acquire the lock that has been sent in.

+* Arguments    : plock -

+*                    Pointer to lock structure with lock to try and acquire.

+* Return Value : true -

+*                    Lock was acquired.

+*                false -

+*                    Lock was not acquired.

+***********************************************************************************************************************/

+bool R_BSP_Lock(bsp_lock_t * plock)

+{

+    bool ret = false;

+

+    /* Variable used in trying to acquire lock. Using the xchg instruction makes this atomic */

+    int32_t is_locked = true;

+    

+    /* This example uses the RX MCU's atomic xchg() instruction. plock->lock is the lock we are trying to reserve. 

+       The way this works is that 'is_locked' gets the value of the plock->lock and plock->lock gets the value of 

+       'is_locked' which we just set to 'true'. Basically this is an atomic 'swap' command. If the lock had not yet been 

+       reserved then its value would be 'false' and after the xchg() instruction finished 'is_locked' would have 

+       'false'. If it had already been reserved then 'is_locked' would have 'true' after the xchg() instruction. Since 

+       plock->lock was already 'true' and we just set it back to 'true' everything is ok. To see if we reserved the lock 

+       we just need to check the value of 'is_locked' after this instruction finishes. */

+

+    /* Try to acquire semaphore to obtain lock */

+    xchg(&is_locked, &plock->lock);

+    

+    /* Check to see if semaphore was successfully taken */

+    if (is_locked == false)

+    {        

+        /* Lock obtained, return success. */

+        ret = true;

+    }

+    else

+    {

+        /* Lock was not obtained, another task already has it. */

+    }

+

+    return ret;   

+} /* End of function R_BSP_Lock() */

+

+

+/***********************************************************************************************************************

+* Function Name: R_BSP_Unlock

+* Description  : Release hold on lock.

+* Arguments    : plock -

+*                    Pointer to lock structure with lock to release.

+* Return Value : true -

+*                    Lock was released.

+*                false -

+*                    Lock was not released.

+***********************************************************************************************************************/

+bool R_BSP_Unlock(bsp_lock_t * plock)

+{

+    /* Set lock back to unlocked. */

+    plock->lock = false;

+

+    return true;

+} /* End of function R_BSP_Unlock() */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.h
new file mode 100644
index 0000000..454ce47
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/locking.h
@@ -0,0 +1,63 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : locking.h

+* Description  : This implements a locking mechanism that can be used by all code. The locking is done atomically so

+*                common resources can be accessed safely.

+***********************************************************************************************************************/

+/**********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 07.03.2012 1.00     First Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Fixed-size integer typedefs. */

+#include <stdint.h>

+/* bool support. */

+#include <stdbool.h>

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Typedef definitions

+***********************************************************************************************************************/

+typedef struct

+{

+    /* The actual lock. int32_t is used because this is what the xchg() instruction takes as parameters. */

+    int32_t     lock;

+    /* Could add a ID for locking and unlocking. In this could protect against any function being able to unlock. */

+} bsp_lock_t;

+

+/***********************************************************************************************************************

+Exported global variables

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+bool R_BSP_Lock(bsp_lock_t * plock);

+bool R_BSP_Unlock(bsp_lock_t * plock);

+

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowlvl.src b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowlvl.src
new file mode 100644
index 0000000..a75845e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowlvl.src
@@ -0,0 +1,54 @@
+;-----------------------------------------------------------------------

+;

+; FILE :lowlvl.src

+; DATE :Wed, Jul 01, 2009

+; DESCRIPTION :Program of Low level

+; CPU TYPE :RX

+;

+;-----------------------------------------------------------------------

+                .GLB    _charput

+                .GLB    _charget

+

+FC2E0           .EQU    00084080h

+FE2C0           .EQU    00084090h

+DBGSTAT         .EQU    000840C0h

+RXFL0EN         .EQU    00001000h

+TXFL0EN         .EQU    00000100h

+

+                .SECTION P,CODE

+

+;-----------------------------------------------------------------------

+; _charput:

+;-----------------------------------------------------------------------

+_charput:

+                .STACK  _charput = 00000000h

+__C2ESTART:     MOV.L   #TXFL0EN,R3

+                MOV.L   #DBGSTAT,R4

+__TXLOOP:       MOV.L   [R4],R5

+                AND     R3,R5

+                BNZ     __TXLOOP

+__WRITEFC2E0:   MOV.L   #FC2E0,R2

+                MOV.L   R1,[R2]

+__CHARPUTEXIT:  RTS

+

+;-----------------------------------------------------------------------

+; _charget:

+;-----------------------------------------------------------------------

+_charget:

+                .STACK  _charget = 00000000h

+__E2CSTART:     MOV.L   #RXFL0EN,R3

+                MOV.L   #DBGSTAT,R4

+__RXLOOP:       MOV.L   [R4],R5

+                AND     R3,R5

+                BZ      __RXLOOP

+__READFE2C0:    MOV.L   #FE2C0,R2

+                MOV.L   [R2],R1

+__CHARGETEXIT:  RTS

+

+;-----------------------------------------------------------------------

+

+; End of conditional code

+                .END

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowsrc.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowsrc.c
new file mode 100644
index 0000000..ad9f32c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/lowsrc.c
@@ -0,0 +1,332 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : lowsrc.c

+* Description  : Functions to support stream I/O

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 26.10.2011 1.00     First Release

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+#include <string.h>

+#include <stdio.h>

+#include <stddef.h>

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/*Number of I/O Stream*/
+#define IOSTREAM 20
+
+/* file number */

+#define STDIN  0                    /* Standard input (console)        */

+#define STDOUT 1                    /* Standard output (console)       */

+#define STDERR 2                    /* Standard error output (console) */

+

+#define FLMIN  0                    /* Minimum file number     */

+#define _MOPENR	0x1

+#define _MOPENW	0x2

+#define _MOPENA	0x4

+#define _MTRUNC	0x8

+#define _MCREAT	0x10

+#define _MBIN	0x20

+#define _MEXCL	0x40

+#define _MALBUF	0x40

+#define _MALFIL	0x80

+#define _MEOF	0x100

+#define _MERR	0x200

+#define _MLBF	0x400

+#define _MNBF	0x800

+#define _MREAD	0x1000

+#define _MWRITE	0x2000

+#define _MBYTE	0x4000

+#define _MWIDE	0x8000

+/* File Flags */

+#define O_RDONLY 0x0001 /* Read only                                       */

+#define O_WRONLY 0x0002 /* Write only                                      */

+#define O_RDWR   0x0004 /* Both read and Write                             */

+#define O_CREAT  0x0008 /* A file is created if it is not existed          */

+#define O_TRUNC  0x0010 /* The file size is changed to 0 if it is existed. */

+#define O_APPEND 0x0020 /* The position is set for next reading/writing    */

+                        /* 0: Top of the file 1: End of file               */

+

+/* Special character code */

+#define CR 0x0d                     /* Carriage return */

+#define LF 0x0a                     /* Line feed       */

+

+#if defined( __RX )

+const long _nfiles = IOSTREAM; /* The number of files for input/output files */

+#else

+const int _nfiles = IOSTREAM;  /* The number of files for input/output files */

+#endif

+char flmod[IOSTREAM];          /* The location for the mode of opened file.  */

+

+unsigned char sml_buf[IOSTREAM];

+

+#define FPATH_STDIN     "C:\\stdin"

+#define FPATH_STDOUT    "C:\\stdout"

+#define FPATH_STDERR    "C:\\stderr"

+

+/* H8 Normal mode ,SH and RX */

+#if defined( __2000N__ ) || defined( __2600N__ ) || defined( __300HN__ ) || defined( _SH )

+/* Output one character to standard output */

+extern void charput(char);

+/* Input one character from standard input */

+extern char charget(void);

+/* Output one character to the file        */

+extern char fcharput(char, unsigned char);

+/* Input one character from the file       */

+extern char fcharget(char*, unsigned char);

+/* Open the file */

+extern char fileopen(char*, unsigned char, unsigned char*);

+/* Close the file */

+extern char fileclose(unsigned char);

+/* Move the file offset */

+extern char fpseek(unsigned char, long, unsigned char);

+/* Get the file offset */

+extern char fptell(unsigned char, long*);

+

+/* RX */

+#elif defined( __RX )

+/* Output one character to standard output */

+extern void charput(unsigned char);

+/* Input one character from standard input */

+extern unsigned char charget(void);

+

+/* H8 Advanced mode */

+#elif defined( __2000A__ ) || defined( __2600A__ ) || defined( __300HA__ ) || defined( __H8SXN__ ) || defined( __H8SXA__ ) || defined( __H8SXM__ ) || defined( __H8SXX__ )

+/* Output one character to standard output */

+extern void charput(char);

+/* Input one character from standard input */

+extern char charget(void);

+/* Output one character to the file        */

+extern char fcharput(char, unsigned char);

+/* Input one character from the file       */

+extern char fcharget(char*, unsigned char);

+/* Open the file */

+/* Specified as the number of register which stored paramter is 3 */

+extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);

+/* Close the file */

+extern char fileclose(unsigned char);

+/* Move the file offset */

+extern char fpseek(unsigned char, long, unsigned char);

+/* Get the file offset */

+extern char fptell(unsigned char, long*);

+

+/* H8300 and H8300L */

+#elif defined( __300__ ) || defined( __300L__ )

+/* Output one character to standard output */

+extern void charput(char);

+/* Input one character from standard input */

+extern char charget(void);

+/* Output one character to the file        */

+extern char fcharput(char, unsigned char);

+/* Input one character from the file       */

+extern char fcharget(char*, unsigned char);

+/* Open the file */

+/* Specified as the number of register which stored paramter is 3 */

+extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);

+/* Close the file */

+extern char fileclose(unsigned char);

+/* Move the file offset */

+/* Move the file offset */

+extern char __regparam3 fpseek(unsigned char, long, unsigned char);

+/* Get the file offset */

+extern char fptell(unsigned char, long*);

+#endif

+

+#include <stdio.h>

+FILE *_Files[IOSTREAM]; // structure for FILE

+char *env_list[] = {            // Array for environment variables(**environ)

+    "ENV1=temp01",

+    "ENV2=temp02",

+    "ENV9=end",

+    '\0'                        // Terminal for environment variables

+};

+

+char **environ = env_list;

+

+/****************************************************************************/

+/* _INIT_IOLIB                                                              */

+/*  Initialize C library Functions, if necessary.                           */

+/*  Define USES_SIMIO on Assembler Option.                                  */

+/****************************************************************************/

+void _INIT_IOLIB( void )

+{

+    /* A file for standard input/output is opened or created. Each FILE     */

+    /* structure members are initialized by the library. Each _Buf member   */

+    /* in it is re-set the end of buffer pointer.                           */

+

+    /* Standard Input File                                                  */

+    if( freopen( FPATH_STDIN, "r", stdin ) == NULL )

+        stdin->_Mode = 0xffff;  /* Not allow the access if it fails to open */

+    stdin->_Mode  = _MOPENR;            /* Read only attribute              */

+    stdin->_Mode |= _MNBF;              /* Non-buffering for data           */

+    stdin->_Bend = stdin->_Buf + 1;  /* Re-set pointer to the end of buffer */

+

+    /* Standard Output File                                                 */

+    if( freopen( FPATH_STDOUT, "w", stdout ) == NULL ) 

+        stdout->_Mode = 0xffff; /* Not allow the access if it fails to open */

+    stdout->_Mode |= _MNBF;             /* Non-buffering for data           */

+    stdout->_Bend = stdout->_Buf + 1;/* Re-set pointer to the end of buffer */

+    

+    /* Standard Error File                                                  */

+    if( freopen( FPATH_STDERR, "w", stderr ) == NULL )

+        stderr->_Mode = 0xffff; /* Not allow the access if it fails to open */

+    stderr->_Mode |= _MNBF;             /* Non-buffering for data           */

+    stderr->_Bend = stderr->_Buf + 1;/* Re-set pointer to the end of buffer */

+}

+

+/****************************************************************************/

+/* _CLOSEALL                                                                */

+/****************************************************************************/

+void _CLOSEALL( void )

+{

+    long i;

+

+    for( i=0; i < _nfiles; i++ )

+    {

+        /* Checks if the file is opened or not                               */

+        if( _Files[i]->_Mode & (_MOPENR | _MOPENW | _MOPENA ) )

+        fclose( _Files[i] );    /* Closes the file                           */

+    }

+}

+

+/**************************************************************************/

+/*       open:file open                                                   */

+/*          Return value:File number (Pass)                               */

+/*                       -1          (Failure)                            */

+/**************************************************************************/

+#if defined( __RX )

+long open(const char *name,                  /* File name                 */

+     long  mode,                             /* Open mode                 */

+     long  flg)                              /* Open flag                 */

+#else

+int open(char *name,                         /* File name                 */

+     int  mode,                              /* Open mode                 */

+     int  flg)                               /* Open flag                 */

+#endif

+{

+

+

+    if( strcmp( name, FPATH_STDIN ) == 0 )      /* Standard Input file?   */

+    {

+        if( ( mode & O_RDONLY ) == 0 ) return -1;

+        flmod[STDIN] = mode;

+        return STDIN;

+    }

+    else if( strcmp( name, FPATH_STDOUT ) == 0 )/* Standard Output file?  */

+    {

+        if( ( mode & O_WRONLY ) == 0 ) return -1;

+        flmod[STDOUT] = mode;

+        return STDOUT;

+    }

+    else if(strcmp(name, FPATH_STDERR ) == 0 )  /* Standard Error file?   */

+    {

+        if( ( mode & O_WRONLY ) == 0 ) return -1;

+        flmod[STDERR] = mode;

+        return STDERR;

+    }

+    else return -1;                             /*Others                  */

+}

+

+#if defined( __RX )

+long close( long fileno )

+#else

+int close( int fileno )

+#endif

+{

+    return 1;

+}

+

+/**************************************************************************/

+/* write:Data write                                                       */

+/*  Return value:Number of write characters (Pass)                        */

+/*               -1                         (Failure)                     */

+/**************************************************************************/

+#if defined( __RX )

+long write(long  fileno,             /* File number                       */

+      const unsigned char *buf,       /* The address of destination buffer */

+      long  count)                   /* The number of chacter to write    */

+#else

+int write(int  fileno,               /* File number                       */

+      char *buf,                     /* The address of destination buffer */

+      int  count)                    /* The number of chacter to write    */

+#endif

+{

+    long    i;                          /* A variable for counter         */

+    unsigned char    c;                 /* An output character            */

+

+    /* Checking the mode of file , output each character                  */

+    /* Checking the attribute for Write-Only, Read-Only or Read-Write     */

+    if(flmod[fileno]&O_WRONLY || flmod[fileno]&O_RDWR)

+    {

+        if( fileno == STDIN ) return -1;            /* Standard Input     */

+        else if( (fileno == STDOUT) || (fileno == STDERR) ) 

+			                                    /* Standard Error/output   */

+        {

+            for( i = count; i > 0; --i )

+            {

+                c = *buf++;

+                charput(c);

+            }

+            return count;        /*Return the number of written characters */

+        }

+        else return -1;                  /* Incorrect file number          */

+    }

+    else return -1;                      /* An error                       */

+}

+

+#if defined( __RX )

+long read( long fileno, unsigned char *buf, long count )

+#else

+int read( int fileno, char *buf, unsigned int count )

+#endif

+{

+	   long i;

+

+       /* Checking the file mode with the file number, each character is input and stored the buffer */

+

+       if((flmod[fileno]&_MOPENR) || (flmod[fileno]&O_RDWR)){

+             for(i = count; i > 0; i--){

+                   *buf = charget();

+                   if(*buf==CR){              /* Replace the new line character */

+                         *buf = LF;

+                   }

+                   buf++;

+             }

+             return count;

+       }

+       else {

+             return -1;

+       }

+}

+

+#if defined( __RX )

+long lseek( long fileno, long offset, long base )

+#else

+long lseek( int fileno, long offset, int base )

+#endif

+{

+    return -1L;

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
new file mode 100644
index 0000000..acdbe77
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp.h
@@ -0,0 +1,53 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h

+* H/W Platform : RSKRX111

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_RSKRX111

+#define PLATFORM_BOARD_RSKRX111

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+#include    "r_bsp_config.h"

+#include    ".\mcu\rx111\iodefine.h"

+#include    ".\mcu\rx111\mcu_info.h"

+#include    ".\board\rskrx111\rskrx111.h"

+#include    ".\board\rskrx111\hwsetup.h"

+#include    ".\board\rskrx111\lcd.h"

+#include    ".\board\rskrx111\locking.h"

+#include    ".\board\rskrx111\vecttbl.h"

+

+#endif /* PLATFORM_BOARD_RSKRX111 */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
new file mode 100644
index 0000000..da6dc9d
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/r_bsp_config_reference.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description           

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such 

+   as package and memory size. 

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name  

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product. 

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity. 

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name. 

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name. 

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/  

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type. 

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a 

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x400)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used. 

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator  

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/ 

+#define CLOCK_SOURCE            (4)

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV). 

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)

+/* PLL Frequency Multiplication Factor Select (STC). 

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)

+/* Peripheral Module Clock B Divider (PCKB). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)

+/* Peripheral Module Clock D Divider (PCKD). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK). 

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and 

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a 

+   function to be called when the event occurs. For example, if the user wanted the function 

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+   

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/   

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings. 

+   OFS0 - Option Function Select Register 0 

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (1)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/resetprg.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/resetprg.c
new file mode 100644
index 0000000..8e01db9
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/resetprg.c
@@ -0,0 +1,416 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : resetprg.c

+* Device(s)    : RX111

+* Description  : Defines post-reset routines that are used to configure the MCU prior to the main program starting.

+*                This is were the program counter starts on power-up or reset.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/
+/* Defines machine level functions used in this file */
+#include    <machine.h>
+/* Defines MCU configuration functions used in this file */
+#include    <_h_c_lib.h>
+/* Defines standard variable types used in this file */
+#include    <stdbool.h>
+#include    <stdint.h>

+

+/* This macro is here so that the stack will be declared here. This is used to prevent multiplication of stack size. */

+#define     BSP_DECLARE_STACK

+/* Define the target platform */

+#include    "platform.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/
+#define PSW_init  (0x00030000)
+
+/***********************************************************************************************************************
+Pre-processor Directives
+***********************************************************************************************************************/
+/* Declare the contents of the function 'Change_PSW_PM_to_UserMode' as assembler to the compiler */
+#pragma inline_asm Change_PSW_PM_to_UserMode
+

+/* Set this as the entry point from a power-on reset */
+#pragma entry PowerON_Reset_PC

+

+/***********************************************************************************************************************
+External function Prototypes
+***********************************************************************************************************************/
+/* Functions to setup I/O library */
+extern void _INIT_IOLIB(void);

+extern void _CLOSEALL(void);

+
+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/
+/* Power-on reset function declaration */
+void PowerON_Reset_PC(void);

+

+#if RUN_IN_USER_MODE==1

+    #if __RENESAS_VERSION__ < 0x01010000

+    /* MCU usermode switcher function declaration */
+    static void Change_PSW_PM_to_UserMode(void);

+    #endif
+#endif

+
+/* Main program function delcaration */
+void main(void);
+static void operating_frequency_set(void);

+static void clock_source_select(void);
+

+/***********************************************************************************************************************

+* Function name: PowerON_Reset_PC

+* Description  : This function is the MCU's entry point from a power-on reset.

+*                The following steps are taken in the startup code:

+*                1. The User Stack Pointer (USP) and Interrupt Stack Pointer (ISP) are both set immediately after entry

+*                   to this function. The USP and ISP stack sizes are set in the file stacksct.h.

+*                   Default sizes are USP=4K and ISP=1K.

+*                2. The interrupt vector base register is set to point to the beginning of the relocatable interrupt

+*                   vector table.

+*                3. The MCU is setup for floating point operations by setting the initial value of the Floating Point

+*                   Status Word (FPSW).

+*                4. The MCU operating frequency is set by configuring the Clock Generation Circuit (CGC) in

+*                   operating_frequency_set.

+*                5. Calls are made to functions to setup the C runtime environment which involves initializing all

+*                   initialed data, zeroing all uninitialized variables, and configuring STDIO if used

+*                   (calls to _INITSCT and _INIT_IOLIB).

+*                6. Board-specific hardware setup, including configuring I/O pins on the MCU, in hardware_setup.

+*                7. Global interrupts are enabled by setting the I bit in the Program Status Word (PSW), and the stack

+*                   is switched from the ISP to the USP.  The initial Interrupt Priority Level is set to zero, enabling

+*                   any interrupts with a priority greater than zero to be serviced.

+*                8. The processor is optionally switched to user mode.  To run in user mode, set the macro

+*                   RUN_IN_USER_MODE above to a 1.

+*                9. The bus error interrupt is enabled to catch any accesses to invalid or reserved areas of memory.

+*

+*                Once this initialization is complete, the user's main() function is called.  It should not return.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#pragma section ResetPRG		// output PowerON_Reset to PResetPRG section

+void PowerON_Reset_PC(void)
+{

+    /* Stack pointers are setup prior to calling this function - see comments above */

+
+    /* Initialise the MCU processor word */
+#if __RENESAS_VERSION__ >= 0x01010000
+    set_intb((void *)__sectop("C$VECT"));
+#else
+    set_intb((unsigned long)__sectop("C$VECT"));
+#endif

+

+#ifdef NMI_ISR_CALLBACK

+    /* Enable NMI interrupt if callback is configured in r_bsp_config.h */

+    ICU.NMIER.BIT.NMIEN = 1;

+#endif

+

+    /* Switch to high-speed operation */

+    operating_frequency_set();
+
+    /* Initialize C runtime environment */
+    _INITSCT();
+

+#if IO_LIB_ENABLE == 1

+    /* Comment this out if not using I/O lib */

+    _INIT_IOLIB();

+#endif

+
+    /* Configure the MCU and YRDK hardware */
+    hardware_setup();
+
+    /* Change the MCU's usermode from supervisor to user */
+    nop();
+    set_psw(PSW_init);
+#if RUN_IN_USER_MODE==1

+    /* Use chg_pmusr() intrinsic if possible. */

+    #if __RENESAS_VERSION__ >= 0x01010000
+    chg_pmusr() ;

+    #else

+    Change_PSW_PM_to_UserMode();

+    #endif
+#endif

+

+    /* Enable the bus error interrupt to catch accesses to illegal/reserved areas of memory */

+    /* The ISR for this interrupt can be found in vecttbl.c in the function "bus_error_isr" */

+    /* Clear any pending interrupts */

+    IR(BSC,BUSERR) = 0;

+    /* Make this the highest priority interrupt (adjust as necessary for your application */

+    IPR(BSC,BUSERR) = 0x0F;

+    /* Enable the interrupt in the ICU*/

+    IEN(BSC,BUSERR) = 1;

+    /* Enable illegal address interrupt in the BSC */

+    BSC.BEREN.BIT.IGAEN = 1;

+

+    /* Call the main program function (should not return) */
+    main();

+

+#if IO_LIB_ENABLE == 1

+    /* Comment this out if not using I/O lib - cleans up open files */

+    _CLOSEALL();

+#endif

+
+    while(1)

+    {

+        /* Infinite loop. Put a breakpoint here if you want to catch an exit of main(). */

+    }

+}

+

+/***********************************************************************************************************************

+* Function name: operating_frequency_set

+* Description  : Configures the clock settings for each of the device clocks

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void operating_frequency_set(void)
+{
+    /* Used for constructing value to write to SCKCR and CKOCR registers. */

+    uint32_t temp_clock = 0;

+
+    /*

+    Clock Description              Frequency

+    ----------------------------------------

+    Input Clock Frequency............  16 MHz

+    PLL frequency (x3)...............  48 MHz

+    Internal Clock Frequency.........  24 MHz

+    Peripheral Clock Frequency.......  24 MHz

+    Clock Out Frequency..............  1  MHz */

+

+    volatile unsigned int i;

+

+    /* Protect off. */

+    SYSTEM.PRCR.WORD = 0xA50B;

+

+    /* Select the clock based upon user's choice. */

+    clock_source_select();

+

+

+    /* Figure out setting for FCK bits. */

+#if   FCK_DIV == 1

+    /* Do nothing since FCK bits should be 0. */

+#elif FCK_DIV == 2

+    temp_clock |= 0x10000000;

+#elif FCK_DIV == 4

+    temp_clock |= 0x20000000;

+#elif FCK_DIV == 8

+    temp_clock |= 0x30000000;

+#elif FCK_DIV == 16

+    temp_clock |= 0x40000000;

+#elif FCK_DIV == 32

+    temp_clock |= 0x50000000;

+#elif FCK_DIV == 64

+    temp_clock |= 0x60000000;

+#else

+    #error "Error! Invalid setting for FCK_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for ICK bits. */

+#if   ICK_DIV == 1

+    /* Do nothing since ICK bits should be 0. */

+#elif ICK_DIV == 2

+    temp_clock |= 0x01000000;

+#elif ICK_DIV == 4

+    temp_clock |= 0x02000000;

+#elif ICK_DIV == 8

+    temp_clock |= 0x03000000;

+#elif ICK_DIV == 16

+    temp_clock |= 0x04000000;

+#elif ICK_DIV == 32

+    temp_clock |= 0x05000000;

+#elif ICK_DIV == 64

+    temp_clock |= 0x06000000;

+#else

+    #error "Error! Invalid setting for ICK_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for PCKB bits. */

+#if   PCKB_DIV == 1

+    /* Do nothing since PCKB bits should be 0. */

+#elif PCKB_DIV == 2

+    temp_clock |= 0x00000100;

+#elif PCKB_DIV == 4

+    temp_clock |= 0x00000200;

+#elif PCKB_DIV == 8

+    temp_clock |= 0x00000300;

+#elif PCKB_DIV == 16

+    temp_clock |= 0x00000400;

+#elif PCKB_DIV == 32

+    temp_clock |= 0x00000500;

+#elif PCKB_DIV == 64

+    temp_clock |= 0x00000600;

+#else

+    #error "Error! Invalid setting for PCKB_DIV in r_bsp_config.h"

+#endif

+

+    /* Figure out setting for PCKD bits. */

+#if   PCKD_DIV == 1

+    /* Do nothing since PCKD bits should be 0. */

+#elif PCKD_DIV == 2

+    temp_clock |= 0x00000001;

+#elif PCKD_DIV == 4

+    temp_clock |= 0x00000002;

+#elif PCKD_DIV == 8

+    temp_clock |= 0x00000003;

+#elif PCKD_DIV == 16

+    temp_clock |= 0x00000004;

+#elif PCKD_DIV == 32

+    temp_clock |= 0x00000005;

+#elif PCKD_DIV == 64

+    temp_clock |= 0x00000006;

+#else

+    #error "Error! Invalid setting for PCKD_DIV in r_bsp_config.h"

+#endif

+

+    /* Set SCKCR register. */

+    SYSTEM.SCKCR.LONG = temp_clock;

+

+    /* Choose clock source. Default for r_bsp_config.h is PLL. */

+    SYSTEM.SCKCR3.WORD = ((uint16_t)CLOCK_SOURCE) << 8;

+

+    /* Protect on. */

+    SYSTEM.PRCR.WORD = 0xA500;
+}
+

+/***********************************************************************************************************************

+* Function name: clock_source_select

+* Description  : Enables and disables clocks as chosen by the user. This function also implements the software delays

+*                needed for the clocks to stabilize.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+static void clock_source_select (void)

+{

+    /* Declared volatile for software delay purposes. */

+    volatile unsigned int i;

+

+    /* NOTE: AS OF VERSION 0.50 OF THE RX111 HARDWARE MANUAL, ALL OF THE CLOCK

+     * STABILIZATION TIMES ARE TBD. FOR NOW, WHERE EVER A WAIT COUNT REGISTER

+     * IS AVAILABLE, THE DELAY IS SET TO THE MAX NUMBER OF CYCLES. WHERE EVER

+     * DELAY LOOPS ARE PRESENT, THE VALUES FROM THE 63N ARE RE-USED. KEEP IN

+     * MIND THAT THE 63N RUNS ON A FASTER CRYSTAL.

+     */

+

+#if (CLOCK_SOURCE == 1)

+    /* HOCO is chosen. Start it operating. */

+    SYSTEM.HOCOCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the HOCO has stabilized.*/

+    for(i = 0; i< 28; i++)			// tHOCOWT2 is TBD

+    {

+        nop() ;

+    }

+#else

+    /* HOCO is not chosen. Stop the HOCO. */

+    SYSTEM.HOCOCR.BYTE = 0x01;

+#endif

+

+#if (CLOCK_SOURCE == 2)

+    /* Main clock oscillator is chosen. Start it operating. */

+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles

+    /* Set the main clock to operating. */

+    SYSTEM.MOSCCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the main clock has stabilized. */

+    for(i = 0; i< 140; i++)			// tMAINOSCWT is TBD

+    {

+        nop() ;

+    }

+#endif

+

+#if (CLOCK_SOURCE == 3)

+    /* Sub-clock oscillator is chosen. Start it operating. */

+    /* In section 9.8.4, there is a reference to a SOSCWTCR register, but there is no

+     * description for this register in the manual nor reference for it in iodefine.h. */

+

+    /* Set the sub-clock to operating. */

+    SYSTEM.SOSCCR.BYTE = 0x00;

+    /* The delay period needed is to make sure that the sub-clock has stabilized. */

+    for(i = 0; i< 30233; i++)		// tSUBOSCWT0 is TBD

+    {

+        nop() ;

+    }

+#else

+    /* Set the sub-clock to stopped. */

+    SYSTEM.SOSCCR.BYTE = 0x01;

+#endif

+

+#if (CLOCK_SOURCE == 4)

+    /* PLL is chosen. Start it operating. Must start main clock as well since PLL uses it. */

+    SYSTEM.MOSCWTCR.BYTE = 0x07;	// Wait 65,536 cycles

+    /* Set the main clock to operating. */

+    SYSTEM.MOSCCR.BYTE = 0x00;

+

+    /* Set PLL Input Divisor. */

+    SYSTEM.PLLCR.BIT.PLIDIV = PLL_DIV >> 1;

+

+    /* Set PLL Multiplier. */

+    SYSTEM.PLLCR.BIT.STC = (PLL_MUL * 2) - 1;

+

+    /* Set the PLL to operating. */

+    SYSTEM.PLLCR2.BYTE = 0x00;

+    /* The delay period needed is to make sure that the main clock and PLL have stabilized. */

+    for(i = 0; i< 140; i++)			// tPLLWT2 is TBD

+    {

+        nop() ;

+    }

+#endif

+

+    /* LOCO is saved for last since it is what is running by default out of reset. This means you do not want to turn

+       it off until another clock has been enabled and is ready to use. */

+#if (CLOCK_SOURCE == 0)

+    /* LOCO is chosen. This is the default out of reset. */

+    SYSTEM.LOCOCR.BYTE = 0x00;

+#else

+    /* LOCO is not chosen and another clock has already been setup. Turn off the LOCO. */

+    SYSTEM.LOCOCR.BYTE = 0x01;

+#endif

+

+    /* Make sure a valid clock was chosen. */

+#if (CLOCK_SOURCE > 4) || (CLOCK_SOURCE < 0)

+    #error "ERROR - Valid clock source must be chosen in r_bsp_config.h using CLOCK_SOURCE macro."

+#endif

+}

+

+

+/***********************************************************************************************************************

+* Function name: Change_PSW_PM_to_UserMode

+* Description  : Assembler function, used to change the MCU's usermode from supervisor to user.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#if RUN_IN_USER_MODE==1

+    #if __RENESAS_VERSION__ < 0x01010000
+static void Change_PSW_PM_to_UserMode(void)
+{
+    MVFC   PSW,R1
+    OR     #00100000h,R1
+    PUSH.L R1
+    MVFC   PC,R1
+    ADD    #10,R1
+    PUSH.L R1
+    RTE
+    NOP
+    NOP
+}

+    #endif
+#endif

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
new file mode 100644
index 0000000..af3a400
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/rskrx111.h
@@ -0,0 +1,63 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : rskrx111.h

+* H/W Platform : RSKRX111

+* Description  : Board specific definitions for the RSKRX111.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef RSKRX111_H
+#define RSKRX111_H
+
+/* Local defines */
+#define LED_ON              (0)
+#define LED_OFF             (1)
+#define SET_BIT_HIGH        (1)
+#define SET_BIT_LOW         (0)
+#define SET_BYTE_HIGH       (0xFF)
+#define SET_BYTE_LOW        (0x00)

+

+/* Switches */

+#define SW_ACTIVE           0

+#define	SW1 			    PORT3.PIDR.BIT.B0

+#define SW2 			    PORT3.PIDR.BIT.B1

+#define SW3 			    PORTE.PIDR.BIT.B4

+#define SW1_PDR			    PORT3.PDR.BIT.B0

+#define SW2_PDR			    PORT3.PDR.BIT.B1

+#define SW3_PDR			    PORTE.PDR.BIT.B4

+#define SW1_PMR			    PORT3.PMR.BIT.B0

+#define SW2_PMR			    PORT3.PMR.BIT.B1

+#define SW3_PMR			    PORTE.PMR.BIT.B4

+

+/* LEDs */

+#define	LED0			    PORTB.PODR.BIT.B7

+#define	LED1			    PORTA.PODR.BIT.B0

+#define	LED2			    PORT5.PODR.BIT.B4

+#define	LED3			    PORT1.PODR.BIT.B7

+#define	LED0_PDR		    PORTB.PDR.BIT.B7

+#define	LED1_PDR		    PORTA.PDR.BIT.B0

+#define	LED2_PDR		    PORT5.PDR.BIT.B4

+#define	LED3_PDR		    PORT1.PDR.BIT.B7

+

+
+#endif /* RSKRX111_H */

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/sbrk.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/sbrk.c
new file mode 100644
index 0000000..ee80827
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/sbrk.c
@@ -0,0 +1,96 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : sbrk.c

+* Device(s)    : RX

+* Description  : Configures the MCU heap memory.  The size of the heap is defined by the macro HEAPSIZE below.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 26.10.2011 1.00     First Release

+*         : 12.03.2012 1.10     Heap size is now defined in r_bsp_config.h, not sbrk.h.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Provides standard definitions used in this file */
+#include <stddef.h>
+/* Defines standard input/output functions used in this file */
+#include <stdio.h>
+/* Defines standard variable types used in this file */
+#include <stdint.h>

+/* Used for getting HEAP_BYTES macro. */

+#include "platform.h"
+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+
+/***********************************************************************************************************************
+Function Prototypes
+***********************************************************************************************************************/
+/* Memory allocation function prototype declaration */
+int8_t  *sbrk(size_t size);
+
+/***********************************************************************************************************************
+Global Variables
+***********************************************************************************************************************/
+//const size_t _sbrk_size=      /* Specifies the minimum unit of */
+/* the defined heap area */
+extern int8_t *_s1ptr;
+
+union HEAP_TYPE
+{
+    int32_t  dummy;             /* Dummy for 4-byte boundary */
+    int8_t heap[HEAP_BYTES];    /* Declaration of the area managed by sbrk*/

+};
+/* Declare memory heap area */
+static union HEAP_TYPE heap_area;
+/* End address allocated by sbrk    */
+static int8_t *brk=(int8_t *)&heap_area;
+
+/***********************************************************************************************************************

+* Function name: sbrk

+* Description  : This function configures MCU memory area allocation.

+* Arguments    : size - 

+*                    assigned area size

+* Return value : Start address of allocated area (pass)

+*                -1 (failure)

+***********************************************************************************************************************/

+int8_t  *sbrk(size_t size)                      
+{
+    int8_t  *p;
+
+    if (brk+size > heap_area.heap+HEAP_BYTES)
+    {
+        /* Empty area size  */
+        p = (int8_t *)-1;
+    }
+    else
+    {
+        /* Area assignment */
+        p = brk;  
+
+        /* End address update */                           
+        brk += size;                           
+    }
+
+    /* Return result */
+    return p;
+}
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.c
new file mode 100644
index 0000000..6dc4b7f
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.c
@@ -0,0 +1,206 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : vecttbl.c

+* Device(s)    : RX11x

+* Description  : Definition of the fixed vector table and option setting memory.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Fixed size integers. */

+#include <stdint.h>

+/* Used for nop(). */

+#include <machine.h>

+/* BSP configuration. */

+#include "platform.h"

+

+#pragma section IntPRG

+

+/***********************************************************************************************************************

+* Function name: PowerON_Reset_PC

+* Description  : The reset vector points to this function.  Code execution starts in this function after reset.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+extern void PowerON_Reset_PC(void);

+

+/***********************************************************************************************************************

+* Function name: excep_supervisor_inst_isr

+* Description  : Supervisor Instruction Violation ISR

+* Arguments    : none

+* Return Value : none

+***********************************************************************************************************************/

+#pragma interrupt (excep_supervisor_inst_isr)

+void excep_supervisor_inst_isr(void)

+{

+    /* If the user defined a callback function in r_bsp_config.h then it will be called here. */

+#if defined(EXCEP_SUPERVISOR_ISR_CALLBACK)

+    EXCEP_SUPERVISOR_ISR_CALLBACK();

+

+    /* If you do not put the MCU in Supervisor mode before returning then it will just execute the same violating

+       instruction again and come back in here. Since the PSW is restored from the stack when returning from the

+       exception, you would need to alter the saved PSW on the stack to change to Supervisor mode. We do not do this

+       here because the only 'safe' way to do this would be to write this function in assembly. Even then most users

+       would probably want to handle this someway instead of just going back to the application. */

+#else

+    brk();

+#endif

+}

+

+/***********************************************************************************************************************

+* Function name: excep_undefined_inst_isr

+* Description  : Undefined instruction exception ISR

+* Arguments    : none

+* Return Value : none

+***********************************************************************************************************************/

+#pragma interrupt (excep_undefined_inst_isr)

+void excep_undefined_inst_isr(void)

+{

+    /* If the user defined a callback function in r_bsp_config.h then it will be called here. */

+#if defined(EXCEP_UNDEFINED_INSTR_ISR_CALLBACK)

+    EXCEP_UNDEFINED_INSTR_ISR_CALLBACK();

+#else

+    brk();

+#endif

+}

+

+/***********************************************************************************************************************

+* Function name: non_maskable_isr

+* Description  : Non-maskable interrupt ISR

+* Arguments    : none

+* Return Value : none

+***********************************************************************************************************************/

+#pragma interrupt (non_maskable_isr)

+void non_maskable_isr(void)

+{

+    /* If the user defined a callback function in r_bsp_config.h then it will be called here. */

+#if defined(NMI_ISR_CALLBACK)

+    NMI_ISR_CALLBACK();

+

+    /* Clear NMI flag. */

+    ICU.NMICLR.BIT.NMICLR = 1;

+#else

+    brk();

+#endif

+}

+

+/***********************************************************************************************************************

+* Function name: undefined_interrupt_source_isr

+* Description  : All undefined interrupt vectors point to this function.

+*                Set a breakpoint in this function to determine which source is creating unwanted interrupts.

+* Arguments    : none

+* Return Value : none

+***********************************************************************************************************************/

+#pragma interrupt (undefined_interrupt_source_isr)

+void undefined_interrupt_source_isr(void)

+{

+    /* If the user defined a callback function in r_bsp_config.h then it will be called here. */

+#if defined(UNDEFINED_INT_ISR_CALLBACK)

+    UNDEFINED_INT_ISR_CALLBACK();

+#else

+    brk();

+#endif

+}

+

+/***********************************************************************************************************************

+* Function name: bus_error_isr

+* Description  : By default, this demo code enables the Bus Error Interrupt. This interrupt will fire if the user tries

+*                to access code or data from one of the reserved areas in the memory map, including the areas covered

+*                by disabled chip selects. A nop() statement is included here as a convenient place to set a breakpoint

+*                during debugging and development, and further handling should be added by the user for their

+*                application.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#pragma interrupt (bus_error_isr(vect=VECT(BSC,BUSERR)))

+void bus_error_isr (void)

+{

+    /* Clear the bus error */

+    BSC.BERCLR.BIT.STSCLR = 1;

+

+    /*

+        To find the address that was accessed when the bus error occurred, read the register BSC.BERSR2.WORD.  The upper

+        13 bits of this register contain the upper 13-bits of the offending address (in 512K byte units)

+    */

+

+    /* If the user defined a callback function in r_bsp_config.h then it will be called here. */

+#if defined(BUS_ERROR_ISR_CALLBACK)

+    BUS_ERROR_ISR_CALLBACK();

+#else

+    nop();

+#endif

+}

+

+void Dummy( void )

+{

+	brk();

+}

+

+/***********************************************************************************************************************

+* The following array fills in the endian and option function select registers, and the fixed vector table

+* bytes.

+***********************************************************************************************************************/

+#pragma section C FIXEDVECT

+

+void (*const Fixed_Vectors[])(void) = {

+//;0xffffffd0  Exception(Supervisor Instruction)

+	excep_supervisor_inst_isr,

+//;0xffffffd4  Reserved

+    Dummy,

+//;0xffffffd8  Reserved

+    Dummy,

+//;0xffffffdc  Exception(Undefined Instruction)

+    undefined_interrupt_source_isr,

+//;0xffffffe0  Reserved

+    Dummy,

+//;0xffffffe4  Reserved

+    Dummy,

+//;0xffffffe8  Reserved

+    Dummy,

+//;0xffffffec  Reserved

+    Dummy,

+//;0xfffffff0  Reserved

+    Dummy,

+//;0xfffffff4  Reserved

+    Dummy,

+//;0xfffffff8  NMI

+    non_maskable_isr,

+//;0xfffffffc  RESET

+//;<<VECTOR DATA START (POWER ON RESET)>>

+//;Power On Reset PC

+PowerON_Reset_PC

+//;<<VECTOR DATA END (POWER ON RESET)>>

+};

+

+#pragma address _MDEreg=0xffffff80 // MDE register (Single Chip Mode)

+#ifdef __BIG

+	const unsigned long _MDEreg = 0xfffffff8; // big

+#else

+	const unsigned long _MDEreg = 0xffffffff; // little

+#endif

+

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.h
new file mode 100644
index 0000000..f8d3262
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/rskrx111/vecttbl.h
@@ -0,0 +1,65 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : vecttbl.h

+* Device(s)    : RX111

+* Description  : Has function prototypes for exception callback functions.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 1.20     Beta Release.

+***********************************************************************************************************************/

+

+#ifndef VECTTBL_HEADER_INC

+#define VECTTBL_HEADER_INC

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Fixed size integers. */

+#include <stdint.h>

+/* Used for nop(). */

+#include <machine.h>

+/* BSP configuration. */

+#include "platform.h"

+

+/***********************************************************************************************************************

+Exported global functions (to be accessed by other files)

+***********************************************************************************************************************/

+#if defined(EXCEP_SUPERVISOR_ISR_CALLBACK)

+void EXCEP_SUPERVISOR_ISR_CALLBACK(void);

+#endif

+

+#if defined(EXCEP_UNDEFINED_INSTR_ISR_CALLBACK)

+void EXCEP_UNDEFINED_INSTR_ISR_CALLBACK(void);

+#endif

+

+#if defined(NMI_ISR_CALLBACK)

+void NMI_ISR_CALLBACK(void);

+#endif

+

+#if defined(UNDEFINED_INT_ISR_CALLBACK)

+void UNDEFINED_INT_ISR_CALLBACK(void);

+#endif

+

+#if defined(BUS_ERROR_ISR_CALLBACK)

+void BUS_ERROR_ISR_CALLBACK(void);

+#endif

+

+#endif /* VECTTBL_HEADER_INC */

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h
new file mode 100644
index 0000000..bd8881c
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/board/user/r_bsp.h
@@ -0,0 +1,54 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : r_bsp.h 

+* Description  : Has the header files that should be included for this platform.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 13.01.2012 1.00     First Release

+*         : 27.06.2012 1.10     Updated with new information to reflect udpated r_bsp structure.

+***********************************************************************************************************************/

+

+#ifndef PLATFORM_BOARD_USER

+#define PLATFORM_BOARD_USER

+

+/* Make sure that no other platforms have already been defined. Do not touch this! */

+#ifdef  PLATFORM_DEFINED

+#error  "Error - Multiple platforms defined in platform.h!"

+#else

+#define PLATFORM_DEFINED

+#endif

+

+/***********************************************************************************************************************

+INCLUDE APPROPRIATE MCU AND BOARD FILES

+***********************************************************************************************************************/

+/* This is a user defined board. Start off by:

+   1)Copy and rename one of the 'board' folders that most closely matches your system (same MCU Series and Group).

+   2)Substitute in your MCU Group for the *MCU Group* option in the #include below for mcu_info.h.

+   3)Copy the other #includes from the r_bsp.h in the 'board' folder that you copied earlier.

+   4)Configure the BSP for your board by modifying the r_bsp_config_reference.h.

+   5)Copy r_bsp_config_reference.h to your project directory and rename it r_bsp_config.h.

+   You can also add your own include files here as well. */

+#include    "r_bsp_config.h"

+#include    ".\mcu\*MCU Group*\mcu_info.h"           

+

+#endif /* PLATFORM_BOARD_USER */

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h
new file mode 100644
index 0000000..cd263c6
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/iodefine.h
@@ -0,0 +1,5143 @@
+/********************************************************************************/

+/*                                                                              */

+/* Device     : RX/RX100/RX111                                                  */

+/* File Name  : iodefine.h                                                      */

+/* Abstract   : Definition of I/O Register.                                     */

+/* History    : V0.5  (2012-09-25)  [Hardware Manual Revision : 0.50]           */

+/* Note       : This is a typical example.                                      */

+/*                                                                              */

+/*  Copyright(c) 2012 Renesas Electronics Corp.                                 */

+/*                  And Renesas Solutions Corp. ,All Rights Reserved.           */

+/*                                                                              */

+/********************************************************************************/

+/*                                                                              */

+/*  DESCRIPTION : Definition of ICU Register                                    */

+/*  CPU TYPE    : RX111                                                         */

+/*                                                                              */

+/*  Usage : IR,DTCER,IER,IPR of ICU Register                                    */

+/*     The following IR, DTCE, IEN, IPR macro functions simplify usage.         */

+/*     The bit access operation is "Bit_Name(interrupt source,name)".           */

+/*     A part of the name can be omitted.                                       */

+/*     for example :                                                            */

+/*       IR(MTU0,TGIA0) = 0;     expands to :                                   */

+/*         ICU.IR[114].BIT.IR = 0;                                              */

+/*                                                                              */

+/*       DTCE(ICU,IRQ0) = 1;     expands to :                                   */

+/*         ICU.DTCER[64].BIT.DTCE = 1;                                          */

+/*                                                                              */

+/*       IEN(CMT0,CMI0) = 1;     expands to :                                   */

+/*         ICU.IER[0x03].BIT.IEN4 = 1;                                          */

+/*                                                                              */

+/*       IPR(MTU1,TGIA1) = 2;    expands to :                                   */

+/*       IPR(MTU1,TGI  ) = 2;    // TGIA1,TGIB1 share IPR level.                */

+/*         ICU.IPR[121].BIT.IPR = 2;                                            */

+/*                                                                              */

+/*       IPR(SCI1,ERI1) = 3;     expands to :                                   */

+/*       IPR(SCI1,    ) = 3;     // SCI1 uses single IPR for all sources.       */

+/*         ICU.IPR[218].BIT.IPR = 3;                                            */

+/*                                                                              */

+/*  Usage : #pragma interrupt Function_Identifier(vect=**)                      */

+/*     The number of vector is "(interrupt source, name)".                      */

+/*     for example :                                                            */

+/*       #pragma interrupt INT_IRQ0(vect=VECT(ICU,IRQ0))          expands to :  */

+/*         #pragma interrupt INT_IRQ0(vect=64)                                  */

+/*       #pragma interrupt INT_CMT0_CMI0(vect=VECT(CMT0,CMI0))    expands to :  */

+/*         #pragma interrupt INT_CMT0_CMI0(vect=28)                             */

+/*       #pragma interrupt INT_MTU0_TGIA0(vect=VECT(MTU0,TGIA0))  expands to :  */

+/*         #pragma interrupt INT_MTU0_TGIA0(vect=114)                           */

+/*                                                                              */

+/*  Usage : MSTPCRA,MSTPCRB,MSTPCRC of SYSTEM Register                          */

+/*     The bit access operation is "MSTP(name)".                                */

+/*     The name that can be used is a macro name defined with "iodefine.h".     */

+/*     for example :                                                            */

+/*       MSTP(MTU4) = 0;    // MTU,MTU0,MTU1,MTU2,MTU3,MTU4,MTU5  expands to :  */

+/*         SYSTEM.MSTPCRA.BIT.MSTPA9  = 0;                                      */

+/*                                                                              */

+/*                                                                              */

+/********************************************************************************/

+#ifndef __RX111IODEFINE_HEADER__

+#define __RX111IODEFINE_HEADER__

+#pragma bit_order left

+#pragma unpack

+struct st_bsc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char STSCLR:1;

+		} BIT;

+	} BERCLR;

+	char           wk0[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IGAEN:1;

+		} BIT;

+	} BEREN;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MST:3;

+			unsigned char :3;

+			unsigned char IA:1;

+		} BIT;

+	} BERSR1;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADDR:13;

+		} BIT;

+	} BERSR2;

+	char           wk3[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short BPFB:2;

+			unsigned short :2;

+			unsigned short BPGB:2;

+			unsigned short BPIB:2;

+			unsigned short BPRO:2;

+			unsigned short BPRA:2;

+		} BIT;

+	} BUSPRI;

+};

+

+struct st_cac {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CFME:1;

+		} BIT;

+	} CACR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char EDGES:2;

+			unsigned char TCSS:2;

+			unsigned char FMCS:3;

+			unsigned char CACREFE:1;

+		} BIT;

+	} CACR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DFS:2;

+			unsigned char RCDS:2;

+			unsigned char RSCS:3;

+			unsigned char RPS:1;

+		} BIT;

+	} CACR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char OVFFCL:1;

+			unsigned char MENDFCL:1;

+			unsigned char FERRFCL:1;

+			unsigned char :1;

+			unsigned char OVFIE:1;

+			unsigned char MENDIE:1;

+			unsigned char FERRIE:1;

+		} BIT;

+	} CAICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char OVFF:1;

+			unsigned char MENDF:1;

+			unsigned char FERRF:1;

+		} BIT;

+	} CASTR;

+	char           wk0[1];

+	unsigned short CAULVR;

+	unsigned short CALLVR;

+	unsigned short CACNTBR;

+};

+

+struct st_cmt {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :14;

+			unsigned short STR1:1;

+			unsigned short STR0:1;

+		} BIT;

+	} CMSTR0;

+};

+

+struct st_cmt0 {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :9;

+			unsigned short CMIE:1;

+			unsigned short :4;

+			unsigned short CKS:2;

+		} BIT;

+	} CMCR;

+	unsigned short CMCNT;

+	unsigned short CMCOR;

+};

+

+struct st_crc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DORCLR:1;

+			unsigned char :4;

+			unsigned char LMS:1;

+			unsigned char GPS:2;

+		} BIT;

+	} CRCCR;

+	unsigned char  CRCDIR;

+	unsigned short CRCDOR;

+};

+

+struct st_da {

+	unsigned short DADR0;

+	unsigned short DADR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DAOE1:1;

+			unsigned char DAOE0:1;

+		} BIT;

+	} DACR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DPSEL:1;

+		} BIT;

+	} DADPR;

+};

+

+struct st_doc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char DOPCFCL:1;

+			unsigned char DOPCF:1;

+			unsigned char DOPCIE:1;

+			unsigned char :1;

+			unsigned char DCSEL:1;

+			unsigned char OMS:2;

+		} BIT;

+	} DOCR;

+	char           wk0[1];

+	unsigned short DODIR;

+	unsigned short DODSR;

+};

+

+struct st_dtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char RRS:1;

+		} BIT;

+	} DTCCR;

+	char           wk0[3];

+	void          *DTCVBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SHORT:1;

+		} BIT;

+	} DTCADMOD;

+	char           wk1[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCST:1;

+		} BIT;

+	} DTCST;

+	char           wk2[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ACT:1;

+			unsigned short :7;

+			unsigned short VECN:8;

+		} BIT;

+	} DTCSTS;

+};

+

+struct st_elc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELCON:1;

+		} BIT;

+	} ELCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ELS:8;

+		} BIT;

+	} ELSR[26];

+	char           wk0[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTU3MD:2;

+			unsigned char MTU2MD:2;

+			unsigned char MTU1MD:2;

+		} BIT;

+	} ELOPA;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char MTU4MD:2;

+		} BIT;

+	} ELOPB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char CMT1MD:2;

+		} BIT;

+	} ELOPC;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PGR7:1;

+			unsigned char PGR6:1;

+			unsigned char PGR5:1;

+			unsigned char PGR4:1;

+			unsigned char PGR3:1;

+			unsigned char PGR2:1;

+			unsigned char PGR1:1;

+			unsigned char PGR0:1;

+		} BIT;

+	} PGR1;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PGCO:3;

+			unsigned char :1;

+			unsigned char PGCOVE:1;

+			unsigned char PGCI:2;

+		} BIT;

+	} PGC1;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PDBF7:1;

+			unsigned char PDBF6:1;

+			unsigned char PDBF5:1;

+			unsigned char PDBF4:1;

+			unsigned char PDBF3:1;

+			unsigned char PDBF2:1;

+			unsigned char PDBF1:1;

+			unsigned char PDBF0:1;

+		} BIT;

+	} PDBF1;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSM:2;

+			unsigned char PSP:2;

+			unsigned char PSB:3;

+		} BIT;

+	} PEL1;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char WI:1;

+			unsigned char WE:1;

+			unsigned char :5;

+			unsigned char SEG:1;

+		} BIT;

+	} ELSEGR;

+};

+

+struct st_flash {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DFLEN:1;

+		} BIT;

+	} DFLCTL;

+};

+

+struct st_icu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IR:1;

+		} BIT;

+	} IR[250];

+	char           wk0[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char DTCE:1;

+		} BIT;

+	} DTCER[249];

+	char           wk1[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IEN7:1;

+			unsigned char IEN6:1;

+			unsigned char IEN5:1;

+			unsigned char IEN4:1;

+			unsigned char IEN3:1;

+			unsigned char IEN2:1;

+			unsigned char IEN1:1;

+			unsigned char IEN0:1;

+		} BIT;

+	} IER[32];

+	char           wk2[192];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SWINT:1;

+		} BIT;

+	} SWINTR;

+	char           wk3[15];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FIEN:1;

+			unsigned short :7;

+			unsigned short FVCT:8;

+		} BIT;

+	} FIR;

+	char           wk4[14];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IPR:4;

+		} BIT;

+	} IPR[250];

+	char           wk5[262];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char IRQMD:2;

+		} BIT;

+	} IRQCR[8];

+	char           wk6[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char FLTEN7:1;

+			unsigned char FLTEN6:1;

+			unsigned char FLTEN5:1;

+			unsigned char FLTEN4:1;

+			unsigned char FLTEN3:1;

+			unsigned char FLTEN2:1;

+			unsigned char FLTEN1:1;

+			unsigned char FLTEN0:1;

+		} BIT;

+	} IRQFLTE0;

+	char           wk7[3];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short FCLKSEL7:2;

+			unsigned short FCLKSEL6:2;

+			unsigned short FCLKSEL5:2;

+			unsigned short FCLKSEL4:2;

+			unsigned short FCLKSEL3:2;

+			unsigned short FCLKSEL2:2;

+			unsigned short FCLKSEL1:2;

+			unsigned short FCLKSEL0:2;

+		} BIT;

+	} IRQFLTC0;

+	char           wk8[106];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2ST:1;

+			unsigned char LVD1ST:1;

+			unsigned char IWDTST:1;

+			unsigned char :1;

+			unsigned char OSTST:1;

+			unsigned char NMIST:1;

+		} BIT;

+	} NMISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2EN:1;

+			unsigned char LVD1EN:1;

+			unsigned char IWDTEN:1;

+			unsigned char :1;

+			unsigned char OSTEN:1;

+			unsigned char NMIEN:1;

+		} BIT;

+	} NMIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2CLR:1;

+			unsigned char LVD1CLR:1;

+			unsigned char IWDTCLR:1;

+			unsigned char :1;

+			unsigned char OSTCLR:1;

+			unsigned char NMICLR:1;

+		} BIT;

+	} NMICLR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char NMIMD:1;

+		} BIT;

+	} NMICR;

+	char           wk9[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char NFLTEN:1;

+		} BIT;

+	} NMIFLTE;

+	char           wk10[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char NFCLKSEL:2;

+		} BIT;

+	} NMIFLTC;

+};

+

+struct st_iwdt {

+	unsigned char  IWDTRR;

+	char           wk0[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short RPSS:2;

+			unsigned short :2;

+			unsigned short RPES:2;

+			unsigned short CKS:4;

+			unsigned short :2;

+			unsigned short TOPS:2;

+		} BIT;

+	} IWDTCR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short REFEF:1;

+			unsigned short UNDFF:1;

+			unsigned short CNTVAL:14;

+		} BIT;

+	} IWDTSR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTIRQS:1;

+		} BIT;

+	} IWDTRCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SLCSTP:1;

+		} BIT;

+	} IWDTCSTPR;

+};

+

+struct st_mpc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B0WI:1;

+			unsigned char PFSWE:1;

+		} BIT;

+	} PWPR;

+	char           wk0[35];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P03PFS;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P05PFS;

+	char           wk2[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P14PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P15PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P16PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P17PFS;

+	char           wk3[6];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P26PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P27PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P30PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P31PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} P32PFS;

+	char           wk4[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+		} BIT;

+	} P35PFS;

+	char           wk5[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P40PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P41PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P42PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P43PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P44PFS;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} P46PFS;

+	char           wk7[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P54PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} P55PFS;

+	char           wk8[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA1PFS;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA4PFS;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PA6PFS;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB1PFS;

+	char           wk12[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB3PFS;

+	char           wk13[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PB7PFS;

+	char           wk14[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char PSEL:5;

+		} BIT;

+	} PC7PFS;

+	char           wk15[8];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE0PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE1PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE2PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE3PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE4PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE5PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+			unsigned char ISEL:1;

+			unsigned char :1;

+			unsigned char PSEL:5;

+		} BIT;

+	} PE7PFS;

+	char           wk16[30];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ6PFS;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ASEL:1;

+		} BIT;

+	} PJ7PFS;

+};

+

+struct st_mtu {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OE4D:1;

+			unsigned char OE4C:1;

+			unsigned char OE3D:1;

+			unsigned char OE4B:1;

+			unsigned char OE4A:1;

+			unsigned char OE3B:1;

+		} BIT;

+	} TOER;

+	char           wk0[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BDC:1;

+			unsigned char N:1;

+			unsigned char P:1;

+			unsigned char FB:1;

+			unsigned char WF:1;

+			unsigned char VF:1;

+			unsigned char UF:1;

+		} BIT;

+	} TGCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PSYE:1;

+			unsigned char :2;

+			unsigned char TOCL:1;

+			unsigned char TOCS:1;

+			unsigned char OLSN:1;

+			unsigned char OLSP:1;

+		} BIT;

+	} TOCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BF:2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOCR2;

+	char           wk1[4];

+	unsigned short TCDR;

+	unsigned short TDDR;

+	char           wk2[8];

+	unsigned short TCNTS;

+	unsigned short TCBR;

+	char           wk3[12];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char T3AEN:1;

+			unsigned char T3ACOR:3;

+			unsigned char T4VEN:1;

+			unsigned char T4VCOR:3;

+		} BIT;

+	} TITCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char T3ACNT:3;

+			unsigned char :1;

+			unsigned char T4VCNT:3;

+		} BIT;

+	} TITCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char BTE:2;

+		} BIT;

+	} TBTER;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TDER:1;

+		} BIT;

+	} TDER;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char OLS3N:1;

+			unsigned char OLS3P:1;

+			unsigned char OLS2N:1;

+			unsigned char OLS2P:1;

+			unsigned char OLS1N:1;

+			unsigned char OLS1P:1;

+		} BIT;

+	} TOLBR;

+	char           wk6[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCE:1;

+			unsigned char :6;

+			unsigned char WRE:1;

+		} BIT;

+	} TWCR;

+	char           wk7[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CST4:1;

+			unsigned char CST3:1;

+			unsigned char :3;

+			unsigned char CST2:1;

+			unsigned char CST1:1;

+			unsigned char CST0:1;

+		} BIT;

+	} TSTR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SYNC4:1;

+			unsigned char SYNC3:1;

+			unsigned char :3;

+			unsigned char SYNC2:1;

+			unsigned char SYNC1:1;

+			unsigned char SYNC0:1;

+		} BIT;

+	} TSYR;

+	char           wk8[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char RWE:1;

+		} BIT;

+	} TRWER;

+};

+

+struct st_mtu0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[111];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char BFE:1;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk1[16];

+	unsigned short TGRE;

+	unsigned short TGRF;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TGIEF:1;

+			unsigned char TGIEE:1;

+		} BIT;

+	} TIER2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+};

+

+struct st_mtu1 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[238];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk3[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char I2BE:1;

+			unsigned char I2AE:1;

+			unsigned char I1BE:1;

+			unsigned char I1AE:1;

+		} BIT;

+	} TICCR;

+};

+

+struct st_mtu2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+	char           wk0[365];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char CCLR:2;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIOR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :1;

+			unsigned char TCIEU:1;

+			unsigned char TCIEV:1;

+			unsigned char :2;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	unsigned short TCNT;

+	unsigned short TGRA;

+	unsigned short TGRB;

+};

+

+struct st_mtu3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char :2;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk3[7];

+	unsigned short TCNT;

+	char           wk4[6];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk5[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk6[4];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk8[90];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu4 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CCLR:3;

+			unsigned char CKEG:2;

+			unsigned char TPSC:3;

+		} BIT;

+	} TCR;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char BFB:1;

+			unsigned char BFA:1;

+			unsigned char MD:4;

+		} BIT;

+	} TMDR;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOB:4;

+			unsigned char IOA:4;

+		} BIT;

+	} TIORH;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IOD:4;

+			unsigned char IOC:4;

+		} BIT;

+	} TIORL;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TTGE:1;

+			unsigned char TTGE2:1;

+			unsigned char :1;

+			unsigned char TCIEV:1;

+			unsigned char TGIED:1;

+			unsigned char TGIEC:1;

+			unsigned char TGIEB:1;

+			unsigned char TGIEA:1;

+		} BIT;

+	} TIER;

+	char           wk4[8];

+	unsigned short TCNT;

+	char           wk5[8];

+	unsigned short TGRA;

+	unsigned short TGRB;

+	char           wk6[8];

+	unsigned short TGRC;

+	unsigned short TGRD;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TCFD:1;

+		} BIT;

+	} TSR;

+	char           wk8[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TTSE:1;

+			unsigned char TTSB:1;

+			unsigned char TTSA:1;

+		} BIT;

+	} TBTM;

+	char           wk9[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BF:2;

+			unsigned short :6;

+			unsigned short UT4AE:1;

+			unsigned short DT4AE:1;

+			unsigned short UT4BE:1;

+			unsigned short DT4BE:1;

+			unsigned short ITA3AE:1;

+			unsigned short ITA4VE:1;

+			unsigned short ITB3AE:1;

+			unsigned short ITB4VE:1;

+		} BIT;

+	} TADCR;

+	char           wk10[2];

+	unsigned short TADCORA;

+	unsigned short TADCORB;

+	unsigned short TADCOBRA;

+	unsigned short TADCOBRB;

+	char           wk11[72];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char NFDEN:1;

+			unsigned char NFCEN:1;

+			unsigned char NFBEN:1;

+			unsigned char NFAEN:1;

+		} BIT;

+	} NFCR;

+};

+

+struct st_mtu5 {

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char NFCS:2;

+			unsigned char :1;

+			unsigned char NFWEN:1;

+			unsigned char NFVEN:1;

+			unsigned char NFUEN:1;

+		} BIT;

+	} NFCR;

+	char           wk1[490];

+	unsigned short TCNTU;

+	unsigned short TGRU;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRU;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORU;

+	char           wk3[9];

+	unsigned short TCNTV;

+	unsigned short TGRV;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRV;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORV;

+	char           wk5[9];

+	unsigned short TCNTW;

+	unsigned short TGRW;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char TPSC:2;

+		} BIT;

+	} TCRW;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char IOC:5;

+		} BIT;

+	} TIORW;

+	char           wk7[11];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char TGIE5U:1;

+			unsigned char TGIE5V:1;

+			unsigned char TGIE5W:1;

+		} BIT;

+	} TIER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CSTU5:1;

+			unsigned char CSTV5:1;

+			unsigned char CSTW5:1;

+		} BIT;

+	} TSTR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char CMPCLR5U:1;

+			unsigned char CMPCLR5V:1;

+			unsigned char CMPCLR5W:1;

+		} BIT;

+	} TCNTCMPCLR;

+};

+

+struct st_poe {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char POE3F:1;

+			unsigned char POE2F:1;

+			unsigned char POE1F:1;

+			unsigned char POE0F:1;

+			unsigned char :3;

+			unsigned char PIE1:1;

+			unsigned char POE3M:2;

+			unsigned char POE2M:2;

+			unsigned char POE1M:2;

+			unsigned char POE0M:2;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char OSF1:1;

+			unsigned char :5;

+			unsigned char OCE1:1;

+			unsigned char OIE1:1;

+		} BIT;

+	} OCSR1;

+	char           wk0[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char POE8F:1;

+			unsigned char :2;

+			unsigned char POE8E:1;

+			unsigned char PIE2:1;

+			unsigned char :6;

+			unsigned char POE8M:2;

+		} BIT;

+	} ICSR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char CH0HIZ:1;

+			unsigned char CH34HIZ:1;

+		} BIT;

+	} SPOER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PE3ZE:1;

+			unsigned char PE2ZE:1;

+			unsigned char PE1ZE:1;

+			unsigned char PE0ZE:1;

+		} BIT;

+	} POECR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char P1CZEA:1;

+			unsigned char P2CZEA:1;

+			unsigned char P3CZEA:1;

+		} BIT;

+	} POECR2;

+	char           wk1[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char H;

+			unsigned char L;

+		} BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OSTSTF:1;

+			unsigned char :2;

+			unsigned char OSTSTE:1;

+		} BIT;

+	} ICSR3;

+};

+

+struct st_port {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char PSEL5:1;

+			unsigned char :1;

+			unsigned char PSEL3:1;

+			unsigned char :1;

+			unsigned char PSEL1:1;

+			unsigned char PSEL0:1;

+		} BIT;

+	} PSRB;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PSEL7:1;

+			unsigned char PSEL6:1;

+		} BIT;

+	} PSRA;

+};

+

+struct st_port0 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[33];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[61];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port2 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR1;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port3 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char :2;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[34];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	char           wk4[60];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_port4 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+};

+

+struct st_port5 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PMR;

+	char           wk3[95];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char B5:1;

+			unsigned char B4:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porta {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[41];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char B4:1;

+			unsigned char :3;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[52];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[42];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :3;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+		} BIT;

+	} ODR1;

+	char           wk4[51];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char :1;

+			unsigned char B3:1;

+			unsigned char :1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_portc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PMR;

+	char           wk3[43];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[50];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_porte {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PDR;

+	char           wk0[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PODR;

+	char           wk1[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PIDR;

+	char           wk2[31];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PMR;

+	char           wk3[45];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char B6:1;

+			unsigned char :1;

+			unsigned char B4:1;

+			unsigned char :1;

+			unsigned char B2:1;

+			unsigned char :1;

+			unsigned char B0:1;

+		} BIT;

+	} ODR1;

+	char           wk4[48];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char B7:1;

+			unsigned char B6:1;

+			unsigned char B5:1;

+			unsigned char B4:1;

+			unsigned char B3:1;

+			unsigned char B2:1;

+			unsigned char B1:1;

+			unsigned char B0:1;

+		} BIT;

+	} PCR;

+};

+

+struct st_riic {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ICE:1;

+			unsigned char IICRST:1;

+			unsigned char CLO:1;

+			unsigned char SOWP:1;

+			unsigned char SCLO:1;

+			unsigned char SDAO:1;

+			unsigned char SCLI:1;

+			unsigned char SDAI:1;

+		} BIT;

+	} ICCR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BBSY:1;

+			unsigned char MST:1;

+			unsigned char TRS:1;

+			unsigned char :1;

+			unsigned char SP:1;

+			unsigned char RS:1;

+			unsigned char ST:1;

+		} BIT;

+	} ICCR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char MTWP:1;

+			unsigned char CKS:3;

+			unsigned char BCWP:1;

+			unsigned char BC:3;

+		} BIT;

+	} ICMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char DLCS:1;

+			unsigned char SDDL:3;

+			unsigned char TMWE:1;

+			unsigned char TMOH:1;

+			unsigned char TMOL:1;

+			unsigned char TMOS:1;

+		} BIT;

+	} ICMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SMBS:1;

+			unsigned char WAIT:1;

+			unsigned char RDRFS:1;

+			unsigned char ACKWP:1;

+			unsigned char ACKBT:1;

+			unsigned char ACKBR:1;

+			unsigned char NF:2;

+		} BIT;

+	} ICMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SCLE:1;

+			unsigned char NFE:1;

+			unsigned char NACKE:1;

+			unsigned char SALE:1;

+			unsigned char NALE:1;

+			unsigned char MALE:1;

+			unsigned char TMOE:1;

+		} BIT;

+	} ICFER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOAE:1;

+			unsigned char :1;

+			unsigned char DIDE:1;

+			unsigned char :1;

+			unsigned char GCAE:1;

+			unsigned char SAR2E:1;

+			unsigned char SAR1E:1;

+			unsigned char SAR0E:1;

+		} BIT;

+	} ICSER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char TEIE:1;

+			unsigned char RIE:1;

+			unsigned char NAKIE:1;

+			unsigned char SPIE:1;

+			unsigned char STIE:1;

+			unsigned char ALIE:1;

+			unsigned char TMOIE:1;

+		} BIT;

+	} ICIER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char HOA:1;

+			unsigned char :1;

+			unsigned char DID:1;

+			unsigned char :1;

+			unsigned char GCA:1;

+			unsigned char AAS2:1;

+			unsigned char AAS1:1;

+			unsigned char AAS0:1;

+		} BIT;

+	} ICSR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TDRE:1;

+			unsigned char TEND:1;

+			unsigned char RDRF:1;

+			unsigned char NACKF:1;

+			unsigned char STOP:1;

+			unsigned char START:1;

+			unsigned char AL:1;

+			unsigned char TMOF:1;

+		} BIT;

+	} ICSR2;

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char SVA:7;

+				unsigned char SVA0:1;

+			} BIT;

+		} SARL0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTL;

+	};

+	union {

+		union {

+			unsigned char BYTE;

+			struct {

+				unsigned char :5;

+				unsigned char SVA:2;

+				unsigned char FS:1;

+			} BIT;

+		} SARU0;

+		union {

+			unsigned char BYTE;

+		} TMOCNTH;

+	};

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SVA:7;

+			unsigned char SVA0:1;

+		} BIT;

+	} SARL2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SVA:2;

+			unsigned char FS:1;

+		} BIT;

+	} SARU2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRL:5;

+		} BIT;

+	} ICBRL;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char BRH:5;

+		} BIT;

+	} ICBRH;

+	unsigned char  ICDRT;

+	unsigned char  ICDRR;

+};

+

+struct st_rspi {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char SPRIE:1;

+			unsigned char SPE:1;

+			unsigned char SPTIE:1;

+			unsigned char SPEIE:1;

+			unsigned char MSTR:1;

+			unsigned char MODFEN:1;

+			unsigned char TXMD:1;

+			unsigned char SPMS:1;

+		} BIT;

+	} SPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char SSL3P:1;

+			unsigned char SSL2P:1;

+			unsigned char SSL1P:1;

+			unsigned char SSL0P:1;

+		} BIT;

+	} SSLP;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char MOIFE:1;

+			unsigned char MOIFV:1;

+			unsigned char :2;

+			unsigned char SPLP2:1;

+			unsigned char SPLP:1;

+		} BIT;

+	} SPPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PERF:1;

+			unsigned char MODF:1;

+			unsigned char IDLNF:1;

+			unsigned char OVRF:1;

+		} BIT;

+	} SPSR;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned short H;

+		} WORD;

+	} SPDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPSLN:3;

+		} BIT;

+	} SPSCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SPECM:3;

+			unsigned char :1;

+			unsigned char SPCP:3;

+		} BIT;

+	} SPSSR;

+	unsigned char SPBR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char SPLW:1;

+			unsigned char SPRDTD:1;

+			unsigned char :2;

+			unsigned char SPFC:2;

+		} BIT;

+	} SPDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SCKDL:3;

+		} BIT;

+	} SPCKD;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SLNDL:3;

+		} BIT;

+	} SSLND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SPNDL:3;

+		} BIT;

+	} SPND;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char PTE:1;

+			unsigned char SPIIE:1;

+			unsigned char SPOE:1;

+			unsigned char SPPE:1;

+		} BIT;

+	} SPCR2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD5;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD6;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SCKDEN:1;

+			unsigned short SLNDEN:1;

+			unsigned short SPNDEN:1;

+			unsigned short LSBF:1;

+			unsigned short SPB:4;

+			unsigned short SSLKP:1;

+			unsigned short SSLA:3;

+			unsigned short BRDV:2;

+			unsigned short CPOL:1;

+			unsigned short CPHA:1;

+		} BIT;

+	} SPCMD7;

+};

+

+struct st_rtc {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char F1HZ:1;

+			unsigned char F2HZ:1;

+			unsigned char F4HZ:1;

+			unsigned char F8HZ:1;

+			unsigned char F16HZ:1;

+			unsigned char F32HZ:1;

+			unsigned char F64HZ:1;

+		} BIT;

+	} R64CNT;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECCNT;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINCNT;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRCNT;

+	char           wk3[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKCNT;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYCNT;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONCNT;

+	char           wk6[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRCNT;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char SEC10:3;

+			unsigned char SEC1:4;

+		} BIT;

+	} RSECAR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char MIN10:3;

+			unsigned char MIN1:4;

+		} BIT;

+	} RMINAR;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char PM:1;

+			unsigned char HR10:2;

+			unsigned char HR1:4;

+		} BIT;

+	} RHRAR;

+	char           wk9[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :4;

+			unsigned char DAYW:3;

+		} BIT;

+	} RWKAR;

+	char           wk10[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :1;

+			unsigned char DATE10:2;

+			unsigned char DATE1:4;

+		} BIT;

+	} RDAYAR;

+	char           wk11[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+			unsigned char :2;

+			unsigned char MON10:1;

+			unsigned char MON1:4;

+		} BIT;

+	} RMONAR;

+	char           wk12[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short YR10:4;

+			unsigned short YR1:4;

+		} BIT;

+	} RYRAR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:1;

+		} BIT;

+	} RYRAREN;

+	char           wk13[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PES:4;

+			unsigned char RTCOS:1;

+			unsigned char PIE:1;

+			unsigned char CIE:1;

+			unsigned char AIE:1;

+		} BIT;

+	} RCR1;

+	char           wk14[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CNTMD:1;

+			unsigned char HR24:1;

+			unsigned char AADJP:1;

+			unsigned char AADJE:1;

+			unsigned char RTCOE:1;

+			unsigned char ADJ30:1;

+			unsigned char RESET:1;

+			unsigned char START:1;

+		} BIT;

+	} RCR2;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char RTCDV:2;

+			unsigned char RTCEN:1;

+		} BIT;

+	} RCR3;

+	char           wk16[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PMADJ:2;

+			unsigned char ADJ:6;

+		} BIT;

+	} RADJ;

+};

+

+struct st_rtcb {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT0;

+	char           wk0[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT1;

+	char           wk1[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT2;

+	char           wk2[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNT:8;

+		} BIT;

+	} BCNT3;

+	char           wk3[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT0AR;

+	char           wk4[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT1AR;

+	char           wk5[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT2AR;

+	char           wk6[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCNTAR:8;

+		} BIT;

+	} BCNT3AR;

+	char           wk7[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT0AER;

+	char           wk8[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT1AER;

+	char           wk9[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short ENB:8;

+		} BIT;

+	} BCNT2AER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char ENB:8;

+		} BIT;

+	} BCNT3AER;

+};

+

+struct st_s12ad {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADST:1;

+			unsigned short ADCS:2;

+			unsigned short ADIE:1;

+			unsigned short :1;

+			unsigned short ADHSC:1;

+			unsigned short TRGE:1;

+			unsigned short EXTRG:1;

+			unsigned short DBLE:1;

+			unsigned short GBADIE:1;

+			unsigned short :1;

+			unsigned short DBLANS:5;

+		} BIT;

+	} ADCSR;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSA15:1;

+			unsigned short ANSA14:1;

+			unsigned short ANSA13:1;

+			unsigned short ANSA12:1;

+			unsigned short ANSA11:1;

+			unsigned short ANSA10:1;

+			unsigned short ANSA9:1;

+			unsigned short ANSA8:1;

+			unsigned short :1;

+			unsigned short ANSA6:1;

+			unsigned short :1;

+			unsigned short ANSA4:1;

+			unsigned short ANSA3:1;

+			unsigned short ANSA2:1;

+			unsigned short ANSA1:1;

+			unsigned short ANSA0:1;

+		} BIT;

+	} ADANSA;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADS15:1;

+			unsigned short ADS14:1;

+			unsigned short ADS13:1;

+			unsigned short ADS12:1;

+			unsigned short ADS11:1;

+			unsigned short ADS10:1;

+			unsigned short ADS9:1;

+			unsigned short ADS8:1;

+			unsigned short :1;

+			unsigned short ADS6:1;

+			unsigned short :1;

+			unsigned short ADS4:1;

+			unsigned short ADS3:1;

+			unsigned short ADS2:1;

+			unsigned short ADS1:1;

+			unsigned short ADS0:1;

+		} BIT;

+	} ADADS;

+	char           wk2[2];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char ADC:2;

+		} BIT;

+	} ADADC;

+	char           wk3[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ADRFMT:1;

+			unsigned short :9;

+			unsigned short ACE:1;

+		} BIT;

+	} ADCER;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short TRSA:4;

+			unsigned short :4;

+			unsigned short TRSB:4;

+		} BIT;

+	} ADSTRGR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short OCS:1;

+			unsigned short TSS:1;

+			unsigned short :6;

+			unsigned short OCSAD:1;

+		} BIT;

+	} ADEXICR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short ANSB15:1;

+			unsigned short ANSB14:1;

+			unsigned short ANSB13:1;

+			unsigned short ANSB12:1;

+			unsigned short ANSB11:1;

+			unsigned short ANSB10:1;

+			unsigned short ANSB9:1;

+			unsigned short ANSB8:1;

+			unsigned short :1;

+			unsigned short ANSB6:1;

+			unsigned short :1;

+			unsigned short ANSB4:1;

+			unsigned short ANSB3:1;

+			unsigned short ANSB2:1;

+			unsigned short ANSB1:1;

+			unsigned short ANSB0:1;

+		} BIT;

+	} ADANSB;

+	char           wk4[2];

+	unsigned short ADDBLDR;

+	unsigned short ADTSDR;

+	unsigned short ADOCDR;

+	char           wk5[2];

+	unsigned short ADDR0;

+	unsigned short ADDR1;

+	unsigned short ADDR2;

+	unsigned short ADDR3;

+	unsigned short ADDR4;

+	char           wk6[2];

+	unsigned short ADDR6;

+	char           wk7[2];

+	unsigned short ADDR8;

+	unsigned short ADDR9;

+	unsigned short ADDR10;

+	unsigned short ADDR11;

+	unsigned short ADDR12;

+	unsigned short ADDR13;

+	unsigned short ADDR14;

+	unsigned short ADDR15;

+	char           wk8[32];

+	unsigned char  ADSSTR0;

+	unsigned char  ADSSTRL;

+	char           wk9[14];

+	unsigned char  ADSSTRT;

+	unsigned char  ADSSTRO;

+	char           wk10[1];

+	unsigned char  ADSSTR1;

+	unsigned char  ADSSTR2;

+	unsigned char  ADSSTR3;

+	unsigned char  ADSSTR4;

+	char           wk11[1];

+	unsigned char  ADSSTR6;

+};

+

+struct st_sci1 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+};

+

+struct st_sci12 {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CM:1;

+			unsigned char CHR:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char STOP:1;

+			unsigned char MP:1;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char FER:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RXDESEL:1;

+			unsigned char :1;

+			unsigned char NFEN:1;

+			unsigned char ABCS:1;

+		} BIT;

+	} SEMR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char NFCS:3;

+		} BIT;

+	} SNFR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICDL:5;

+			unsigned char :2;

+			unsigned char IICM:1;

+		} BIT;

+	} SIMR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char IICACKT:1;

+			unsigned char :3;

+			unsigned char IICCSC:1;

+			unsigned char IICINTM:1;

+		} BIT;

+	} SIMR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char IICSCLS:2;

+			unsigned char IICSDAS:2;

+			unsigned char IICSTIF:1;

+			unsigned char IICSTPREQ:1;

+			unsigned char IICRSTAREQ:1;

+			unsigned char IICSTAREQ:1;

+		} BIT;

+	} SIMR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char IICACKR:1;

+		} BIT;

+	} SISR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CKPH:1;

+			unsigned char CKPOL:1;

+			unsigned char :1;

+			unsigned char MFF:1;

+			unsigned char :1;

+			unsigned char MSS:1;

+			unsigned char CTSE:1;

+			unsigned char SSE:1;

+		} BIT;

+	} SPMR;

+	char           wk0[18];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ESME:1;

+		} BIT;

+	} ESMER;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char BRME:1;

+			unsigned char RXDSF:1;

+			unsigned char SFSF:1;

+		} BIT;

+	} CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char PIBS:3;

+			unsigned char PIBE:1;

+			unsigned char CF1DS:2;

+			unsigned char CF0RE:1;

+			unsigned char BFE:1;

+		} BIT;

+	} CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RTS:2;

+			unsigned char BCCS:2;

+			unsigned char :1;

+			unsigned char DFCS:3;

+		} BIT;

+	} CR2;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SDST:1;

+		} BIT;

+	} CR3;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SHARPS:1;

+			unsigned char :2;

+			unsigned char RXDXPS:1;

+			unsigned char TXDXPS:1;

+		} BIT;

+	} PCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDIE:1;

+			unsigned char BCDIE:1;

+			unsigned char PIBDIE:1;

+			unsigned char CF1MIE:1;

+			unsigned char CF0MIE:1;

+			unsigned char BFDIE:1;

+		} BIT;

+	} ICR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDF:1;

+			unsigned char BCDF:1;

+			unsigned char PIBDF:1;

+			unsigned char CF1MF:1;

+			unsigned char CF0MF:1;

+			unsigned char BFDF:1;

+		} BIT;

+	} STR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char AEDCL:1;

+			unsigned char BCDCL:1;

+			unsigned char PIBDCL:1;

+			unsigned char CF1MCL:1;

+			unsigned char CF0MCL:1;

+			unsigned char BFDCL:1;

+		} BIT;

+	} STCR;

+	unsigned char  CF0DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF0CE7:1;

+			unsigned char CF0CE6:1;

+			unsigned char CF0CE5:1;

+			unsigned char CF0CE4:1;

+			unsigned char CF0CE3:1;

+			unsigned char CF0CE2:1;

+			unsigned char CF0CE1:1;

+			unsigned char CF0CE0:1;

+		} BIT;

+	} CF0CR;

+	unsigned char  CF0RR;

+	unsigned char  PCF1DR;

+	unsigned char  SCF1DR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char CF1CE7:1;

+			unsigned char CF1CE6:1;

+			unsigned char CF1CE5:1;

+			unsigned char CF1CE4:1;

+			unsigned char CF1CE3:1;

+			unsigned char CF1CE2:1;

+			unsigned char CF1CE1:1;

+			unsigned char CF1CE0:1;

+		} BIT;

+	} CF1CR;

+	unsigned char  CF1RR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char TCST:1;

+		} BIT;

+	} TCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char TCSS:3;

+			unsigned char TWRC:1;

+			unsigned char :1;

+			unsigned char TOMS:2;

+		} BIT;

+	} TMR;

+	unsigned char  TPRE;

+	unsigned char  TCNT;

+};

+

+struct st_smci {

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char GM:1;

+			unsigned char BLK:1;

+			unsigned char PE:1;

+			unsigned char PM:1;

+			unsigned char BCP:2;

+			unsigned char CKS:2;

+		} BIT;

+	} SMR;

+	unsigned char  BRR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char TIE:1;

+			unsigned char RIE:1;

+			unsigned char TE:1;

+			unsigned char RE:1;

+			unsigned char MPIE:1;

+			unsigned char TEIE:1;

+			unsigned char CKE:2;

+		} BIT;

+	} SCR;

+	unsigned char  TDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char ORER:1;

+			unsigned char ERS:1;

+			unsigned char PER:1;

+			unsigned char TEND:1;

+			unsigned char MPB:1;

+			unsigned char MPBT:1;

+		} BIT;

+	} SSR;

+	unsigned char  RDR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char BCP2:1;

+			unsigned char :3;

+			unsigned char SDIR:1;

+			unsigned char SINV:1;

+			unsigned char :1;

+			unsigned char SMIF:1;

+		} BIT;

+	} SCMR;

+};

+

+struct st_system {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short MD:1;

+		} BIT;

+	} MDMONR;

+	char           wk0[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :15;

+			unsigned short RAME:1;

+		} BIT;

+	} SYSCR1;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short SSBY:1;

+		} BIT;

+	} SBYCR;

+	char           wk2[2];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :3;

+			unsigned long MSTPA28:1;

+			unsigned long :8;

+			unsigned long MSTPA19:1;

+			unsigned long :1;

+			unsigned long MSTPA17:1;

+			unsigned long :1;

+			unsigned long MSTPA15:1;

+			unsigned long :5;

+			unsigned long MSTPA9:1;

+		} BIT;

+	} MSTPCRA;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long :1;

+			unsigned long MSTPB30:1;

+			unsigned long :3;

+			unsigned long MSTPB26:1;

+			unsigned long :2;

+			unsigned long MSTPB23:1;

+			unsigned long :1;

+			unsigned long MSTPB21:1;

+			unsigned long :1;

+			unsigned long MSTPB19:1;

+			unsigned long :1;

+			unsigned long MSTPB17:1;

+			unsigned long :7;

+			unsigned long MSTPB9:1;

+			unsigned long :2;

+			unsigned long MSTPB6:1;

+			unsigned long :1;

+			unsigned long MSTPB4:1;

+		} BIT;

+	} MSTPCRB;

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long DSLPE:1;

+			unsigned long :11;

+			unsigned long MSTPC19:1;

+			unsigned long :18;

+			unsigned long MSTPC0:1;

+		} BIT;

+	} MSTPCRC;

+	char           wk3[4];

+	union {

+		unsigned long LONG;

+		struct {

+			unsigned long FCK:4;

+			unsigned long ICK:4;

+			unsigned long :12;

+			unsigned long PCKB:4;

+			unsigned long :4;

+			unsigned long PCKD:4;

+		} BIT;

+	} SCKCR;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short CKSEL:3;

+		} BIT;

+	} SCKCR3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :2;

+			unsigned short STC:6;

+			unsigned short :6;

+			unsigned short PLIDIV:2;

+		} BIT;

+	} PLLCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char PLLEN:1;

+		} BIT;

+	} PLLCR2;

+	char           wk5[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char MOSTP:1;

+		} BIT;

+	} MOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char SOSTP:1;

+		} BIT;

+	} SOSCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char LCSTP:1;

+		} BIT;

+	} LOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char ILCSTP:1;

+		} BIT;

+	} ILOCOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char HCSTP:1;

+		} BIT;

+	} HOCOCR;

+	char           wk6[5];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char HCOVF:1;

+			unsigned char PLOVF:1;

+			unsigned char :1;

+			unsigned char MOOVF:1;

+		} BIT;

+	} OSCOVFSR;

+	char           wk7[1];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short CKOSTP:1;

+			unsigned short CKODIV:3;

+			unsigned short :1;

+			unsigned short CKOSEL:3;

+		} BIT;

+	} CKOCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char OSTDE:1;

+			unsigned char :6;

+			unsigned char OSTDIE:1;

+		} BIT;

+	} OSTDCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char OSTDF:1;

+		} BIT;

+	} OSTDSR;

+	char           wk8[94];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char OPCMTSF:1;

+			unsigned char :1;

+			unsigned char OPCM:3;

+		} BIT;

+	} OPCCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char RSTCKEN:1;

+			unsigned char :4;

+			unsigned char RSTCKSEL:3;

+		} BIT;

+	} RSTCKCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char MSTS:5;

+		} BIT;

+	} MOSCWTCR;

+	char           wk9[7];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :3;

+			unsigned char SOPCMTSF:1;

+			unsigned char :3;

+			unsigned char SOPCM:1;

+		} BIT;

+	} SOPCCR;

+	char           wk10[21];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char SWRF:1;

+			unsigned char :1;

+			unsigned char IWDTRF:1;

+		} BIT;

+	} RSTSR2;

+	char           wk11[1];

+	unsigned short SWRR;

+	char           wk12[28];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD1IRQSEL:1;

+			unsigned char LVD1IDTSEL:2;

+		} BIT;

+	} LVD1CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD1MON:1;

+			unsigned char LVD1DET:1;

+		} BIT;

+	} LVD1SR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :5;

+			unsigned char LVD2IRQSEL:1;

+			unsigned char LVD2IDTSEL:2;

+		} BIT;

+	} LVD2CR1;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :6;

+			unsigned char LVD2MON:1;

+			unsigned char LVD2DET:1;

+		} BIT;

+	} LVD2SR;

+	char           wk13[794];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short PRKEY:8;

+			unsigned short :4;

+			unsigned short PRC3:1;

+			unsigned short :1;

+			unsigned short PRC1:1;

+			unsigned short PRC0:1;

+		} BIT;

+	} PRCR;

+	char           wk14[48784];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :4;

+			unsigned char LVD2RF:1;

+			unsigned char LVD1RF:1;

+			unsigned char :1;

+			unsigned char PORF:1;

+		} BIT;

+	} RSTSR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :7;

+			unsigned char CWSF:1;

+		} BIT;

+	} RSTSR1;

+	char           wk15[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char MOSEL:1;

+			unsigned char MODRV21:1;

+		} BIT;

+	} MOFCR;

+	char           wk16[3];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :1;

+			unsigned char LVD2E:1;

+			unsigned char LVD1E:1;

+			unsigned char :1;

+			unsigned char EXVCCINP2:1;

+		} BIT;

+	} LVCMPCR;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char :2;

+			unsigned char LVD2LVL:2;

+			unsigned char LVD1LVL:4;

+		} BIT;

+	} LVDLVLR;

+	char           wk17[1];

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD1RN:1;

+			unsigned char LVD1RI:1;

+			unsigned char :3;

+			unsigned char LVD1CMPE:1;

+			unsigned char :1;

+			unsigned char LVD1RIE:1;

+		} BIT;

+	} LVD1CR0;

+	union {

+		unsigned char BYTE;

+		struct {

+			unsigned char LVD2RN:1;

+			unsigned char LVD2RI:1;

+			unsigned char :3;

+			unsigned char LVD2CMPE:1;

+			unsigned char :1;

+			unsigned char LVD2RIE:1;

+		} BIT;

+	} LVD2CR0;

+};

+

+struct st_usb {

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :5;

+			unsigned short SCKE:1;

+			unsigned short :1;

+			unsigned short CNEN:1;

+			unsigned short :1;

+			unsigned short DCFM:1;

+			unsigned short DRPD:1;

+			unsigned short DPRPU:1;

+			unsigned short :3;

+			unsigned short USBE:1;

+		} BIT;

+	} SYSCFG;

+	char           wk0[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVCMON:2;

+			unsigned short :7;

+			unsigned short HTACT:1;

+			unsigned short :3;

+			unsigned short IDMON:1;

+			unsigned short LNST:2;

+		} BIT;

+	} SYSSTS0;

+	char           wk1[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :4;

+			unsigned short HNPBTOA:1;

+			unsigned short EXICEN:1;

+			unsigned short VBUSEN:1;

+			unsigned short WKUP:1;

+			unsigned short RWUPE:1;

+			unsigned short USBRST:1;

+			unsigned short RESUME:1;

+			unsigned short UACT:1;

+			unsigned short :1;

+			unsigned short RHST:3;

+		} BIT;

+	} DVSTCTR0;

+	char           wk2[10];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} CFIFO;

+	char           wk3[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D0FIFO;

+	char           wk4[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned char L;

+			unsigned char H;

+		} BYTE;

+	} D1FIFO;

+	char           wk5[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short :3;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :2;

+			unsigned short ISEL:1;

+			unsigned short :1;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} CFIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} CFIFOCTR;

+	char           wk6[4];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D0FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D0FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short RCNT:1;

+			unsigned short REW:1;

+			unsigned short DCLRM:1;

+			unsigned short DREQE:1;

+			unsigned short :1;

+			unsigned short MBW:1;

+			unsigned short :1;

+			unsigned short BIGEND:1;

+			unsigned short :4;

+			unsigned short CURPIPE:4;

+		} BIT;

+	} D1FIFOSEL;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BVAL:1;

+			unsigned short BCLR:1;

+			unsigned short FRDY:1;

+			unsigned short :4;

+			unsigned short DTLN:9;

+		} BIT;

+	} D1FIFOCTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBSE:1;

+			unsigned short RSME:1;

+			unsigned short SOFE:1;

+			unsigned short DVSE:1;

+			unsigned short CTRE:1;

+			unsigned short BEMPE:1;

+			unsigned short NRDYE:1;

+			unsigned short BRDYE:1;

+		} BIT;

+	} INTENB0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCRE:1;

+			unsigned short BCHGE:1;

+			unsigned short :1;

+			unsigned short DTCHE:1;

+			unsigned short ATTCHE:1;

+			unsigned short :4;

+			unsigned short EOFERRE:1;

+			unsigned short SIGNE:1;

+			unsigned short SACKE:1;

+			unsigned short :3;

+			unsigned short PDDETINTE0:1;

+		} BIT;

+	} INTENB1;

+	char           wk7[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDYE:1;

+			unsigned short PIPE8BRDYE:1;

+			unsigned short PIPE7BRDYE:1;

+			unsigned short PIPE6BRDYE:1;

+			unsigned short PIPE5BRDYE:1;

+			unsigned short PIPE4BRDYE:1;

+			unsigned short PIPE3BRDYE:1;

+			unsigned short PIPE2BRDYE:1;

+			unsigned short PIPE1BRDYE:1;

+			unsigned short PIPE0BRDYE:1;

+		} BIT;

+	} BRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDYE:1;

+			unsigned short PIPE8NRDYE:1;

+			unsigned short PIPE7NRDYE:1;

+			unsigned short PIPE6NRDYE:1;

+			unsigned short PIPE5NRDYE:1;

+			unsigned short PIPE4NRDYE:1;

+			unsigned short PIPE3NRDYE:1;

+			unsigned short PIPE2NRDYE:1;

+			unsigned short PIPE1NRDYE:1;

+			unsigned short PIPE0NRDYE:1;

+		} BIT;

+	} NRDYENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMPE:1;

+			unsigned short PIPE8BEMPE:1;

+			unsigned short PIPE7BEMPE:1;

+			unsigned short PIPE6BEMPE:1;

+			unsigned short PIPE5BEMPE:1;

+			unsigned short PIPE4BEMPE:1;

+			unsigned short PIPE3BEMPE:1;

+			unsigned short PIPE2BEMPE:1;

+			unsigned short PIPE1BEMPE:1;

+			unsigned short PIPE0BEMPE:1;

+		} BIT;

+	} BEMPENB;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :7;

+			unsigned short TRNENSEL:1;

+			unsigned short :1;

+			unsigned short BRDYM:1;

+			unsigned short :1;

+			unsigned short EDGESTS:1;

+		} BIT;

+	} SOFCFG;

+	char           wk8[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short VBINT:1;

+			unsigned short RESM:1;

+			unsigned short SOFR:1;

+			unsigned short DVST:1;

+			unsigned short CTRT:1;

+			unsigned short BEMP:1;

+			unsigned short NRDY:1;

+			unsigned short BRDY:1;

+			unsigned short VBSTS:1;

+			unsigned short DVSQ:3;

+			unsigned short VALID:1;

+			unsigned short CTSQ:3;

+		} BIT;

+	} INTSTS0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRCR:1;

+			unsigned short BCHG:1;

+			unsigned short :1;

+			unsigned short DTCH:1;

+			unsigned short ATTCH:1;

+			unsigned short :4;

+			unsigned short EOFERR:1;

+			unsigned short SIGN:1;

+			unsigned short SACK:1;

+			unsigned short :3;

+			unsigned short PDDETINT0:1;

+		} BIT;

+	} INTSTS1;

+	char           wk9[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BRDY:1;

+			unsigned short PIPE8BRDY:1;

+			unsigned short PIPE7BRDY:1;

+			unsigned short PIPE6BRDY:1;

+			unsigned short PIPE5BRDY:1;

+			unsigned short PIPE4BRDY:1;

+			unsigned short PIPE3BRDY:1;

+			unsigned short PIPE2BRDY:1;

+			unsigned short PIPE1BRDY:1;

+			unsigned short PIPE0BRDY:1;

+		} BIT;

+	} BRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9NRDY:1;

+			unsigned short PIPE8NRDY:1;

+			unsigned short PIPE7NRDY:1;

+			unsigned short PIPE6NRDY:1;

+			unsigned short PIPE5NRDY:1;

+			unsigned short PIPE4NRDY:1;

+			unsigned short PIPE3NRDY:1;

+			unsigned short PIPE2NRDY:1;

+			unsigned short PIPE1NRDY:1;

+			unsigned short PIPE0NRDY:1;

+		} BIT;

+	} NRDYSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PIPE9BEMP:1;

+			unsigned short PIPE8BEMP:1;

+			unsigned short PIPE7BEMP:1;

+			unsigned short PIPE6BEMP:1;

+			unsigned short PIPE5BEMP:1;

+			unsigned short PIPE4BEMP:1;

+			unsigned short PIPE3BEMP:1;

+			unsigned short PIPE2BEMP:1;

+			unsigned short PIPE1BEMP:1;

+			unsigned short PIPE0BEMP:1;

+		} BIT;

+	} BEMPSTS;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short OVRN:1;

+			unsigned short CRCE:1;

+			unsigned short :3;

+			unsigned short FRNM:11;

+		} BIT;

+	} FRMNUM;

+	char           wk10[6];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BREQUEST:8;

+			unsigned short BMREQUESTTYPE:8;

+		} BIT;

+	} USBREQ;

+	unsigned short USBVAL;

+	unsigned short USBINDX;

+	unsigned short USBLENG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+		} BIT;

+	} DCPCFG;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :5;

+			unsigned short MXPS:7;

+		} BIT;

+	} DCPMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short SUREQ:1;

+			unsigned short :2;

+			unsigned short SUREQCLR:1;

+			unsigned short :2;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :2;

+			unsigned short CCPL:1;

+			unsigned short PID:2;

+		} BIT;

+	} DCPCTR;

+	char           wk11[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :12;

+			unsigned short PIPESEL:4;

+		} BIT;

+	} PIPESEL;

+	char           wk12[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short TYPE:2;

+			unsigned short :3;

+			unsigned short BFRE:1;

+			unsigned short DBLB:1;

+			unsigned short :1;

+			unsigned short SHTNAK:1;

+			unsigned short :2;

+			unsigned short DIR:1;

+			unsigned short EPNUM:4;

+		} BIT;

+	} PIPECFG;

+	char           wk13[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short DEVSEL:4;

+			unsigned short :3;

+			unsigned short MXPS:9;

+		} BIT;

+	} PIPEMAXP;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :3;

+			unsigned short IFIS:1;

+			unsigned short :9;

+			unsigned short IITV:3;

+		} BIT;

+	} PIPEPERI;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE1CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE2CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE3CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE4CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short INBUFM:1;

+			unsigned short :3;

+			unsigned short ATREPM:1;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE5CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE6CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE7CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE8CTR;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short BSTS:1;

+			unsigned short :5;

+			unsigned short ACLRM:1;

+			unsigned short SQCLR:1;

+			unsigned short SQSET:1;

+			unsigned short SQMON:1;

+			unsigned short PBUSY:1;

+			unsigned short :3;

+			unsigned short PID:2;

+		} BIT;

+	} PIPE9CTR;

+	char           wk14[14];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE1TRE;

+	unsigned short PIPE1TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE2TRE;

+	unsigned short PIPE2TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE3TRE;

+	unsigned short PIPE3TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE4TRE;

+	unsigned short PIPE4TRN;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short TRENB:1;

+			unsigned short TRCLR:1;

+		} BIT;

+	} PIPE5TRE;

+	unsigned short PIPE5TRN;

+	char           wk15[12];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :6;

+			unsigned short PDDETSTS0:1;

+			unsigned short CHGDETSTS0:1;

+			unsigned short BATCHGE0:1;

+			unsigned short DCPMODE0:1;

+			unsigned short VDMSRCE0:1;

+			unsigned short IDPSINKE0:1;

+			unsigned short VDPSRCE0:1;

+			unsigned short IDMSINKE0:1;

+			unsigned short IDPSRCE0:1;

+			unsigned short RPDME0:1;

+		} BIT;

+	} USBBCCTRL0;

+	char           wk16[26];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short VBRPDCUT:1;

+			unsigned short :6;

+			unsigned short VDDUSBE:1;

+		} BIT;

+	} USBMC;

+	char           wk17[2];

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD0;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD1;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD2;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD3;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD4;

+	union {

+		unsigned short WORD;

+		struct {

+			unsigned short :8;

+			unsigned short USBSPD:2;

+		} BIT;

+	} DEVADD5;

+};

+

+enum enum_ir {

+IR_BSC_BUSERR=16,IR_ICU_SWINT=27,

+IR_CMT0_CMI0,

+IR_CMT1_CMI1,

+IR_CAC_FERRF=32,IR_CAC_MENDF,IR_CAC_OVFF,

+IR_USB0_D0FIFO0=36,IR_USB0_D1FIFO0,IR_USB0_USBI0,

+IR_RSPI0_SPEI0=44,IR_RSPI0_SPRI0,IR_RSPI0_SPTI0,IR_RSPI0_SPII0,

+IR_DOC_DOPCF=57,

+IR_RTC_CUP=63,

+IR_ICU_IRQ0,IR_ICU_IRQ1,IR_ICU_IRQ2,IR_ICU_IRQ3,IR_ICU_IRQ4,IR_ICU_IRQ5,IR_ICU_IRQ6,IR_ICU_IRQ7,

+IR_LVD_LVD1=88,IR_LVD_LVD2,

+IR_USB0_USBR0,

+IR_RTC_ALM=92,IR_RTC_PRD,

+IR_S12AD_S12ADI0=102,IR_S12AD_GBADI,

+IR_ELC_ELSR18I=106,

+IR_MTU0_TGIA0=114,IR_MTU0_TGIB0,IR_MTU0_TGIC0,IR_MTU0_TGID0,IR_MTU0_TCIV0,IR_MTU0_TGIE0,IR_MTU0_TGIF0,

+IR_MTU1_TGIA1,IR_MTU1_TGIB1,IR_MTU1_TCIV1,IR_MTU1_TCIU1,

+IR_MTU2_TGIA2,IR_MTU2_TGIB2,IR_MTU2_TCIV2,IR_MTU2_TCIU2,

+IR_MTU3_TGIA3,IR_MTU3_TGIB3,IR_MTU3_TGIC3,IR_MTU3_TGID3,IR_MTU3_TCIV3,

+IR_MTU4_TGIA4,IR_MTU4_TGIB4,IR_MTU4_TGIC4,IR_MTU4_TGID4,IR_MTU4_TCIV4,

+IR_MTU5_TGIU5,IR_MTU5_TGIV5,IR_MTU5_TGIW5,

+IR_POE_OEI1=170,IR_POE_OEI2,

+IR_SCI1_ERI1=218,IR_SCI1_RXI1,IR_SCI1_TXI1,IR_SCI1_TEI1,

+IR_SCI5_ERI5,IR_SCI5_RXI5,IR_SCI5_TXI5,IR_SCI5_TEI5,

+IR_SCI12_ERI12=238,IR_SCI12_RXI12,IR_SCI12_TXI12,IR_SCI12_TEI12,IR_SCI12_SCIX0,IR_SCI12_SCIX1,IR_SCI12_SCIX2,IR_SCI12_SCIX3,

+IR_RIIC0_EEI0,IR_RIIC0_RXI0,IR_RIIC0_TXI0,IR_RIIC0_TEI0

+};

+

+enum enum_dtce {

+DTCE_ICU_SWINT=27,

+DTCE_CMT0_CMI0,

+DTCE_CMT1_CMI1,

+DTCE_USB0_D0FIFO0=36,DTCE_USB0_D1FIFO0,

+DTCE_RSPI0_SPRI0=45,DTCE_RSPI0_SPTI0,

+DTCE_ICU_IRQ0=64,DTCE_ICU_IRQ1,DTCE_ICU_IRQ2,DTCE_ICU_IRQ3,DTCE_ICU_IRQ4,DTCE_ICU_IRQ5,DTCE_ICU_IRQ6,DTCE_ICU_IRQ7,

+DTCE_S12AD_S12ADI0=102,DTCE_S12AD_GBADI,

+DTCE_ELC_ELSR18I=106,

+DTCE_MTU0_TGIA0=114,DTCE_MTU0_TGIB0,DTCE_MTU0_TGIC0,DTCE_MTU0_TGID0,

+DTCE_MTU1_TGIA1=121,DTCE_MTU1_TGIB1,

+DTCE_MTU2_TGIA2=125,DTCE_MTU2_TGIB2,

+DTCE_MTU3_TGIA3=129,DTCE_MTU3_TGIB3,DTCE_MTU3_TGIC3,DTCE_MTU3_TGID3,

+DTCE_MTU4_TGIA4=134,DTCE_MTU4_TGIB4,DTCE_MTU4_TGIC4,DTCE_MTU4_TGID4,DTCE_MTU4_TCIV4,

+DTCE_MTU5_TGIU5,DTCE_MTU5_TGIV5,DTCE_MTU5_TGIW5,

+DTCE_SCI1_RXI1=219,DTCE_SCI1_TXI1,

+DTCE_SCI5_RXI5=223,DTCE_SCI5_TXI5,

+DTCE_SCI12_RXI12=239,DTCE_SCI12_TXI12,

+DTCE_RIIC0_RXI0=247,DTCE_RIIC0_TXI0

+};

+

+enum enum_ier {

+IER_BSC_BUSERR=0x02,

+IER_ICU_SWINT=0x03,

+IER_CMT0_CMI0=0x03,

+IER_CMT1_CMI1=0x03,

+IER_CAC_FERRF=0x04,IER_CAC_MENDF=0x04,IER_CAC_OVFF=0x04,

+IER_USB0_D0FIFO0=0x04,IER_USB0_D1FIFO0=0x04,IER_USB0_USBI0=0x04,

+IER_RSPI0_SPEI0=0x05,IER_RSPI0_SPRI0=0x05,IER_RSPI0_SPTI0=0x05,IER_RSPI0_SPII0=0x05,

+IER_DOC_DOPCF=0x07,

+IER_RTC_CUP=0x07,

+IER_ICU_IRQ0=0x08,IER_ICU_IRQ1=0x08,IER_ICU_IRQ2=0x08,IER_ICU_IRQ3=0x08,IER_ICU_IRQ4=0x08,IER_ICU_IRQ5=0x08,IER_ICU_IRQ6=0x08,IER_ICU_IRQ7=0x08,

+IER_LVD_LVD1=0x0B,IER_LVD_LVD2=0x0B,

+IER_USB0_USBR0=0x0B,

+IER_RTC_ALM=0x0B,IER_RTC_PRD=0x0B,

+IER_S12AD_S12ADI0=0x0C,IER_S12AD_GBADI=0x0C,

+IER_ELC_ELSR18I=0x0D,

+IER_MTU0_TGIA0=0x0E,IER_MTU0_TGIB0=0x0E,IER_MTU0_TGIC0=0x0E,IER_MTU0_TGID0=0x0E,IER_MTU0_TCIV0=0x0E,IER_MTU0_TGIE0=0x0E,IER_MTU0_TGIF0=0x0F,

+IER_MTU1_TGIA1=0x0F,IER_MTU1_TGIB1=0x0F,IER_MTU1_TCIV1=0x0F,IER_MTU1_TCIU1=0x0F,

+IER_MTU2_TGIA2=0x0F,IER_MTU2_TGIB2=0x0F,IER_MTU2_TCIV2=0x0F,IER_MTU2_TCIU2=0x10,

+IER_MTU3_TGIA3=0x10,IER_MTU3_TGIB3=0x10,IER_MTU3_TGIC3=0x10,IER_MTU3_TGID3=0x10,IER_MTU3_TCIV3=0x10,

+IER_MTU4_TGIA4=0x10,IER_MTU4_TGIB4=0x10,IER_MTU4_TGIC4=0x11,IER_MTU4_TGID4=0x11,IER_MTU4_TCIV4=0x11,

+IER_MTU5_TGIU5=0x11,IER_MTU5_TGIV5=0x11,IER_MTU5_TGIW5=0x11,

+IER_POE_OEI1=0x15,IER_POE_OEI2=0x15,

+IER_SCI1_ERI1=0x1B,IER_SCI1_RXI1=0x1B,IER_SCI1_TXI1=0x1B,IER_SCI1_TEI1=0x1B,

+IER_SCI5_ERI5=0x1B,IER_SCI5_RXI5=0x1B,IER_SCI5_TXI5=0x1C,IER_SCI5_TEI5=0x1C,

+IER_SCI12_ERI12=0x1D,IER_SCI12_RXI12=0x1D,IER_SCI12_TXI12=0x1E,IER_SCI12_TEI12=0x1E,IER_SCI12_SCIX0=0x1E,IER_SCI12_SCIX1=0x1E,IER_SCI12_SCIX2=0x1E,IER_SCI12_SCIX3=0x1E,

+IER_RIIC0_EEI0=0x1E,IER_RIIC0_RXI0=0x1E,IER_RIIC0_TXI0=0x1F,IER_RIIC0_TEI0=0x1F

+};

+

+enum enum_ipr {

+IPR_BSC_BUSERR=0,

+IPR_ICU_SWINT=3,

+IPR_CMT0_CMI0=4,

+IPR_CMT1_CMI1=5,

+IPR_CAC_FERRF=32,IPR_CAC_MENDF=33,IPR_CAC_OVFF=34,

+IPR_USB0_D0FIFO0=36,IPR_USB0_D1FIFO0=37,IPR_USB0_USBI0=38,

+IPR_RSPI0_SPEI0=44,IPR_RSPI0_SPRI0=44,IPR_RSPI0_SPTI0=44,IPR_RSPI0_SPII0=44,

+IPR_DOC_DOPCF=57,

+IPR_RTC_CUP=63,

+IPR_ICU_IRQ0=64,IPR_ICU_IRQ1=65,IPR_ICU_IRQ2=66,IPR_ICU_IRQ3=67,IPR_ICU_IRQ4=68,IPR_ICU_IRQ5=69,IPR_ICU_IRQ6=70,IPR_ICU_IRQ7=71,

+IPR_LVD_LVD1=88,IPR_LVD_LVD2=89,

+IPR_USB0_USBR0=90,

+IPR_RTC_ALM=92,IPR_RTC_PRD=93,

+IPR_S12AD_S12ADI0=102,IPR_S12AD_GBADI=103,

+IPR_ELC_ELSR18I=106,

+IPR_MTU0_TGIA0=114,IPR_MTU0_TGIB0=114,IPR_MTU0_TGIC0=114,IPR_MTU0_TGID0=114,IPR_MTU0_TCIV0=118,IPR_MTU0_TGIE0=118,IPR_MTU0_TGIF0=118,

+IPR_MTU1_TGIA1=121,IPR_MTU1_TGIB1=121,IPR_MTU1_TCIV1=123,IPR_MTU1_TCIU1=123,

+IPR_MTU2_TGIA2=125,IPR_MTU2_TGIB2=125,IPR_MTU2_TCIV2=127,IPR_MTU2_TCIU2=127,

+IPR_MTU3_TGIA3=129,IPR_MTU3_TGIB3=129,IPR_MTU3_TGIC3=129,IPR_MTU3_TGID3=129,IPR_MTU3_TCIV3=133,

+IPR_MTU4_TGIA4=134,IPR_MTU4_TGIB4=134,IPR_MTU4_TGIC4=134,IPR_MTU4_TGID4=134,IPR_MTU4_TCIV4=138,

+IPR_MTU5_TGIU5=139,IPR_MTU5_TGIV5=139,IPR_MTU5_TGIW5=139,

+IPR_POE_OEI1=170,IPR_POE_OEI2=171,

+IPR_SCI1_ERI1=218,IPR_SCI1_RXI1=218,IPR_SCI1_TXI1=218,IPR_SCI1_TEI1=218,

+IPR_SCI5_ERI5=222,IPR_SCI5_RXI5=222,IPR_SCI5_TXI5=222,IPR_SCI5_TEI5=222,

+IPR_SCI12_ERI12=238,IPR_SCI12_RXI12=238,IPR_SCI12_TXI12=238,IPR_SCI12_TEI12=238,IPR_SCI12_SCIX0=242,IPR_SCI12_SCIX1=243,IPR_SCI12_SCIX2=244,IPR_SCI12_SCIX3=245,

+IPR_RIIC0_EEI0=246,IPR_RIIC0_RXI0=247,IPR_RIIC0_TXI0=248,IPR_RIIC0_TEI0=249,

+IPR_BSC_=0,

+IPR_CMT0_=4,

+IPR_CMT1_=5,

+IPR_RSPI0_=44,

+IPR_DOC_=57,

+IPR_ELC_=106,

+IPR_MTU1_TGI=121,

+IPR_MTU1_TCI=123,

+IPR_MTU2_TGI=125,

+IPR_MTU2_TCI=127,

+IPR_MTU3_TGI=129,

+IPR_MTU4_TGI=134,

+IPR_MTU5_=139,

+IPR_MTU5_TGI=139,

+IPR_SCI1_=218,

+IPR_SCI5_=222

+};

+

+#define	IEN_BSC_BUSERR		IEN0

+#define	IEN_ICU_SWINT		IEN3

+#define	IEN_CMT0_CMI0		IEN4

+#define	IEN_CMT1_CMI1		IEN5

+#define	IEN_CAC_FERRF		IEN0

+#define	IEN_CAC_MENDF		IEN1

+#define	IEN_CAC_OVFF		IEN2

+#define	IEN_USB0_D0FIFO0	IEN4

+#define	IEN_USB0_D1FIFO0	IEN5

+#define	IEN_USB0_USBI0		IEN6

+#define	IEN_RSPI0_SPEI0		IEN4

+#define	IEN_RSPI0_SPRI0		IEN5

+#define	IEN_RSPI0_SPTI0		IEN6

+#define	IEN_RSPI0_SPII0		IEN7

+#define	IEN_DOC_DOPCF		IEN1

+#define	IEN_RTC_CUP			IEN7

+#define	IEN_ICU_IRQ0		IEN0

+#define	IEN_ICU_IRQ1		IEN1

+#define	IEN_ICU_IRQ2		IEN2

+#define	IEN_ICU_IRQ3		IEN3

+#define	IEN_ICU_IRQ4		IEN4

+#define	IEN_ICU_IRQ5		IEN5

+#define	IEN_ICU_IRQ6		IEN6

+#define	IEN_ICU_IRQ7		IEN7

+#define	IEN_LVD_LVD1		IEN0

+#define	IEN_LVD_LVD2		IEN1

+#define	IEN_USB0_USBR0		IEN2

+#define	IEN_RTC_ALM			IEN4

+#define	IEN_RTC_PRD			IEN5

+#define	IEN_S12AD_S12ADI0	IEN6

+#define	IEN_S12AD_GBADI		IEN7

+#define	IEN_ELC_ELSR18I		IEN2

+#define	IEN_MTU0_TGIA0		IEN2

+#define	IEN_MTU0_TGIB0		IEN3

+#define	IEN_MTU0_TGIC0		IEN4

+#define	IEN_MTU0_TGID0		IEN5

+#define	IEN_MTU0_TCIV0		IEN6

+#define	IEN_MTU0_TGIE0		IEN7

+#define	IEN_MTU0_TGIF0		IEN0

+#define	IEN_MTU1_TGIA1		IEN1

+#define	IEN_MTU1_TGIB1		IEN2

+#define	IEN_MTU1_TCIV1		IEN3

+#define	IEN_MTU1_TCIU1		IEN4

+#define	IEN_MTU2_TGIA2		IEN5

+#define	IEN_MTU2_TGIB2		IEN6

+#define	IEN_MTU2_TCIV2		IEN7

+#define	IEN_MTU2_TCIU2		IEN0

+#define	IEN_MTU3_TGIA3		IEN1

+#define	IEN_MTU3_TGIB3		IEN2

+#define	IEN_MTU3_TGIC3		IEN3

+#define	IEN_MTU3_TGID3		IEN4

+#define	IEN_MTU3_TCIV3		IEN5

+#define	IEN_MTU4_TGIA4		IEN6

+#define	IEN_MTU4_TGIB4		IEN7

+#define	IEN_MTU4_TGIC4		IEN0

+#define	IEN_MTU4_TGID4		IEN1

+#define	IEN_MTU4_TCIV4		IEN2

+#define	IEN_MTU5_TGIU5		IEN3

+#define	IEN_MTU5_TGIV5		IEN4

+#define	IEN_MTU5_TGIW5		IEN5

+#define	IEN_POE_OEI1		IEN2

+#define	IEN_POE_OEI2		IEN3

+#define	IEN_SCI1_ERI1		IEN2

+#define	IEN_SCI1_RXI1		IEN3

+#define	IEN_SCI1_TXI1		IEN4

+#define	IEN_SCI1_TEI1		IEN5

+#define	IEN_SCI5_ERI5		IEN6

+#define	IEN_SCI5_RXI5		IEN7

+#define	IEN_SCI5_TXI5		IEN0

+#define	IEN_SCI5_TEI5		IEN1

+#define	IEN_SCI12_ERI12		IEN6

+#define	IEN_SCI12_RXI12		IEN7

+#define	IEN_SCI12_TXI12		IEN0

+#define	IEN_SCI12_TEI12		IEN1

+#define	IEN_SCI12_SCIX0		IEN2

+#define	IEN_SCI12_SCIX1		IEN3

+#define	IEN_SCI12_SCIX2		IEN4

+#define	IEN_SCI12_SCIX3		IEN5

+#define	IEN_RIIC0_EEI0		IEN6

+#define	IEN_RIIC0_RXI0		IEN7

+#define	IEN_RIIC0_TXI0		IEN0

+#define	IEN_RIIC0_TEI0		IEN1

+

+#define	VECT_BSC_BUSERR		16

+#define	VECT_ICU_SWINT		27

+#define	VECT_CMT0_CMI0		28

+#define	VECT_CMT1_CMI1		29

+#define	VECT_CAC_FERRF		32

+#define	VECT_CAC_MENDF		33

+#define	VECT_CAC_OVFF		34

+#define	VECT_USB0_D0FIFO0	36

+#define	VECT_USB0_D1FIFO0	37

+#define	VECT_USB0_USBI0		38

+#define	VECT_RSPI0_SPEI0	44

+#define	VECT_RSPI0_SPRI0	45

+#define	VECT_RSPI0_SPTI0	46

+#define	VECT_RSPI0_SPII0	47

+#define	VECT_DOC_DOPCF		57

+#define	VECT_RTC_CUP		63

+#define	VECT_ICU_IRQ0		64

+#define	VECT_ICU_IRQ1		65

+#define	VECT_ICU_IRQ2		66

+#define	VECT_ICU_IRQ3		67

+#define	VECT_ICU_IRQ4		68

+#define	VECT_ICU_IRQ5		69

+#define	VECT_ICU_IRQ6		70

+#define	VECT_ICU_IRQ7		71

+#define	VECT_LVD_LVD1		88

+#define	VECT_LVD_LVD2		89

+#define	VECT_USB0_USBR0		90

+#define	VECT_RTC_ALM		92

+#define	VECT_RTC_PRD		93

+#define	VECT_S12AD_S12ADI0	102

+#define	VECT_S12AD_GBADI	103

+#define	VECT_ELC_ELSR18I	106

+#define	VECT_MTU0_TGIA0		114

+#define	VECT_MTU0_TGIB0		115

+#define	VECT_MTU0_TGIC0		116

+#define	VECT_MTU0_TGID0		117

+#define	VECT_MTU0_TCIV0		118

+#define	VECT_MTU0_TGIE0		119

+#define	VECT_MTU0_TGIF0		120

+#define	VECT_MTU1_TGIA1		121

+#define	VECT_MTU1_TGIB1		122

+#define	VECT_MTU1_TCIV1		123

+#define	VECT_MTU1_TCIU1		124

+#define	VECT_MTU2_TGIA2		125

+#define	VECT_MTU2_TGIB2		126

+#define	VECT_MTU2_TCIV2		127

+#define	VECT_MTU2_TCIU2		128

+#define	VECT_MTU3_TGIA3		129

+#define	VECT_MTU3_TGIB3		130

+#define	VECT_MTU3_TGIC3		131

+#define	VECT_MTU3_TGID3		132

+#define	VECT_MTU3_TCIV3		133

+#define	VECT_MTU4_TGIA4		134

+#define	VECT_MTU4_TGIB4		135

+#define	VECT_MTU4_TGIC4		136

+#define	VECT_MTU4_TGID4		137

+#define	VECT_MTU4_TCIV4		138

+#define	VECT_MTU5_TGIU5		139

+#define	VECT_MTU5_TGIV5		140

+#define	VECT_MTU5_TGIW5		141

+#define	VECT_POE_OEI1		170

+#define	VECT_POE_OEI2		171

+#define	VECT_SCI1_ERI1		218

+#define	VECT_SCI1_RXI1		219

+#define	VECT_SCI1_TXI1		220

+#define	VECT_SCI1_TEI1		221

+#define	VECT_SCI5_ERI5		222

+#define	VECT_SCI5_RXI5		223

+#define	VECT_SCI5_TXI5		224

+#define	VECT_SCI5_TEI5		225

+#define	VECT_SCI12_ERI12	238

+#define	VECT_SCI12_RXI12	239

+#define	VECT_SCI12_TXI12	240

+#define	VECT_SCI12_TEI12	241

+#define	VECT_SCI12_SCIX0	242

+#define	VECT_SCI12_SCIX1	243

+#define	VECT_SCI12_SCIX2	244

+#define	VECT_SCI12_SCIX3	245

+#define	VECT_RIIC0_EEI0		246

+#define	VECT_RIIC0_RXI0		247

+#define	VECT_RIIC0_TXI0		248

+#define	VECT_RIIC0_TEI0		249

+

+#define	MSTP_DTC	SYSTEM.MSTPCRA.BIT.MSTPA28

+#define	MSTP_DA		SYSTEM.MSTPCRA.BIT.MSTPA19

+#define	MSTP_S12AD	SYSTEM.MSTPCRA.BIT.MSTPA17

+#define	MSTP_CMT	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT0	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_CMT1	SYSTEM.MSTPCRA.BIT.MSTPA15

+#define	MSTP_MTU	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU0	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU1	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU2	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU3	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU4	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_MTU5	SYSTEM.MSTPCRA.BIT.MSTPA9

+#define	MSTP_SCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SMCI1	SYSTEM.MSTPCRB.BIT.MSTPB30

+#define	MSTP_SCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_SMCI5	SYSTEM.MSTPCRB.BIT.MSTPB26

+#define	MSTP_CRC	SYSTEM.MSTPCRB.BIT.MSTPB23

+#define	MSTP_RIIC0	SYSTEM.MSTPCRB.BIT.MSTPB21

+#define	MSTP_USB0	SYSTEM.MSTPCRB.BIT.MSTPB19

+#define	MSTP_RSPI0	SYSTEM.MSTPCRB.BIT.MSTPB17

+#define	MSTP_ELC	SYSTEM.MSTPCRB.BIT.MSTPB9

+#define	MSTP_DOC	SYSTEM.MSTPCRB.BIT.MSTPB6

+#define	MSTP_SCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_SMCI12	SYSTEM.MSTPCRB.BIT.MSTPB4

+#define	MSTP_CAC	SYSTEM.MSTPCRC.BIT.MSTPC19

+#define	MSTP_RAM0	SYSTEM.MSTPCRC.BIT.MSTPC0

+

+#define	__IR( x )		ICU.IR[ IR ## x ].BIT.IR

+#define	 _IR( x )		__IR( x )

+#define	  IR( x , y )	_IR( _ ## x ## _ ## y )

+#define	__DTCE( x )		ICU.DTCER[ DTCE ## x ].BIT.DTCE

+#define	 _DTCE( x )		__DTCE( x )

+#define	  DTCE( x , y )	_DTCE( _ ## x ## _ ## y )

+#define	__IEN( x )		ICU.IER[ IER ## x ].BIT.IEN ## x

+#define	 _IEN( x )		__IEN( x )

+#define	  IEN( x , y )	_IEN( _ ## x ## _ ## y )

+#define	__IPR( x )		ICU.IPR[ IPR ## x ].BIT.IPR

+#define	 _IPR( x )		__IPR( x )

+#define	  IPR( x , y )	_IPR( _ ## x ## _ ## y )

+#define	__VECT( x )		VECT ## x

+#define	 _VECT( x )		__VECT( x )

+#define	  VECT( x , y )	_VECT( _ ## x ## _ ## y )

+#define	__MSTP( x )		MSTP ## x

+#define	 _MSTP( x )		__MSTP( x )

+#define	  MSTP( x )		_MSTP( _ ## x )

+

+#define	BSC		(*(volatile struct st_bsc    __evenaccess *)0x81300)

+#define	CAC		(*(volatile struct st_cac    __evenaccess *)0x8B000)

+#define	CMT		(*(volatile struct st_cmt    __evenaccess *)0x88000)

+#define	CMT0	(*(volatile struct st_cmt0   __evenaccess *)0x88002)

+#define	CMT1	(*(volatile struct st_cmt0   __evenaccess *)0x88008)

+#define	CRC		(*(volatile struct st_crc    __evenaccess *)0x88280)

+#define	DA		(*(volatile struct st_da     __evenaccess *)0x880C0)

+#define	DOC		(*(volatile struct st_doc    __evenaccess *)0x8B080)

+#define	DTC		(*(volatile struct st_dtc    __evenaccess *)0x82400)

+#define	ELC		(*(volatile struct st_elc    __evenaccess *)0x8B100)

+#define	FLASH	(*(volatile struct st_flash  __evenaccess *)0x7FC090)

+#define	ICU		(*(volatile struct st_icu    __evenaccess *)0x87000)

+#define	IWDT	(*(volatile struct st_iwdt   __evenaccess *)0x88030)

+#define	MPC		(*(volatile struct st_mpc    __evenaccess *)0x8C11F)

+#define	MTU		(*(volatile struct st_mtu    __evenaccess *)0x8860A)

+#define	MTU0	(*(volatile struct st_mtu0   __evenaccess *)0x88690)

+#define	MTU1	(*(volatile struct st_mtu1   __evenaccess *)0x88690)

+#define	MTU2	(*(volatile struct st_mtu2   __evenaccess *)0x88692)

+#define	MTU3	(*(volatile struct st_mtu3   __evenaccess *)0x88600)

+#define	MTU4	(*(volatile struct st_mtu4   __evenaccess *)0x88600)

+#define	MTU5	(*(volatile struct st_mtu5   __evenaccess *)0x88694)

+#define	POE		(*(volatile struct st_poe    __evenaccess *)0x88900)

+#define	PORT	(*(volatile struct st_port   __evenaccess *)0x8C120)

+#define	PORT0	(*(volatile struct st_port0  __evenaccess *)0x8C000)

+#define	PORT1	(*(volatile struct st_port1  __evenaccess *)0x8C001)

+#define	PORT2	(*(volatile struct st_port2  __evenaccess *)0x8C002)

+#define	PORT3	(*(volatile struct st_port3  __evenaccess *)0x8C003)

+#define	PORT4	(*(volatile struct st_port4  __evenaccess *)0x8C004)

+#define	PORT5	(*(volatile struct st_port5  __evenaccess *)0x8C005)

+#define	PORTA	(*(volatile struct st_porta  __evenaccess *)0x8C00A)

+#define	PORTB	(*(volatile struct st_portb  __evenaccess *)0x8C00B)

+#define	PORTC	(*(volatile struct st_portc  __evenaccess *)0x8C00C)

+#define	PORTE	(*(volatile struct st_porte  __evenaccess *)0x8C00E)

+#define	RIIC0	(*(volatile struct st_riic   __evenaccess *)0x88300)

+#define	RSPI0	(*(volatile struct st_rspi   __evenaccess *)0x88380)

+#define	RTC		(*(volatile struct st_rtc    __evenaccess *)0x8C400)

+#define	RTCB	(*(volatile struct st_rtcb   __evenaccess *)0x8C402)

+#define	S12AD	(*(volatile struct st_s12ad  __evenaccess *)0x89000)

+#define	SCI1	(*(volatile struct st_sci1   __evenaccess *)0x8A020)

+#define	SCI5	(*(volatile struct st_sci1   __evenaccess *)0x8A0A0)

+#define	SCI12	(*(volatile struct st_sci12  __evenaccess *)0x8B300)

+#define	SMCI1	(*(volatile struct st_smci   __evenaccess *)0x8A020)

+#define	SMCI5	(*(volatile struct st_smci   __evenaccess *)0x8A0A0)

+#define	SMCI12	(*(volatile struct st_smci   __evenaccess *)0x8B300)

+#define	SYSTEM	(*(volatile struct st_system __evenaccess *)0x80000)

+#define	USB0	(*(volatile struct st_usb    __evenaccess *)0xA0000)

+#pragma bit_order

+#pragma packoption

+#endif
\ No newline at end of file
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
new file mode 100644
index 0000000..6ed672b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/mcu/rx111/mcu_info.h
@@ -0,0 +1,112 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : mcu_info.h

+* Device(s)    : RX111

+* Description  : Information about the MCU on this board (RSKRX111).

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 08.11.2012 0.01     Beta Release

+***********************************************************************************************************************/

+

+#ifndef _MCU_INFO

+#define _MCU_INFO

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Gets MCU configuration information. */

+#include "r_bsp_config.h"

+

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* MCU Series. */

+#if   MCU_PART_SERIES == 0x0

+    #define MCU_SERIES_RX100    (1)

+#else

+    #error "ERROR - MCU_PART_SERIES - Unknown MCU Series chosen in r_bsp_config.h"

+#endif

+

+/* MCU Group name. */

+#if   MCU_PART_GROUP == 0x1

+    #define MCU_RX111           (1)

+    #define MCU_RX11x           (1)

+#else

+    #error "ERROR - MCU_PART_GROUP - Unknown MCU Group chosen in r_bsp_config.h"

+#endif

+

+/* Package. */

+#if   MCU_PART_PACKAGE == 0x0

+    #define PACKAGE_LFQFP64     (1)

+#elif MCU_PART_PACKAGE == 0x1

+    #define PACKAGE_LQFP64      (1)

+#elif MCU_PART_PACKAGE == 0x2

+    #define PACKAGE_TFLGA64     (1)

+#elif MCU_PART_PACKAGE == 0x3

+    #define PACKAGE_LFQFP48     (1)

+#elif MCU_PART_PACKAGE == 0x4

+    #define PACKAGE_VQFN48      (1)

+#elif MCU_PART_PACKAGE == 0x5

+    #define PACKAGE_HWQFN36     (1)

+#elif MCU_PART_PACKAGE == 0x6

+    #define PACKAGE_WFLGA36     (1)

+#elif MCU_PART_PACKAGE == 0x7

+    #define PACKAGE_SSOP36      (1)

+#else

+    #error "ERROR - MCU_PART_PACKAGE - Unknown package chosen in r_bsp_config.h"

+#endif

+

+/* Memory size of your MCU. */

+#if   MCU_PART_MEMORY_SIZE == 0x0			// "J" parts

+    #define ROM_SIZE_BYTES      (16384)

+    #define RAM_SIZE_BYTES      (8192)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x1

+    #define ROM_SIZE_BYTES      (32768)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x3

+    #define ROM_SIZE_BYTES      (65536)

+    #define RAM_SIZE_BYTES      (10240)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x4

+    #define ROM_SIZE_BYTES      (98304)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#elif MCU_PART_MEMORY_SIZE == 0x5

+    #define ROM_SIZE_BYTES      (131072)

+    #define RAM_SIZE_BYTES      (16384)

+    #define DF_SIZE_BYTES       (8192)

+#else

+    #error "ERROR - MCU_PART_MEMORY_SIZE - Unknown memory size chosen in r_bsp_config.h"

+#endif

+

+/* System clock speed in Hz. */

+#define ICLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)

+/* Peripheral Module Clock B speed in Hz. */

+#define PCLKB_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV)

+/* Peripheral Module Clock D speed in Hz. */

+#define PCLKD_HZ            (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV)

+/* FlashIF clock speed in Hz. */

+#define FCLK_HZ             (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)

+

+#endif /* _MCU_INFO */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h
new file mode 100644
index 0000000..3427aab
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/platform.h
@@ -0,0 +1,88 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 

+* applicable laws, including copyright laws. 

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 

+* following link:

+* http://www.renesas.com/disclaimer 

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.    

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name	   : platform.h

+* Description  : The user chooses which MCU and board they are developing for in this file. If the board you are using

+*                is not listed below, please add your own or use the default 'User Board'.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* History : DD.MM.YYYY Version  Description

+*         : 30.11.2011 1.00     First Release

+*         : 13.01.2012 1.10     Moved from having platform defined using macro defintion, to having platform defined

+*                               by choosing an include path. This makes this file simpler and cleans up the issue

+*                               where HEW shows all header files for all platforms under 'Dependencies'.

+*         : 14.02.2012 1.20     Added RX210 BSP.

+*         : 18.04.2012 1.30     Updated to v0.70 of FIT S/W Spec and v0.20 of FIT r_bsp Spec. This includes adding

+*                               locking.c and locking.h in board folders. Also, r_bsp can now be configured through

+*                               r_bsp_config.h.

+*         : 26.06.2012 1.40     Added new options such as exception callbacks and the ability to choose your MCU using

+*                               its part number in r_bsp_config.h. Moved mcu_info.h to the 'mcu' folder. Made an effort

+*                               to remove any extra files that the user would need to touch. Removed the flash_options.c

+*                               file and put its contents in vecttbl.c.

+*         : 17.07.2012 1.50     Fixed bug with exception callback function names. Added BCLK_OUTPUT and SDCLK_OUTPUT 

+*                               macro options in r_bsp_config.h. Added some extra code to handle exceptions in

+*                               vecttbl.c. Added vecttbl.h so that user has prototypes for exception callbacks.

+*         : 08.11.2012 1.60		Added RX111 BSP

+***********************************************************************************************************************/

+

+#ifndef _PLATFORM_H_

+#define _PLATFORM_H_

+

+/***********************************************************************************************************************

+DEFINE YOUR SYSTEM - UNCOMMENT THE INCLUDE PATH FOR THE PLATFORM YOU ARE USING.

+***********************************************************************************************************************/

+/* RSKRX610 */

+//#include "./board/rskrx610/r_bsp.h"

+

+/* RSKRX62N */

+//#include "./board/rskrx62n/r_bsp.h"

+

+/* RSKRX62T */

+//#include "./board/rskrx62t/r_bsp.h"

+

+/* RDKRX62N */

+//#include "./board/rdkrx62n/r_bsp.h"

+

+/* RSKRX630 */

+//#include "./board/rskrx630/r_bsp.h"

+

+/* RSKRX63N */

+//#include "./board/rskrx63n/r_bsp.h"

+

+/* RDKRX63N */

+//#include "./board/rdkrx63n/r_bsp.h"

+

+/* RSKRX210 */

+//#include "./board/rskrx210/r_bsp.h"

+

+/* RSKRX111 */

+#include "./board/rskrx111/r_bsp.h"

+

+/* User Board - Define your own board here. */

+//#include "./board/user/r_bsp.h"

+

+/***********************************************************************************************************************

+MAKE SURE AT LEAST ONE PLATFORM WAS DEFINED - DO NOT EDIT BELOW THIS POINT

+***********************************************************************************************************************/

+#ifndef PLATFORM_DEFINED

+#error  "Error - No platform defined in platform.h!"

+#endif

+

+#endif /* _PLATFORM_H_ */

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h
new file mode 100644
index 0000000..537479e
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/r_bsp_config.h
@@ -0,0 +1,250 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2012 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_bsp_config_reference.c

+* Device(s)    : RX111

+* Description  : The file r_bsp_config.h is used to configure your BSP. r_bsp_config.h should be included

+*                somewhere in your package so that the r_bsp code has access to it. This file (r_bsp_config_reference.h)

+*                is just a reference file that the user can use to make their own r_bsp_config.h file.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 07.11.2012 0.01    Beta Release

+***********************************************************************************************************************/

+#ifndef R_BSP_CONFIG_REF_HEADER_FILE

+#define R_BSP_CONFIG_REF_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* Enter the product part number for your MCU. This information will be used to obtain information about your MCU such

+   as package and memory size.

+   To help parse this information, the part number will be defined using multiple macros.

+   R 5 F 51 11 5 A D FM

+   | | | |  |  | | | |  Macro Name              Description

+   | | | |  |  | | | |__MCU_PART_PACKAGE      = Package type, number of pins, and pin pitch

+   | | | |  |  | | |____not used              = Products with wide temperature range (D: -40 to 85C G: -40 to 105C)

+   | | | |  |  | |______not used              = Blank

+   | | | |  |  |________MCU_PART_MEMORY_SIZE  = ROM, RAM, and Data Flash Capacity

+   | | | |  |___________MCU_PART_GROUP        = Group name

+   | | | |______________MCU_PART_SERIES       = Series name

+   | | |________________MCU_PART_MEMORY_TYPE  = Type of memory (Flash)

+   | |__________________not used              = Renesas MCU

+   |____________________not used              = Renesas semiconductor product.

+   */

+

+/* Package type. Set the macro definition based on values below:

+   Character(s) = Value for macro = Package Type/Number of Pins/Pin Pitch

+   FM           = 0x0             = LFQFP/64/0.50

+   FK           = 0x1             = LQFP/64/0.80

+   LF           = 0x2             = TFLGA/64/0.50

+   FL           = 0x3             = LFQFP/48/0.50

+   NE           = 0x4             = VQFN/48/0.50

+   NC           = 0x5             = HWQFN/36/0.50

+   LM           = 0x6             = WFLGA/36/0.50

+   SB           = 0x7             = SSOP/36/0.80

+*/

+#define MCU_PART_PACKAGE        (0x0)

+

+/* ROM, RAM, and Data Flash Capacity.

+   Character(s) = Value for macro = ROM Size/Ram Size/Data Flash Size

+   5            = 0x5             = 128KB/16KB/8KB

+   4            = 0x4             = 96KB/16KB/8KB

+   3            = 0x3             = 64KB/10KB/8KB

+   1            = 0x1             = 32KB/10KB/8KB

+   J            = 0x0             = 16KB/8KB/8KB

+*/

+#define MCU_PART_MEMORY_SIZE    (0x5)

+

+/* Group name.

+   Character(s) = Value for macro = Description

+   10           = 0x0             = RX110 Group

+   11           = 0x1             = RX111 Group

+*/

+#define MCU_PART_GROUP          (0x1)

+

+/* Series name.

+   Character(s) = Value for macro = Description

+   51           = 0x0             = RX100 Series

+*/

+#define MCU_PART_SERIES         (0x0)

+

+/* Memory type.

+   Character(s) = Value for macro = Description

+   F            = 0x0             = Flash memory version

+*/

+#define MCU_PART_MEMORY_TYPE    (0x0)

+

+/* The 'BSP_DECLARE_STACK' macro is checked so that the stack is only declared in one place (resetprg.c). Every time a

+   '#pragma stacksize' is encountered, the stack size is increased. This prevents multiplication of stack size. */

+#if defined(BSP_DECLARE_STACK)

+/* User Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize su=0x400

+/* Interrupt Stack size in bytes. The Renesas RX toolchain sets the stack size using the #pragma stacksize directive. */

+#pragma stacksize si=0x100

+#endif

+

+/* Heap size in bytes. */

+#define HEAP_BYTES              (0x001)

+

+/* After reset MCU will operate in Supervisor mode. To switch to User mode, set this macro to '1'. For more information

+   on the differences between these 2 modes see the CPU >> Processor Mode section of your MCU's hardware manual.

+   0 = Stay in Supervisor mode.

+   1 = Switch to User mode.

+*/

+#define RUN_IN_USER_MODE        (0)

+

+

+/* This macro lets other modules no if a RTOS is being used.

+   0 = RTOS is not used.

+   1 = RTOS is used.

+*/

+#define RTOS_USED               (0)

+

+/* Clock source select (CKSEL).

+   0 = Low Speed On-Chip Oscillator  (LOCO)

+   1 = High Speed On-Chip Oscillator (HOCO)

+   2 = Main Clock Oscillator

+   3 = Sub-Clock Oscillator

+   4 = PLL Circuit

+*/

+#define CLOCK_SOURCE            (4)	// GI org 4

+

+/* Clock configuration options.

+   The input clock frequency is specified and then the system clocks are set by specifying the multipliers used. The

+   multiplier settings are used to set the clock registers in resetprg.c. If a 16MHz clock is used and the

+   ICLK is 24MHz, PCLKB is 24MHz, FCLK is 24MHz, PCLKD is 24MHz, and CKO is 1MHz then the

+   settings would be:

+

+   XTAL_HZ = 16000000

+   PLL_DIV = 2

+   PLL_MUL = 6 (16MHz x 3 = 48MHz)

+   ICK_DIV =  2      : System Clock (ICLK)        = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / ICK_DIV)  = 24MHz

+   PCKB_DIV = 2      : Peripheral Clock B (PCLKB) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKB_DIV) = 24MHz

+   PCKD_DIV = 2      : Peripheral Clock D (PCLKD) = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / PCKD_DIV) = 24MHz

+   FCK_DIV =  2      : Flash IF Clock (FCLK)      = (((XTAL_HZ/PLL_DIV) * PLL_MUL) / FCK_DIV)  = 24MHz

+*/

+/* XTAL - Input clock frequency in Hz */

+#define XTAL_HZ                 (16000000)

+/* PLL Input Frequency Divider Select (PLIDIV).

+   Available divisors = /1 (no division), /2, /4

+*/

+#define PLL_DIV                 (2)		// GI org 2

+/* PLL Frequency Multiplication Factor Select (STC).

+   Available multipliers = x6, x8

+*/

+#define PLL_MUL                 (6)		// GI org 6

+/* System Clock Divider (ICK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define ICK_DIV                 (2)		// NOTE: ICLK CANNOT BE SLOWER THAN PCLK!

+/* Peripheral Module Clock B Divider (PCKB).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKB_DIV                (2)		// GI org 2

+/* Peripheral Module Clock D Divider (PCKD).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define PCKD_DIV                (2)

+/* Flash IF Clock Divider (FCK).

+   Available divisors = /1 (no division), /2, /4, /8, /16, /32, /64

+*/

+#define FCK_DIV                 (2)

+

+/* Below are callback functions that can be used for detecting MCU exceptions, undefined interrupt sources, and

+   bus errors. If the user wishes to be alerted of these events then they will need to define the macro as a

+   function to be called when the event occurs. For example, if the user wanted the function

+   excep_undefined_instr_isr() to be called when an undefined interrupt source ISR is triggered then they would

+   do the following:

+   #define UNDEFINED_INT_ISR_CALLBACK   undefined_interrupt_cb

+   If the user does not wish to be alerted of these events then they should comment out the macros.

+

+   NOTE: When a callback function is called it will be called from within a ISR. This means that the function

+         will essentially be an interrupt and will hold off other interrupts that occur in the system while it

+         is executing. For this reason, it is recommended to keep these callback functions short as to not

+         decrease the real-time response of your system.

+*/

+/* Callback for Supervisor Instruction Violation Exception. */

+//#define EXCEP_SUPERVISOR_ISR_CALLBACK           supervisor_instr_cb

+

+/* Callback for Undefined Instruction Exception. */

+//#define EXCEP_UNDEFINED_INSTR_ISR_CALLBACK      undefined_instr_cb

+

+/* Callback for Non-maskable Interrupt. */

+//#define NMI_ISR_CALLBACK                        nmi_cb

+

+/* Callback for all undefined interrupt vectors. User can set a breakpoint in this function to determine which source

+   is creating unwanted interrupts. */

+//#define UNDEFINED_INT_ISR_CALLBACK              undefined_interrupt_cb

+

+/* Callback for Bus Error Interrupt. */

+//#define BUS_ERROR_ISR_CALLBACK                  bus_error_cb

+

+/* The user has the option of separately choosing little or big endian for the User Application Area */

+

+/* Endian mode for User Application.

+   0    = Big Endian

+   Else = Little Endian (Default)

+*/

+#define USER_APP_ENDIAN     (1)

+

+

+/* Configure WDT and IWDT settings.

+   OFS0 - Option Function Select Register 0

+       OFS0 - Option Function Select Register 0

+       b31:b15 Reserved (set to 1)

+       b14     IWDTSLCSTP - IWDT Sleep Mode Count Stop Control - (0=can't stop count, 1=stop w/some low power modes)

+       b13     Reserved (set to 1)

+       b12     IWDTRSTIRQS - IWDT Reset Interrupt Request - What to do on underflow (0=take interrupt, 1=reset MCU)

+       b11:b10 IWDTRPSS - IWDT Window Start Position Select - (0=25%, 1=50%, 2=75%, 3=100%,don't use)

+       b9:b8   IWDTRPES - IWDT Window End Position Select - (0=75%, 1=50%, 2=25%, 3=0%,don't use)

+       b7:b4   IWDTCKS - IWDT Clock Frequency Division Ratio - (0=none, 2=/16, 3 = /32, 4=/64, 0xF=/128, 5=/256)

+       b3:b2   IWDTTOPS - IWDT Timeout Period Select - (0=128 cycles, 1=512, 2=1024, 3=2048)

+       b1      IWDTSTRT - IWDT Start Mode Select - (0=auto-start after reset, 1=halt after reset)

+       b0      Reserved (set to 1) */

+#define OFS0_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Configure whether voltage detection 1 circuit and HOCO are enabled after reset.

+       OFS1 - Option Function Select Register 1

+       b31:b9 Reserved (set to 1)

+       b8     HOCOEN - Enable/disable HOCO oscillation after a reset (0=enable, 1=disable)

+       b7:b4  STUPLVD1LVL - Startup Voltage Monitoring 1 Reset Detection Level Select

+                0 1 0 0: 3.10 V

+				0 1 0 1: 3.00 V

+				0 1 1 0: 2.90 V

+				0 1 1 1: 2.79 V

+				1 0 0 0: 2.68 V

+				1 0 0 1: 2.58 V

+				1 0 1 0: 2.48 V

+				1 0 1 1: 2.06 V

+				1 1 0 0: 1.96 V

+				1 1 0 1: 1.86 V

+       b3:b2  Reserved (set to 1)

+       b2     STUPLVD1REN - Startup Voltage Monitoring 1 Reset Enable (1=monitoring disabled)

+       b0     FASTSTUP - Power-On Fast Startup Time (1=normal; read only) */

+#define OFS1_REG_VALUE  (0xFFFFFFFF) //Disable by default

+

+/* Initializes C input & output library functions.

+   0 = Disable I/O library initialization in resetprg.c. If you are not using stdio then use this value.

+   1 = Enable I/O library initialization in resetprg.c. This is default and needed if you are using stdio. */

+#define IO_LIB_ENABLE           (0)

+

+#endif /* R_BSP_CONFIG_REF_HEADER_FILE */

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt
new file mode 100644
index 0000000..c7ee2b7
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_bsp/readme.txt
@@ -0,0 +1,100 @@
+r_bsp Package

+=============

+

+Document Number

+---------------

+N/A

+

+Version

+-------

+v1.60

+

+Overview

+--------

+The r_bsp package provides a foundation for code to be built on top of. It provides startup code, iodefines, and MCU

+information for different boards. There are 2 folders that make up the r_bsp package. The 'mcu' folder has iodefine

+files and a file named 'mcu_info.h' for each MCU group. The 'mcu_info.h' file has information about the MCU on the board

+and is configured based on the information given in r_bsp_config.h. The information in 'mcu_info.h' is used to help 

+configure Renesas middleware that uses the r_bsp package. The 'board' folder has a folder with startup code for each 

+supported board.  Which MCU and board is chosen is decided by the settings in 'platform.h'. The user can choose which 

+board they are using by uncommenting the include path that applies to their board. For example, if you are using the 

+RSK+RX62N then you would uncomment the #include "./board/rskrx62n/r_bsp.h" include path. Users are encouraged to add 

+their own boards to the 'board' directory. BSPs are configured by using the r_bsp_config.h file. Each board will have a 

+reference configuration file named r_bsp_config_reference.h. The user should copy this file to their project, rename it 

+to r_bsp_config.h, and use the options inside the file to configure the BSP for their project.

+

+Features

+--------

+* Provides foundation to build code on top of.

+* Provides MCU startup code.

+* Provides SFR access through iodefine.h

+* Stores details of MCU in 'mcu_info.h' to help configure Renesas middleware.

+* Easily configure BSP through r_bsp_config.h.

+* Choose MCU easily by inputting part number details in r_bsp_config.h.

+* Provides callbacks for MCU exceptions and the bus error interrupt.

+ 

+Limitations

+-----------

+N/A

+

+Peripherals Used Directly

+-------------------------

+N/A

+

+Required Packages

+-----------------

+* r_glyph [required if you want to use LCD for RDK boards]

+* r_rspi_rx [required if you want to use LCD for RDK boards]

+

+How to add to your project

+--------------------------

+* Copy the r_bsp folder to your project.

+* Add an include path to the 'r_bsp' directory. 

+* Add all of the source files for your board from the 'r_bsp\board\--YOUR_BOARD--' directory to your project. 

+* Uncomment the include path for your board in 'platform.h' which is located in the 'r_bsp' directory.

+* Copy the file r_bsp_config_reference.h from the 'r_bsp\board\--YOUR_BOARD--' directory and copy it to your project's

+  source code directory. Rename the file r_bsp_config.h.

+* Open r_bsp_config.h and use the macros to configure the BSP for your project.

+

+File Structure

+--------------

+r_bsp

+|   platform.h (choose which board is being used)

+|   readme.txt

+|

++---board (contains supported boards)

+|   +---rdkrx62n (contains BSP source and header files)

+|   |

+|   +---rdkrx63n

+|   |

+|	+---rskrx111

+|	|

+|   +---rskrx210

+|   |

+|   +---rskrx610

+|   |

+|   +---rskrx62n

+|   |

+|   +---rskrx62t

+|   |

+|   +---rskrx630

+|   |

+|   +---rskrx63n

+|   |

+|   \---user

+|

+\---mcu

+	+---rx111 (contains common files to this MCU group, e.g. iodefine.h)

+	|

+    +---rx210 

+    |

+    +---rx610

+    |

+    +---rx62n

+    |

+    +---rx62t

+    |

+    +---rx630

+    |

+    \---rx63n

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx
new file mode 100644
index 0000000..6fe7e86
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/doc/r_switches.docx
Binary files differ
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h
new file mode 100644
index 0000000..834de6b
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_config.h
@@ -0,0 +1,59 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches_config.c

+* Description  : Configures the switches code

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+***********************************************************************************************************************/

+#ifndef SWITCHES_CONFIG_HEADER_FILE

+#define SWITCHES_CONFIG_HEADER_FILE

+

+/***********************************************************************************************************************

+Configuration Options

+***********************************************************************************************************************/

+/* This macro sets whether interrupts or polling is used for detecting switch presses. The benefit of using interrupts

+   is that no extra processing is used for polling and the use of a system timer tick is not a requirement. The downside

+   of using interrupts is that callback functions are called from within an interrupt so if your ISR is long then it can

+   degrade the real-time response of your system. The benefit of polling is that functions are called at the application

+   level and debouncing is supported. The downside to polling is that your system must call the R_SWITCHES_Update() on a

+   regular basis which requires extra processing.

+

+   0 = Use interrupts

+   1 = Use polling

+    */

+#define SWITCHES_DETECTION_MODE     (0)

+

+/* The definition for these macros should be the name of the function that you want called when a switch is

+   pressed. It is very important that the user recognize that this function will be called from  the interrupt service

+   routine. This means that code inside of the function should be kept short to ensure it does not hold up the rest of

+   the system.

+

+   Example: If SW1_CALLBACK_FUNCTION is defined to be sw1_callback then the sw1_callback function will be called when

+   switch 1 is pressed.

+*/

+#define SW1_CALLBACK_FUNCTION       (vButtonInterruptCallback)

+#define SW2_CALLBACK_FUNCTION       (vButtonInterruptCallback)

+#define SW3_CALLBACK_FUNCTION       (vButtonInterruptCallback)

+

+#endif /* SWITCHES_CONFIG_HEADER_FILE */

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h
new file mode 100644
index 0000000..613bcf5
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/r_switches_if.h
@@ -0,0 +1,74 @@
+/***********************************************************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No 
+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all 
+* applicable laws, including copyright laws. 
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, 
+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM 
+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES 
+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS 
+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of 
+* this software. By using this software, you agree to the additional terms and conditions found by accessing the 
+* following link:
+* http://www.renesas.com/disclaimer 
+*
+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.    
+***********************************************************************************************************************/
+/***********************************************************************************************************************
+* File Name    : r_switches_if.h
+* Description  : Functions for using switches with callback functions. 
+************************************************************************************************************************
+* History : DD.MM.YYYY Version Description           
+*         : 17.01.2012 1.00    First Release            
+*         : 17.02.2012 1.10    Added RSKRX210 support.     
+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).
+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.
+***********************************************************************************************************************/
+
+#ifndef SWITCHES_API_HEADER_FILE
+#define SWITCHES_API_HEADER_FILE
+
+/***********************************************************************************************************************
+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/
+/* Fixed width integer support. */

+#include <stdint.h>

+/* bool support */

+#include <stdbool.h>

+/* Used for configuring the code */
+#include "r_switches_config.h"
+
+/***********************************************************************************************************************
+Macro definitions
+***********************************************************************************************************************/
+/* Version Number of API. */
+#define SWITCHES_VERSION_MAJOR           (1)
+#define SWITCHES_VERSION_MINOR           (0)
+/* The process of getting the version number is done through the macro below. The version number is encoded where the 
+   top 2 bytes are the major version number and the bottom 2 bytes are the minor version number. For example, 
+   Version 4.25 would be returned as 0x00040019. */
+#define R_SWITCHES_GetVersion()  ((((uint32_t)SWITCHES_VERSION_MAJOR) << 16) | (uint32_t)SWITCHES_VERSION_MINOR)
+
+/***********************************************************************************************************************
+Public Functions
+***********************************************************************************************************************/
+void R_SWITCHES_Init(uint32_t detection_hz, uint32_t debounce_counts);
+void R_SWITCHES_Update(void);
+
+/* Callback prototypes. */
+#if defined(SW1_CALLBACK_FUNCTION)
+void SW1_CALLBACK_FUNCTION(void);
+#endif
+
+#if defined(SW2_CALLBACK_FUNCTION)
+void SW2_CALLBACK_FUNCTION(void);
+#endif 
+
+#if defined(SW3_CALLBACK_FUNCTION)
+void SW3_CALLBACK_FUNCTION(void);
+#endif
+
+#endif /* SWITCHES_API_HEADER_FILE */
+
diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt
new file mode 100644
index 0000000..d1e1e40
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/readme.txt
@@ -0,0 +1,83 @@
+PLEASE REFER TO THE APPLICATION NOTE FOR THIS MIDDLEWARE FOR MORE INFORMATION

+

+Switches

+========

+

+Document Number 

+---------------

+N/A

+

+Version

+-------

+v1.40

+

+Overview

+--------

+Configures port pins for switches and calls user defined function on switch press. Switch presses can be detected using 

+IRQ interrupts or by polling. The benefit of using interrupts is that no extra processing is used for polling and the 

+use of a system timer tick is not a requirement. The downside of using interrupts is that callback functions are called 

+from within an interrupt so if your ISR is long then it can degrade the real-time response of your system. The benefit 

+of polling is that functions are called at the application level and debouncing is supported. The downside to polling is 

+that your system must call the R_SWITCHES_Update() on a regular basis which requires extra processing.

+

+Features

+--------

+* Call one function to setup switches.

+* Define function to call when switch is pressed.

+* Can be configured to be interrupt or poll driven.

+

+Supported MCUs

+--------------

+* RX610 Group

+* RX621, RX62N Group

+* RX62T Group

+* RX630 Group

+* RX631, RX63N Group

+* RX210 Group

+* RX111 Group

+

+Boards Tested On

+----------------

+* RSKRX610

+* RSK+RX62N

+* RSKRX62T

+* RDKRX62N

+* RSKRX630

+* RSKRX63N

+* RDKRX63N

+* RSKRX111

+

+Limitations

+-----------

+* None

+

+Peripherals Used Directly

+-------------------------

+* None

+

+Required Packages

+-----------------

+* None

+

+How to add to your project

+--------------------------

+* Add src\r_switches.c to your project.

+* Add an include path to the 'r_switches' directory. 

+* Add an include path to the 'r_switches\src' directory.

+* Configure middleware through r_switches_config.h.

+* Add a #include for r_switches_if.h to files that need to use this package. 

+

+Toolchain(s) Used

+-----------------

+* Renesas RX v1.02

+

+File Structure

+--------------

+r_switches

+|   readme.txt

+|   r_switches_config.h

+|   r_switches_if.h

+|

+\---src

+        r_switches.c

+                

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c
new file mode 100644
index 0000000..813c436
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/Renesas_Files/r_switches/src/r_switches.c
@@ -0,0 +1,483 @@
+/***********************************************************************************************************************

+* DISCLAIMER

+* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. No

+* other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all

+* applicable laws, including copyright laws.

+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING

+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,

+* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. TO THE MAXIMUM

+* EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES

+* SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS

+* SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability of

+* this software. By using this software, you agree to the additional terms and conditions found by accessing the

+* following link:

+* http://www.renesas.com/disclaimer

+*

+* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved.

+***********************************************************************************************************************/

+/***********************************************************************************************************************

+* File Name    : r_switches.c

+* Description  : Functions for using switches with callback functions.

+************************************************************************************************************************

+* History : DD.MM.YYYY Version Description

+*         : 17.01.2012 1.00    First Release

+*         : 17.02.2012 1.10    Added RSKRX210 support.

+*         : 08.03.2012 1.20    Added GetVersion() function (though it's really a macro).

+*         : 04.06.2012 1.30    Code can now be interrupt or poll driven.

+*         : 07.11.2012 1.40	   Added support for RSKRX111

+***********************************************************************************************************************/

+

+/***********************************************************************************************************************

+Includes   <System Includes> , "Project Includes"

+***********************************************************************************************************************/

+/* Board and MCU support. */

+#include "platform.h"

+/* Switches prototypes. */

+#include "r_switches_if.h"

+/* Scheduler includes. */

+#include "FreeRTOS.h"

+/***********************************************************************************************************************

+Macro definitions

+***********************************************************************************************************************/

+/* This helps reduce the amount of unique code for each supported board. */

+#define X_IRQ( x )   XX_IRQ( x )

+#define XX_IRQ( x )  _ICU_IRQ##x

+

+/* These macros define which IRQ pins are used for the switches. Note that these defintions cannot have parentheses

+   around them. */

+#if   defined(PLATFORM_BOARD_RDKRX63N)

+    #define SW1_IRQ_NUMBER     8

+    #define SW2_IRQ_NUMBER     9

+    #define SW3_IRQ_NUMBER     12

+#elif defined(PLATFORM_BOARD_RSKRX63N)

+    #define SW1_IRQ_NUMBER     2

+    #define SW2_IRQ_NUMBER     8

+    #define SW3_IRQ_NUMBER     15

+#elif defined(PLATFORM_BOARD_RSKRX630)

+    #define SW1_IRQ_NUMBER     2

+    #define SW2_IRQ_NUMBER     12

+    #define SW3_IRQ_NUMBER     15

+#elif defined(PLATFORM_BOARD_RSKRX62N)

+    #define SW1_IRQ_NUMBER     8

+    #define SW2_IRQ_NUMBER     9

+    #define SW3_IRQ_NUMBER     15

+#elif defined(PLATFORM_BOARD_RDKRX62N)

+    #define SW1_IRQ_NUMBER     8

+    #define SW2_IRQ_NUMBER     9

+    #define SW3_IRQ_NUMBER     10

+#elif defined(PLATFORM_BOARD_RSKRX62T)

+    #define SW1_IRQ_NUMBER     0

+    #define SW2_IRQ_NUMBER     1

+    #define SW3_IRQ_NUMBER     3

+#elif defined(PLATFORM_BOARD_RSKRX610)

+    #define SW1_IRQ_NUMBER     8

+    #define SW2_IRQ_NUMBER     9

+    #define SW3_IRQ_NUMBER     3

+#elif defined(PLATFORM_BOARD_RSKRX210)

+    #define SW1_IRQ_NUMBER     1

+    #define SW2_IRQ_NUMBER     3

+    #define SW3_IRQ_NUMBER     4

+#elif defined(PLATFORM_BOARD_RSKRX111)

+    #define SW1_IRQ_NUMBER     0

+    #define SW2_IRQ_NUMBER     1

+    #define SW3_IRQ_NUMBER     4

+#endif

+

+/* Number of switches on this board. */

+#define SWITCHES_NUM            (3)

+

+/***********************************************************************************************************************

+Typedef definitions

+***********************************************************************************************************************/

+typedef struct

+{

+    bool    active;

+    int32_t debounce_cnt;

+} switch_t;

+

+/***********************************************************************************************************************

+Private global variables and functions

+***********************************************************************************************************************/

+#if SWITCHES_DETECTION_MODE == 1

+/* Update Hz */

+static uint32_t g_sw_debounce_cnts;

+/* Used for debounce. */

+switch_t g_switches[SWITCHES_NUM];

+#endif

+

+/***********************************************************************************************************************

+* Function Name: R_SWITCHES_Init

+* Description  : Initializes pins to be input and interrupt on switch presses.

+* Arguments    : detection_hz -

+*                    The times per second that the user will call R_SWITCHES_Update(). NOTE: this is only when using

+*                    polling mode. If you are using interrupt mode, then this argument will be ignored.

+*                debouce_counts -

+*                    The number of times to check the port value before accepting the change. The slower the rate at

+*                    which R_SWITCHES_Update() will likely lower this number.

+* Return Value : none

+***********************************************************************************************************************/

+void R_SWITCHES_Init (uint32_t detection_hz, uint32_t debounce_counts)

+{

+    uint32_t i;

+

+    /* The SW#_XXX defintions are common macros amongst different boards. To see the definitions for these macros

+       see the board defintion file. For example, this file for the RSKRX63N is rskrx63n.h. */

+

+#if defined(MCU_RX62N) || defined(MCU_RX62T) || defined(MCU_RX621) || defined(MCU_RX610)

+

+    /* Make switch pins inputs. */

+    SW1_DDR = 0;

+    SW2_DDR = 0;

+    SW3_DDR = 0;

+

+    /* Enable input buffer control registers. */

+    SW1_ICR = 1;

+    SW2_ICR = 1;

+    SW3_ICR = 1;

+

+#elif defined(MCU_RX63N) || defined(MCU_RX630) || defined(MCU_RX631) || defined(MCU_RX210) || defined(MCU_RX111)

+

+    /* Unlock protection register */

+    MPC.PWPR.BIT.B0WI = 0 ;

+    /* Unlock MPC registers */

+    MPC.PWPR.BIT.PFSWE = 1 ;

+

+    /* Make switch pins inputs. */

+    SW1_PDR = 0;

+    SW2_PDR = 0;

+    SW3_PDR = 0;

+

+    /* Set port mode registers for switches. */

+    SW1_PMR = 0;

+    SW2_PMR = 0;

+    SW3_PMR = 0;

+

+#endif

+

+#if SWITCHES_DETECTION_MODE == 0

+

+    #if defined(PLATFORM_BOARD_RDKRX63N)

+

+    /* The switches on the RDKRX63N are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P4.0    IRQ8

+    SW2     P4.1    IRQ9

+    SW3     P4.4    IRQ12

+    */

+

+    MPC.P40PFS.BYTE = 0x40;    /* P40 is used as IRQ pin */

+    MPC.P41PFS.BYTE = 0x40;    /* P40 is used as IRQ pin */

+    MPC.P44PFS.BYTE = 0x40;    /* P40 is used as IRQ pin */

+

+    #elif defined(PLATFORM_BOARD_RSKRX63N)

+

+    /* The switches on the RSKRX63N are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P3.2    IRQ2

+    SW2     P0.0    IRQ8

+    SW3     P0.7    IRQ15

+    */

+

+    MPC.P32PFS.BYTE  = 0x40;    /* P32 is used as IRQ pin */

+    MPC.P00PFS.BYTE  = 0x40;    /* P00 is used as IRQ pin */

+    MPC.P07PFS.BYTE  = 0x40;    /* P07 is used as IRQ pin */

+

+    #elif defined(PLATFORM_BOARD_RSKRX630)

+

+    /* The switches on the RSKRX630 are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P3.2    IRQ2

+    SW2     P4.4    IRQ12

+    SW3     P0.7    IRQ15

+    */

+

+    MPC.P32PFS.BYTE  = 0x40;    /* P32 is used as IRQ pin */

+    MPC.P44PFS.BYTE  = 0x40;    /* P44 is used as IRQ pin */

+    MPC.P07PFS.BYTE  = 0x40;    /* P07 is used as IRQ pin */

+

+    #elif defined(PLATFORM_BOARD_RSKRX62N)

+

+    /* The switches on the RSKRX62N are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P0.0    IRQ8-A

+    SW2     P0.1    IRQ9-A

+    SW3     P0.7    IRQ15-A

+    */

+

+    IOPORT.PF8IRQ.BIT.ITS8  = 0;    /* IRQ8-A pin is used. */

+    IOPORT.PF8IRQ.BIT.ITS9  = 0;    /* IRQ9-A pin is used. */

+    IOPORT.PF8IRQ.BIT.ITS15 = 0;    /* IRQ15-A pin is used. */

+

+    #elif defined(PLATFORM_BOARD_RDKRX62N)

+

+    /* The switches on the RDKRX62N are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P4.0    IRQ8

+    SW2     P4.1    IRQ9

+    SW3     P4.2    IRQ10

+    */

+

+    /* Nothing else needed to do here since RDK has 100-pin package and there are no alternate pins to choose. */

+

+    #elif defined(PLATFORM_BOARD_RSKRX62T)

+

+    /* The switches on the RSKRX62T are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     PE.5    IRQ0-B

+    SW2     PE.4    IRQ1-B

+    SW3     PB.4    IRQ3

+    */

+

+    IOPORT.PF8IRQ.BIT.ITS0  = 1;    /* IRQ0-B pin is used. */

+    IOPORT.PF8IRQ.BIT.ITS1  = 1;    /* IRQ1-B pin is used. */

+    /* IRQ3 is only on 1 pin. */

+

+    #elif defined(PLATFORM_BOARD_RSKRX610)

+

+    /* The switches on the RSKRX610 are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P0.0    IRQ8-A

+    SW2     P0.1    IRQ9-A

+    SW3     P1.3    IRQ3-B

+    */

+

+    IOPORT.PFCR8.BIT.ITS8  = 0;    /* IRQ8-A pin is used. */

+    IOPORT.PFCR8.BIT.ITS9  = 0;    /* IRQ9-A pin is used. */

+    IOPORT.PFCR9.BIT.ITS3  = 1;    /* IRQ3-B pin is used. */

+

+    /* Enable IRQ detection. */

+    ICU.IRQER[SW1_IRQ_NUMBER].BIT.IRQEN = 1;

+    ICU.IRQER[SW2_IRQ_NUMBER].BIT.IRQEN = 1;

+    ICU.IRQER[SW3_IRQ_NUMBER].BIT.IRQEN = 1;

+

+    #elif defined(PLATFORM_BOARD_RSKRX210)

+

+    /* The switches on the RSKRX210 are connected to the following pins/IRQ's

+    Switch  Port    IRQ

+    ------  ----    ----

+    SW1     P3.1    IRQ1

+    SW2     P3.3    IRQ3

+    SW3     P3.4    IRQ4

+    */

+

+    MPC.P31PFS.BYTE  = 0x40;    /* P31 is used as IRQ pin */

+    MPC.P33PFS.BYTE  = 0x40;    /* P33 is used as IRQ pin */

+    MPC.P34PFS.BYTE  = 0x40;    /* P34 is used as IRQ pin */

+

+#elif defined(PLATFORM_BOARD_RSKRX111)

+

+    /* The switches on the RSKRX210 are connected to the following pins/IRQ's

+	Switch  Port    IRQ

+	------  ----    ----

+	SW1     P3.0    IRQ0

+	SW2     P3.1    IRQ1

+	SW3     PE.4    IRQ4

+    */

+

+    MPC.P30PFS.BYTE  = 0x40;    /* P30 is used as IRQ pin */

+    MPC.P31PFS.BYTE  = 0x40;    /* P31 is used as IRQ pin */

+    MPC.PE4PFS.BYTE  = 0x40;    /* PE4 is used as IRQ pin */

+

+    #endif

+

+

+    /* Set IRQ type (falling edge) */

+    ICU.IRQCR[SW1_IRQ_NUMBER].BIT.IRQMD  = 0x01;

+    ICU.IRQCR[SW2_IRQ_NUMBER].BIT.IRQMD  = 0x01;

+    ICU.IRQCR[SW3_IRQ_NUMBER].BIT.IRQMD  = 0x01;

+

+    /* Set interrupt priorities which muse be below

+    configMAX_SYSCALL_INTERRUPT_PRIORITY. */

+    _IPR( X_IRQ(SW1_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW2_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+    _IPR( X_IRQ(SW3_IRQ_NUMBER) ) = configKERNEL_INTERRUPT_PRIORITY;

+

+    /* Clear any pending interrupts */

+    _IR( X_IRQ(SW1_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW2_IRQ_NUMBER) ) = 0;

+    _IR( X_IRQ(SW3_IRQ_NUMBER) ) = 0;

+

+    /* Enable the interrupts */

+    _IEN( X_IRQ(SW1_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW2_IRQ_NUMBER) )  = 1;

+    _IEN( X_IRQ(SW3_IRQ_NUMBER) )  = 1;

+

+#else

+

+    /* This is based upon having 3 counts at 10Hz. */

+    g_sw_debounce_cnts = debounce_counts;

+

+    /* Init debounce structures. */

+    for (i = 0; i < SWITCHES_NUM; i++)

+    {

+        g_switches[i].active = false;

+        g_switches[i].debounce_cnt = 0;

+    }

+

+#endif /* SWITCHES_DETECTION_MODE */

+

+}

+

+/* Only define interrupts in interrupt detection mode. */

+#if SWITCHES_DETECTION_MODE == 0

+

+    #if defined(SW1_CALLBACK_FUNCTION)

+/***********************************************************************************************************************

+* Function name: sw1_isr

+* Description  : Sample ISR for switch 1 input (must do hardware setup first!)

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#pragma interrupt (sw1_isr (vect=_VECT(X_IRQ(SW1_IRQ_NUMBER))))

+static void sw1_isr (void)

+{

+    /* TODO: Add some debouncing! */

+

+    /* Call callback function. */

+    SW1_CALLBACK_FUNCTION();

+}

+    #endif /* SW1_CALLBACK_FUNCTION */

+

+    #if defined(SW2_CALLBACK_FUNCTION)

+/***********************************************************************************************************************

+* Function name: sw2_isr

+* Description  : Sample ISR for switch 2 input (must do hardware setup first!)

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#pragma interrupt (sw2_isr (vect=_VECT(X_IRQ(SW2_IRQ_NUMBER))))

+static void sw2_isr (void)

+{

+    /* TODO: Add some debouncing! */

+

+    /* Call callback function. */

+    SW2_CALLBACK_FUNCTION();

+}

+    #endif /* SW2_CALLBACK_FUNCTION */

+

+    #if defined(SW3_CALLBACK_FUNCTION)

+/***********************************************************************************************************************

+* Function name: sw3_isr

+* Description  : Sample ISR for switch 3 input (must do hardware setup first!)

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+#pragma interrupt (sw3_isr (vect=_VECT(X_IRQ(SW3_IRQ_NUMBER))))

+static void sw3_isr (void)

+{

+    /* TODO: Add some debouncing! */

+

+    /* Call callback function. */

+    SW3_CALLBACK_FUNCTION();

+}

+    #endif /* SW3_CALLBACK_FUNCTION */

+

+#endif

+

+/* If using polling then the user must call the update function. */

+

+/***********************************************************************************************************************

+* Function name: R_SWITCHES_Update

+* Description  : Polls switches and calls callback functions as needed. If you are using IRQ mode then this function

+*                is not needed and can be removed if desired. It is left in so that code will not fail when switching

+*                between polling or IRQ mode.

+* Arguments    : none

+* Return value : none

+***********************************************************************************************************************/

+void R_SWITCHES_Update (void)

+{

+#if SWITCHES_DETECTION_MODE == 1

+    /* This code is only needed for polling mode. */

+    /* Check switch 1. */

+    if (SW1 == SW_ACTIVE)

+    {

+        if (g_switches[0].active != true)

+        {

+            if (++g_switches[0].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[0].active = true;

+

+                /* Call callback function. */

+                SW1_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[0].debounce_cnt)

+        {

+            g_switches[0].active = false;

+        }

+        else

+        {

+            g_switches[0].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 2. */

+    if (SW2 == SW_ACTIVE)

+    {

+        if (g_switches[1].active != true)

+        {

+            if (++g_switches[1].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[1].active = true;

+

+                /* Call callback function. */

+                SW2_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[1].debounce_cnt)

+        {

+            g_switches[1].active = false;

+        }

+        else

+        {

+            g_switches[1].debounce_cnt--;

+        }

+    }

+

+    /* Check switch 3. */

+    if (SW3 == SW_ACTIVE)

+    {

+        if (g_switches[2].active != true)

+        {

+            if (++g_switches[2].debounce_cnt >= g_sw_debounce_cnts)

+            {

+                /* Set this to true so we only call the callback function once per press. */

+                g_switches[2].active = true;

+

+                /* Call callback function. */

+                SW3_CALLBACK_FUNCTION();

+            }

+        }

+    }

+    else

+    {

+        if (0 == g_switches[2].debounce_cnt)

+        {

+            g_switches[2].active = false;

+        }

+        else

+        {

+            g_switches[2].debounce_cnt--;

+        }

+    }

+#endif /* SWITCHES_DETECTION_MODE */

+}

+

+

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main.c
new file mode 100644
index 0000000..b3a8ad8
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main.c
@@ -0,0 +1,204 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/******************************************************************************

+ * This project provides two demo applications.  A low power project that

+ * demonstrates the FreeRTOS tickless mode, and a more comprehensive test and

+ * demo application.  The configCREATE_LOW_POWER_DEMO setting (defined at the

+ * top of FreeRTOSConfig.h) is used to select between the two.  The low power

+ * demo is implemented and described in main_low_power.c.  The more

+ * comprehensive test and demo application is implemented and described in

+ * main_full.c.

+ *

+ * This file implements the code that is not demo specific, including the

+ * hardware setup and FreeRTOS hook functions.

+ */

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+

+/* Platform includes. */

+#include "lcd.h"

+

+/*-----------------------------------------------------------*/

+

+/*

+ * main_low_power() is used when configCREATE_LOW_POWER_DEMO is set to 1.

+ * main_full() is used when configCREATE_LOW_POWER_DEMO is set to 0.

+ */

+extern void main_low_power( void );

+extern void main_full( void );

+

+/* Prototypes for the standard FreeRTOS callback/hook functions implemented

+within this file. */

+void vApplicationMallocFailedHook( void );

+void vApplicationIdleHook( void );

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName );

+void vApplicationTickHook( void );

+

+/*-----------------------------------------------------------*/

+

+/* See the documentation page for this demo on the FreeRTOS.org web site for

+full information - including hardware setup requirements. */

+

+void main( void )

+{

+	lcd_initialize();

+	lcd_display( LCD_LINE1, "FreeRTOS" );

+

+	/* The configCREATE_LOW_POWER_DEMO setting is described in FreeRTOSConfig.h. */

+	#if configCREATE_LOW_POWER_DEMO == 1

+	{

+		lcd_display( LCD_LINE2, "LP Demo" );

+		main_low_power();

+	}

+	#else

+	{

+		lcd_display( LCD_LINE2, "Ful Demo" );

+		main_full();

+	}

+	#endif

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationMallocFailedHook( void )

+{

+	/* vApplicationMallocFailedHook() will only be called if

+	configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook

+	function that will get called if a call to pvPortMalloc() fails.

+	pvPortMalloc() is called internally by the kernel whenever a task, queue,

+	timer or semaphore is created.  It is also called by various parts of the

+	demo application.  If heap_1.c, heap_2.c or heap_4.c are used, then the size

+	of the heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE

+	in FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used

+	to query the size of free heap space that remains (although it does not

+	provide information on how the remaining heap might be fragmented). */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationIdleHook( void )

+{

+	/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set

+	to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle

+	task.  It is essential that code added to this hook function never attempts

+	to block in any way (for example, call xQueueReceive() with a block time

+	specified, or call vTaskDelay()).  If the application makes use of the

+	vTaskDelete() API function (as this demo application does) then it is also

+	important that vApplicationIdleHook() is permitted to return to its calling

+	function, because it is the responsibility of the idle task to clean up

+	memory allocated by the kernel to any task that has since been deleted. */

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName )

+{

+	( void ) pcTaskName;

+	( void ) pxTask;

+

+	/* Run time stack overflow checking is performed if

+	configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook	function is

+	called if a stack overflow is detected. */

+	taskDISABLE_INTERRUPTS();

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+void vApplicationTickHook( void )

+{

+	/* This function will be called by each tick interrupt if

+	configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h.  User code can be

+	added here, but the tick hook is called from an interrupt context, so

+	code must not attempt to block, and only the interrupt safe FreeRTOS API

+	functions can be used (those that end in FromISR()). */

+}

+/*-----------------------------------------------------------*/

+

+void vAssertCalled( void )

+{

+volatile unsigned long ul = 0;

+

+	taskENTER_CRITICAL();

+	{

+		/* Set ul to a non-zero value using the debugger to step out of this

+		function. */

+		while( ul == 0 )

+		{

+			nop();

+		}

+	}

+	taskEXIT_CRITICAL();

+}

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_full.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_full.c
new file mode 100644
index 0000000..a6dd16a
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_full.c
@@ -0,0 +1,531 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * This project includes a lot of tasks and tests and is therefore complex.

+ * If you would prefer a much simpler project to get started with then select

+ * the 'low power' demo by setting configCREATE_LOW_POWER_DEMO to 1 in

+ * FreeRTOSConfig.h.  When configCREATE_LOW_POWER_DEMO is set to 1 main() will

+ * call main_low_power() instead of main_full().

+ * ****************************************************************************

+ *

+ * Creates all the demo application tasks, then starts the scheduler.  The web

+ * documentation provides more details of the standard demo application tasks,

+ * which provide no particular functionality but do provide a good example of

+ * how to use the FreeRTOS API.

+ *

+ * In addition to the standard demo tasks, the following tasks and tests are

+ * defined and/or created within this file:

+ *

+ * "Reg test" tasks - These fill the registers with known values, then

+ * repeatedly check that each register still contains its expected value for

+ * the lifetime of the tasks.  Each task uses different values.  The tasks run

+ * with very low priority so get preempted very frequently.  A check variable

+ * is incremented on each iteration of the test loop.  A register containing an

+ * unexpected value is indicative of an error in the context switching

+ * mechanism and will result in a branch to a null loop - which in turn will

+ * prevent the check variable from incrementing any further and allow the check

+ * timer (described below) to determine that an error has occurred.  The nature

+ * of the reg test tasks necessitates that they are written in assembly code.

+ *

+ * "Check Timer" and Callback Function - The check timer period is initially

+ * set to three seconds.  The check timer callback function checks that all the

+ * standard demo tasks are not only still executing, but are executing without

+ * reporting any errors.  If the check timer discovers that a task has either

+ * stalled, or reported an error, then it changes its own period from the

+ * initial three seconds, to just 200ms.  The check timer callback function

+ * also toggles LED 0 each time it is called.  This provides a visual

+ * indication of the system status:  If the LED toggles every three seconds,

+ * then no issues have been discovered.  If the LED toggles every 200ms, then

+ * an issue has been discovered with at least one task.

+ *

+ * *NOTE 1* The CPU must be in Supervisor mode when the scheduler is started.

+ * The PowerON_Reset_PC() supplied in resetprg.c with this demo has

+ * Change_PSW_PM_to_UserMode() commented out to ensure this is the case.

+*/

+

+/* Standard includes. */

+#include <string.h>

+

+/* Hardware specific includes. */

+#include "iodefine.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "timers.h"

+#include "semphr.h"

+

+/* Standard demo includes. */

+#include "partest.h"

+#include "death.h"

+#include "blocktim.h"

+#include "GenQTest.h"

+#include "recmutex.h"

+

+/* The code in this file is only built when configCREATE_LOW_POWER_DEMO is set

+to 0, otherwise the code in main_low_power.c is used. */

+#if configCREATE_LOW_POWER_DEMO == 0

+

+

+/* Values that are passed into the reg test tasks using the task parameter.

+The tasks check that the values are passed in correctly. */

+#define mainREG_TEST_1_PARAMETER	( 0x12121212UL )

+#define mainREG_TEST_2_PARAMETER	( 0x12345678UL )

+

+/* Priorities at which the standard demo tasks are created. */

+#define mainGEN_QUEUE_TASK_PRIORITY	( tskIDLE_PRIORITY )

+#define mainCREATOR_TASK_PRIORITY   ( tskIDLE_PRIORITY + 3 )

+

+/* The LED toggled by the check timer. */

+#define mainCHECK_LED				( 0 )

+

+/* The period at which the check timer will expire, in ms, provided no errors

+have been reported by any of the standard demo tasks.  ms are converted to the

+equivalent in ticks using the portTICK_RATE_MS constant. */

+#define mainCHECK_TIMER_PERIOD_MS			( 3000UL / portTICK_RATE_MS )

+

+/* The period at which the check timer will expire, in ms, if an error has been

+reported in one of the standard demo tasks.  ms are converted to the equivalent

+in ticks using the portTICK_RATE_MS constant. */

+#define mainERROR_CHECK_TIMER_PERIOD_MS 	( 200UL / portTICK_RATE_MS )

+

+/* A block time of zero simple means "Don't Block". */

+#define mainDONT_BLOCK				( 0UL )

+

+/*

+ * The reg test tasks as described at the top of this file.

+ */

+static void prvRegTest1Task( void *pvParameters );

+static void prvRegTest2Task( void *pvParameters );

+

+/*

+ * The actual implementation of the reg test functionality, which, because of

+ * the direct register access, have to be in assembly.

+ */

+static void prvRegTest1Implementation( void );

+static void prvRegTest2Implementation( void );

+

+/*

+ * The check timer callback function, as described at the top of this file.

+ */

+static void prvCheckTimerCallback( xTimerHandle xTimer );

+

+

+/*-----------------------------------------------------------*/

+

+/* Variables that are incremented on each iteration of the reg test tasks -

+provided the tasks have not reported any errors.  The check timer inspects these

+variables to ensure they are still incrementing as expected.  If a variable

+stops incrementing then it is likely that its associated task has stalled. */

+unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL;

+

+/* The check timer.  This uses prvCheckTimerCallback() as its callback

+function. */

+static xTimerHandle xCheckTimer = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_full( void )

+{

+	/* Start the reg test tasks which test the context switching mechanism. */

+	xTaskCreate( prvRegTest1Task, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_1_PARAMETER, tskIDLE_PRIORITY, NULL );

+	xTaskCreate( prvRegTest2Task, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) mainREG_TEST_2_PARAMETER, tskIDLE_PRIORITY, NULL );

+

+	/* Create the standard demo tasks. */

+	vCreateBlockTimeTasks();

+	vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY );

+	vStartRecursiveMutexTasks();

+

+	/* The suicide tasks must be created last as they need to know how many

+	tasks were running prior to their creation in order to ascertain whether

+	or not the correct/expected number of tasks are running at any given time. */

+	vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );

+

+	/* Create the software timer that performs the 'check' functionality,

+	as described at the top of this file. */

+	xCheckTimer = xTimerCreate( ( const signed char * ) "CheckTimer",/* A text name, purely to help debugging. */

+								( mainCHECK_TIMER_PERIOD_MS ),		/* The timer period, in this case 5000ms (5s). */

+								pdTRUE,								/* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */

+								( void * ) 0,						/* The ID is not used, so can be set to anything. */

+								prvCheckTimerCallback				/* The callback function that inspects the status of all the other tasks. */

+							  );

+

+	configASSERT( xCheckTimer );

+

+	/* Start the check timer.  It will actually start when the scheduler is

+	started. */

+	xTimerStart( xCheckTimer, mainDONT_BLOCK );

+

+	/* Start the tasks running. */

+	vTaskStartScheduler();

+

+	/* If all is well execution will never reach here as the scheduler will be

+	running.  If this null loop is reached then it is likely there was

+	insufficient FreeRTOS heap available for the idle task and/or timer task to

+	be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvCheckTimerCallback( xTimerHandle xTimer )

+{

+static long lChangedTimerPeriodAlready = pdFALSE, lErrorStatus = pdPASS;

+static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL;

+

+	/* Remove compiler warnings about unused parameters. */

+	( void ) xTimer;

+

+	/* Check the standard demo tasks are running without error. */

+	if( xAreGenericQueueTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xIsCreateTaskStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+	else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Check the reg test tasks are still cycling.  They will stop incrementing

+	their loop counters if they encounter an error. */

+	if( ulRegTest1CycleCount == ulLastRegTest1CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	if( ulRegTest2CycleCount == ulLastRegTest2CycleCount )

+	{

+		lErrorStatus = pdFAIL;

+	}

+

+	/* Remember the loop counter values this time around so they can be checked

+	again the next time this callback function executes. */

+	ulLastRegTest1CycleCount = ulRegTest1CycleCount;

+	ulLastRegTest2CycleCount = ulRegTest2CycleCount;

+

+	/* Toggle the check LED to give an indication of the system status.  If

+	the LED toggles every three seconds then everything is ok.  A faster toggle

+	indicates an error. */

+	vParTestToggleLED( mainCHECK_LED );

+

+	/* Was an error detected this time through the callback execution? */

+	if( lErrorStatus != pdPASS )

+	{

+		if( lChangedTimerPeriodAlready == pdFALSE )

+		{

+			lChangedTimerPeriodAlready = pdTRUE;

+

+			/* This call to xTimerChangePeriod() uses a zero block time.

+			Functions called from inside of a timer callback function must

+			*never* attempt	to block. */

+			xTimerChangePeriod( xCheckTimer, ( mainERROR_CHECK_TIMER_PERIOD_MS ), mainDONT_BLOCK );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest1Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_1_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	prvRegTest1Implementation();

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+static void prvRegTest2Task( void *pvParameters )

+{

+	if( ( ( unsigned long ) pvParameters ) != mainREG_TEST_2_PARAMETER )

+	{

+		/* The parameter did not contain the expected value. */

+		for( ;; )

+		{

+			/* Stop the tick interrupt so its obvious something has gone wrong. */

+			taskDISABLE_INTERRUPTS();

+		}

+	}

+

+	/* This is an inline asm function that never returns. */

+	prvRegTest2Implementation();

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+#pragma inline_asm prvRegTest1Implementation

+static void prvRegTest1Implementation( void )

+{

+	; Put a known value in each register.

+	MOV.L	#11111111H, R15

+	MVTACHI	R15

+	MOV.L	#22222222H, R15

+	MVTACLO	R15

+	MOV.L	#1, R1

+	MOV.L	#2, R2

+	MOV.L	#3, R3

+	MOV.L	#4, R4

+	MOV.L	#5, R5

+	MOV.L	#6, R6

+	MOV.L	#7, R7

+	MOV.L	#8, R8

+	MOV.L	#9, R9

+	MOV.L	#10, R10

+	MOV.L	#11, R11

+	MOV.L	#12, R12

+	MOV.L	#13, R13

+	MOV.L	#14, R14

+	MOV.L	#15, R15

+

+	; Loop, checking each iteration that each register still contains the

+	; expected value.

+TestLoop1:

+

+	; Push the registers that are going to get clobbered.

+	PUSHM	R14-R15

+

+	; Increment the loop counter to show this task is still getting CPU time.

+	MOV.L	#_ulRegTest1CycleCount, R14

+	MOV.L	[ R14 ], R15

+	ADD		#1, R15

+	MOV.L	R15, [ R14 ]

+

+	; Yield to extend the text coverage.  Set the bit in the ITU SWINTR register.

+	MOV.L	#1, R14

+	MOV.L 	#0872E0H, R15

+	MOV.B	R14, [R15]

+	NOP

+	NOP

+

+	;Check the accumulator value.

+	MVFACHI	R15

+	CMP		#11111111H, R15

+	BNE		RegTest2Error

+	MVFACMI	R15

+	CMP		#11112222H, R15

+	BNE		RegTest2Error

+

+	; Restore the clobbered registers.

+	POPM	R14-R15

+

+	; Now compare each register to ensure it still contains the value that was

+	; set before this loop was entered.

+	CMP		#1, R1

+	BNE		RegTest1Error

+	CMP		#2, R2

+	BNE		RegTest1Error

+	CMP		#3, R3

+	BNE		RegTest1Error

+	CMP		#4, R4

+	BNE		RegTest1Error

+	CMP		#5, R5

+	BNE		RegTest1Error

+	CMP		#6, R6

+	BNE		RegTest1Error

+	CMP		#7, R7

+	BNE		RegTest1Error

+	CMP		#8, R8

+	BNE		RegTest1Error

+	CMP		#9, R9

+	BNE		RegTest1Error

+	CMP		#10, R10

+	BNE		RegTest1Error

+	CMP		#11, R11

+	BNE		RegTest1Error

+	CMP		#12, R12

+	BNE		RegTest1Error

+	CMP		#13, R13

+	BNE		RegTest1Error

+	CMP		#14, R14

+	BNE		RegTest1Error

+	CMP		#15, R15

+	BNE		RegTest1Error

+

+	; All comparisons passed, start a new iteration of this loop.

+	BRA		TestLoop1

+

+RegTest1Error:

+	; A compare failed, just loop here so the loop counter stops incrementing

+	; causing the check timer to indicate the error.

+	BRA RegTest1Error

+}

+/*-----------------------------------------------------------*/

+

+/* This function is explained in the comments at the top of this file. */

+#pragma inline_asm prvRegTest2Implementation

+static void prvRegTest2Implementation( void )

+{

+	; Put a known value in each register.

+	MOV.L	#33333333H, R15

+	MVTACHI	R15

+	MOV.L	#44444444H, R15

+	MVTACLO	R15

+	MOV.L	#10, R1

+	MOV.L	#20, R2

+	MOV.L	#30, R3

+	MOV.L	#40, R4

+	MOV.L	#50, R5

+	MOV.L	#60, R6

+	MOV.L	#70, R7

+	MOV.L	#80, R8

+	MOV.L	#90, R9

+	MOV.L	#100, R10

+	MOV.L	#110, R11

+	MOV.L	#120, R12

+	MOV.L	#130, R13

+	MOV.L	#140, R14

+	MOV.L	#150, R15

+

+	; Loop, checking on each iteration that each register still contains the

+	; expected value.

+TestLoop2:

+

+	; Push the registers that are going to get clobbered.

+	PUSHM	R14-R15

+

+	; Increment the loop counter to show this task is still getting CPU time.

+	MOV.L	#_ulRegTest2CycleCount, R14

+	MOV.L	[ R14 ], R15

+	ADD		#1, R15

+	MOV.L	R15, [ R14 ]

+

+	;Check the accumulator value.

+	MVFACHI	R15

+	CMP		#33333333H, R15

+	BNE		RegTest2Error

+	MVFACMI	R15

+	CMP		#33334444H, R15

+	BNE		RegTest2Error

+

+	; Restore the clobbered registers.

+	POPM	R14-R15

+

+	CMP		#10, R1

+	BNE		RegTest2Error

+	CMP		#20, R2

+	BNE		RegTest2Error

+	CMP		#30, R3

+	BNE		RegTest2Error

+	CMP		#40, R4

+	BNE		RegTest2Error

+	CMP		#50, R5

+	BNE		RegTest2Error

+	CMP		#60, R6

+	BNE		RegTest2Error

+	CMP		#70, R7

+	BNE		RegTest2Error

+	CMP		#80, R8

+	BNE		RegTest2Error

+	CMP		#90, R9

+	BNE		RegTest2Error

+	CMP		#100, R10

+	BNE		RegTest2Error

+	CMP		#110, R11

+	BNE		RegTest2Error

+	CMP		#120, R12

+	BNE		RegTest2Error

+	CMP		#130, R13

+	BNE		RegTest2Error

+	CMP		#140, R14

+	BNE		RegTest2Error

+	CMP		#150, R15

+	BNE		RegTest2Error

+

+	; All comparisons passed, start a new itteratio of this loop.

+	BRA		TestLoop2

+

+RegTest2Error:

+	; A compare failed, just loop here so the loop counter stops incrementing

+	; - causing the check timer to indicate the error.

+	BRA RegTest2Error

+}

+/*-----------------------------------------------------------*/

+

+#endif /* configCREATE_LOW_POWER_DEMO */

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_low_power.c b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_low_power.c
new file mode 100644
index 0000000..989f4c3
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/RTOSDemo/main_low_power.c
@@ -0,0 +1,436 @@
+/*

+    FreeRTOS V7.4.0 - Copyright (C) 2013 Real Time Engineers Ltd.

+

+    FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME.  PLEASE VISIT

+    http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.

+

+    ***************************************************************************

+     *                                                                       *

+     *    FreeRTOS tutorial books are available in pdf and paperback.        *

+     *    Complete, revised, and edited pdf reference manuals are also       *

+     *    available.                                                         *

+     *                                                                       *

+     *    Purchasing FreeRTOS documentation will not only help you, by       *

+     *    ensuring you get running as quickly as possible and with an        *

+     *    in-depth knowledge of how to use FreeRTOS, it will also help       *

+     *    the FreeRTOS project to continue with its mission of providing     *

+     *    professional grade, cross platform, de facto standard solutions    *

+     *    for microcontrollers - completely free of charge!                  *

+     *                                                                       *

+     *    >>> See http://www.FreeRTOS.org/Documentation for details. <<<     *

+     *                                                                       *

+     *    Thank you for using FreeRTOS, and thank you for your support!      *

+     *                                                                       *

+    ***************************************************************************

+

+

+    This file is part of the FreeRTOS distribution.

+

+    FreeRTOS is free software; you can redistribute it and/or modify it under

+    the terms of the GNU General Public License (version 2) as published by the

+    Free Software Foundation AND MODIFIED BY the FreeRTOS exception.

+

+    >>>>>>NOTE<<<<<< The modification to the GPL is included to allow you to

+    distribute a combined work that includes FreeRTOS without being obliged to

+    provide the source code for proprietary components outside of the FreeRTOS

+    kernel.

+

+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY

+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

+    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more

+    details. You should have received a copy of the GNU General Public License

+    and the FreeRTOS license exception along with FreeRTOS; if not itcan be

+    viewed here: http://www.freertos.org/a00114.html and also obtained by

+    writing to Real Time Engineers Ltd., contact details for whom are available

+    on the FreeRTOS WEB site.

+

+    1 tab == 4 spaces!

+

+    ***************************************************************************

+     *                                                                       *

+     *    Having a problem?  Start by reading the FAQ "My application does   *

+     *    not run, what could be wrong?"                                     *

+     *                                                                       *

+     *    http://www.FreeRTOS.org/FAQHelp.html                               *

+     *                                                                       *

+    ***************************************************************************

+

+

+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,

+    license and Real Time Engineers Ltd. contact details.

+

+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,

+    including FreeRTOS+Trace - an indispensable productivity tool, and our new

+    fully thread aware and reentrant UDP/IP stack.

+

+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High

+    Integrity Systems, who sell the code with commercial support,

+    indemnification and middleware, under the OpenRTOS brand.

+

+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety

+    engineered and independently SIL3 certified version for use in safety and

+    mission critical applications that require provable dependability.

+*/

+

+/* ****************************************************************************

+ * When configCREATE_LOW_POWER_DEMO is set to 1 in FreeRTOSConfig.h main() will

+ * call main_low_power(), which is defined in this file.  main_low_power()

+ * demonstrates FreeRTOS tick suppression being used to allow the MCU to be

+ * placed into both the low power deep sleep mode and the low power software

+ * standby mode.  When configCREATE_LOW_POWER_DEMO is set to 0 main will

+ * instead call main_full(), which is a more comprehensive RTOS demonstration.

+ * ****************************************************************************

+ *

+ * This application demonstrates the FreeRTOS tickless idle mode (tick

+ * suppression).  See http://www.freertos.org/low-power-tickless-rtos.html

+ * The demo is configured to execute on the Renesas RX100 RSK.

+ *

+ *  Functionality:

+ *

+ *  + Two tasks are created, an Rx task and a Tx task.

+ *

+ *  + The Rx task repeatedly blocks on a queue to wait for data.  The Rx task

+ *    toggles LED 0 each time is receives a value from the queue.

+ *

+ *  + The Tx task repeatedly enters the Blocked state for an amount of time

+ *    that is set by the position of the potentiometer.  On exiting the blocked

+ *    state the Tx task sends a value through the queue to the Rx task (causing

+ *    the Rx task to exit the blocked state and toggle LED 0).

+ *

+ *    If the value read from the potentiometer is less than or equal to

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks for the equivalent

+ *    number of milliseconds.  For example, if the sampled analog value is

+ *    2000, then the Tx task blocks for 2000ms.  Blocking for a finite period

+ *    allows the kernel to stop the tick interrupt and place the RX100 into

+ *    deep sleep mode.

+ *

+ *    If the value read form the potentiometer is greater than

+ *    mainSOFTWARE_STANDBY_DELAY then the Tx task blocks on a semaphore with

+ *    an infinite timeout.  Blocking with an infinite timeout allows the kernel

+ *    to stop the tick interrupt and place the RX100 into software standby

+ *    mode.  Pressing a button will generate an interrupt that causes the RX100

+ *    to exit software standby mode.  The interrupt service routine 'gives' the

+ *    semaphore to unblock the Tx task.

+ *

+ *

+ *  Using the Demo and Observed Behaviour:

+ *

+ *  1) Turn the potentiometer completely counter clockwise.

+ *

+ *  2) Program the RX100 with the application, then disconnect the programming/

+ *   debugging hardware to ensure power readings are not effected by any

+ *   connected interfaces.

+ *

+ *  3) Start the application running.  LED 0 will toggle quickly because the

+ *   potentiometer is turned to its lowest value.  LED 1 will be illuminated

+ *   when the RX100 is not in a power saving mode, but will appear to be off

+ *   because most execution time is spent in a sleep mode.  Led 2 will be

+ *   illuminated when the RX100 is in deep sleep mode, and will appear to be

+ *   always on, again because most execution time is spent in deep sleep mode.

+ *   The LEDs are turned on and off by the application defined pre and post

+ *   sleep macros (see the definitions of configPRE_SLEEP_PROCESSING() and

+ *   configPOST_SLEEP_PROCESSING() in FreeRTOSConfig.h).

+ *

+ *  4) Slowly turn the potentiometer in the clockwise direction.  This will

+ *   increase the value read from the potentiometer, which will increase the

+ *   time the Tx task spends in the Blocked state, which will therefore

+ *   decrease the frequency at which the Tx task sends data to the queue (and

+ *   the rate at which LED 0 is toggled).

+ *

+ *  5) Keep turning the potentiometer in the clockwise direction.  Eventually

+ *   the value read from the potentiometer will go above

+ *   mainSOFTWARE_STANDBY_DELAY, causing the Tx task to block on the semaphore

+ *   with an infinite timeout.  LED 0 will stop toggling because the Tx task is

+ *   no longer sending to the queue.  LED 1 and LED 2 will both be off because

+ *   the RX100 is neither running or in deep sleep mode (it is in software

+ *   standby mode).

+ *

+ *  6) Turn the potentiometer counter clockwise again to ensure its value goes

+ *   back below mainSOFTWARE_STANDBY_DELAY.

+ *

+ *  7) Press any of the three buttons to generate an interrupt.  The interrupt

+ *   will take the RX100 out of software standby mode, and the interrupt

+ *   service routine will unblock the Tx task by 'giving' the semaphore.  LED 0

+ *   will then start to toggle again.

+ *

+ */

+

+

+/* Hardware specific includes. */

+#include "platform.h"

+#include "r_switches_if.h"

+

+/* Kernel includes. */

+#include "FreeRTOS.h"

+#include "task.h"

+#include "queue.h"

+#include "semphr.h"

+

+/* Common demo includes. */

+#include "partest.h"

+

+/* Priorities at which the Rx and Tx tasks are created. */

+#define configQUEUE_RECEIVE_TASK_PRIORITY	( tskIDLE_PRIORITY + 1 )

+#define	configQUEUE_SEND_TASK_PRIORITY		( tskIDLE_PRIORITY + 2 )

+

+/* The number of items the queue can hold.  This is 1 as the Rx task will

+remove items as they are added so the Tx task should always find the queue

+empty. */

+#define mainQUEUE_LENGTH					( 1 )

+

+/* The LED used to indicate that a value has been received on the queue. */

+#define mainQUEUE_LED						( 0 )

+

+/* The LED used to indicate that full power is being used (the MCU is not in

+deep sleep or software standby mode). */

+#define mainFULL_POWER_LED					( 1 )

+

+/* The LED used to indicate that deep sleep mode is being used. */

+#define mainDEEP_SLEEP_LED					( 2 )

+

+/* The Tx task sends to the queue with a frequency that is set by the value

+read from the potentiometer until the value goes above that set by the

+mainSOFTWARE_STANDBY_DELAY constant - at which time the Tx task instead blocks

+indefinitely on a semaphore. */

+#define mainSOFTWARE_STANDBY_DELAY			( 3000UL )

+

+/* A block time of zero simply means "don't block". */

+#define mainDONT_BLOCK						( 0 )

+

+/* The value that is sent from the Tx task to the Rx task on the queue. */

+#define mainQUEUED_VALUE					( 100UL )

+

+/*-----------------------------------------------------------*/

+

+/*

+ * The Rx and Tx tasks as described at the top of this file.

+ */

+static void prvQueueReceiveTask( void *pvParameters );

+static void prvQueueSendTask( void *pvParameters );

+

+/*

+ * Reads and returns the value of the ADC connected to the potentiometer built

+ * onto the RSK.

+ */

+static unsigned short prvReadPOT( void );

+

+/*

+ * The handler for the interrupt generated when any of the buttons are pressed.

+ */

+void vButtonInterruptCallback( void );

+

+/*-----------------------------------------------------------*/

+

+/* The queue to pass data from the Tx task to the Rx task. */

+static xQueueHandle xQueue = NULL;

+

+/* The semaphore that is 'given' by interrupts generated from button pushes. */

+static xSemaphoreHandle xSemaphore = NULL;

+

+/*-----------------------------------------------------------*/

+

+void main_low_power( void )

+{

+	/* Create the queue. */

+	xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );

+	configASSERT( xQueue );

+

+	/* Create the semaphore that is 'given' by an interrupt generated from a

+	button push. */

+	vSemaphoreCreateBinary( xSemaphore );

+	configASSERT( xSemaphore );

+

+	/* Make sure the semaphore starts in the expected state - no button pushes

+	have yet occurred.  A block time of zero can be used as it is guaranteed

+	that the semaphore will be available because it has just been created. */

+	xSemaphoreTake( xSemaphore, mainDONT_BLOCK );

+

+	/* Start the two tasks as described at the top of this file. */

+	xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, configQUEUE_RECEIVE_TASK_PRIORITY, NULL );

+	xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, configQUEUE_SEND_TASK_PRIORITY, NULL );

+

+	/* The CPU is currently running, not sleeping, so turn on the LED that

+	shows the CPU is not in a sleep mode. */

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+

+	/* Start the scheduler running running. */

+	vTaskStartScheduler();

+

+	/* If all is well the next line of code will not be reached as the

+	scheduler will be running.  If the next line is reached then it is likely

+	there was insufficient FreeRTOS heap available for the idle task and/or

+	timer task to be created.  See http://www.freertos.org/a00111.html. */

+	for( ;; );

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueSendTask( void *pvParameters )

+{

+portTickType xDelay;

+const unsigned long ulValueToSend = mainQUEUED_VALUE;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* The delay period between successive sends to the queue is set by

+		the potentiometer reading. */

+		xDelay = ( portTickType ) prvReadPOT();

+

+		/* If the block time is greater than 3000 milliseconds then block

+		indefinitely waiting for a button push. */

+		if( xDelay > mainSOFTWARE_STANDBY_DELAY )

+		{

+			/* As this is an indefinite delay the kernel will place the CPU

+			into software standby mode the next time the idle task runs. */

+			xSemaphoreTake( xSemaphore, portMAX_DELAY );

+		}

+		else

+		{

+			/* Convert a time in milliseconds to a time in ticks. */

+			xDelay /= portTICK_RATE_MS;

+

+			/* Place this task in the blocked state until it is time to run

+			again.  As this is not an indefinite sleep the kernel will place

+			the CPU into the deep sleep state when the idle task next runs. */

+			vTaskDelay( xDelay );

+		}

+

+		/* Send to the queue - causing the queue receive task to flash its LED.

+		It should not be necessary to block on the queue send because the Rx

+		task will have removed the last queued item. */

+		xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK );

+	}

+}

+/*-----------------------------------------------------------*/

+

+static void prvQueueReceiveTask( void *pvParameters )

+{

+unsigned long ulReceivedValue;

+

+	/* Remove compiler warning about unused parameter. */

+	( void ) pvParameters;

+

+	for( ;; )

+	{

+		/* Wait until something arrives in the queue - this will block

+		indefinitely provided INCLUDE_vTaskSuspend is set to 1 in

+		FreeRTOSConfig.h. */

+		xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );

+

+		/*  To get here something must have arrived, but is it the expected

+		value?  If it is, toggle the LED. */

+		if( ulReceivedValue == mainQUEUED_VALUE )

+		{

+			vParTestToggleLED( mainQUEUE_LED );

+		}

+	}

+}

+/*-----------------------------------------------------------*/

+

+void vPreSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel before it places the MCU into a sleep mode because

+	configPRE_SLEEP_PROCESSING() is #defined to vPreSleepProcessing().

+

+	NOTE:  Additional actions can be taken here to get the power consumption

+	even lower.  For example, the ADC input used by this demo could be turned

+	off here, and then back on again in the power sleep processing function.

+	For maximum power saving ensure all unused pins are in their lowest power

+	state. */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Is the MCU about to enter deep sleep mode or software standby mode? */

+	if( SYSTEM.SBYCR.BIT.SSBY == 0 )

+	{

+		/* Turn on the LED that indicates deep sleep mode is being entered. */

+		vParTestSetLED( mainDEEP_SLEEP_LED, pdTRUE );

+	}

+	else

+	{

+		/* Software standby mode is being used, so no LEDs are illuminated to

+		ensure minimum power readings are obtained.  Ensure the Queue LED is

+		also off. */

+		vParTestSetLED( mainQUEUE_LED, pdFALSE );

+	}

+

+	/* Turn off the LED that indicates full power is being used. */

+	vParTestSetLED( mainFULL_POWER_LED, pdFALSE );

+}

+/*-----------------------------------------------------------*/

+

+void vPostSleepProcessing( unsigned long ulExpectedIdleTime )

+{

+	/* Called by the kernel when the MCU exits a sleep mode because

+	configPOST_SLEEP_PROCESSING is #defined to vPostSleepProcessing(). */

+

+	/* Avoid compiler warnings about the unused parameter. */

+	( void ) ulExpectedIdleTime;

+

+	/* Turn off the LED that indicates deep sleep mode, and turn on the LED

+	that indicates full power is being used. */

+	vParTestSetLED( mainDEEP_SLEEP_LED, pdFALSE );

+	vParTestSetLED( mainFULL_POWER_LED, pdTRUE );

+}

+/*-----------------------------------------------------------*/

+

+static unsigned short prvReadPOT( void )

+{

+unsigned short usADCValue;

+const unsigned short usMinADCValue = 128;

+

+	/* Start an ADC scan. */

+	S12AD.ADCSR.BIT.ADST = 1;

+	while( S12AD.ADCSR.BIT.ADST == 1 )

+	{

+		/* Just waiting for the ADC scan to complete.  Inefficient

+		polling! */

+	}

+

+	usADCValue = S12AD.ADDR4;

+

+	/* Don't let the ADC value get too small as the LED behaviour will look

+	erratic. */

+	if( usADCValue < usMinADCValue )

+	{

+		usADCValue = usMinADCValue;

+	}

+

+	return usADCValue;

+}

+/*-----------------------------------------------------------*/

+

+void vButtonInterruptCallback( void )

+{

+long lHigherPriorityTaskWoken = pdFALSE;

+

+	/* The semaphore is only created when the build is configured to create the

+	low power demo. */

+	if( xSemaphore != NULL )

+	{

+		/* This interrupt will bring the CPU out of deep sleep and software

+		standby	modes.  Give the semaphore that was used to place the Tx task

+		into an indefinite sleep. */

+		if( uxQueueMessagesWaitingFromISR( xSemaphore ) == 0 )

+		{

+			xSemaphoreGiveFromISR( xSemaphore, &lHigherPriorityTaskWoken );

+		}

+		else

+		{

+			/* The semaphore was already available, so the task is not blocked

+			on it and there is no point giving it. */

+		}

+

+		/* If giving the semaphore caused a task to leave the Blocked state,

+		and the task that left the Blocked state has a priority equal to or

+		above the priority of the task that this interrupt interrupted, then

+		lHigherPriorityTaskWoken will have been set to pdTRUE inside the call

+		to xSemaphoreGiveFromISR(), and calling portYIELD_FROM_ISR() will cause

+		a context switch to the unblocked task. */

+		portYIELD_FROM_ISR( lHigherPriorityTaskWoken );

+	}

+}

+

diff --git a/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/custom.bat b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/custom.bat
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/FreeRTOS/Demo/RX100-RSK_Renesas_e2studio/custom.bat