chun sung Park 2024-02-28
테스트용 코드 업로드
J8 - 포인트센서 연결 테스트 코드

ADC, DAC, DIO, SCI, Modbus 테스트 완료
SPI(write 미완)
@4d2d1b45b623e493776e104e746dcc60cd6b0594
 
ArcCTRL-23-NEXTSQ-CPU1/.ccsproject (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.ccsproject
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<deviceFamily value="C2000"/>
+	<isTargetManual value="false"/>
+	<connection value="common/targetdb/connections/SD560V2USB_Connection.xml"/>
+</projectOptions>
 
ArcCTRL-23-NEXTSQ-CPU1/.cproject (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.cproject
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+				<macros>
+					<stringMacro name="USERNAME" type="VALUE_TEXT" value="KimJeongWoo"/>
+				</macros>
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C2000.Debug" postannouncebuildStep="" postbuildStep="copy /Y &quot;${PROJECT_BUILD_DIR}/${BuildArtifactFileName}&quot; &quot;${PROJECT_LOC}/../EZDSP/${BuildArtifactFileName}&quot;">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.DebugToolchain.1044398768" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug.1052615317">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1786601052" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID=C28xx_CPU1"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=F2837xD_Headers_nonBIOS_cpu1.cmd"/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.79028410" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug.626489137" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug.299456899" name="GNU Make.Debug" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.1483997395" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.103449086" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.623525340" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.736228654" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.1262026149" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1616211215" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.796923203" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.695846318" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.328553500" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.3" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.68149489" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.5" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.766971843" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.482943887" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/driverlib/f2837xd/driverlib"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/f2837xd/headers/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/f2837xd/common/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/device"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPU/include/fpu32"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/EasyDSP_Resource"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CodeLibrary"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CommonLibrary"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/Main_Resource/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/Main_Resource"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.137722406" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.535833324" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="CPU1"/>
+									<listOptionValue builtIn="false" value="_FLASH"/>
+									<listOptionValue builtIn="false" value="__cplusplus"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.406789639" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION.790896090" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION.4" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.RTTI.1050082044" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.RTTI" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CPP_DEFAULT.1676190735" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CPP_DEFAULT" value="true" valueType="boolean"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.791236894" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.618294724" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.1393638008" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.1714081029" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.729696053" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.91182267" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1060229409" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.43202162" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug.1052615317" name="C2000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.19090122" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" value="0x200" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.1666604626" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" value="${ProjName}.map" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.1666083505" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.939891060" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs">
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPU/lib/c28x_fpu_dsp_library.lib"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement.lib"/>
+									<listOptionValue builtIn="false" value="libc.a"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.36018046" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPU/lib"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPUfastRTS/c28/lib"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.PRIORITY.728753153" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.PRIORITY" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.92357409" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.824855182" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.107487242" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" value="${ProjName}_linkInfo.xml" valueType="string"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.890760016" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.355129147" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.1788070690" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex.1079301353" name="C2000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex"/>
+						</toolChain>
+					</folderInfo>
+					<sourceEntries>
+						<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616" moduleId="org.eclipse.cdt.core.settings" name="Release">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616" name="Release" parent="com.ti.ccstudio.buildDefinitions.C2000.Release">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.ReleaseToolchain.1224743178" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease.633439359">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1444794707" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID="/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=2837x_FLASH_lnk_cpu1.cmd"/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.692816616" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformRelease.1689213711" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformRelease"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderRelease.814910229" keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderRelease"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerRelease.1279592470" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.68847834" name="Option deprecated, set by default (--large_memory_model, -ml)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1014872002" name="Unified memory (--unified_memory, -mt)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.144593138" name="Processor version (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.1155517353" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1644651209" name="Specify CLA support (--cla_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.258070210" name="Specify VCU support (--vcu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.303313117" name="Specify TMU support (--tmu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.1706592829" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CodeLibrary/PLL"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CodeLibrary"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.1744357271" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.1713452828" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.187801156" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.1311132154" name="Application binary interface [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.1320174793" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.316580898" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1851774821" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.1649168406" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease.633439359" name="C2000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.1306439479" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" value="0x200" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.1160787138" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" value="${ProjName}.map" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.1276732010" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.1801259657" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs">
+									<listOptionValue builtIn="false" value="libc.a"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.482647902" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.20084738" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.2137149019" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.411319784" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" value="${ProjName}_linkInfo.xml" valueType="string"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.1206619189" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.2067866622" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.317608921" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex.1014016477" name="C2000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex"/>
+						</toolChain>
+					</folderInfo>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="Master4.0-Test-Firmware.com.ti.ccstudio.buildDefinitions.C2000.ProjectType.1729653242" name="C2000" projectType="com.ti.ccstudio.buildDefinitions.C2000.ProjectType"/>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+	<storageModule moduleId="scannerConfiguration"/>
+	<storageModule moduleId="refreshScope" versionNumber="2">
+		<configuration configurationName="Debug">
+			<resource resourceType="PROJECT" workspacePath="/V2H6K01-23-ENEMAN-CPU1"/>
+		</configuration>
+		<configuration configurationName="Release">
+			<resource resourceType="PROJECT" workspacePath="/V2H6K01-23-ENEMAN-CPU1"/>
+		</configuration>
+	</storageModule>
+</cproject>(파일 끝에 줄바꿈 문자 없음)
 
ArcCTRL-23-NEXTSQ-CPU1/.gitignore (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.gitignore
@@ -0,0 +1,1 @@
+/Debug/
 
ArcCTRL-23-NEXTSQ-CPU1/.launches/ArcCtrl-23-NEXTSQ-CPU1.launch (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.launches/ArcCtrl-23-NEXTSQ-CPU1.launch
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.ti.ccstudio.debug.launchType.device.debugging">
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_LOAD_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="ALL"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_LOAD_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="ALL"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_LOAD_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/CPU1_CLA1" value="ALL"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_LOAD_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/CPU2_CLA1" value="ALL"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_LOAD_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/IcePick_C_0" value="ALL"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="ArcCtrl-23-NEXTSQ-CPU1"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="ArcCtrl-23-NEXTSQ-CPU1"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:ArcCtrl-23-NEXTSQ-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU1}"/>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+        <listEntry value="/ArcCtrl-23-NEXTSQ-CPU1"/>
+    </listAttribute>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+        <listEntry value="4"/>
+    </listAttribute>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.sourceLocator"/>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;    &lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;ArcCtrl-23-NEXTSQ-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;V2H6K01-23-ENEMAN-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;ArcCtrl-23-NEXTSQ-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;V2H6K01-23-ENEMAN-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;    &lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+</launchConfiguration>
 
ArcCTRL-23-NEXTSQ-CPU1/.launches/V2H6K01-23-ENEMAN-CPU1.launch (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.launches/V2H6K01-23-ENEMAN-CPU1.launch
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.ti.ccstudio.debug.launchType.device.debugging">
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:V2H6K01-23-ENEMAN-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="${build_artifact:V2H6K01-23-ENEMAN-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="V2H6K01-23-ENEMAN-CPU1"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="V2H6K01-23-ENEMAN-CPU1"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:V2H6K01-23-ENEMAN-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:V2H6K01-23-ENEMAN-CPU1}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="${build_artifact:V2H6K01-23-ENEMAN-CPU1}"/>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+        <listEntry value="/V2H6K01-23-ENEMAN-CPU1"/>
+    </listAttribute>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+        <listEntry value="4"/>
+    </listAttribute>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.sourceLocator"/>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;    &lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;V2H6K01-23-ENEMAN-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;V2H6K01-23-ENEMAN-CPU1&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;    &lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+</launchConfiguration>
 
ArcCTRL-23-NEXTSQ-CPU1/.project (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ArcCtrl-23-NEXTSQ-CPU1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.ti.ccstudio.core.ccsNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+	<linkedResources>
+		<link>
+			<name>Common_Resource</name>
+			<type>2</type>
+			<locationURI>copy_PARENT/Common_Resource</locationURI>
+		</link>
+		<link>
+			<name>TI_Lib</name>
+			<type>2</type>
+			<locationURI>copy_PARENT/TI_Lib</locationURI>
+		</link>
+	</linkedResources>
+	<variableList>
+		<variable>
+			<name>copy_PARENT</name>
+			<value>file:/D:/Project.Git/ArcCtrl-23-Firmware</value>
+		</variable>
+	</variableList>
+</projectDescription>
 
ArcCTRL-23-NEXTSQ-CPU1/.settings/.gitignore (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.settings/.gitignore
@@ -0,0 +1,1 @@
+/org.eclipse.core.resources.derived.prefs
 
ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.codan.core.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,111 @@
+eclipse.preferences.version=1
+inEditor=false
+onBuild=false
+org.eclipse.cdt.codan.checkers.errnoreturn=Warning
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false}
+org.eclipse.cdt.codan.checkers.errreturnvalue=Error
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"}
+org.eclipse.cdt.codan.checkers.localvarreturn=-Warning
+org.eclipse.cdt.codan.checkers.localvarreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Returning the address of a local variable\\")"}
+org.eclipse.cdt.codan.checkers.nocommentinside=-Error
+org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"}
+org.eclipse.cdt.codan.checkers.nolinecomment=-Error
+org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"}
+org.eclipse.cdt.codan.checkers.noreturn=Error
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false}
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"}
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"}
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"}
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"}
+org.eclipse.cdt.codan.internal.checkers.BlacklistProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function or method is blacklisted\\")",blacklist\=>()}
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")",checkMacro\=>true}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false}
+org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"}
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true}
+org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"}
+org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error
+org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"}
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Direct float comparison\\")"}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"}
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"}
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"}
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"}
+org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"}
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false}
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"}
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"}
+org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Multiple variable declaration\\")"}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NoDiscardProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return value not evaluated\\")",macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"}
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"}
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"}
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"}
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"}
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"}
+org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Static variable in header file\\")"}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol shadowing\\")",paramFuncParameters\=>true}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")}
+org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"}
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"}
+org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"}
 
ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.core.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,6 @@
+doxygen/doxygen_new_line_after_brief=true
+doxygen/doxygen_use_brief_tag=false
+doxygen/doxygen_use_javadoc_tags=true
+doxygen/doxygen_use_pre_tag=false
+doxygen/doxygen_use_structural_commands=false
+eclipse.preferences.version=1
 
ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.debug.core.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.cdt.debug.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
 
ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.core.resources.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,88 @@
+eclipse.preferences.version=1
+encoding//CodeLibrary/DigitalFilter.cpp=UTF-8
+encoding//CodeLibrary/SOAPPLL.cpp=UTF-8
+encoding//CodeLibrary/SOGIPLL.cpp=UTF-8
+encoding//Debug/CodeLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/CodeLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/BoardLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/BoardLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/CRC/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/CRC/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/CRC/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/CRC/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalCtrl/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalCtrl/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalFilter/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalFilter/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Ntc/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Ntc/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/PLL/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/PLL/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/TimeSharing/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/TimeSharing/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Util/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Util/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalCtrl/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalCtrl/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalFilter/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalFilter/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Ntc/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Ntc/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/PLL/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/PLL/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/TimeSharing/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/TimeSharing/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Util/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Util/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/source/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/source/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/EasyDSP_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/EasyDSP_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/Main_Resource/source/subdir_rules.mk=UTF-8
+encoding//Debug/Main_Resource/source/subdir_vars.mk=UTF-8
+encoding//Debug/Main_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Main_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/cmd/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/cmd/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/port/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/port/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/src/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/src/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/utils/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/utils/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/source/subdir_vars.mk=UTF-8
+encoding//Debug/TI/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI/headers/cmd/subdir_rules.mk=UTF-8
+encoding//Debug/TI/headers/cmd/subdir_vars.mk=UTF-8
+encoding//Debug/TI/headers/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI/headers/source/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/FPU/lib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/FPU/lib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/FPUfastRTS/c28/lib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/FPUfastRTS/c28/lib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/device/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/device/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/f2837xd/headers/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/f2837xd/headers/source/subdir_vars.mk=UTF-8
+encoding//Debug/makefile=UTF-8
+encoding//Debug/objects.mk=UTF-8
+encoding//Debug/sources.mk=UTF-8
+encoding//Debug/subdir_rules.mk=UTF-8
+encoding//Debug/subdir_vars.mk=UTF-8
+encoding//Main_Resource/source/RunStopSeq.cpp=UTF-8
 
ArcCTRL-23-NEXTSQ-CPU1/F2837xD_Headers_nonBIOS_cpu1.cmd (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/F2837xD_Headers_nonBIOS_cpu1.cmd
@@ -0,0 +1,246 @@
+MEMORY
+{
+ PAGE 0:    /* Program Memory */
+ PAGE 1:    /* Data Memory */
+   ACCESSPROTECTION           : origin = 0x0005F4C0, length = 0x00000040
+   ADCA                       : origin = 0x00007400, length = 0x00000080
+   ADCB                       : origin = 0x00007480, length = 0x00000080
+   ADCC                       : origin = 0x00007500, length = 0x00000080
+   ADCD                       : origin = 0x00007580, length = 0x00000080
+   ADCARESULT                 : origin = 0x00000B00, length = 0x00000018
+   ADCBRESULT                 : origin = 0x00000B20, length = 0x00000018
+   ADCCRESULT                 : origin = 0x00000B40, length = 0x00000018
+   ADCDRESULT                 : origin = 0x00000B60, length = 0x00000018
+   ANALOGSUBSYS               : origin = 0x0005D180, length = 0x00000048
+   CANA                       : origin = 0x00048000, length = 0x00000200
+   CANB                       : origin = 0x0004A000, length = 0x00000200
+   CLA1                       : origin = 0x00001400, length = 0x00000080
+   CLB1DATAEXCH               : origin = 0x00003200, length = 0x00000200
+   CLB2DATAEXCH               : origin = 0x00003600, length = 0x00000200
+   CLB3DATAEXCH               : origin = 0x00003A00, length = 0x00000200
+   CLB4DATAEXCH               : origin = 0x00003E00, length = 0x00000200
+   CLB1LOGICCFG               : origin = 0x00003000, length = 0x00000052
+   CLB2LOGICCFG               : origin = 0x00003400, length = 0x00000052
+   CLB3LOGICCFG               : origin = 0x00003800, length = 0x00000052
+   CLB4LOGICCFG               : origin = 0x00003C00, length = 0x00000052
+   CLB1LOGICCTRL              : origin = 0x00003100, length = 0x00000040
+   CLB2LOGICCTRL              : origin = 0x00003500, length = 0x00000040
+   CLB3LOGICCTRL              : origin = 0x00003900, length = 0x00000040
+   CLB4LOGICCTRL              : origin = 0x00003D00, length = 0x00000040
+   CLBXBAR                    : origin = 0x00007A40, length = 0x00000040
+   CLKCFG                     : origin = 0x0005D200, length = 0x00000032
+   CMPSS1                     : origin = 0x00005C80, length = 0x00000020
+   CMPSS2                     : origin = 0x00005CA0, length = 0x00000020
+   CMPSS3                     : origin = 0x00005CC0, length = 0x00000020
+   CMPSS4                     : origin = 0x00005CE0, length = 0x00000020
+   CMPSS5                     : origin = 0x00005D00, length = 0x00000020
+   CMPSS6                     : origin = 0x00005D20, length = 0x00000020
+   CMPSS7                     : origin = 0x00005D40, length = 0x00000020
+   CMPSS8                     : origin = 0x00005D60, length = 0x00000020
+   CPUTIMER0                  : origin = 0x00000C00, length = 0x00000008
+   CPUTIMER1                  : origin = 0x00000C08, length = 0x00000008
+   CPUTIMER2                  : origin = 0x00000C10, length = 0x00000008
+   CPUSYS                     : origin = 0x0005D300, length = 0x00000082
+   DACA                       : origin = 0x00005C00, length = 0x00000008
+   DACB                       : origin = 0x00005C10, length = 0x00000008
+   DACC                       : origin = 0x00005C20, length = 0x00000008
+   DCSMCOMMON                 : origin = 0x0005F070, length = 0x00000008
+   DCSMZ1                     : origin = 0x0005F000, length = 0x00000024
+   DCSMZ2                     : origin = 0x0005F040, length = 0x00000024
+   DEVCFG                     : origin = 0x0005D000, length = 0x0000012E
+   DMACLASRCSEL               : origin = 0x00007980, length = 0x0000001A
+   DMA                        : origin = 0x00001000, length = 0x00000200
+   ECAP1                      : origin = 0x00005000, length = 0x00000020
+   ECAP2                      : origin = 0x00005020, length = 0x00000020
+   ECAP3                      : origin = 0x00005040, length = 0x00000020
+   ECAP4                      : origin = 0x00005060, length = 0x00000020
+   ECAP5                      : origin = 0x00005080, length = 0x00000020
+   ECAP6                      : origin = 0x000050A0, length = 0x00000020
+   EMIF1CONFIG                : origin = 0x0005F480, length = 0x00000020
+   EMIF2CONFIG                : origin = 0x0005F4A0, length = 0x00000020
+   EMIF1                      : origin = 0x00047000, length = 0x00000070
+   EMIF2                      : origin = 0x00047800, length = 0x00000070
+   EPWM1                      : origin = 0x00004000, length = 0x00000100
+   EPWM2                      : origin = 0x00004100, length = 0x00000100
+   EPWM3                      : origin = 0x00004200, length = 0x00000100
+   EPWM4                      : origin = 0x00004300, length = 0x00000100
+   EPWM5                      : origin = 0x00004400, length = 0x00000100
+   EPWM6                      : origin = 0x00004500, length = 0x00000100
+   EPWM7                      : origin = 0x00004600, length = 0x00000100
+   EPWM8                      : origin = 0x00004700, length = 0x00000100
+   EPWM9                      : origin = 0x00004800, length = 0x00000100
+   EPWM10                     : origin = 0x00004900, length = 0x00000100
+   EPWM11                     : origin = 0x00004A00, length = 0x00000100
+   EPWM12                     : origin = 0x00004B00, length = 0x00000100
+   EPWMXBAR                   : origin = 0x00007A00, length = 0x00000040
+   EQEP1                      : origin = 0x00005100, length = 0x00000022
+   EQEP2                      : origin = 0x00005140, length = 0x00000022
+   EQEP3                      : origin = 0x00005180, length = 0x00000022
+   FLASH0CTRL                 : origin = 0x0005F800, length = 0x00000182
+   FLASH0ECC                  : origin = 0x0005FB00, length = 0x00000028
+   FLASHPUMPSEMAPHORE         : origin = 0x00050024, length = 0x00000002
+   GPIOCTRL                   : origin = 0x00007C00, length = 0x00000180
+   GPIODATA                   : origin = 0x00007F00, length = 0x00000030
+   I2CA                       : origin = 0x00007300, length = 0x00000022
+   I2CB                       : origin = 0x00007340, length = 0x00000022
+   INPUTXBAR                  : origin = 0x00007900, length = 0x00000020
+   IPC                        : origin = 0x00050000, length = 0x00000024
+   MEMORYERROR                : origin = 0x0005F500, length = 0x00000040
+   MEMCFG                     : origin = 0x0005F400, length = 0x00000080
+   MCBSPA                     : origin = 0x00006000, length = 0x00000024
+   MCBSPB                     : origin = 0x00006040, length = 0x00000024
+   NMIINTRUPT                 : origin = 0x00007060, length = 0x00000007
+   OUTPUTXBAR                 : origin = 0x00007A80, length = 0x00000040
+   PIECTRL                    : origin = 0x00000CE0, length = 0x0000001A
+   PIEVECTTABLE               : origin = 0x00000D00, length = 0x00000200
+   ROMPREFETCH                : origin = 0x0005E608, length = 0x00000002
+   ROMWAITSTATE               : origin = 0x0005F540, length = 0x00000002
+   SCIA                       : origin = 0x00007200, length = 0x00000010
+   SCIB                       : origin = 0x00007210, length = 0x00000010
+   SCIC                       : origin = 0x00007220, length = 0x00000010
+   SCID                       : origin = 0x00007230, length = 0x00000010
+   SDFM1                      : origin = 0x00005E00, length = 0x00000080
+   SDFM2                      : origin = 0x00005E80, length = 0x00000080
+   SPIA                       : origin = 0x00006100, length = 0x00000010
+   SPIB                       : origin = 0x00006110, length = 0x00000010
+   SPIC                       : origin = 0x00006120, length = 0x00000010
+   SYNCSOC                    : origin = 0x00007940, length = 0x00000006
+   UPP                        : origin = 0x00006200, length = 0x00000048
+   WD                         : origin = 0x00007000, length = 0x0000002B
+   XBAR                       : origin = 0x00007920, length = 0x00000020
+   XINT                       : origin = 0x00007070, length = 0x0000000B
+
+}
+
+
+SECTIONS
+{
+/*** PIE Vect Table and Boot ROM Variables Structures ***/
+UNION run = PIEVECTTABLE
+{
+    PieVectTableFile
+    GROUP
+    {
+        EmuKeyVar
+        EmuBModeVar
+        EmuBootPinsVar
+        FlashCallbackVar
+        FlashScalingVar
+    }
+}
+
+   AccessProtectionRegsFile   : > ACCESSPROTECTION, type=NOINIT
+   AdcaRegsFile               : > ADCA, type=NOINIT
+   AdcbRegsFile               : > ADCB, type=NOINIT
+   AdccRegsFile               : > ADCC, type=NOINIT
+   AdcdRegsFile               : > ADCD, type=NOINIT
+   AdcaResultRegsFile         : > ADCARESULT, type=NOINIT
+   AdcbResultRegsFile         : > ADCBRESULT, type=NOINIT
+   AdccResultRegsFile         : > ADCCRESULT, type=NOINIT
+   AdcdResultRegsFile         : > ADCDRESULT, type=NOINIT
+   AnalogSubsysRegsFile       : > ANALOGSUBSYS, type=NOINIT
+   CanaRegsFile               : > CANA, type=NOINIT
+   CanbRegsFile               : > CANB, type=NOINIT
+   Cla1RegsFile               : > CLA1, type=NOINIT
+   Clb1DataExchRegsFile       : > CLB1DATAEXCH, type=NOINIT
+   Clb2DataExchRegsFile       : > CLB2DATAEXCH, type=NOINIT
+   Clb3DataExchRegsFile       : > CLB3DATAEXCH, type=NOINIT
+   Clb4DataExchRegsFile       : > CLB4DATAEXCH, type=NOINIT
+   Clb1LogicCfgRegsFile       : > CLB1LOGICCFG, type=NOINIT
+   Clb2LogicCfgRegsFile       : > CLB2LOGICCFG, type=NOINIT
+   Clb3LogicCfgRegsFile       : > CLB3LOGICCFG, type=NOINIT
+   Clb4LogicCfgRegsFile       : > CLB4LOGICCFG, type=NOINIT
+   Clb1LogicCtrlRegsFile      : > CLB1LOGICCTRL, type=NOINIT
+   Clb2LogicCtrlRegsFile      : > CLB2LOGICCTRL, type=NOINIT
+   Clb3LogicCtrlRegsFile      : > CLB3LOGICCTRL, type=NOINIT
+   Clb4LogicCtrlRegsFile      : > CLB4LOGICCTRL, type=NOINIT
+   ClbXbarRegsFile            : > CLBXBAR, type=NOINIT
+   ClkCfgRegsFile             : > CLKCFG, type=NOINIT
+   Cmpss1RegsFile             : > CMPSS1, type=NOINIT
+   Cmpss2RegsFile             : > CMPSS2, type=NOINIT
+   Cmpss3RegsFile             : > CMPSS3, type=NOINIT
+   Cmpss4RegsFile             : > CMPSS4, type=NOINIT
+   Cmpss5RegsFile             : > CMPSS5, type=NOINIT
+   Cmpss6RegsFile             : > CMPSS6, type=NOINIT
+   Cmpss7RegsFile             : > CMPSS7, type=NOINIT
+   Cmpss8RegsFile             : > CMPSS8, type=NOINIT
+   CpuTimer0RegsFile          : > CPUTIMER0, type=NOINIT
+   CpuTimer1RegsFile          : > CPUTIMER1, type=NOINIT
+   CpuTimer2RegsFile          : > CPUTIMER2, type=NOINIT
+   CpuSysRegsFile             : > CPUSYS, type=NOINIT
+   DacaRegsFile               : > DACA, type=NOINIT
+   DacbRegsFile               : > DACB, type=NOINIT
+   DaccRegsFile               : > DACC, type=NOINIT
+   DcsmCommonRegsFile         : > DCSMCOMMON, type=NOINIT
+   DcsmZ1RegsFile             : > DCSMZ1, type=NOINIT
+   DcsmZ2RegsFile             : > DCSMZ2, type=NOINIT
+   DevCfgRegsFile             : > DEVCFG, type=NOINIT
+   DmaClaSrcSelRegsFile       : > DMACLASRCSEL, type=NOINIT
+   DmaRegsFile                : > DMA, type=NOINIT
+   ECap1RegsFile              : > ECAP1, type=NOINIT
+   ECap2RegsFile              : > ECAP2, type=NOINIT
+   ECap3RegsFile              : > ECAP3, type=NOINIT
+   ECap4RegsFile              : > ECAP4, type=NOINIT
+   ECap5RegsFile              : > ECAP5, type=NOINIT
+   ECap6RegsFile              : > ECAP6, type=NOINIT
+   Emif1ConfigRegsFile        : > EMIF1CONFIG, type=NOINIT
+   Emif2ConfigRegsFile        : > EMIF2CONFIG, type=NOINIT
+   Emif1RegsFile              : > EMIF1, type=NOINIT
+   Emif2RegsFile              : > EMIF2, type=NOINIT
+   EPwm1RegsFile              : > EPWM1, type=NOINIT
+   EPwm2RegsFile              : > EPWM2, type=NOINIT
+   EPwm3RegsFile              : > EPWM3, type=NOINIT
+   EPwm4RegsFile              : > EPWM4, type=NOINIT
+   EPwm5RegsFile              : > EPWM5, type=NOINIT
+   EPwm6RegsFile              : > EPWM6, type=NOINIT
+   EPwm7RegsFile              : > EPWM7, type=NOINIT
+   EPwm8RegsFile              : > EPWM8, type=NOINIT
+   EPwm9RegsFile              : > EPWM9, type=NOINIT
+   EPwm10RegsFile             : > EPWM10, type=NOINIT
+   EPwm11RegsFile             : > EPWM11, type=NOINIT
+   EPwm12RegsFile             : > EPWM12, type=NOINIT
+   EPwmXbarRegsFile           : > EPWMXBAR, type=NOINIT
+   EQep1RegsFile              : > EQEP1, type=NOINIT
+   EQep2RegsFile              : > EQEP2, type=NOINIT
+   EQep3RegsFile              : > EQEP3, type=NOINIT
+   Flash0CtrlRegsFile         : > FLASH0CTRL, type=NOINIT
+   Flash0EccRegsFile          : > FLASH0ECC, type=NOINIT
+   FlashPumpSemaphoreRegsFile : > FLASHPUMPSEMAPHORE, type=NOINIT
+   GpioCtrlRegsFile           : > GPIOCTRL, type=NOINIT
+   GpioDataRegsFile           : > GPIODATA, type=NOINIT
+   I2caRegsFile               : > I2CA, type=NOINIT
+   I2cbRegsFile               : > I2CB, type=NOINIT
+   InputXbarRegsFile          : > INPUTXBAR, type=NOINIT
+   IpcRegsFile                : > IPC, type=NOINIT
+   MemoryErrorRegsFile        : > MEMORYERROR, type=NOINIT
+   MemCfgRegsFile             : > MEMCFG, type=NOINIT
+   McbspaRegsFile             : > MCBSPA, type=NOINIT
+   McbspbRegsFile             : > MCBSPB, type=NOINIT
+   NmiIntruptRegsFile         : > NMIINTRUPT, type=NOINIT
+   OutputXbarRegsFile         : > OUTPUTXBAR, type=NOINIT
+   PieCtrlRegsFile            : > PIECTRL, type=NOINIT
+   PieVectTableFile           : > PIEVECTTABLE, type=NOINIT
+   RomPrefetchRegsFile        : > ROMPREFETCH, type=NOINIT
+   RomWaitStateRegsFile       : > ROMWAITSTATE, type=NOINIT
+   SciaRegsFile               : > SCIA, type=NOINIT
+   ScibRegsFile               : > SCIB, type=NOINIT
+   ScicRegsFile               : > SCIC, type=NOINIT
+   ScidRegsFile               : > SCID, type=NOINIT
+   Sdfm1RegsFile              : > SDFM1, type=NOINIT
+   Sdfm2RegsFile              : > SDFM2, type=NOINIT
+   SpiaRegsFile               : > SPIA, type=NOINIT
+   SpibRegsFile               : > SPIB, type=NOINIT
+   SpicRegsFile               : > SPIC, type=NOINIT
+   SyncSocRegsFile            : > SYNCSOC, type=NOINIT
+   UppRegsFile                : > UPP, type=NOINIT
+   WdRegsFile                 : > WD, type=NOINIT
+   XbarRegsFile               : > XBAR, type=NOINIT
+   XintRegsFile               : > XINT, type=NOINIT
+}
+
+/*
+//===========================================================================
+// End of file.
+//===========================================================================
+*/
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Cpu1DeviceDefine.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Cpu1DeviceDefine.h
@@ -0,0 +1,59 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : DeviceDefine.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef _DEVICE_DEFINE_H_
+#define _DEVICE_DEFINE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "easy28x_driverlib_v10.8.h"
+#include "CodeLibrary.h"
+#include "CommonLib.h"
+
+
+#include "OffsetProcess.h"
+#include "FaultProcess.h"
+
+#include "SystemFunc.h"
+#include "DigitalFilter.h"
+
+//--------------------------------------------//
+//#include "VdcCtrl.h"
+//#include "VbatCtrl.h"
+//#include "IbatCtrl.h"
+//#include "VdabCtrl.h"
+//#include "VboostCtrl.h"
+//#include "IdabCtrl.h"
+
+//#include "IinvHarResCtrl.h"
+#include "Realy.h"
+
+//#include "Status.h"
+#include "RunStopSeq.h"
+#include "Pll.h"
+//#include "IinvHarResCtrl.h"
+//#include "IinvCtrl.h"
+#include "SoftStart.h"
+
+#include "Cpu1DmaSet.h"
+
+
+
+//#include "Test_ModeFunc.h"
+#include "SelectCPU.h"
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* _DEVICE_DEFINE_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Cpu1DmaSet.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Cpu1DmaSet.h
@@ -0,0 +1,50 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Dma_Map.h
+//          Created on : 2022. 9. 29.
+//         Description : 
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+#ifndef MAIN_RESOURCE_INCLUDE_DMA_H_
+#define MAIN_RESOURCE_INCLUDE_DMA_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern interrupt void Cpu1Dma1Isr(void);
+
+
+
+
+#pragma SET_DATA_SECTION("DMARAM1")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM3")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM2")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM4")
+
+#pragma SET_DATA_SECTION()
+
+extern void InitDma(void);
+extern void InitDma1(void);
+extern void InitDma2(void);
+extern void InitDma3(void);
+extern void InitDma4(void);
+extern void InitDma5(void);
+extern void InitDma6(void);
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /* MAIN_RESOURCE_INCLUDE_DMA_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/DigitalFilter.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/DigitalFilter.h
@@ -0,0 +1,90 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : DigitalFilter.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#ifndef _DIGITALFILTER_H_
+#define _DIGITALFILTER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#pragma SET_DATA_SECTION(".DigitalFilter")
+
+extern struct sLpf1st LPF1stVbe;
+extern struct sLpf1st LPF1stIbe;
+extern struct sLpf1st Lpf_UV_CH3;
+
+extern struct sLpf1st LPF1stVds;
+extern struct sLpf1st LPF1stVqs;
+
+extern struct sLpf1st LPF1stVde;
+extern struct sLpf1st LPF1stVqe;
+
+
+extern struct sLpf1st LPF1stIa;
+extern struct sLpf1st LPF1stIb;
+extern struct sLpf1st LPF1stIc;
+
+extern struct sLpf1st LPF1stIds;
+extern struct sLpf1st LPF1stIqs;
+
+extern struct sLpf1st LPF1stIde;
+extern struct sLpf1st LPF1stIqe;
+
+extern struct sLpf1st LPF1stVab;
+extern struct sLpf1st LPF1stVbc;
+extern struct sLpf1st LPF1stVca;
+
+extern struct sLpf1st LpfFreqOut;
+extern struct sLpf1st LPF1stFreqOutExt;
+
+extern struct sLpf1st LPF1stVabExt;
+extern struct sLpf1st LPF1stVbcExt;
+extern struct sLpf1st LPF1stVcaExt;
+
+extern struct sLpf1st LPF1stVdsExt;
+extern struct sLpf1st LPF1stVqsExt;
+
+extern struct sLpf1st LPF1stVdeExt;
+extern struct sLpf1st LPF1stVqeExt;
+
+extern float FcutVabc;
+extern float FcutIabc;
+extern float Fcut_VIS_CH2;
+extern float FcutVbe;
+extern float FcutIbe;
+
+extern float FcutIdqs;
+extern float FcutIdqe;
+extern float FcutVdqs;
+extern float FcutVdqe;
+extern float FcutVdqeExt;
+
+extern float FcutFreq;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void Lpf1stRun();
+
+#pragma SET_CODE_SECTION()
+
+
+extern void InitLpf1st();
+extern void Lpf1stCoefUpdate();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _DIGITALFILTER_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/FaultProcess.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/FaultProcess.h
@@ -0,0 +1,74 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : FaultProcess.h
+//          Created on : 2022. 11. 12.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_FAULTPROCESS_H_
+#define MAIN_RESOURCE_INCLUDE_FAULTPROCESS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#pragma SET_DATA_SECTION(".FaultProcess")
+
+extern int EnbHFTAd;
+extern int EnbHFTGateSet;
+extern int EnbHFTGateEtc;
+extern int EnbFLTSyncOut;
+extern int EnbFLTSyncIn;
+
+//extern unsigned int SetCanMeWait;
+//extern unsigned int CntCanMeWait;
+//extern unsigned int CanMeRxIsrCntOld;
+//
+//extern unsigned int SetCanBeWait;
+//extern unsigned int CntCanBeWait;
+//extern unsigned int CanBeRxIsrCntOld;
+//
+//extern unsigned int CanMeOff;
+//extern unsigned int CanBeOff;
+
+extern unsigned int FlagLatch;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void FaultChecker();
+
+#pragma SET_CODE_SECTION()
+
+
+
+
+extern void InitFaultSet();
+extern void InitFaultFreq();
+extern void FaultFreq();
+extern void SystemRestart();
+extern void InitProtectionSet();
+extern void InitInstFaultLevelSet();
+extern void ContectTypeFault();
+extern void FaultVac();
+extern void InitFaultVac();
+
+extern void InitOverTempLevelSet();
+extern void OverTempFault();
+extern void DisconnectTempFault();
+
+
+
+extern void FaultLatchData();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_FAULTPROCESS_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/IbatCtrl.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/IbatCtrl.h
@@ -0,0 +1,48 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : IbatCtrl.h
+//          Created on : 2023. 07. 26.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_IBATCTRL_H_
+#define MAIN_RESOURCE_INCLUDE_IBATCTRL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#pragma SET_DATA_SECTION(".IbatCtrl")
+
+extern struct sPiCtrl PiIbat;
+extern struct sRampGen IbatRefRamp;
+extern float DelIbat;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern float IbatCtrl(void);
+
+#pragma SET_CODE_SECTION()
+
+
+extern void IbatCtrlReset(void);
+extern void IbatCtrlGainUpdate(void);
+extern void InitIbatCtrl(void);
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_IBATCTRL_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/IdabCtrl.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/IdabCtrl.h
@@ -0,0 +1,48 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : IbatCtrl.h
+//          Created on : 2023. 08. 22.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_IDABCTRL_H_
+#define MAIN_RESOURCE_INCLUDE_IDABCTRL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#pragma SET_DATA_SECTION(".IdabCtrl")
+
+extern struct sPiCtrl PiIdab;
+extern struct sRampGen IdabRefRamp;
+extern float DelIdab;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern float IdabCtrl(void);
+
+#pragma SET_CODE_SECTION()
+
+
+extern void IdabCtrlReset(void);
+extern void IdabCtrlGainUpdate(void);
+extern void InitIdabCtrl(void);
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_IBATCTRL_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/OffsetProcess.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/OffsetProcess.h
@@ -0,0 +1,46 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : OffsetProcess.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef  _OFFSETPROCESS_H_
+#define  _OFFSETPROCESS_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#pragma SET_DATA_SECTION(".OffsetProcess")
+
+extern unsigned int FlagOffset;
+
+extern int CntAdcOffsetWait;
+extern int SetAdcOffsetWait;
+extern int CntOffsetWait;
+extern int SetOffsetWait;
+
+extern unsigned int CntOffsetAvg;
+extern unsigned int SetOffsetAvg;
+
+extern unsigned int CntAdcOffsetSum;
+extern unsigned int SetAdcOffsetSum;
+
+extern int SetFaultAdcOffset;
+
+extern unsigned int AdcOffsetCalCh;
+
+#pragma SET_DATA_SECTION()
+
+
+extern void OffsetProcess();
+extern void AutoOffsetCal(int AdcCh);
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /*  _OFFSETPROCESS_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Pll.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Pll.h
@@ -0,0 +1,59 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : PLL.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef PLL_H_
+#define PLL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "CodeLibrary.h"
+
+
+#pragma SET_DATA_SECTION(".Pll")
+
+extern float Theta, ThetaComp;
+extern float SinTheta, CosTheta;
+
+extern float CosThetaComp;
+extern float SinThetaComp;
+
+extern float ErrTheta;
+
+extern float FreqOut;
+extern float FreqOutFlt;
+
+extern float ThetaExt;
+extern float SinThetaExt, CosThetaExt;
+extern float FreqOutExt;
+//extern float FreqOutExtFlt;
+
+extern struct sSogiFll1ph SogiFll1ph;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void PllRun(void);
+
+#pragma SET_CODE_SECTION()
+
+
+extern void InitPll(void);
+extern void PllReset(void);
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* PLL_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Realy.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Realy.h
@@ -0,0 +1,61 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : MCCB.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef Relay_H_
+#define Relay_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#pragma SET_DATA_SECTION(".Relay")
+
+extern unsigned FlagAcPreCharge;
+extern unsigned FlagBatPreCharge;
+
+extern float AcRelaySetVolt;
+extern float BatRelaySetVolt;
+
+extern int StatusAcPreCharge;
+extern int StatusBatPreCharge;
+
+extern int CntAcPreChargeWait, SetAcPreChargeWait;
+extern int CntBatPreChargeWait, SetBatPreChargeWait;
+
+extern int CntPreAcPreRelayWait, SetPreAcPreRelayWait;
+extern int CntPreAcRelayWait, SetPreAcRelayWait;
+extern int CntPreAcRelayDetect, SetPreAcRelayDetect;
+extern int CntPreAcPreRelayDetect, SetPreAcPreRelayDetect;
+extern int CntPreAcRelayDelay, SetPreAcRelayDelay;
+
+extern int CntPreBatPreRelayWait, SetPreBatPreRelayWait;
+extern int CntPreBatRelayWait, SetPreBatRelayWait;
+extern int CntPreBatRelayDetect, SetPreBatRelayDetect;
+extern int CntPreBatPreRelayDetect, SetPreBatPreRelayDetect;
+extern int CntPreBatRelayDelay, SetPreBatRelayDelay;
+
+#pragma SET_DATA_SECTION()
+
+extern void PreChargeAcRelay(float AcRelaySetVolt);
+extern void PreChargeBatRelay(float BatRelaySetVolt);
+
+extern void InitRelay(void);
+extern void InitAcRelay(void);
+extern void InitBatRelay(void);
+extern void InitRelayTime(void);
+extern void InitCntAcPreCharge(void);
+extern void InitCntBatPreCharge(void);
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* Relay_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/RunStopSeq.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/RunStopSeq.h
@@ -0,0 +1,42 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : RunStopSeq.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#ifndef  _RUNSTOPSEQ_H_
+#define  _RUNSTOPSEQ_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#pragma SET_DATA_SECTION(".RunStopSeq")
+
+extern int InvReady;
+extern int BeReady;
+extern unsigned int SetBuilupTime;
+extern unsigned int CntBuilupTime;
+
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void RunStopSeq();
+extern void Remote();
+
+#pragma SET_CODE_SECTION()
+
+
+extern void RefLimit();
+extern void TowerLampCtrl();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /*  _RUNSTOPSEQ_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/SelectCPU.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/SelectCPU.h
@@ -0,0 +1,29 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : SelectCPU.h
+//          Created on : 2022. 11. 6.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_SELECTCPU_H_
+#define MAIN_RESOURCE_INCLUDE_SELECTCPU_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void SetCPU2ForPeripheral(void);
+extern void SetCPU2ForGsRam(void);
+
+extern void InitSciGpio();
+extern void InitCanGpio();
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_SELECTCPU_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Softstart.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Softstart.h
@@ -0,0 +1,41 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : SoftstartCtrl.h
+//          Created on : 2023. 09. 22.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_SOFTSTARTCTRL_H_
+#define MAIN_RESOURCE_INCLUDE_SOFTSTARTCTRL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#pragma SET_DATA_SECTION(".SoftStart")
+
+extern struct sRampGen SoftStartCtrlRamp;
+extern float DelSoftStartCtrl;
+extern float SoftStartCtrl;
+extern float SoftStartDuty;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void SoftStart(void);
+
+#pragma SET_CODE_SECTION()
+
+extern void SoftStartReset(void);
+extern void InitSoftStart(void);
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_SOFTSTARTCTRL_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/SystemFunc.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/SystemFunc.h
@@ -0,0 +1,29 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : SystemFunc.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef  _SYSTEMFUNC_H_
+#define  _SYSTEMFUNC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _SYSTEMFUNC_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Test_ModeFunc.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/Test_ModeFunc.h
@@ -0,0 +1,33 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : VdcCtrl.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#ifndef  _TEST_MODEFUNC_H_
+#define  _TEST_MODEFUNC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+extern void TestRoutineTsamp(void);
+extern void TestRoutineT500us(void);
+extern void TestRoutineT2ms(void);
+extern void TestRoutineT10ms(void);
+extern void TestRoutineT100ms(void);
+extern void TestRoutineT500ms(void);
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _SYSTEMVAR_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/TimerSet.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/include/TimerSet.h
@@ -0,0 +1,26 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : TimerSet.h
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_TIMERSET_H_
+#define MAIN_RESOURCE_INCLUDE_TIMERSET_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void InitCPUTimers(void);
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_TIMERSET_H_ */
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Cpu1DmaSet.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Cpu1DmaSet.cpp
@@ -0,0 +1,48 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : Dma.cpp
+//          Created on : 2023. 7. 14.
+//         Description : 
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+//-------------------------------------------------------------------//
+// DMA를 사용하려고 하는 메모리의 영역이 DMA를 지원하는지 확인해야함 			 //
+// EX) Flash 영역에서는 DMA 사용 안됨, LS메모리도 마찬가지           		 //
+//                                                                   //
+//-------------------------------------------------------------------//
+
+
+void InitDma()
+{
+    SysCtl_selectSecMaster(0, SYSCTL_SEC_MASTER_DMA);
+
+    DMA_initController();
+    InitDma1();
+}
+
+
+void InitDma1()
+{
+	DMA_configAddresses(DMA_CH1_BASE, &Adc.RawData, (const void*)ADCARESULT_BASE);
+	DMA_configBurst(DMA_CH1_BASE, 8, 1, 1);
+	DMA_configTransfer(DMA_CH1_BASE, 4, 0x19, 1);
+	DMA_configWrap(DMA_CH1_BASE, 0xFFFF, 0, 0xFFFF, 0);
+	DMA_configMode(DMA_CH1_BASE, DMA_TRIGGER_ADCA1, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE | DMA_CFG_SIZE_16BIT));
+	DMA_setInterruptMode(DMA_CH1_BASE, DMA_INT_AT_END);
+	DMA_enableTrigger(DMA_CH1_BASE);
+	DMA_enableInterrupt(DMA_CH1_BASE);
+	DMA_startChannel(DMA_CH1_BASE);
+
+	Interrupt_register(INT_DMA_CH1, &Cpu1Dma1Isr);
+	Interrupt_enable(INT_DMA_CH1);
+}
+
+
+
+
+
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Cpu1Main.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Cpu1Main.cpp
@@ -0,0 +1,200 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : CPU1_Main.cpp
+//          Created on : 2023. 07. 07.
+//         Description : 
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+interrupt void Cpu1Epwm1Isr(void);
+interrupt void Cpu1Dma1Isr(void);
+#pragma SET_CODE_SECTION()
+
+int main(void)
+{
+
+	CpuInfo();
+
+	Device_init();
+	Device_initGPIO();
+	Interrupt_initModule();
+	Interrupt_initVectorTable();
+	//todo 에뮬레이터 사용중에는 해당 함수를 주석 처리하고 사용.
+	//추후 부트모드를 검출 할 수 있는 레지스터를 찾아서 조건문 처리 되도록 변경할 것
+	//-------------------------------------------------------------------------------//
+//	easyDSP_Boot_Sync();
+	//-------------------------------------------------------------------------------//
+	easyDSP_SCI_Init();
+
+	SetCPU2ForPeripheral();         //모든 기능 CPU1로 변경
+	SetCPU2ForGsRam();
+
+	InitEPwm();
+
+	//todo 임시 수정 할 것
+	InitTimeSharing(InvPwmFreq / 2.0);
+	Interrupt_enable(INT_EPWM1);
+	Interrupt_register(INT_EPWM1, &Cpu1Epwm1Isr);
+
+	InitAdc();
+	InitDma();
+
+	InitScale();
+	InitDigitalIOSet();
+	InitDspTempSensor();
+
+    IPC_clearFlagLtoR(IPC_CPU1_L_CPU2_R, IPC_FLAG_ALL);
+
+	InitRelay();
+
+	InitSystemParameter();
+	InitPll();
+
+	InitFaultSet();
+	InitLpf1st();
+
+    InitSpi();          //for EEPROM Test
+
+    InitRTC();
+
+    InitModbusSci();
+
+    InitSci();
+//
+////	InitAID();
+
+
+    /////////////////////DAC Test/////////////////
+    EALLOW;
+    DacaRegs.DACCTL.bit.DACREFSEL = 1;
+    DacaRegs.DACOUTEN.bit.DACOUTEN = 1;
+
+    DacbRegs.DACCTL.bit.DACREFSEL = 1;
+    DacbRegs.DACOUTEN.bit.DACOUTEN = 1;
+
+    DaccRegs.DACCTL.bit.DACREFSEL = 1;
+    DaccRegs.DACOUTEN.bit.DACOUTEN = 1;
+    EDIS;
+    /////////////////////DAC Test/////////////////
+
+    Dout.Exor.all = 0x0010;     // for Test - Buzzer off
+
+	Interrupt_enableMaster();
+
+	EINT;
+	ERTM;
+
+	for (;;)
+	{
+		if (ModeSystem == Normal)
+		{
+
+			if (OS_Time.T500us.Flag == 1)
+			{
+				RoutineT500us();
+				OS_Time.T500us.Flag = 0;
+			}
+
+			else if (OS_Time.T2ms.Flag == 1)
+			{
+				RoutineT2ms();          // 2ms routine
+				OS_Time.T2ms.Flag = 0;
+			}
+			else if (OS_Time.T10ms.Flag == 1)
+			{
+				RoutineT10ms();
+				OS_Time.T10ms.Flag = 0;
+			}
+			else if (OS_Time.T100ms.Flag == 1)
+			{
+//				Dout.Data.bit.LedCpu1 ^= 1;
+
+				RoutineT100ms();
+				OS_Time.T100ms.Flag = 0;
+			}
+			else if (OS_Time.T500ms.Flag == 1)
+			{
+				RoutineT500ms();
+				OS_Time.T500ms.Flag = 0;
+			}
+			else if (OS_Time.T1s.Flag == 1)
+			{
+				RoutineT1s();
+				OS_Time.T1s.Flag = 0;
+			}
+		}
+		else
+		{
+			ModeSystem = Normal;
+		}
+
+	}
+
+}
+
+
+
+unsigned int Cpu1Dma1IsrCnt = 0;
+
+interrupt void Cpu1Dma1Isr(void)
+{
+	AdcIntInterruptClear(); //내부 ADC 인터럽트 전체 클리어
+	Cpu1Dma1IsrCnt++;
+	AdcResult();
+//	AutoOffsetCal(AdcOffsetCalCh);
+
+	//Cpu2 호출
+	HWREG(IPC_BASE + IPC_O_SET) = 0x000001;
+
+	if (ModeSystem == Normal)
+	{
+		if (SystemReady == 0)
+		{
+		    if (FlagOffset != 3) OffsetProcess();
+			else SystemReady = 1;
+		}
+		else
+		{
+			RoutineTsamp();
+		}
+
+	}
+//	else if (ModeSystem == Test_Mode)
+//	{
+//		if (SystemReady == 0)
+//		{
+//			if (FlagOffset != 3) OffsetProcess();
+//			else SystemReady = 1;
+//		}
+//		else
+//		{
+//			TestRoutineTsamp();
+//		}
+//	}
+
+	Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP7);
+
+	return;
+
+}
+
+unsigned int Cpu1Epwm1IsrCnt = 0;
+
+
+interrupt void Cpu1Epwm1Isr(void)
+{
+	Cpu1Epwm1IsrCnt++;
+	OS_Time.Sharing();
+
+
+	EPWM_clearEventTriggerInterruptFlag(EPWM1_BASE);
+	Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP3);
+
+	return;
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/DigitalFilter.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/DigitalFilter.cpp
@@ -0,0 +1,133 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : DigitalFilter.cpp
+//          Created on : 2023. 07. 26
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+#include "DigitalFilter.h"
+
+struct sLpf1st Lpf_UV_CH1;
+struct sLpf1st Lpf_VIS_CH1;
+struct sLpf1st Lpf_IR_CH1;
+
+struct sLpf1st Lpf_UV_CH2;
+struct sLpf1st Lpf_VIS_CH2;
+struct sLpf1st Lpf_IR_CH2;
+
+struct sLpf1st Lpf_UV_CH3;
+struct sLpf1st Lpf_VIS_CH3;
+struct sLpf1st Lpf_IR_CH3;
+
+struct sLpf1st Lpf_UV_CH4;
+struct sLpf1st Lpf_VIS_CH4;
+struct sLpf1st Lpf_IR_CH4;
+
+struct sLpf1st LpfVnwInv;
+struct sLpf1st LpfIacInv;
+struct sLpf1st LpfIuInv;
+
+struct sLpf1st LpfIwInv;
+struct sLpf1st LpfIacGrid;
+struct sLpf1st LpfIuGrid;
+
+struct sLpf1st LpfIwGrid;
+struct sLpf1st LpfIzct;
+struct sLpf1st LpfIuGridExt;
+struct sLpf1st LpfIwGridExt;
+
+struct sLpf1st LpfVdeGrid;
+struct sLpf1st LpfVqeGrid;
+
+struct sLpf1st LpfVdeInv;
+struct sLpf1st LpfVqeInv;
+
+struct sLpf1st LpfIdeGrid;
+struct sLpf1st LpfIqeGrid;
+
+struct sLpf1st LpfIdeInv;
+struct sLpf1st LpfIqeInv;
+
+struct sLpf1st LpfFreqOut;
+
+float Fcut_UV_CH1 = 2000;
+float Fcut_VIS_CH1 = 2000;
+float Fcut_IR_CH1 = 2000;
+
+float Fcut_UV_CH2 = 2000;
+float Fcut_VIS_CH2 = 2000;
+float Fcut_IR_CH2 = 2000;
+
+float Fcut_UV_CH3 = 2000;
+float Fcut_VIS_CH3 = 2000;
+float Fcut_IR_CH3 = 2000;
+
+float Fcut_UV_CH4 = 2000;
+float Fcut_VIS_CH4 = 2000;
+float Fcut_IR_CH4 = 2000;
+
+
+void InitLpf1st(void)
+{
+	Lpf_UV_CH1.Init(&Fcut_UV_CH1, Tsamp, &CH1_UV);
+	Lpf_VIS_CH1.Init(&Fcut_VIS_CH1, Tsamp, &CH1_VIS);
+	Lpf_IR_CH1.Init(&Fcut_IR_CH1, Tsamp, &CH1_IR);
+
+	Lpf_UV_CH2.Init(&Fcut_UV_CH2, Tsamp, &CH2_UV);
+	Lpf_VIS_CH2.Init(&Fcut_VIS_CH2, Tsamp, &CH2_VIS);
+	Lpf_IR_CH2.Init(&Fcut_IR_CH2, Tsamp, &CH2_IR);
+
+	Lpf_UV_CH3.Init(&Fcut_UV_CH3, Tsamp, &CH3_UV);
+	Lpf_VIS_CH3.Init(&Fcut_VIS_CH3, Tsamp, &CH3_VIS);
+	Lpf_IR_CH3.Init(&Fcut_IR_CH3, Tsamp, &CH3_IR);
+
+	Lpf_UV_CH4.Init(&Fcut_UV_CH4, Tsamp, &CH4_UV);
+	Lpf_VIS_CH4.Init(&Fcut_VIS_CH4, Tsamp, &CH4_VIS);
+	Lpf_IR_CH4.Init(&Fcut_IR_CH4, Tsamp, &CH4_IR);
+
+}
+
+void Lpf1stCoefUpdate(void)
+{
+
+	Lpf_UV_CH1.CoeffUpdate();
+	Lpf_VIS_CH1.CoeffUpdate();
+	Lpf_IR_CH1.CoeffUpdate();
+
+	Lpf_UV_CH2.CoeffUpdate();
+	Lpf_VIS_CH2.CoeffUpdate();
+	Lpf_IR_CH2.CoeffUpdate();
+
+	Lpf_UV_CH3.CoeffUpdate();
+	Lpf_VIS_CH3.CoeffUpdate();
+	Lpf_IR_CH3.CoeffUpdate();
+
+	Lpf_UV_CH4.CoeffUpdate();
+	Lpf_VIS_CH4.CoeffUpdate();
+	Lpf_IR_CH4.CoeffUpdate();
+
+
+}
+
+void Lpf1stRun()
+{
+	CH1_UV_Flt = Lpf_UV_CH1.Run();
+	CH1_VIS_Flt = Lpf_VIS_CH1.Run();
+	CH1_IR_Flt = Lpf_IR_CH1.Run();
+
+	CH2_UV_Flt = Lpf_UV_CH2.Run();
+	CH2_VIS_Flt = Lpf_VIS_CH2.Run();
+	CH2_IR_Flt = Lpf_IR_CH2.Run();
+
+	CH3_UV_Flt = Lpf_UV_CH3.Run();
+	CH3_VIS_Flt = Lpf_VIS_CH3.Run();
+	CH3_IR_Flt = Lpf_IR_CH3.Run();
+
+	CH4_UV_Flt = Lpf_UV_CH4.Run();
+	CH4_VIS_Flt = Lpf_VIS_CH4.Run();
+	CH4_IR_Flt = Lpf_IR_CH4.Run();
+
+}
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/EpwmSet.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/EpwmSet.cpp
@@ -0,0 +1,276 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : GateCtrl.cpp
+//          Created on : 2023. 07. 24.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+
+float InvPwmFreq = 40.0e3;                                  //Set Inverter PWM Frequency
+float BoostPwmFreq = 40.0e3;                                //Set Boost PWM Frequency
+float DabPwmFreq = 40.0e3;                                  //Set DAB PWM Frequency
+
+unsigned int InvPwmPrd = 0;                                  //Initialize Inverter PWM Period
+unsigned int BoostPwmPrd = 0;                                //Initialize Boost PWM Period
+unsigned int DabPwmPrd = 0;                                  //Initialize DAB PWM Period
+
+float InvDeadtime = 0.7e-6;                                  //Set Inverter Dead Time
+float BoostDeadtime = 0.7e-6;                                //Set Boost Dead Time
+float DabDeadtime = 0.7e-6;                                  //Set DAB Dead Time
+
+unsigned int TestCnt1 = 0;                                   //Initialize PWM Test Count1
+unsigned int TestCnt2 = 0;                                   //Initialize PWM Test Count2
+unsigned int TestCnt3 = 0;                                   //Initialize PWM Test Count3
+unsigned int TestCnt4 = 0;                                   //Initialize PWM Test Count4
+unsigned int TestCnt5 = 0;                                   //Initialize PWM Test Count5
+unsigned int TestCnt6 = 0;                                   //Initialize PWM Test Count6
+unsigned int TestCnt7 = 0;                                   //Initialize PWM Test Count7
+
+int FlagTestInvGatingInput = 0;                              //Initialize Inverter PWM Gating Test Flag
+int FlagTestBoostGatingInput = 0;                            //Initialize Boost PWM Gating Test Flag
+int FlagTestDabGatingInput = 0;                              //Initialize DAB PWM Gating Test Flag
+
+
+
+
+void InitEPwm()                                              //EPWM Initialize Function
+{
+
+	SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);   //Disable Peripheral
+	SysCtl_setEPWMClockDivider(SYSCTL_EPWMCLK_DIV_1);		 //EPWMClock = system_clock / SYSCTL_EPWMCLK_DIV
+
+	InitEPwm1Gpio();                                         //Initialize PWM1 GPIO
+	InitEPwm2Gpio();                                         //Initialize PWM2 GPIO
+	InitEPwm3Gpio();                                         //Initialize PWM3 GPIO
+	InitEPwm4Gpio();                                         //Initialize PWM4 GPIO
+	InitEPwm5Gpio();                                         //Initialize PWM5 GPIO
+	InitEPwm6Gpio();                                         //Initialize PWM6 GPIO
+	InitEPwm7Gpio();                                         //Initialize PWM7 GPIO
+	InitGateEnbGpio();                                       //Initialize PWM Gate Enable GPIO
+
+	//Booster
+	InitEPwm1(BoostPwmFreq, BoostDeadtime, TB_COUNT_UPDOWN, 0); //Initialize PWM1
+	BoostPwmPrd = EPwm1Regs.TBPRD;                              //Set Boost PWM Period
+
+	//Dab
+	//LvSide
+	InitEPwm2(DabPwmFreq, DabDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM2
+	InitEPwm3(DabPwmFreq, DabDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM3
+
+	//HvSide
+	InitEPwm4(DabPwmFreq, DabDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM4
+	InitEPwm5(DabPwmFreq, DabDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM5
+
+	DabPwmPrd = EPwm2Regs.TBPRD;                                //Set DAB PWM Period
+
+	//Inverter
+	InitEPwm6(InvPwmFreq, InvDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM6
+	InitEPwm7(InvPwmFreq, InvDeadtime, TB_COUNT_UPDOWN, 0);     //Initialize PWM7
+	InvPwmPrd = EPwm6Regs.TBPRD;                                //Set Inverter PWM Period
+
+
+	SysCtl_enablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);       //Enable Peripheral
+}
+
+void PwmTestCode()                                              //Define PWM Test Function
+{
+//	if (FlagTestBoostGatingInput == 1)                          //If Boost Gating Input Test Flag is TRUE
+//	{
+//		EPwm1Regs.CMPA.bit.CMPA = TestCnt1;                     //Set Compare Register
+//		FlagBoostGatingInput = 1;                               //Set Boost Gating Input Flag
+//	}
+//	else                                                        //Other Case
+//	{
+//		FlagBoostGatingInput = 0;                               //Set Boost Gating Input Flag
+//		EPwm1Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//	}
+//
+//	if (FlagTestDabGatingInput == 1)                            //If DAB Gating Input Test Flag is TRUE
+//	{
+//
+//		EPwm2Regs.CMPA.bit.CMPA = TestCnt2;                     //Set Compare Register
+//		EPwm3Regs.CMPA.bit.CMPA = TestCnt3;                     //Set Compare Register
+//		//EPWM3번은 EPWM2번에 대해 상보
+//		EPwm4Regs.CMPA.bit.CMPA = TestCnt4;                     //Set Compare Register
+//		EPwm5Regs.CMPA.bit.CMPA = TestCnt5;                     //Set Compare Register
+//		//EPWM5번은 EPWM4번에 대해 상보
+//
+//	    EPwm2Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//	    EPwm3Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//	    EPwm4Regs.TBPHS.bit.TBPHS = TdabPhCnt;                  //Set Phase Shift Register
+//	    EPwm5Regs.TBPHS.bit.TBPHS = TdabPhCnt;                  //Set Phase Shift Register
+//
+//		FlagDabGatingInput = 1;                                 //Set DAB Gating Input Flag
+//	}
+//	else
+//	{
+//
+//		EPwm2Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//		EPwm3Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//		EPwm4Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//		EPwm5Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//
+//	    EPwm2Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//	    EPwm3Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//	    EPwm4Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//	    EPwm5Regs.TBPHS.bit.TBPHS = 0;                          //Reset Phase Shift Register
+//
+//		FlagDabGatingInput = 0;                                 //Reset DAB Gating Input Flag
+//	}
+//
+//	if (FlagTestInvGatingInput == 1)                            //If Inverter Gating Input Test Flag is TRUE
+//	{
+//		EPwm6Regs.CMPA.bit.CMPA = TestCnt6;                     //Set Compare Register
+//		EPwm7Regs.CMPA.bit.CMPA = TestCnt7;                     //Set Compare Register
+//
+//		FlagInvGatingInput = 1;                                 //Set Inverter Gating Input Flag
+//	}
+//	else                                                        //Other Case
+//	{
+//		EPwm6Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//		EPwm7Regs.CMPA.bit.CMPA = 0;                            //Reset Compare Register
+//		FlagInvGatingInput = 0;                                 //Reset Inverter Gating Input Flag
+//	}
+//
+//	GateOutEnable();                                            //Call Gate Out Enable Function
+}
+
+void GateOutEnable(void)                                        //Define Gate Out Enable Function
+{
+//	if(FlagBoostGating == 1)                                    //If Boost Gating Flag is TRUE
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm1Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//	else
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm1Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//
+//	if(FlagDabGating == 1)
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm2Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EPwm3Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EPwm4Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EPwm5Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//	else
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm2Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EPwm3Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EPwm4Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EPwm5Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//
+//	if(FlagInvGating == 1)
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm6Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EPwm7Regs.TZCLR.bit.OST = 1;                            //One-Shot Flag Clear
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//	else
+//	{
+//		EALLOW;                                                 //Release Register Protection
+//		EPwm6Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EPwm7Regs.TZFRC.bit.OST = 1;                            //Force Trip Zones One Shot Event
+//		EDIS;                                                   //Lock Register Protection
+//	}
+//
+//
+//	GPIO_GATE_ENB = ~(FlagInvGating | FlagBoostGating | FlagDabGating);//GPIO GATE Enable Pin = Enable = FALSE
+}
+
+void GateOutDisable(void)                                       //Define GPIO Gate Out Disable Function
+{
+	GPIO_GATE_ENB = ~(0);                                       //GPIO GATE Enable Pin = Disable = TRUE
+}
+
+int DabPwmComp = 0;                                             //Initialize DAB PWM Compare
+
+void PwmCntUpDate(void)                                         //Define PWM Count Update Function
+{
+//	//Boost
+//	EPwm1Regs.CMPA.bit.CMPA = TboostCnt;                        //Set Compare Register Boost Count
+//
+//	//For Buck-Boost Test Start
+//	//LvSide
+////    EPwm2Regs.CMPA.bit.CMPA = DabPwmPrd + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+////    EPwm3Regs.CMPA.bit.CMPA = DabPwmPrd + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//	//For Buck-Boost Test End
+//
+//    //LvSide
+//    EPwm2Regs.CMPA.bit.CMPA = DabPwmPrd * 0.5 + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//    EPwm3Regs.CMPA.bit.CMPA = DabPwmPrd * 0.5 + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//
+//    //For Inverter Test Start
+//    //HvSide
+//    EPwm4Regs.CMPA.bit.CMPA = DabPwmPrd + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//    EPwm5Regs.CMPA.bit.CMPA = DabPwmPrd + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//    //For Inverter Test End
+//
+////    //HvSide
+////    EPwm4Regs.CMPA.bit.CMPA = DabPwmPrd * 0.5 + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+////    EPwm5Regs.CMPA.bit.CMPA = DabPwmPrd * 0.5 + DabPwmComp;     //Set Compare Register DAB Count + Full Duty * 1/2
+//
+//    EPwm2Regs.TBPHS.bit.TBPHS = 0;                              //Set Phase Shift = 0
+//    EPwm3Regs.TBPHS.bit.TBPHS = 0;                              //Set Phase Shift = 0
+//    EPwm4Regs.TBPHS.bit.TBPHS = TdabPhCnt;                      //Set Phase Shift = DAB Phase Shift Count
+//    EPwm5Regs.TBPHS.bit.TBPHS = TdabPhCnt;                      //Set Phase Shift = DAB Phase Shift Count
+//
+//
+//	//Inverter
+//	EPwm6Regs.CMPA.bit.CMPA = TinvACnt;                         //Set Compare Register Inverter Count
+//	EPwm7Regs.CMPA.bit.CMPA = TinvBCnt;                         //Set Compare Register Inverter Count
+//
+//	GateOutEnable();                                            //Call Gate Out Enable Function
+}
+
+
+void InitGateEnbGpio()                                          //Define Initialize Gate Enable GPIO Function
+{
+	GPIO_setMasterCore(95, GPIO_CORE_CPU1);                     //CPU1 Control GPIO 95 Pin
+	GPIO_setPinConfig(GPIO_95_GPIO95);                          //Select GPIO 95 Pin
+	GPIO_setDirectionMode(95, GPIO_DIR_MODE_OUT);               //GPIO 95 Pin Output
+	GPIO_setPadConfig(95, GPIO_PIN_TYPE_STD);                   //GPIO 95 Pin Push-pull output
+	GPIO_setQualificationMode(95, GPIO_QUAL_ASYNC);             //GPIO 95 Pin No synchronization
+	GPIO_writePin(95, 1);                                       //GPIO 95 Pin HIGH = Disable
+}
+
+
+void GatePulseGenerate()                                        //Define Gate Pulse Generate Function
+{
+//	TinvACnt = LIMITER((unsigned int) (TinvA * InvPwmPrd), (InvPwmPrd - 30), 0.);           //Inverter PWM Count of A Branch
+//	TinvBCnt = LIMITER((unsigned int) (TinvB * InvPwmPrd), (InvPwmPrd - 30), 0.);           //Inverter PWM Count of B Branch
+//    TboostCnt = LIMITER((unsigned int) (Tboost * BoostPwmPrd), (BoostPwmPrd - 200), 200.);  //Boost PWM Count
+//
+////    TdabPh = PiIbat.out;                                        //DAB Phase Shift Time
+////    TdabPh = LIMITER(TdabPh, 1, -1);                            //DAB Phase Shift Time Limit -1 = Min, 1 = Max
+//
+//    if(TdabPh <= 0)                                             //DAB Phase Shift Time Limit Smaller than 0
+//    {
+//        EPwm4Regs.TBCTL.bit.PHSDIR = TB_UP;                     //DAB Phase Direction = 1
+//        EPwm5Regs.TBCTL.bit.PHSDIR = TB_UP;                     //DAB Phase Direction = 1
+//    }
+//    else
+//    {
+//        EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;                   //DAB Phase Direction = 0
+//        EPwm5Regs.TBCTL.bit.PHSDIR = TB_DOWN;                   //DAB Phase Direction = 0
+//    }
+//
+//    TdabPhCnt = LIMITER((fabs(TdabPh) * DabPwmPrd), DabPwmPrd, -DabPwmPrd);  //DAB PWM Count
+}
+
+
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/FaultProcess.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/FaultProcess.cpp
@@ -0,0 +1,399 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : FaultProcess.cpp
+//          Created on : 2023. 07. 26.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+void InitFaultSet()
+{
+	memset(&Fault, 0, (sizeof(Fault) / sizeof(int)));
+	InitProtectionSet();
+}
+
+void InitInstFaultLevelSet()
+{
+	//Bat 순시 과전압
+	FT_UV_OV.Ratio = 1.00; // 105%
+	FT_UV_OV.SetLevel = FT_UV_OV.Ratio * SET_FT_UV_Level;
+
+	//Bat 순시 저전압
+	FT_VIS_OV.Ratio = 1.0; // 105%
+	FT_VIS_OV.SetLevel = FT_VIS_OV.Ratio * SET_FT_VIS_Level;
+
+	//Bat 순시 과전류
+	FT_IR_OV.Ratio = 1.00;
+	FT_IR_OV.SetLevel = FT_IR_OV.Ratio * SET_FT_IR_Level;
+
+
+}
+void InitOverTempLevelSet()
+{
+
+    //AC Switch Inverter Over Temperature
+    OtNtc5.SetLevel = 85.;
+
+    //AC Switch Inverter Over Temperature
+    OtNtc6.SetLevel = 85.;
+}
+
+void InitProtectionSet()
+{
+	InitInstFaultLevelSet();
+//	InitOverTempLevelSet();
+//	InitFaultFreq();
+//	InitFaultVac();
+}
+
+void FaultInstType()
+{
+//	if (CH4_UV_Flt > FT_UV_OV.SetLevel)          Fault.Sw1.bit.CH4_UV_OV |= 1;
+//	if (CH4_VIS_Flt > FT_VIS_OV.SetLevel)      Fault.Sw1.bit.CH4_VIS_OV |= 1;
+//	if (CH4_IR_Flt > FT_IR_OV.SetLevel)          Fault.Sw1.bit.CH4_IR_OV |= 1;
+
+      if ((CH4_UV_Flt > FT_UV_OV.SetLevel)
+              &&(CH4_VIS_Flt > FT_VIS_OV.SetLevel))     Fault.Sw1.bit.CH4_UV_OV |= 1;
+
+}
+
+void OverTempFault()
+{
+//    if (VntcBoost > OtDcSwBoost.SetLevel)    Fault.Sw1.bit.OtDcSwBoost |= 1;
+//    if (VntcLvDab > OtDcSwLvDab.SetLevel)    Fault.Sw1.bit.OtDcSwLvDab |= 1;
+//    if (VntcHvDab > OtAcSwHvDab.SetLevel)    Fault.Sw1.bit.OtAcSwHvDab |= 1;
+//    if (VntcInv > OtAcSwInv.SetLevel)        Fault.Sw1.bit.OtAcSwInv |= 1;
+//
+//    if (Vntc5 > OtNtc5.SetLevel)             Fault.Sw1.bit.OtNtc5 |= 1;
+//    if (Vntc6 > OtNtc6.SetLevel)             Fault.Sw1.bit.OtNtc6 |= 1;
+
+}
+
+void InitFaultVac(void)
+{
+//	FT_Combo_1.Ratio = 1.1;
+//	FT_Combo_1.SetLevel = FT_Combo_1.Ratio * VacRatePeak;
+//	FT_Combo_1.SetTime = 0.16;
+//	FT_Combo_1.SetCnt = FT_Combo_1.SetTime * INV_T10ms;
+//	FT_Combo_1.ChkCnt = 0;
+//	FT_Combo_1.SetStableCnt = FT_Combo_1.SetCnt;
+//	FT_Combo_1.StableCnt = 0;
+//
+//	UvVgrid.Ratio = 0.9;
+//	UvVgrid.SetLevel = UvVgrid.Ratio * VacRatePeak;
+//	UvVgrid.SetTime = 0.16;
+//	UvVgrid.SetCnt = UvVgrid.SetTime * INV_T10ms;
+//	UvVgrid.ChkCnt = 0;
+//	UvVgrid.SetStableCnt = UvVgrid.SetCnt;
+//	UvVgrid.StableCnt = 0;
+}
+
+void FaultVac() //10ms
+{
+//	if (FlagOffset == 3)
+//	{
+//		if (VqeGridFlt < UvVgrid.SetLevel)
+//		{
+//			if (++UvVgrid.ChkCnt > UvVgrid.SetCnt)
+//			{
+//				Fault.Sw1.bit.CH1_VIS_OV |= 1;
+//				UvVgrid.ChkCnt = 0;
+//			}
+//
+//			UvVgrid.StableCnt = 0;
+//		}
+//		else if (VqeGridFlt > FT_Combo_1.SetLevel)
+//		{
+//			if (++FT_Combo_1.ChkCnt > FT_Combo_1.SetCnt)
+//			{
+//				Fault.Sw1.bit.CH1_UV_OV |= 1;
+//				FT_Combo_1.ChkCnt = 0;
+//			}
+//
+//			FT_Combo_1.StableCnt = 0;
+//		}
+//		else
+//		{
+//			if ((++FT_Combo_1.StableCnt > FT_Combo_1.SetStableCnt) && (++UvVgrid.StableCnt > UvVgrid.SetStableCnt))
+//			{
+//				FT_Combo_1.ChkCnt = 0;
+//				FT_Combo_1.StableCnt = 0;
+//				UvVgrid.ChkCnt = 0;
+//				UvVgrid.StableCnt = 0;
+//			}
+//		}
+//	}
+//	else
+//	{
+//		UvVgrid.ChkCnt = 0;
+//		UvVgrid.StableCnt = 0;
+//		FT_Combo_1.ChkCnt = 0;
+//		FT_Combo_1.StableCnt = 0;
+//	}
+}
+
+void InitFaultFreq(void)
+{
+//	OfVac.SetLevel = 60.5;
+//	OfVac.SetTime = 0.1;
+//	OfVac.SetCnt = OfVac.SetTime * INV_T10ms;
+//	OfVac.ChkCnt = 0;
+//	OfVac.SetStableCnt = OfVac.SetCnt;
+//	OfVac.StableCnt = 0;
+//
+//	UfVac.SetLevel = 59.3;
+//	UfVac.SetTime = 0.1;
+//	UfVac.SetCnt = UfVac.SetTime * INV_T10ms;
+//	UfVac.ChkCnt = 0;
+//	UfVac.SetStableCnt = UfVac.SetCnt;
+//	UfVac.StableCnt = 0;
+
+}
+
+void FaultFreq(void) //10ms
+{
+//	if (FlagOffset == 3)
+//	{
+//		if (FreqOutFlt > OfVac.SetLevel)
+//		{
+//			if (++OfVac.ChkCnt > OfVac.SetCnt)
+//			{
+//				Fault.Sw1.bit.CH1_IR_OV |= 1;
+//				OfVac.ChkCnt = 0;
+//			}
+//
+//			OfVac.StableCnt = 0;
+//		}
+//		else if (FreqOutFlt < UfVac.SetLevel)
+//		{
+//			if (++UfVac.ChkCnt > UfVac.SetCnt)
+//			{
+//				Fault.Sw1.bit.CH2_UV_OV |= 1;
+//				UfVac.ChkCnt = 0;
+//			}
+//
+//			UfVac.StableCnt = 0;
+//		}
+//		else
+//		{
+//			if ((++OfVac.StableCnt > OfVac.SetStableCnt) && (++UfVac.StableCnt > UfVac.SetStableCnt))
+//			{
+//				OfVac.ChkCnt = 0;
+//				OfVac.StableCnt = 0;
+//				UfVac.ChkCnt = 0;
+//				UfVac.StableCnt = 0;
+//			}
+//		}
+//	}
+}
+
+void ContectTypeFault()
+{
+	//Emergency Stop
+//	Fault.Sw2.bit.Switch_EmergencyStop |= Din.Data.bit.ButtonEstop;
+
+}
+
+void DisconnectTempFault()
+{
+	if (FlagOffset == 3)
+	{
+
+	}
+}
+
+//unsigned int SetCanMeWait = 5;
+//unsigned int CntCanMeWait = 0;
+//unsigned int CanMeRxIsrCntOld = 0;
+//
+//unsigned int SetCanBeWait = 5;
+//unsigned int CntCanBeWait = 0;
+//unsigned int CanBeRxIsrCntOld = 0;
+//
+//unsigned int CanMeOff = 0;
+//unsigned int CanBeOff = 0;
+
+unsigned int TraceWaitCnt = 0;
+unsigned int TraceWaitSet = 800;
+
+
+void FaultProcess()
+{
+	SystemFault = 1;
+//	SystemReady = 0;
+
+	Dout.Data.bit.Ch00 = 1;
+    Dout.Data.bit.Ch01 = 1;
+
+//	GateOutDisable();
+//	FlagInvGating = 0;
+//	FlagInvGatingInput = 0;
+//
+//	FlagBoostGating = 0;
+//	FlagBoostGatingInput = 0;
+//
+//    FlagDabGating = 0;
+//    FlagDabGatingInput = 0;
+//
+//    CmdChargeStart = 0;
+//    CmdDischargeStart = 0;
+//
+//	FlagRunInv = 0;
+//	CmdInvStart = 0;
+//	CmdInvOPset = 99;
+//
+//	FlagRunBoost = 0;
+//	CmdBoostStart = 0;
+//	CmdBoostOPset = 99;
+//
+//    FlagRunDab = 0;
+//    CmdDabStart = 0;
+//    CmdDabOPset = 99;
+//
+//	InvReady = 0;
+//
+//	IbatRef = 0.;
+//
+////	IqeRef = 0.;
+////	IdeRef = 0.;
+//
+////	VbatRef = 0.;
+////	VdabRef = 0.;
+//
+////	InitCntAcPreCharge();
+////	FlagAcPreCharge = 0;
+////	StatusAcPreCharge = 0;
+//
+//	DigitalInput();
+//	InitAcRelay();
+//	DigitalOutput();
+//
+//	TinvA = 0;
+//	TinvB = 0;
+//	TinvACnt = 0;
+//	TinvBCnt = 0;
+//
+//	Tboost = 0;
+//	TboostCnt = 0;
+//
+//	TdabA = 0;
+//	TdabB = 0;
+//	TdabC = 0;
+//	TdabD = 0;
+//	TdabPh = 0;
+//
+//	TdabACnt = 0;
+//	TdabBCnt = 0;
+//	TdabCCnt = 0;
+//    TdabDCnt = 0;
+//    TdabPhCnt = 0;
+
+	FaultLatchData();
+
+//	if(FlagTrace == 1)
+//	{
+//	    if(TraceWaitCnt++ > TraceWaitSet)
+//	    {
+//	        FlagTrace = 0;
+//	    }
+//	}
+//	else
+//	{
+//	    TraceWaitCnt = TraceWaitSet;
+//	}
+
+
+
+}
+
+unsigned int FlagLatch = 0;
+
+void FaultLatchData()
+{
+//	if (FlagLatch == 0)
+//	{
+//		FaultLatch.Vbat         = Vbat;
+//		FaultLatch.Ibat         = Ibat;
+//
+//		FaultLatch.Vboost       = Vboost;
+//		FaultLatch.Vdab         = Vdab;
+//		FaultLatch.GFD          = GFD;
+//		FaultLatch.VdcH         = VdcH;
+//		FaultLatch.VdcL         = VdcL;
+//		FaultLatch.VunGrid      = VunGrid;
+//		FaultLatch.VnwGrid      = VnwGrid;
+//		FaultLatch.IuInv        = IuInv;
+//		FaultLatch.IwInv        = IwInv;
+//
+//		FaultLatch.Izct         = Izct;
+//		FaultLatch.IuGridExt    = IuGridExt;
+//		FaultLatch.IwGridExt    = IwGridExt;
+//
+//		FaultLatch.VntcBoost    = VntcBoost;
+//		FaultLatch.VntcLvDab    = VntcLvDab;
+//		FaultLatch.VntcHvDab    = VntcHvDab;
+//		FaultLatch.VntcInv      = VntcInv;
+//		FaultLatch.Vntc5        =
+//
+//		FaultLatch.VunInv       = VunInv;
+//		FaultLatch.VnwInv       = VnwInv;
+//		FaultLatch.IuGrid       = IuGrid;
+//		FaultLatch.IwGrid       = IwGrid;
+//
+//		FlagLatch = 1;
+//
+//	}
+
+}
+
+void FaultChecker()
+{
+	FaultInstType();
+	ContectTypeFault();
+	OverTempFault();
+
+	if ((Fault.Sw1.all != 0) || (Fault.Sw2.all != 0) || (Fault.Sw3.all != 0))
+	{
+		FaultProcess();
+	}
+
+	if (SystemFault == 1)
+	{
+		if (CmdFaultReset == 33)
+		{
+			FaultReset = 1;
+			CmdFaultReset = 99;
+		}
+	}
+	else CmdFaultReset = 99, FaultReset = 0;
+
+	if (SystemFault == 0) FaultReset = 0;
+	else if ((SystemFault == 1) && (FaultReset == 1)) SystemRestart();
+
+}
+
+void SystemRestart()
+{
+	SystemFault = 0;
+
+    Dout.Data.bit.Ch00 = 0;
+    Dout.Data.bit.Ch01 = 0;
+
+	Fault.Sw1.all = 0;
+	Fault.Sw2.all = 0;
+	Fault.Sw3.all = 0;
+
+	FlagOffset = 0;
+	SystemReady = 0;
+
+	FaultReset = 0;
+
+	InitAcRelay();
+	memset(&FaultLatch, 0, (sizeof(FaultLatch) / sizeof(int)));
+	FlagLatch = 0;
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/OffsetProcess.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/OffsetProcess.cpp
@@ -0,0 +1,183 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : OffsetProcess.cpp
+//          Created on : 2023. 08. 08.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "Cpu1DeviceDefine.h"
+
+unsigned int FlagOffset = 0;
+
+int CntAdcOffsetWait = 20000;
+int SetAdcOffsetWait = 20000;
+int CntOffsetWait = 400;
+int SetOffsetWait = 400;
+
+unsigned int CntOffsetAvg = 0;
+unsigned int SetOffsetAvg = 16384;
+
+unsigned int CntAdcOffsetSum = 0;
+unsigned int SetAdcOffsetSum = 16384;
+
+int SetFaultAdcOffset = 32767 * 0.01;
+
+void OffsetProcess()
+{
+//	WatchdogRun();
+	AdcResult();
+
+	PllRun();
+
+	Lpf1stRun();
+//	InvVdc = 1. / (CH3_UV_Flt + 1.e-32);
+
+	RmsAvgSum();
+//	FaultChecker();
+
+	if (FaultReset == 0)
+	{
+		if (FlagOffset == 0)
+		{
+
+			--CntAdcOffsetWait;
+			if (CntAdcOffsetWait <= 0)
+			{
+//				Adc.Offset[1] = ADC_OFFSET1V5;	//Ibat
+//				Adc.Offset[6] = ADC_OFFSET1V5;	//IuGrid
+//				Adc.Offset[7] = ADC_OFFSET1V5;	//IwGrid
+//
+//				Adc.Offset[11] = ADC_OFFSET1V5;	//IuInv
+//				Adc.Offset[12] = ADC_OFFSET1V5;	//IwInv
+//
+//				Adc.Offset[18] = ADC_OFFSET1V5;	//IuGridExt
+//				Adc.Offset[19] = ADC_OFFSET1V5;	//IwGridExt
+//
+//
+//				Adc.OffsetSum[1] = 0.;	//Ibat
+//				Adc.OffsetSum[6] = 0.;	//IuGrid
+//				Adc.OffsetSum[7] = 0.;	//IwGrid
+//
+//				Adc.OffsetSum[11] = 0.;	//IuInv
+//				Adc.OffsetSum[12] = 0.;	//IwInv
+//
+//				Adc.OffsetSum[18] = 0.;	//IuGridExt
+//				Adc.OffsetSum[19] = 0.;	//IwGridExt
+//
+//				Adc.OffsetDelt[1] = 0.;	//Ibat
+//				Adc.OffsetDelt[6] = 0.;	//IuGrid
+//				Adc.OffsetDelt[7] = 0.;	//IwGrid
+//
+//				Adc.OffsetDelt[11] = 0.;	//IuInv
+//				Adc.OffsetDelt[12] = 0.;	//IwInv
+//
+//				Adc.OffsetDelt[18] = 0.;	//IuGridExt
+//				Adc.OffsetDelt[19] = 0.;	//IwGridExt
+
+				FlagOffset = 1;
+				CntAdcOffsetWait = SetAdcOffsetWait;
+			}
+		}
+		else if (FlagOffset == 1)
+		{
+			Adc.OffsetSum[2] += Adc.RawData[2] - ADC_OFFSET1V5;		//Ibat
+			Adc.OffsetSum[3] += Adc.RawData[3] - ADC_OFFSET1V5; 	//IuGrid
+			Adc.OffsetSum[4] += Adc.RawData[4] - ADC_OFFSET1V5;		//IwGrid
+
+			Adc.OffsetSum[5] += Adc.RawData[5] - ADC_OFFSET1V5;	//IuInv
+			Adc.OffsetSum[8] += Adc.RawData[8] - ADC_OFFSET1V5;	//IwInv
+            Adc.OffsetSum[10] += Adc.RawData[10] - ADC_OFFSET1V5;    //IwInv
+
+            Adc.OffsetSum[11] += Adc.RawData[11] - ADC_OFFSET1V5;     //Ibat
+            Adc.OffsetSum[12] += Adc.RawData[12] - ADC_OFFSET1V5;     //IuGrid
+            Adc.OffsetSum[13] += Adc.RawData[13] - ADC_OFFSET1V5;     //IwGrid
+
+            Adc.OffsetSum[18] += Adc.RawData[18] - ADC_OFFSET1V5;    //IuInv
+            Adc.OffsetSum[19] += Adc.RawData[19] - ADC_OFFSET1V5;    //IwInv
+            Adc.OffsetSum[20] += Adc.RawData[20] - ADC_OFFSET1V5;    //IwInv
+
+
+			if (++CntOffsetAvg >= SetOffsetAvg)
+			{
+				//todo 나중에 최적화 할 것.
+
+				Adc.OffsetDelt[2] = Adc.OffsetSum[2] / SetOffsetAvg;
+				Adc.OffsetDelt[3] = Adc.OffsetSum[3] / SetOffsetAvg;
+				Adc.OffsetDelt[4] = Adc.OffsetSum[4] / SetOffsetAvg;
+
+                Adc.OffsetDelt[5] = Adc.OffsetSum[5] / SetOffsetAvg;
+                Adc.OffsetDelt[8] = Adc.OffsetSum[8] / SetOffsetAvg;
+                Adc.OffsetDelt[10] = Adc.OffsetSum[10] / SetOffsetAvg;
+
+                Adc.OffsetDelt[11] = Adc.OffsetSum[11] / SetOffsetAvg;
+                Adc.OffsetDelt[12] = Adc.OffsetSum[12] / SetOffsetAvg;
+                Adc.OffsetDelt[13] = Adc.OffsetSum[13] / SetOffsetAvg;
+
+                Adc.OffsetDelt[18] = Adc.OffsetSum[18] / SetOffsetAvg;
+                Adc.OffsetDelt[19] = Adc.OffsetSum[19] / SetOffsetAvg;
+                Adc.OffsetDelt[20] = Adc.OffsetSum[20] / SetOffsetAvg;
+
+
+//				if (fabs(AdcExt.Offset[18]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_IL |= 1;
+//				if (fabs(AdcExt.Offset[19]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_IL |= 1;
+//				if (fabs(AdcExt.Offset[20]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_IL |= 1;
+//				if (fabs(AdcExt.Offset[21]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_Iabc |= 1;
+//				if (fabs(AdcExt.Offset[22]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_Iabc |= 1;
+//				if (fabs(AdcExt.Offset[23]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_Iabc |= 1;
+//				if (fabs(AdcExt.Offset[24]) > SetFaultAdcOffset) Fault.Sw3.bit.Offset_Ibe |= 1;
+
+				CntOffsetAvg = 0;
+				FlagOffset = 3;
+				CntOffsetWait = SetOffsetWait;
+			}
+		}
+	}
+}
+
+
+unsigned int AutoOffsetCnt = 0;
+unsigned int AutoOffsetSet = 16384;
+unsigned int FlagAutoOffset = 0;
+
+unsigned int AdcOffsetCalCh = 0;
+unsigned int OffsetCalSeq = 0;
+
+
+void AutoOffsetCal(int AdcCh)
+{
+
+	if (FlagAutoOffset == 1)
+	{
+		if(OffsetCalSeq == 0)
+		{
+			Adc.OffsetSum[AdcCh] = 0;
+			OffsetCalSeq = 1;
+		}
+		else
+		{
+			if (AutoOffsetCnt++ < AutoOffsetSet)
+			{
+				Adc.OffsetSum[AdcCh] += Adc.RawData[AdcCh] - Adc.OffsetDefault[AdcCh];
+			}
+			else
+			{
+				Adc.OffsetDelt[AdcCh] = Adc.OffsetSum[AdcCh] / AutoOffsetCnt;
+				AutoOffsetCnt = 0;
+				FlagAutoOffset = 0;
+				OffsetCalSeq = 0;
+
+			}
+		}
+
+
+
+
+	}
+
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Pll.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Pll.cpp
@@ -0,0 +1,75 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : Pll.cpp
+//          Created on : 2023. 08. 08.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "Cpu1DeviceDefine.h"
+
+float CosThetaComp = 0.;
+float SinThetaComp = 0.;
+float ErrTheta = 0.;
+
+float Theta = 0., ThetaComp = 0.;
+float SinTheta = 0., CosTheta = 1.;
+
+float FreqOut = 0.;
+float FreqOutFlt = 0.;
+
+
+struct sSogiFll1ph SogiFll1ph;
+
+void InitPll(void)
+{
+//	memset(&SogiFll1ph, 0, sizeof(SogiFll1ph) / sizeof(int));
+//	SogiFll1ph.Init(FreqRate, Tsamp, VacPeakMax, &VacGrid, &IacInv);
+
+}
+
+void PllReset(void)
+{
+//	SogiFll1ph.Init(FreqRate, Tsamp, VacPeakMax, &VacGrid, &IacInv);
+}
+
+void PllRun(void)
+{
+//	SogiFll1ph.Run();
+//
+//	Theta = SogiFll1ph.Theta;
+//	WeHat = SogiFll1ph.WeHat;
+//	FreqOut = SogiFll1ph.FreqOut;
+//
+//	SinTheta = SogiFll1ph.SinTheta;
+//	CosTheta = SogiFll1ph.CosTheta;
+//
+//	VdsGrid = VacGrid;
+//	VqsGrid = SogiFll1ph.Vs_Osg_Qu[0];
+//
+//	VdeGrid = CosTheta * VdsGrid + SinTheta * VqsGrid;
+//	VqeGrid = -SinTheta * VdsGrid + CosTheta * VqsGrid;
+//
+//	VdsInv = VacInv;
+//	VqsInv = SogiFll1ph.Vs_Osg_Qu[0];
+//
+//	VdeInv = CosTheta * VdsInv + SinTheta * VqsInv;
+//	VqeInv = -SinTheta * VdsInv + CosTheta * VqsInv;
+//
+//	IdsInv = IacInv;
+//	IqsInv = SogiFll1ph.Is_Osg_Qu[0];
+//
+//	IdeInv = CosTheta * IdsInv + SinTheta * IqsInv;
+//	IqeInv = -SinTheta * IdsInv + CosTheta * IqsInv;
+//
+//	IdsGrid = IacGrid;
+//	IqsGrid = SogiFll1ph.Is_Osg_Qu[0];
+//
+//	IdeGrid = CosTheta * IdsGrid + SinTheta * IqsGrid;
+//	IqeGrid = -SinTheta * IdsGrid + CosTheta * IqsGrid;
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Relay.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/Relay.cpp
@@ -0,0 +1,243 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : Relay.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#include "Cpu1DeviceDefine.h"
+
+//----Main-AcRelay(ALZ51B12)--------//
+//	Operate time : Max. 15ms	   	//
+//	Release time : Max. 5ms  	   	//
+//----------------------------------//
+
+//---AcPreCharge-Relay(ALDP112W)----//
+//	Operate Time : Max. 10ms		//
+//	Release time : Max. 10ms		//
+//----------------------------------//
+
+//---DcPreCharge-Relay()------------//
+
+unsigned int FlagAcPreCharge = 0;
+unsigned int FlagBatPreCharge = 0;
+
+float AcRelaySetVolt = 20;//250
+float BatRelaySetVolt = 250.;//130;
+
+void InitRelay()
+{
+	InitRelayTime();
+	InitCntAcPreCharge();
+	InitCntBatPreCharge();
+	InitAcRelay();
+	InitBatRelay();
+	DigitalOutput();
+	delay_ms(100L);
+}
+
+void InitAcRelay()
+{
+//	Dout.Data.bit.RelayGridPreCharge = 0;
+//	Dout.Data.bit.RelayGridUN = 0;
+//	Dout.Data.bit.RelayGridNW = 0;
+//
+//	Dout.Data.bit.RelayLoadUN = 0;
+//	Dout.Data.bit.RelayLoadNW = 0;
+}
+
+void InitBatRelay()
+{
+//	Dout.Data.bit.RelayBatPreCharge = 0;
+//	Dout.Data.bit.RelayBatP = 0;
+//	Dout.Data.bit.RelayBatN = 0;
+}
+
+void InitRelayTime()
+{
+	SetAcPreChargeWait = (int) (0.5 * INV_T2ms);
+	SetBatPreChargeWait = (int) (0.5 * INV_T2ms);
+
+	SetPreAcPreRelayWait = (int) (0.5 * INV_T2ms);
+	SetPreAcRelayWait = (int) (5. * INV_T2ms);
+	SetPreAcRelayDetect = (int) (0.5 * INV_T2ms);
+	SetPreAcPreRelayDetect = (int) (0.5 * INV_T2ms);
+	SetPreAcRelayDelay = (int) (0.5 * INV_T2ms);
+
+	SetPreBatPreRelayWait = (int) (0.5 * INV_T2ms);
+	SetPreBatRelayWait = (int) (3. * INV_T2ms);
+	SetPreBatRelayDetect = (int) (0.5 * INV_T2ms);
+	SetPreBatPreRelayDetect = (int) (0.5 * INV_T2ms);
+	SetPreBatRelayDelay = (int) (0.5 * INV_T2ms);
+}
+
+void InitCntAcPreCharge()
+{
+	CntPreAcPreRelayWait = SetPreAcPreRelayWait;
+	CntPreAcRelayWait = SetPreAcRelayWait;
+	CntPreAcPreRelayDetect = SetPreAcPreRelayDetect;
+	CntPreAcRelayDetect = SetPreAcRelayDetect;
+	CntPreAcRelayDelay = SetPreAcRelayDelay;
+	CntAcPreChargeWait = 0;
+}
+
+void InitCntBatPreCharge()
+{
+	CntPreBatPreRelayWait = SetPreBatPreRelayWait;
+	CntPreBatRelayWait = SetPreBatRelayWait;
+	CntPreBatRelayDetect = SetPreBatRelayDetect;
+	CntPreBatPreRelayDetect = SetPreBatPreRelayDetect;
+	CntPreBatRelayDelay = SetPreBatRelayDelay;
+	CntBatPreChargeWait = 0;
+}
+
+int CntBatPreChargeWait = 0, SetBatPreChargeWait = 0;
+int CntPreBatPreRelayWait = 0, SetPreBatPreRelayWait = 0;
+int CntPreBatPreRelayDetect = 0, SetPreBatPreRelayDetect = 0;
+int CntPreBatRelayWait = 0, SetPreBatRelayWait = 0;
+int CntPreBatRelayDetect = 0, SetPreBatRelayDetect = 0;
+int CntPreBatRelayDelay = 0, SetPreBatRelayDelay = 0;
+int StatusBatPreCharge = 0;
+
+void PreChargeBatRelay(float BatRelaySetVolt)
+{
+//	if ((FlagRunBoost == 1) || (ModeSystem == 1)) FlagBatPreCharge = FlagBatPreCharge;
+//	else FlagBatPreCharge = 0, StatusBatPreCharge = 0;
+//
+//	if ((FlagBatPreCharge == 1) && (SystemFault == 0))
+//	{
+//		if (StatusBatPreCharge == 0)
+//		{
+//			if (--CntPreBatPreRelayWait <= 0)
+//			{
+//				Dout.Data.bit.RelayBatPreCharge = 1;
+//				Dout.Data.bit.RelayBatN = 1;
+//				CntPreBatPreRelayWait = SetPreBatPreRelayWait;
+//			}
+//
+//			if ((Dout.Data.bit.RelayBatPreCharge == 1) && (Dout.Data.bit.RelayBatN == 1))
+//			{
+//				if (--CntPreBatRelayWait <= 0)
+//				{
+//					CntPreBatRelayWait = SetPreBatRelayWait;
+//
+//					if (CH1_IR_Flt > BatRelaySetVolt)
+//					{
+//						Dout.Data.bit.RelayBatP = 1;
+//					}
+//					else Fault.Sw1.bit.DcPreCharge |= 1;
+//				}
+//			}
+//			if ((Dout.Data.bit.RelayBatP == 1) && (Dout.Data.bit.RelayBatN == 1))
+//			{
+//				if (--CntPreBatRelayDelay <= 0)
+//				{
+//					if (++CntBatPreChargeWait > SetBatPreChargeWait)
+//					{
+//						InitCntBatPreCharge();
+//						Dout.Data.bit.RelayBatPreCharge = 0;
+//						CntBatPreChargeWait = 0;
+//						StatusBatPreCharge = 1;
+//					}
+//				}
+//			}
+//		}
+//		if (StatusBatPreCharge == 1) FlagBatPreCharge = 0;
+//	}
+//	else
+//	{
+//		FlagBatPreCharge = 0;
+//		InitCntBatPreCharge();
+//	}
+
+}
+
+int CntAcPreChargeWait = 0, SetAcPreChargeWait = 0;
+int CntPreAcPreRelayWait = 0, SetPreAcPreRelayWait = 0;
+int CntPreAcPreRelayDetect = 0, SetPreAcPreRelayDetect = 0;
+int CntPreAcRelayWait = 0, SetPreAcRelayWait = 0;
+int CntPreAcRelayDetect = 0, SetPreAcRelayDetect = 0;
+int CntPreAcRelayDelay = 0, SetPreAcRelayDelay = 0;
+int StatusAcPreCharge = 0;
+
+float RelayAcOntimeMin = -2.82;
+float RelayAcOntimeMax = -2.50;
+
+void PreChargeAcRelay(float AcRelaySetVolt)
+{
+//	if ((FlagRunInv == 1) || (ModeSystem == 1)) FlagAcPreCharge = FlagAcPreCharge;
+//	else FlagAcPreCharge = 0, StatusAcPreCharge = 0;
+//
+//	if ((FlagAcPreCharge == 1) && (SystemFault == 0))
+//	{
+//		if (StatusAcPreCharge == 0)
+//		{
+//			if (--CntPreAcPreRelayWait <= 0)
+//			{
+////				if ((Theta >= RelayAcOntimeMin) && (Theta <= RelayAcOntimeMax))
+////				{
+//					Dout.Data.bit.RelayGridPreCharge = 1;
+//					CntPreAcPreRelayWait = SetPreAcPreRelayWait;
+////				}
+//			}
+//			if (Dout.Data.bit.RelayGridPreCharge == 1)
+//			{
+//				if (--CntPreAcRelayWait <= 0)
+//				{
+//					CntPreAcRelayWait = SetPreAcRelayWait;
+//
+//					if (CH3_UV_Flt > AcRelaySetVolt)
+//					{
+////						if ((Theta >= RelayAcOntimeMin) && (Theta >= RelayAcOntimeMax))
+////						{
+//							Dout.Data.bit.RelayGridUN = 1;
+//							Dout.Data.bit.RelayGridNW = 1;
+////						}
+//					}
+//					else Fault.Sw1.bit.AcPreCharge = 1;
+//				}
+//			}
+//
+//			if ((Dout.Data.bit.RelayGridUN == 1) && (Dout.Data.bit.RelayGridNW == 1))
+//			{
+//				if (--CntPreAcRelayDelay <= 0)
+//				{
+//					if (++CntAcPreChargeWait > SetAcPreChargeWait)
+//					{
+//						InitCntAcPreCharge();
+//						Dout.Data.bit.RelayGridPreCharge = 0;
+//
+//						CntAcPreChargeWait = 0;
+//						StatusAcPreCharge = 1;
+//					}
+//				}
+//			}
+//		}
+//		if (StatusAcPreCharge == 1) FlagAcPreCharge = 0;
+//	}
+//	else
+//	{
+//		FlagAcPreCharge = 0;
+//		InitCntAcPreCharge();
+//	}
+
+	//todo 동작시 접점 확인 및 폴트 추가 할 것
+}
+
+unsigned int FlagLoadRelayOn = 0;
+
+void LoadRelay()
+{
+//    if(FlagLoadRelayOn == 1)
+//    {
+//        Dout.Data.bit.RelayLoadUN = 1;
+//        Dout.Data.bit.RelayLoadNW = 1;
+//    }
+//    else
+//    {
+//        Dout.Data.bit.RelayLoadUN = 0;
+//        Dout.Data.bit.RelayLoadNW = 0;
+//    }
+
+}
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT100ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT100ms.cpp
@@ -0,0 +1,40 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT100ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+int sendChar = 0;
+int recievChar = 0;
+
+void RoutineT100ms()
+{
+
+    ModbusARxDataUpdate();
+    ModbusATxDataUpdate();
+
+    NtcRead();
+
+//    SCI_writeCharBlockingFIFO(SCID_BASE, sendChar); // for NEXTION SCI-D Test
+
+      //
+      // Wait for RRDY/RXFFST = 1 for 1 data available in FIFO
+      //
+//      while(SCI_getRxFIFOStatus(SCID_BASE) == SCI_FIFO_RX0)
+//      {
+//          ;
+//      }
+//
+//      //
+//      // Check received character
+//      //
+//      receivedChar = SCI_readCharBlockingFIFO(SCID_BASE);
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT10ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT10ms.cpp
@@ -0,0 +1,17 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT10ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+
+#include "Cpu1DeviceDefine.h"
+
+void RoutineT10ms()
+{
+
+}
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT2ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT2ms.cpp
@@ -0,0 +1,22 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT2ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+
+#include "Cpu1DeviceDefine.h"
+
+
+void RoutineT2ms()
+{
+
+//	RunStopSeq();
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT500ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT500ms.cpp
@@ -0,0 +1,94 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT500ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+int FlagAdcReset = 0;
+int Testpcs5 = 0;
+
+int off_duration = 3;
+int on_duration = 1;
+int cnt = 0;
+bool led_state = false; // LED 상태를 추적하는 플래그
+
+void RoutineT500ms()
+{
+	ScaleUpdate();
+	OffsetUpdate();
+	Lpf1stCoefUpdate();
+
+	if(FlagAdcReset == 1)
+	{
+		SetupAdcSoc();
+		FlagAdcReset = 0;
+	}
+
+	if(SystemFault == 1)
+	{
+	    if(Dout.Data.bit.Ch03 == 0)
+	    {
+            Dout.Data.bit.Ch03 = 1;
+	    }
+
+	    if (!led_state && ++cnt >= off_duration)
+	    {
+
+            Dout.Data.bit.Ch02 = 0;
+//            Dout.Data.bit.Ch03 = 1;
+
+            led_state = true; // LED 상태 업데이트
+
+            cnt = 0; // 카운터 초기화
+        }
+	    else if (led_state && ++cnt >= on_duration)
+        {
+            Dout.Data.bit.Ch02 = 1;
+            Dout.Data.bit.Ch03 = 0;
+
+            led_state = false; // LED 상태 업데이트
+
+            cnt = 0; // 카운터 초기화
+            on_duration += 1; // 다음 켜짐 시간 증가
+
+            // on_duration이 너무 커지면 리셋
+            if (on_duration > off_duration) {
+                on_duration = 1; // 켜짐 시간 초기화
+            }
+        }
+	}
+	else
+	{
+        Dout.Data.bit.Ch02 = 0;
+        Dout.Data.bit.Ch03 = 0;
+	}
+
+	//////////////////////////////////////
+    if(State_RTC_Write_complete == 1)
+    {
+//        RtcWriteTime();
+        SPI_RTC_Write_Sequence();
+
+//        State_RTC_Write_complete = 0;
+    }
+
+    if(Testpcs5 == 1)
+    {
+        SPI_RTC_Read_Sequence();
+//            Testpcs5 = 0;
+//        RtcRun();
+
+    }
+}
+
+void RoutineT1s()
+{
+
+}
+
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT500us.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineT500us.cpp
@@ -0,0 +1,29 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT500us.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "Cpu1DeviceDefine.h"
+
+ uint32_t Testpcs9 = 0;
+
+void RoutineT500us()
+{
+
+	DigitalInput();
+	DigitalOutput();
+
+    ModbusALLResponse();
+
+//	ContectTypeFault();
+
+//        Testpcs9 = GPIO_readPortData(GPIO_PORT_A);
+//        Din.DataRaw.all = GPIO_readPortData(GPIO_PORT_A);
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineTsamp.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RoutineTsamp.cpp
@@ -0,0 +1,61 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineTsamp.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+ int Testpcs4 = 0;
+ int Adc_BUTTON = 0;
+
+ int Chk_Botton = 0;
+ int Chk_Botton_pre = 0;
+
+
+
+void RoutineTsamp()
+{
+
+    DacaRegs.DACVALS.bit.DACVALS = Testpcs1;
+    DacbRegs.DACVALS.bit.DACVALS = Testpcs2;
+    DaccRegs.DACVALS.bit.DACVALS = Testpcs3;
+
+//	PllRun();
+	Lpf1stRun();
+	FaultChecker();
+
+	if(Testpcs4 == 1)
+	{
+	    EepromWriteAdcScale();
+	    Testpcs4 = 0;
+	}
+    if(Testpcs4 == 2)
+    {
+        EepromReadAdcScale();
+        Testpcs4 = 0;
+    }
+
+//    receivedChar = SCI_readCharBlockingFIFO(SCIC_BASE);
+//    SCI_writeCharBlockingFIFO(SCIC_BASE, receivedChar);
+
+    ModbusACheckBuffer();
+
+    Chk_Botton = Din.Data.bit.Button;
+
+    if((Chk_Botton_pre == 0)&& (Chk_Botton == 1))
+    {
+        FaultReset = 1;
+    }
+    else
+    {
+        FaultReset = 0;
+    }
+    Chk_Botton_pre = Chk_Botton;
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RunStopSeq.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/RunStopSeq.cpp
@@ -0,0 +1,139 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RunStopSeq.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+int InvReady = 0;
+int BoostReady = 0;
+int DabReady = 0;
+
+int FlagGridConnectedOperation = 0; //계통 연계 운전 플래그
+int FlagIsolatedOperation = 0;       //자립 운전 플래그
+int FlagSoftStart = 0;              //자립 운전 시 DAB 소프트 스타트 플래그
+
+unsigned int SetBuilupTime = 1000;  //2s초 기다림
+unsigned int InvCntBuilupTime = 0;  //인버터 빌드업 시간
+unsigned int DabCntBuilupTime = 0;  //DAB 빌드업 시간
+
+
+void RunStopSeq() //2ms
+{
+
+}
+
+//	RefLimit(); //Vbe 레퍼런스 리미트 및 DC-Link 레퍼런스 리미트
+//
+//	if ((SystemFault == 0) && (SystemReady == 1))
+//	{
+//		// Inverter
+//		if ((CmdInvOPset == 55) && (FlagDcLinkDischarge == 0)) // 통신 또는 외부에서 인버터 동작명령 커맨드 입력, 방전시퀀스중에 기동 시작하면 컨버터 이상동작 야기함
+//		{
+//			FlagAcPreCharge = 1;	//초충 동작 명령
+//			if (StatusAcPreCharge == 1) CmdRunInv = 1; //초충 완료 후 인버터 동작시작
+//
+//			if((CmdBeOPset == 99)&& (CmdRunInv == 1))
+//			{
+//				if ((++CntBuilupTime > SetBuilupTime) && (VdcAvg > VdcRefSet - 10.))
+//				{
+//					CmdBeOPset = 55;
+//				}
+//			}
+//			else CntBuilupTime = 0;
+//		}
+//		else
+//		{
+//			CmdRunInv = 0;
+//			CmdInvOPset = 99;
+//			//BE 먼저 종료 후 인버터 종료 하도록 시퀀스 고칠 것
+//			CmdBeOPset = 99; // inverter 종료시 Be도 같이 종료 되도록 변경
+//			CntBuilupTime = 0;
+//			InitAcMMC();
+//		}
+//
+//		//BE(Converter)
+//		if (CmdBeOPset == 55)
+//		{
+//			//임시 위치
+//			//Be동작시 방전저항 off
+//			BeDischargeRlyoOff();
+//			//todo 방전 릴레이 동작시간 반영해서 대기 카운터 들어가야함
+//            if((Status.bit.ParallelMode == 1) && (Status.bit.VbeParaMode == 1))//병렬운전시 Master,Slave 모두 Inverter 빌드업 완료된거 확인 후 컨버터 기동
+//            {
+//                if(FlagParaInvBuilup == 1) CmdRunBe = 1;
+//            }
+//            else
+//            {
+//                CmdRunBe = 1;
+//            }
+//		}
+//		else
+//		{
+//		    if((Status.bit.Master != 1) && (Status.bit.ParallelMode == 1))
+//		    {
+//		        BeDischargeRlyoOff();
+//
+//                CmdRunBe = 0;
+//                CmdBeOPset = 99;
+//		    }
+//		    else
+//		    {
+//		        BeDischargeRlyoOn();
+//		        if ((Din.Data.bit.Mmc == 0) && (CmdInvOPset ==99) && (CmdRunBe == 1))
+//		        {
+//		            //Dc-Link Discharging wait
+//		            if(CH3_UV_Flt > 50.)
+//		            {
+//		                //-------------------------------
+//		                //DC-Link 방전을 위해 Be게이트를 유지
+//		                //임시코드 수정 할 것
+//		                FlagDcLinkDischarge = 1;
+//		            }
+//		            else
+//		            {
+//		                //임시코드 수정 할 것
+//		                FlagDcLinkDischarge = 0;
+//		                //-------------------------------
+//		                CmdRunBe = 0;
+//		                CmdBeOPset = 99;
+//		            }
+//		        }
+//		    }
+//		}
+//	}
+//	else
+//	{
+//        if((Status.bit.Master != 1) && (Status.bit.ParallelMode == 1)) BeDischargeRlyoOff();
+//        else                                                           BeDischargeRlyoOn();
+//	}
+
+
+
+void RefLimit()   //10ms..
+{
+//    if((Status.bit.ParallelMode == 1) && (Status.bit.VbeParaMode == 1))
+//	{
+//        if(VbeParaRefSet > VbeMax ) VbeParaRefSet = VbeMax;
+//        else if (VbeParaRefSet < VbeMin ) VbeParaRef = VbeMin;
+//
+//    	VdcRefSet = VbeParaRefSet * 1.1;
+//    }
+//    else
+//    {
+//        if(VbeRefSet > VbeMax ) VbeRefSet = VbeMax;
+//        else if (VbeRefSet < VbeMin ) VbeRef = VbeMin;
+//
+//    	VdcRefSet = VbeRefSet * 1.1;
+//    }
+//
+//	if(VdcRefSet > VdcMax ) VdcRefSet = VdcMax;
+//	else if(VdcRefSet < VdcMin ) VdcRefSet = VdcMin;
+}
+
+
+
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/SelectCPU.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/SelectCPU.cpp
@@ -0,0 +1,122 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : SelectCPU.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+void SetCPU2ForPeripheral()
+{
+	InitSciGpio();
+//	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCIB, SYSCTL_CPUSEL_CPU2);
+//	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCIC, SYSCTL_CPUSEL_CPU2);
+//	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCID, SYSCTL_CPUSEL_CPU2);
+
+    SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCIB, SYSCTL_CPUSEL_CPU1);
+    SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCIC, SYSCTL_CPUSEL_CPU1);
+    SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_SCID, SYSCTL_CPUSEL_CPU1);
+
+	InitCanGpio();
+//	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_CANA, SYSCTL_CPUSEL_CPU2);
+//	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_CANB, SYSCTL_CPUSEL_CPU2);
+
+    SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_CANA, SYSCTL_CPUSEL_CPU1);
+    SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_CANB, SYSCTL_CPUSEL_CPU1);
+
+	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_ADCA, SYSCTL_CPUSEL_CPU1);
+	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_ADCB, SYSCTL_CPUSEL_CPU1);
+	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_ADCC, SYSCTL_CPUSEL_CPU1);
+	SysCtl_selectCPUForPeripheralInstance(SYSCTL_CPUSEL_ADCD, SYSCTL_CPUSEL_CPU1);
+
+
+
+}
+
+void SetCPU2ForGsRam()
+{
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS7, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS8, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS9, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS10, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS11, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS12, MEMCFG_GSRAMMASTER_CPU2);
+//	MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS13, MEMCFG_GSRAMMASTER_CPU2);
+
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS7, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS8, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS9, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS10, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS11, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS12, MEMCFG_GSRAMMASTER_CPU1);
+    MemCfg_setGSRAMMasterSel(MEMCFG_SECT_GS13, MEMCFG_GSRAMMASTER_CPU1);
+
+}
+
+
+
+void InitCanGpio()
+{
+
+    EALLOW;
+
+    GPIO_setMasterCore(18, GPIO_CORE_CPU2);
+    GPIO_setMasterCore(19, GPIO_CORE_CPU2);
+
+    GPIO_setPinConfig(GPIO_18_CANRXA);
+    GPIO_setPinConfig(GPIO_19_CANTXA);
+
+    GPIO_setMasterCore(21, GPIO_CORE_CPU2);
+    GPIO_setMasterCore(20, GPIO_CORE_CPU2);
+
+    GPIO_setPinConfig(GPIO_21_CANRXB);
+    GPIO_setPinConfig(GPIO_20_CANTXB);
+
+    EDIS;
+}
+
+void InitSciGpio()
+{
+    //SCIB
+    GPIO_setMasterCore(71, GPIO_CORE_CPU2);
+    GPIO_setPinConfig(GPIO_71_SCIRXDB);
+    GPIO_setDirectionMode(71, GPIO_DIR_MODE_IN);
+    GPIO_setPadConfig(71, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setQualificationMode(71, GPIO_QUAL_ASYNC);
+
+    GPIO_setMasterCore(70, GPIO_CORE_CPU2);
+    GPIO_setPinConfig(GPIO_70_SCITXDB);
+    GPIO_setDirectionMode(70, GPIO_DIR_MODE_OUT);
+    GPIO_setPadConfig(70, GPIO_PIN_TYPE_STD);
+    GPIO_setQualificationMode(70, GPIO_QUAL_ASYNC);
+
+	//SCIC
+	GPIO_setMasterCore(139, GPIO_CORE_CPU2);
+	GPIO_setPinConfig(GPIO_139_SCIRXDC);
+	GPIO_setDirectionMode(139, GPIO_DIR_MODE_IN);
+	GPIO_setPadConfig(139, GPIO_PIN_TYPE_PULLUP);
+	GPIO_setQualificationMode(139, GPIO_QUAL_ASYNC);
+
+	GPIO_setMasterCore(140, GPIO_CORE_CPU2);
+	GPIO_setPinConfig(GPIO_140_SCITXDC);
+	GPIO_setDirectionMode(140, GPIO_DIR_MODE_OUT);
+	GPIO_setPadConfig(140, GPIO_PIN_TYPE_STD);
+	GPIO_setQualificationMode(140, GPIO_QUAL_ASYNC);
+
+	//SCID
+	GPIO_setMasterCore(105, GPIO_CORE_CPU2);
+	GPIO_setPinConfig(GPIO_105_SCIRXDD);
+	GPIO_setDirectionMode(105, GPIO_DIR_MODE_IN);
+	GPIO_setPadConfig(105, GPIO_PIN_TYPE_PULLUP);
+	GPIO_setQualificationMode(105, GPIO_QUAL_ASYNC);
+
+	GPIO_setMasterCore(104, GPIO_CORE_CPU2);
+	GPIO_setPinConfig(GPIO_104_SCITXDD);
+	GPIO_setDirectionMode(104, GPIO_DIR_MODE_OUT);
+	GPIO_setPadConfig(104, GPIO_PIN_TYPE_STD);
+	GPIO_setQualificationMode(104, GPIO_QUAL_ASYNC);
+
+}
 
ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/SoftStart.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/Main_Resource/source/SoftStart.cpp
@@ -0,0 +1,53 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : SoftStart.cpp
+//          Created on : 2023. 09. 22.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu1DeviceDefine.h"
+
+struct sRampGen SoftStartCtrlRamp;
+float DelSoftStartCtrl = 0.1;
+float SoftStartCtrl = 0.97;
+float SoftStartDuty = 0.97;
+
+void InitSoftStart(void)
+{
+    SoftStartCtrlRamp.Init(&SoftStartCtrl, &DelSoftStartCtrl, Tsamp);
+    SoftStartCtrlRamp.UpdateSlope();
+    SoftStartCtrlRamp.out = 0.97;
+}
+
+void SoftStartReset(void)
+{
+    SoftStartCtrlRamp.Reset();
+}
+
+void SoftStart(void)
+{
+//    SoftStartCtrl = LIMITER(SoftStartCtrl , 0.97 , 0.5);
+//    SoftStartDuty = SoftStartCtrlRamp.Run();
+//    SoftStartDuty = LIMITER(SoftStartDuty , 0.97 , 0.5);
+//
+//    //LV Side
+//    EPwm2Regs.CMPA.bit.CMPA = DabPwmPrd * SoftStartDuty;
+//    EPwm2Regs.CMPB.bit.CMPB = DabPwmPrd - EPwm2Regs.CMPA.bit.CMPA;
+//    EPwm3Regs.CMPA.bit.CMPA = DabPwmPrd * (1 - SoftStartDuty);
+//    EPwm3Regs.CMPB.bit.CMPB = DabPwmPrd - EPwm3Regs.CMPA.bit.CMPA;
+//
+//    //HV Side
+//    EPwm4Regs.CMPA.bit.CMPA = DabPwmPrd * SoftStartDuty;
+//    EPwm4Regs.CMPB.bit.CMPB = DabPwmPrd - EPwm4Regs.CMPA.bit.CMPA;
+//    EPwm5Regs.CMPA.bit.CMPA = DabPwmPrd * (1 - SoftStartDuty);
+//    EPwm5Regs.CMPB.bit.CMPB = DabPwmPrd - EPwm5Regs.CMPA.bit.CMPA;
+//
+//    //Phase Shift
+//    EPwm2Regs.TBPHS.bit.TBPHS = 0;                              //Set Phase Shift = 0
+//    EPwm3Regs.TBPHS.bit.TBPHS = 0;                              //Set Phase Shift = 0
+//    EPwm4Regs.TBPHS.bit.TBPHS = TdabPhCnt;                      //Set Phase Shift = DAB Phase Shift Count
+//    EPwm5Regs.TBPHS.bit.TBPHS = TdabPhCnt;                      //Set Phase Shift = DAB Phase Shift Count
+
+}
 
ArcCTRL-23-NEXTSQ-CPU1/V2H_2837xD_FLASH_lnk_cpu1.cmd (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/V2H_2837xD_FLASH_lnk_cpu1.cmd
@@ -0,0 +1,192 @@
+MEMORY
+{
+PAGE 0 :  /* Program Memory */
+          /* Memory (RAM/FLASH) blocks can be moved to PAGE1 for data allocation */
+          /* BEGIN is used for the "boot to Flash" bootloader mode   */
+
+	BEGIN				: origin = 0x080000, length = 0x000002
+
+	RAMLS012			: origin = 0x008000, length = 0x001800
+//	RAMLS1				: origin = 0x008800, length = 0x000800
+//	RAMLS2				: origin = 0x009000, length = 0x000800
+
+	RAMGS14				: origin = 0x01A000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
+	RAMGS15				: origin = 0x01B000, length = 0x000FF8     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
+
+//	RAMGS15_RSVD		: origin = 0x01BFF8, length = 0x000008    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+
+	RESET				: origin = 0x3FFFC0, length = 0x000002
+
+   /* Flash sectors */
+	FLASHA				: origin = 0x080002, length = 0x001FFE	/* on-chip Flash */
+	FLASHB				: origin = 0x082000, length = 0x002000	/* on-chip Flash */
+	FLASHC				: origin = 0x084000, length = 0x002000	/* on-chip Flash */
+	FLASHD				: origin = 0x086000, length = 0x002000	/* on-chip Flash */
+	FLASHE				: origin = 0x088000, length = 0x008000	/* on-chip Flash */
+	FLASHF				: origin = 0x090000, length = 0x008000	/* on-chip Flash */
+	FLASHG				: origin = 0x098000, length = 0x008000	/* on-chip Flash */
+	FLASHH				: origin = 0x0A0000, length = 0x008000	/* on-chip Flash */
+	FLASHI				: origin = 0x0A8000, length = 0x008000	/* on-chip Flash */
+	FLASHJ				: origin = 0x0B0000, length = 0x008000	/* on-chip Flash */
+	FLASHK				: origin = 0x0B8000, length = 0x002000	/* on-chip Flash */
+	FLASHL				: origin = 0x0BA000, length = 0x002000	/* on-chip Flash */
+	FLASHM				: origin = 0x0BC000, length = 0x002000	/* on-chip Flash */
+
+//	FLASHN_RSVD			: origin = 0x0BFFF0, length = 0x000010    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+
+PAGE 1 : /* Data Memory */
+         /* Memory (RAM/FLASH) blocks can be moved to PAGE0 for program allocation */
+
+	BOOT_RSVD			: origin = 0x000002, length = 0x000121     /* Part of M0, BOOT rom will use this for stack */
+
+
+	RAMM0				: origin = 0x000123, length = 0x0002DD
+	RAMM1				: origin = 0x000400, length = 0x0003F8     /* on-chip RAM block M1 */
+//	RAMM1_RSVD			: origin = 0x0007F8, length = 0x000008     /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+
+	RAMD0				: origin = 0x00B000, length = 0x000800
+	RAMD1				: origin = 0x00B800, length = 0x000800
+
+	RAMLS3				: origin = 0x009800, length = 0x000800
+	RAMLS4				: origin = 0x00A000, length = 0x000800
+	RAMLS5				: origin = 0x00A800, length = 0x000800
+
+	RAMGS0				: origin = 0x00C000, length = 0x001000
+	RAMGS1				: origin = 0x00D000, length = 0x001000
+	RAMGS2				: origin = 0x00E000, length = 0x001000
+	RAMGS345			: origin = 0x00F000, length = 0x003000
+//	RAMGS4				: origin = 0x010000, length = 0x001000
+//	RAMGS5				: origin = 0x011000, length = 0x001000
+	RAMGS6				: origin = 0x012000, length = 0x001000
+
+	//CPU2
+	RAMGS7				: origin = 0x013000, length = 0x001000
+	RAMGS8				: origin = 0x014000, length = 0x001000
+	RAMGS9				: origin = 0x015000, length = 0x001000
+	RAMGS10				: origin = 0x016000, length = 0x001000
+	RAMGS11				: origin = 0x017000, length = 0x001000
+	RAMGS12				: origin = 0x018000, length = 0x001000
+	RAMGS13				: origin = 0x019000, length = 0x001000
+
+	CPU2TOCPU1RAM		: origin = 0x03F800, length = 0x000400
+	CPU1TOCPU2RAM		: origin = 0x03FC00, length = 0x000400
+
+	FLASHN           : origin = 0x0BE000, length = 0x001FF0	/* on-chip Flash */
+
+
+}
+
+SECTIONS
+{
+   	/* Allocate program areas: */
+   	.cinit				: > FLASHB      PAGE = 0, ALIGN(8)
+   	.pinit				: > FLASHB,     PAGE = 0, ALIGN(8)
+   	.text				: >> FLASHB | FLASHC | FLASHD | FLASHE      PAGE = 0, ALIGN(8)
+  	codestart			: > BEGIN       PAGE = 0, ALIGN(8)
+
+   	/* Allocate uninitalized data sections: */
+   	.stack				: > RAMM1       PAGE = 1
+   	.ebss				: >> RAMLS3 | RAMLS4 | RAMLS5 ,    PAGE = 1
+   	.esysmem			: > RAMLS5,       PAGE = 1
+   	.cio				: > RAMLS5,       PAGE = 1
+
+   	/* Initalized sections go in Flash */
+   	.econst				: >> FLASHF      PAGE = 0, ALIGN(8)
+	.switch				: > FLASHB      PAGE = 0, ALIGN(8)
+   	.reset				: > RESET,      PAGE = 0, TYPE = DSECT /* not used, */
+
+
+	.TI.ramfunc : {} 	LOAD = FLASHD,
+    					RUN = RAMLS012,
+                        LOAD_START(_RamfuncsLoadStart),
+                        LOAD_SIZE(_RamfuncsLoadSize),
+                        LOAD_END(_RamfuncsLoadEnd),
+                        RUN_START(_RamfuncsRunStart),
+                        RUN_SIZE(_RamfuncsRunSize),
+                        RUN_END(_RamfuncsRunEnd),
+                        PAGE = 0, ALIGN(8)
+
+	FPUmathTables : {} 	LOAD = FLASHN,
+						RUN = RAMD0,
+					  	RUN_START(_FPUmathTablesRunStart),
+					  	LOAD_START(_FPUmathTablesLoadStart),
+					  	LOAD_SIZE(_FPUmathTablesLoadSize),
+					  	PAGE = 1, ALIGN(8)
+
+
+
+
+	MSGRAM_CPU1_TO_CPU2	 : > CPU1TOCPU2RAM, PAGE = 1
+	MSGRAM_CPU2_TO_CPU1	 : > CPU2TOCPU1RAM, PAGE = 1
+
+//	DMARAM1  : > RAMGS5, PAGE = 1
+//	DMARAM2  : > RAMGS5, PAGE = 1
+//	DMARAM3  : > RAMGS5, PAGE = 1
+//	DMARAM4  : > RAMGS5, PAGE = 1
+
+	//-------------------------------------------------------------//
+	//only Cpu1 can access
+	.CpuInfo 		: > RAMLS5, PAGE = 1
+	.TimeSharing 	: > RAMLS5, PAGE = 1
+	//-------------------------------------------------------------//
+
+	//CPU1 Access Only Memory
+	.DigitalFilter	: > RAMLS3, PAGE = 1
+	.Relay			: > RAMLS3, PAGE = 1
+	.OffsetProcess	: > RAMLS3, PAGE = 1
+	.Pll			: > RAMLS3, PAGE = 1
+	.RunStopSeq		: > RAMLS3, PAGE = 1
+	.FaultProcess	: > RAMLS3, PAGE = 1
+	.IinvCtrl		: > RAMLS4, PAGE = 1
+	.IinvHarResCtrl	: > RAMLS4, PAGE = 1
+	.VdcCtrl		: > RAMLS4, PAGE = 1
+	.IbatCtrl		: > RAMLS4, PAGE = 1
+	.VbatCtrl		: > RAMLS4, PAGE = 1
+	.VdabCtrl		: > RAMLS4, PAGE = 1
+	.VboostCtrl		: > RAMLS4, PAGE = 1
+	.IdabCtrl		: > RAMLS4, PAGE = 1
+	.SoftStart		: > RAMLS4, PAGE = 1
+
+	//Temp
+	.Trace 		: > RAMGS345, PAGE = 1
+
+	//CPU1 RW, CPU2 R Memory
+	.AdcLib		: > RAMGS6, PAGE = 1
+	.SystemVar	: > RAMGS6, PAGE = 1
+	.Fault		: > RAMGS6, PAGE = 1
+	.Scale 		: > RAMGS6, PAGE = 1
+	.Status		: > RAMGS6, PAGE = 1
+	.IntTemp	: > RAMGS6, PAGE = 1
+	.ModbusData	: > RAMGS6, PAGE = 1
+
+	//CPU2 RW, CPU1 R Memory
+	.RmsAvg 	: > RAMGS13, PAGE = 1
+	.TempData	: > RAMGS13, PAGE = 1
+	.CanLib	   	: > RAMGS13, PAGE = 1
+	.CanCHAData	: > RAMGS13, PAGE = 1
+	.Modbus		: > RAMGS13, PAGE = 1
+
+
+//-------------------------------------------------------------//
+   /* The following section definitions are required when using the IPC API Drivers */
+    GROUP : > CPU1TOCPU2RAM, PAGE = 1
+    {
+        PUTBUFFER
+        PUTWRITEIDX
+        GETREADIDX
+    }
+
+    GROUP : > CPU2TOCPU1RAM, PAGE = 1
+    {
+        GETBUFFER :    TYPE = DSECT
+        GETWRITEIDX :  TYPE = DSECT
+        PUTREADIDX :   TYPE = DSECT
+    }
+
+}
+
+/*
+//===========================================================================
+// End of file.
+//===========================================================================
+*/
 
ArcCTRL-23-NEXTSQ-CPU1/targetConfigs/TMS320F28377D.ccxml (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/targetConfigs/TMS320F28377D.ccxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+    <configuration XML_version="1.2" id="configuration_0">
+        <instance XML_version="1.2" desc="Spectrum Digital XDS560V2 STM USB Emulator" href="connections/SD560V2USB_Connection.xml" id="Spectrum Digital XDS560V2 STM USB Emulator" xml="SD560V2USB_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Spectrum Digital XDS560V2 STM USB Emulator">
+            <instance XML_version="1.2" href="drivers/tixds560icepick_c.xml" id="drivers" xml="tixds560icepick_c.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560c28x.xml" id="drivers" xml="tixds560c28x.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560cla1.xml" id="drivers" xml="tixds560cla1.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560cs_child.xml" id="drivers" xml="tixds560cs_child.xml" xmlpath="drivers"/>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="TMS320F28377D" href="devices/tms320f28377d.xml" id="TMS320F28377D" xml="tms320f28377d.xml" xmlpath="devices"/>
+                <device HW_revision="1" XML_version="1.2" description="" id="TMS320F28377D" partnum="TMS320F28377D">
+                    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C router" id="IcePick_C_0" isa="ICEPICK_C">
+                        <subpath id="Subpath_1">
+                            <property Type="numericfield" Value="0x11" desc="Port Number_0" id="Port Number"/>
+                        </subpath>
+                    </router>
+                </device>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>
 
ArcCTRL-23-NEXTSQ-CPU1/targetConfigs/readme.txt (added)
+++ ArcCTRL-23-NEXTSQ-CPU1/targetConfigs/readme.txt
@@ -0,0 +1,9 @@
+The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
+on the device and connection settings specified in your project on the Properties > General page.
+
+Please note that in automatic target-configuration management, changes to the project's device and/or
+connection settings will either modify an existing or generate a new target-configuration file. Thus,
+if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
+you may create your own target-configuration file for this project and manage it manually. You can
+always switch back to automatic target-configuration management by checking the "Manage the project's
+target-configuration automatically" checkbox on the project's Properties > General page.(파일 끝에 줄바꿈 문자 없음)
 
ArcCTRL-23-NEXTSQ-CPU2/.ccsproject (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.ccsproject
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<deviceFamily value="C2000"/>
+	<connection value="common/targetdb/connections/SD560V2USB_Connection.xml"/>
+	<isTargetManual value="false"/>
+</projectOptions>
 
ArcCTRL-23-NEXTSQ-CPU2/.cproject (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.cproject
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+	<storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C2000.Debug" postbuildStep="copy /Y &quot;${PROJECT_BUILD_DIR}/${BuildArtifactFileName}&quot; &quot;${PROJECT_LOC}/../EZDSP/${BuildArtifactFileName}&quot;">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.DebugToolchain.1143441677" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug.2064713584">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1839937161" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID=C28xx_CPU2"/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=F2837xD_Headers_nonBIOS_cpu2.cmd"/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1540557857" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug.211691324" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformDebug"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug.1444356423" name="GNU Make.Debug" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderDebug"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.727677918" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.59899879" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1507876956" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.1608968040" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.428377321" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1697901468" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.1715588768" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.177671082" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.1121849515" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.3" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.1585490801" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.5" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.1103677717" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.1508630086" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/driverlib/f2837xd/driverlib"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/f2837xd/headers/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/f2837xd/common/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/device"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../TI_Lib/FPU/include/fpu32"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/EasyDSP_Resource"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CodeLibrary"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/../Common_Resource/CommonLibrary"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/Main_Resource/include"/>
+									<listOptionValue builtIn="false" value="${PROJECT_LOC}/Main_Resource"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.1727457851" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.1890249299" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
+									<listOptionValue builtIn="false" value="CPU2"/>
+									<listOptionValue builtIn="false" value="_FLASH"/>
+									<listOptionValue builtIn="false" value="__cplusplus"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.887706077" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION.1273774800" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SYMDEBUG__DWARF_VERSION.3" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.RTTI.767512877" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.RTTI" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CPP_DEFAULT.244612587" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CPP_DEFAULT" value="true" valueType="boolean"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.1925879985" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.126192845" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.1777509326" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.1048763158" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.159780094" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.842955348" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1541911441" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.1077680376" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug.2064713584" name="C2000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.2010028087" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" value="0x200" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.814319255" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" value="${ProjName}.map" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.1783949414" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.2078584514" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" valueType="libs">
+									<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/TI/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement.lib}"/>
+									<listOptionValue builtIn="false" value="libc.a"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.1483081268" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="${workspace_loc:/${ProjName}/TI/FPUfastRTS/c28/lib}"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.224120188" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.395356368" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.1124132539" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" value="${ProjName}_linkInfo.xml" valueType="string"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.1849615755" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.1043900197" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.21771115" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex.387915150" name="C2000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex"/>
+						</toolChain>
+					</folderInfo>
+					<fileInfo id="com.ti.ccstudio.buildDefinitions.C2000.Debug.40640217.Main_Resource/source/Cpu2Main.cpp" name="Cpu2Main.cpp" rcbsApplicability="disable" resourcePath="Main_Resource/source/Cpu2Main.cpp" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.727677918.760341923">
+						<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.727677918.760341923" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerDebug.727677918"/>
+						<tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.1833417928.1101490968.105234686.301313997.811193973.1761959306.151812951" name="Resource Custom Build Step">
+							<inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.416123549.435376715.826754683.821987797.1127862613.1756930646.1295644129" name="Resource Custom Build Step Input Type">
+								<additionalInput kind="additionalinputdependency" paths=""/>
+							</inputType>
+							<outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.936650266.45390955.1438371312.1975862918.497411262.312186433.1677727701" name="Resource Custom Build Step Output Type"/>
+						</tool>
+					</fileInfo>
+					<sourceEntries>
+						<entry excluding="TI_Lib/driverlib/f2837xd/driverlib/ccs" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+					</sourceEntries>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616" moduleId="org.eclipse.cdt.core.settings" name="Release">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616" name="Release" parent="com.ti.ccstudio.buildDefinitions.C2000.Release">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Release.1697767616." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.ReleaseToolchain.1688958494" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease.1584441070">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.134772882" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID="/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=2837x_FLASH_lnk_cpu1.cmd"/>
+								<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.373449968" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformRelease.1428857151" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.targetPlatformRelease"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderRelease.863083292" keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.builderRelease"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerRelease.724051636" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.compilerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.1543366178" name="Option deprecated, set by default (--large_memory_model, -ml)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1296248801" name="Unified memory (--unified_memory, -mt)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.1861789692" name="Processor version (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.108414427" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1961906856" name="Specify CLA support (--cla_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.1024375311" name="Specify VCU support (--vcu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.1623167975" name="Specify TMU support (--tmu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.2075002669" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.1441910157" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" useByScannerDiscovery="false" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.599761166" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.972069180" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.1037324424" name="Application binary interface [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.1913479694" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.2004682278" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1700702925" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.819451097" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease.1584441070" name="C2000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exe.linkerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE.1932410611" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.STACK_SIZE" useByScannerDiscovery="false" value="0x200" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE.529438638" name="Link information (map) listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.MAP_FILE" useByScannerDiscovery="false" value="${ProjName}.map" valueType="string"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE.330965495" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.OUTPUT_FILE" useByScannerDiscovery="false" value="${ProjName}.out" valueType="string"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY.868756979" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.LIBRARY" useByScannerDiscovery="false" valueType="libs">
+									<listOptionValue builtIn="false" value="libc.a"/>
+								</option>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH.809820495" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.SEARCH_PATH" valueType="libPaths">
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/lib"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.1771130404" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER.461585675" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO.1158846041" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.XML_LINK_INFO" useByScannerDiscovery="false" value="${ProjName}_linkInfo.xml" valueType="string"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.895659585" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.647367651" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.304003745" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex.1185668989" name="C2000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.hex"/>
+						</toolChain>
+					</folderInfo>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="Master4.0-Test-Firmware.com.ti.ccstudio.buildDefinitions.C2000.ProjectType.1729653242" name="C2000" projectType="com.ti.ccstudio.buildDefinitions.C2000.ProjectType"/>
+	</storageModule>
+	<storageModule moduleId="scannerConfiguration"/>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+	<storageModule moduleId="refreshScope"/>
+</cproject>(파일 끝에 줄바꿈 문자 없음)
 
ArcCTRL-23-NEXTSQ-CPU2/.gitignore (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.gitignore
@@ -0,0 +1,1 @@
+/Debug/
 
ArcCTRL-23-NEXTSQ-CPU2/.launches/ArcCtrl-23-NEXTSQ-CPU2.launch (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.launches/ArcCtrl-23-NEXTSQ-CPU2.launch
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.ti.ccstudio.debug.launchType.device.debugging">
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>
+    <setAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_HIDE_CONFIG_ELEMENT_TYPES">
+        <setEntry value="BOARD"/>
+        <setEntry value="BYPASSED_CPU"/>
+        <setEntry value="BYPASSED_ROUTER"/>
+        <setEntry value="CONNECTION"/>
+        <setEntry value="DEVICE"/>
+        <setEntry value="NON_DEBUG_CPU"/>
+        <setEntry value="NO_DRIVER"/>
+        <setEntry value="ROUTER"/>
+        <setEntry value="SUBPATH"/>
+        <setEntry value="SYSTEM"/>
+    </setAttribute>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU2}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU2}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="ArcCtrl-23-NEXTSQ-CPU2"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="ArcCtrl-23-NEXTSQ-CPU2"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:ArcCtrl-23-NEXTSQ-CPU2}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU2}"/>
+    <stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.TMS320F28377D.ccxml.Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2" value="${build_artifact:ArcCtrl-23-NEXTSQ-CPU2}"/>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+        <listEntry value="/ArcCtrl-23-NEXTSQ-CPU2"/>
+    </listAttribute>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+        <listEntry value="4"/>
+    </listAttribute>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.sourceLocator"/>
+    <stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;    &lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU1&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;ArcCtrl-23-NEXTSQ-CPU2&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;        &lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Spectrum Digital XDS560V2 STM USB Emulator/C28xx_CPU2&amp;quot;&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;ArcCtrl-23-NEXTSQ-CPU2&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;productsSource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.products.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;deviceLibrarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.device.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;    &amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;    &lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+</launchConfiguration>
 
ArcCTRL-23-NEXTSQ-CPU2/.project (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ArcCtrl-23-NEXTSQ-CPU2</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.ti.ccstudio.core.ccsNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+	<linkedResources>
+		<link>
+			<name>Common_Resource</name>
+			<type>2</type>
+			<locationURI>copy_PARENT/Common_Resource</locationURI>
+		</link>
+		<link>
+			<name>TI_Lib</name>
+			<type>2</type>
+			<locationURI>copy_PARENT/TI_Lib</locationURI>
+		</link>
+	</linkedResources>
+	<variableList>
+		<variable>
+			<name>copy_PARENT</name>
+			<value>file:/D:/Project.Git/ArcCtrl-23-Firmware</value>
+		</variable>
+	</variableList>
+</projectDescription>
 
ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.cdt.codan.core.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+inEditor=false
+onBuild=false
 
ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.cdt.debug.core.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.cdt.debug.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
 
ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.core.resources.prefs (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,90 @@
+eclipse.preferences.version=1
+encoding//CodeLibrary/DigitalFilter.cpp=UTF-8
+encoding//CodeLibrary/SOAPPLL.cpp=UTF-8
+encoding//CodeLibrary/SOGIPLL.cpp=UTF-8
+encoding//Debug/CodeLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/CodeLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/BoardLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/BoardLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/CRC/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/CRC/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/CRC/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/CRC/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalCtrl/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalCtrl/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalFilter/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/DigitalFilter/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Ntc/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Ntc/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/PLL/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/PLL/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/TimeSharing/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/TimeSharing/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Util/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/Util/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Debug/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalController/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalController/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalCtrl/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalCtrl/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalFilter/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/DigitalFilter/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Ntc/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Ntc/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/PLL/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/PLL/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/TimeSharing/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/TimeSharing/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Util/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CodeLibrary/Util/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/Wiznet/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/Wiznet/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/source/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/source/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/CommonLibrary/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/EasyDSP_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/EasyDSP_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/Common_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Common_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/Main_Resource/include/subdir_rules.mk=UTF-8
+encoding//Debug/Main_Resource/include/subdir_vars.mk=UTF-8
+encoding//Debug/Main_Resource/source/subdir_rules.mk=UTF-8
+encoding//Debug/Main_Resource/source/subdir_vars.mk=UTF-8
+encoding//Debug/Main_Resource/subdir_rules.mk=UTF-8
+encoding//Debug/Main_Resource/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/cmd/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/cmd/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/port/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/port/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/src/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/third_party/fatfs/src/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/deprecated/utils/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/deprecated/utils/subdir_vars.mk=UTF-8
+encoding//Debug/TI/common/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI/common/source/subdir_vars.mk=UTF-8
+encoding//Debug/TI/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI/headers/cmd/subdir_rules.mk=UTF-8
+encoding//Debug/TI/headers/cmd/subdir_vars.mk=UTF-8
+encoding//Debug/TI/headers/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI/headers/source/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/FPU/lib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/FPU/lib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/FPUfastRTS/c28/lib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/FPUfastRTS/c28/lib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/device/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/device/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/driverlib/f2837xd/driverlib/subdir_vars.mk=UTF-8
+encoding//Debug/TI_Lib/f2837xd/headers/source/subdir_rules.mk=UTF-8
+encoding//Debug/TI_Lib/f2837xd/headers/source/subdir_vars.mk=UTF-8
+encoding//Debug/makefile=UTF-8
+encoding//Debug/objects.mk=UTF-8
+encoding//Debug/sources.mk=UTF-8
+encoding//Debug/subdir_rules.mk=UTF-8
+encoding//Debug/subdir_vars.mk=UTF-8
+encoding//Main_Resource/source/Cpu2Main.cpp=UTF-8
 
ArcCTRL-23-NEXTSQ-CPU2/F2837xD_Headers_nonBIOS_cpu2.cmd (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/F2837xD_Headers_nonBIOS_cpu2.cmd
@@ -0,0 +1,220 @@
+MEMORY
+{
+ PAGE 0:    /* Program Memory */
+ PAGE 1:    /* Data Memory */
+   ACCESSPROTECTION           : origin = 0x0005F4C0, length = 0x00000040
+   ADCA                       : origin = 0x00007400, length = 0x00000080
+   ADCB                       : origin = 0x00007480, length = 0x00000080
+   ADCC                       : origin = 0x00007500, length = 0x00000080
+   ADCD                       : origin = 0x00007580, length = 0x00000080
+   ADCARESULT                 : origin = 0x00000B00, length = 0x00000018
+   ADCBRESULT                 : origin = 0x00000B20, length = 0x00000018
+   ADCCRESULT                 : origin = 0x00000B40, length = 0x00000018
+   ADCDRESULT                 : origin = 0x00000B60, length = 0x00000018
+   CANA                       : origin = 0x00048000, length = 0x00000200
+   CANB                       : origin = 0x0004A000, length = 0x00000200
+   CLA1                       : origin = 0x00001400, length = 0x00000080
+   CLB1DATAEXCH               : origin = 0x00003200, length = 0x00000200
+   CLB2DATAEXCH               : origin = 0x00003600, length = 0x00000200
+   CLB3DATAEXCH               : origin = 0x00003A00, length = 0x00000200
+   CLB4DATAEXCH               : origin = 0x00003E00, length = 0x00000200
+   CLB1LOGICCFG               : origin = 0x00003000, length = 0x00000052
+   CLB2LOGICCFG               : origin = 0x00003400, length = 0x00000052
+   CLB3LOGICCFG               : origin = 0x00003800, length = 0x00000052
+   CLB4LOGICCFG               : origin = 0x00003C00, length = 0x00000052
+   CLB1LOGICCTRL              : origin = 0x00003100, length = 0x00000040
+   CLB2LOGICCTRL              : origin = 0x00003500, length = 0x00000040
+   CLB3LOGICCTRL              : origin = 0x00003900, length = 0x00000040
+   CLB4LOGICCTRL              : origin = 0x00003D00, length = 0x00000040
+   CLKCFG                     : origin = 0x0005D200, length = 0x00000032
+   CMPSS1                     : origin = 0x00005C80, length = 0x00000020
+   CMPSS2                     : origin = 0x00005CA0, length = 0x00000020
+   CMPSS3                     : origin = 0x00005CC0, length = 0x00000020
+   CMPSS4                     : origin = 0x00005CE0, length = 0x00000020
+   CMPSS5                     : origin = 0x00005D00, length = 0x00000020
+   CMPSS6                     : origin = 0x00005D20, length = 0x00000020
+   CMPSS7                     : origin = 0x00005D40, length = 0x00000020
+   CMPSS8                     : origin = 0x00005D60, length = 0x00000020
+   CPUTIMER0                  : origin = 0x00000C00, length = 0x00000008
+   CPUTIMER1                  : origin = 0x00000C08, length = 0x00000008
+   CPUTIMER2                  : origin = 0x00000C10, length = 0x00000008
+   CPUSYS                     : origin = 0x0005D300, length = 0x00000082
+   DACA                       : origin = 0x00005C00, length = 0x00000008
+   DACB                       : origin = 0x00005C10, length = 0x00000008
+   DACC                       : origin = 0x00005C20, length = 0x00000008
+   DCSMCOMMON                 : origin = 0x0005F070, length = 0x00000008
+   DCSMZ1                     : origin = 0x0005F000, length = 0x00000024
+   DCSMZ2                     : origin = 0x0005F040, length = 0x00000024
+   DMACLASRCSEL               : origin = 0x00007980, length = 0x0000001A
+   DMA                        : origin = 0x00001000, length = 0x00000200
+   ECAP1                      : origin = 0x00005000, length = 0x00000020
+   ECAP2                      : origin = 0x00005020, length = 0x00000020
+   ECAP3                      : origin = 0x00005040, length = 0x00000020
+   ECAP4                      : origin = 0x00005060, length = 0x00000020
+   ECAP5                      : origin = 0x00005080, length = 0x00000020
+   ECAP6                      : origin = 0x000050A0, length = 0x00000020
+   EMIF1CONFIG                : origin = 0x0005F480, length = 0x00000020
+   EMIF1                      : origin = 0x00047000, length = 0x00000070
+   EPWM1                      : origin = 0x00004000, length = 0x00000100
+   EPWM2                      : origin = 0x00004100, length = 0x00000100
+   EPWM3                      : origin = 0x00004200, length = 0x00000100
+   EPWM4                      : origin = 0x00004300, length = 0x00000100
+   EPWM5                      : origin = 0x00004400, length = 0x00000100
+   EPWM6                      : origin = 0x00004500, length = 0x00000100
+   EPWM7                      : origin = 0x00004600, length = 0x00000100
+   EPWM8                      : origin = 0x00004700, length = 0x00000100
+   EPWM9                      : origin = 0x00004800, length = 0x00000100
+   EPWM10                     : origin = 0x00004900, length = 0x00000100
+   EPWM11                     : origin = 0x00004A00, length = 0x00000100
+   EPWM12                     : origin = 0x00004B00, length = 0x00000100
+   EQEP1                      : origin = 0x00005100, length = 0x00000022
+   EQEP2                      : origin = 0x00005140, length = 0x00000022
+   EQEP3                      : origin = 0x00005180, length = 0x00000022
+   FLASH0CTRL                 : origin = 0x0005F800, length = 0x00000182
+   FLASH0ECC                  : origin = 0x0005FB00, length = 0x00000028
+   FLASHPUMPSEMAPHORE         : origin = 0x00050024, length = 0x00000002
+   GPIODATA                   : origin = 0x00007F00, length = 0x00000030
+   I2CA                       : origin = 0x00007300, length = 0x00000022
+   I2CB                       : origin = 0x00007340, length = 0x00000022
+   IPC                        : origin = 0x00050000, length = 0x00000024
+   MEMORYERROR                : origin = 0x0005F500, length = 0x00000040
+   MEMCFG                     : origin = 0x0005F400, length = 0x00000080
+   MCBSPA                     : origin = 0x00006000, length = 0x00000024
+   MCBSPB                     : origin = 0x00006040, length = 0x00000024
+   NMIINTRUPT                 : origin = 0x00007060, length = 0x00000007
+   PIECTRL                    : origin = 0x00000CE0, length = 0x0000001A
+   PIEVECTTABLE               : origin = 0x00000D00, length = 0x00000200
+   ROMPREFETCH                : origin = 0x0005E608, length = 0x00000002
+   SCIA                       : origin = 0x00007200, length = 0x00000010
+   SCIB                       : origin = 0x00007210, length = 0x00000010
+   SCIC                       : origin = 0x00007220, length = 0x00000010
+   SCID                       : origin = 0x00007230, length = 0x00000010
+   SDFM1                      : origin = 0x00005E00, length = 0x00000080
+   SDFM2                      : origin = 0x00005E80, length = 0x00000080
+   SPIA                       : origin = 0x00006100, length = 0x00000010
+   SPIB                       : origin = 0x00006110, length = 0x00000010
+   SPIC                       : origin = 0x00006120, length = 0x00000010
+   WD                         : origin = 0x00007000, length = 0x0000002B
+   XINT                       : origin = 0x00007070, length = 0x0000000B
+
+}
+
+
+SECTIONS
+{
+/*** PIE Vect Table and Boot ROM Variables Structures ***/
+UNION run = PIEVECTTABLE
+{
+    PieVectTableFile
+    GROUP
+    {
+        EmuKeyVar
+        EmuBModeVar
+        EmuBootPinsVar
+        FlashCallbackVar
+        FlashScalingVar
+    }
+}
+
+   AccessProtectionRegsFile   : > ACCESSPROTECTION, type=NOINIT
+   AdcaRegsFile               : > ADCA, type=NOINIT
+   AdcbRegsFile               : > ADCB, type=NOINIT
+   AdccRegsFile               : > ADCC, type=NOINIT
+   AdcdRegsFile               : > ADCD, type=NOINIT
+   AdcaResultRegsFile         : > ADCARESULT, type=NOINIT
+   AdcbResultRegsFile         : > ADCBRESULT, type=NOINIT
+   AdccResultRegsFile         : > ADCCRESULT, type=NOINIT
+   AdcdResultRegsFile         : > ADCDRESULT, type=NOINIT
+   CanaRegsFile               : > CANA, type=NOINIT
+   CanbRegsFile               : > CANB, type=NOINIT
+   Cla1RegsFile               : > CLA1, type=NOINIT
+   Clb1DataExchRegsFile       : > CLB1DATAEXCH, type=NOINIT
+   Clb2DataExchRegsFile       : > CLB2DATAEXCH, type=NOINIT
+   Clb3DataExchRegsFile       : > CLB3DATAEXCH, type=NOINIT
+   Clb4DataExchRegsFile       : > CLB4DATAEXCH, type=NOINIT
+   Clb1LogicCfgRegsFile       : > CLB1LOGICCFG, type=NOINIT
+   Clb2LogicCfgRegsFile       : > CLB2LOGICCFG, type=NOINIT
+   Clb3LogicCfgRegsFile       : > CLB3LOGICCFG, type=NOINIT
+   Clb4LogicCfgRegsFile       : > CLB4LOGICCFG, type=NOINIT
+   Clb1LogicCtrlRegsFile      : > CLB1LOGICCTRL, type=NOINIT
+   Clb2LogicCtrlRegsFile      : > CLB2LOGICCTRL, type=NOINIT
+   Clb3LogicCtrlRegsFile      : > CLB3LOGICCTRL, type=NOINIT
+   Clb4LogicCtrlRegsFile      : > CLB4LOGICCTRL, type=NOINIT
+   ClkCfgRegsFile             : > CLKCFG, type=NOINIT
+   Cmpss1RegsFile             : > CMPSS1, type=NOINIT
+   Cmpss2RegsFile             : > CMPSS2, type=NOINIT
+   Cmpss3RegsFile             : > CMPSS3, type=NOINIT
+   Cmpss4RegsFile             : > CMPSS4, type=NOINIT
+   Cmpss5RegsFile             : > CMPSS5, type=NOINIT
+   Cmpss6RegsFile             : > CMPSS6, type=NOINIT
+   Cmpss7RegsFile             : > CMPSS7, type=NOINIT
+   Cmpss8RegsFile             : > CMPSS8, type=NOINIT
+   CpuTimer0RegsFile          : > CPUTIMER0, type=NOINIT
+   CpuTimer1RegsFile          : > CPUTIMER1, type=NOINIT
+   CpuTimer2RegsFile          : > CPUTIMER2, type=NOINIT
+   CpuSysRegsFile             : > CPUSYS, type=NOINIT
+   DacaRegsFile               : > DACA, type=NOINIT
+   DacbRegsFile               : > DACB, type=NOINIT
+   DaccRegsFile               : > DACC, type=NOINIT
+   DcsmCommonRegsFile         : > DCSMCOMMON, type=NOINIT
+   DcsmZ1RegsFile             : > DCSMZ1, type=NOINIT
+   DcsmZ2RegsFile             : > DCSMZ2, type=NOINIT
+   DmaClaSrcSelRegsFile       : > DMACLASRCSEL, type=NOINIT
+   DmaRegsFile                : > DMA, type=NOINIT
+   ECap1RegsFile              : > ECAP1, type=NOINIT
+   ECap2RegsFile              : > ECAP2, type=NOINIT
+   ECap3RegsFile              : > ECAP3, type=NOINIT
+   ECap4RegsFile              : > ECAP4, type=NOINIT
+   ECap5RegsFile              : > ECAP5, type=NOINIT
+   ECap6RegsFile              : > ECAP6, type=NOINIT
+   Emif1ConfigRegsFile        : > EMIF1CONFIG, type=NOINIT
+   Emif1RegsFile              : > EMIF1, type=NOINIT
+   EPwm1RegsFile              : > EPWM1, type=NOINIT
+   EPwm2RegsFile              : > EPWM2, type=NOINIT
+   EPwm3RegsFile              : > EPWM3, type=NOINIT
+   EPwm4RegsFile              : > EPWM4, type=NOINIT
+   EPwm5RegsFile              : > EPWM5, type=NOINIT
+   EPwm6RegsFile              : > EPWM6, type=NOINIT
+   EPwm7RegsFile              : > EPWM7, type=NOINIT
+   EPwm8RegsFile              : > EPWM8, type=NOINIT
+   EPwm9RegsFile              : > EPWM9, type=NOINIT
+   EPwm10RegsFile             : > EPWM10, type=NOINIT
+   EPwm11RegsFile             : > EPWM11, type=NOINIT
+   EPwm12RegsFile             : > EPWM12, type=NOINIT
+   EQep1RegsFile              : > EQEP1, type=NOINIT
+   EQep2RegsFile              : > EQEP2, type=NOINIT
+   EQep3RegsFile              : > EQEP3, type=NOINIT
+   Flash0CtrlRegsFile         : > FLASH0CTRL, type=NOINIT
+   Flash0EccRegsFile          : > FLASH0ECC, type=NOINIT
+   FlashPumpSemaphoreRegsFile : > FLASHPUMPSEMAPHORE, type=NOINIT
+   GpioDataRegsFile           : > GPIODATA, type=NOINIT
+   I2caRegsFile               : > I2CA, type=NOINIT
+   I2cbRegsFile               : > I2CB, type=NOINIT
+   IpcRegsFile                : > IPC, type=NOINIT
+   MemoryErrorRegsFile        : > MEMORYERROR, type=NOINIT
+   MemCfgRegsFile             : > MEMCFG, type=NOINIT
+   McbspaRegsFile             : > MCBSPA, type=NOINIT
+   McbspbRegsFile             : > MCBSPB, type=NOINIT
+   NmiIntruptRegsFile         : > NMIINTRUPT, type=NOINIT
+   PieCtrlRegsFile            : > PIECTRL, type=NOINIT
+   PieVectTableFile           : > PIEVECTTABLE, type=NOINIT
+   RomPrefetchRegsFile        : > ROMPREFETCH, type=NOINIT
+   SciaRegsFile               : > SCIA, type=NOINIT
+   ScibRegsFile               : > SCIB, type=NOINIT
+   ScicRegsFile               : > SCIC, type=NOINIT
+   ScidRegsFile               : > SCID, type=NOINIT
+   Sdfm1RegsFile              : > SDFM1, type=NOINIT
+   Sdfm2RegsFile              : > SDFM2, type=NOINIT
+   SpiaRegsFile               : > SPIA, type=NOINIT
+   SpibRegsFile               : > SPIB, type=NOINIT
+   SpicRegsFile               : > SPIC, type=NOINIT
+   WdRegsFile                 : > WD, type=NOINIT
+   XintRegsFile               : > XINT, type=NOINIT
+}
+
+/*
+//===========================================================================
+// End of file.
+//===========================================================================
+*/
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/include/Cpu2DeviceDefine.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/include/Cpu2DeviceDefine.h
@@ -0,0 +1,33 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : DeviceDefine.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef _DEVICE_DEFINE_H_
+#define _DEVICE_DEFINE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+//------------------  ADDRESS DEFINE END----------------------------
+#include "easy28x_driverlib_v10.8.h"
+#include "CodeLibrary.h"
+#include "CommonLib.h"
+//--------------------------------------------//
+
+#include "Cpu2DmaSet.h"
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* _DEVICE_DEFINE_H_ */
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/include/Cpu2DmaSet.h (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/include/Cpu2DmaSet.h
@@ -0,0 +1,50 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Dma_Map.h
+//          Created on : 2022. 9. 29.
+//         Description : 
+//              Author : "Kim Jeong-Woo"
+//  Last modified Date : 
+//-------------------------------------------------------//
+#ifndef MAIN_RESOURCE_INCLUDE_DMA_H_
+#define MAIN_RESOURCE_INCLUDE_DMA_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+
+
+#pragma SET_DATA_SECTION("DMARAM1")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM3")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM2")
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION("DMARAM4")
+
+#pragma SET_DATA_SECTION()
+
+extern void InitDma(void);
+extern void InitDma1(void);
+extern void InitDma2(void);
+extern void InitDma3(void);
+extern void InitDma4(void);
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /* MAIN_RESOURCE_INCLUDE_DMA_H_ */
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/Cpu2DmaSet.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/Cpu2DmaSet.cpp
@@ -0,0 +1,117 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Dma.cpp
+//          Created on : 2022. 9. 29.
+//         Description : 
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "Cpu2DeviceDefine.h"
+
+//-------------------------------------------------------------------//
+// DMA를 사용하려고 하는 메모리의 영역이 DMA를 지원하는지 확인해야함 //
+// EX) Flash 영역에서는 DMA 사용 안됨, LS메모리도 마찬가지           //
+//                                                                   //
+//-------------------------------------------------------------------//
+
+
+void DmaVariableInit()
+{
+//    memset(&Dma1, 0, (sizeof(Dma1) / sizeof(int)));
+//    memset(&Dma3, 0, (sizeof(Dma3) / sizeof(int)));
+//    memset(&Ai, 0, (sizeof(Ai) / sizeof(int)));
+//    memset(&IntAi, 0, (sizeof(IntAi) / sizeof(int)));
+}
+
+void InitDma()
+{
+    SysCtl_selectSecMaster(0, SYSCTL_SEC_MASTER_DMA);
+
+    DMA_initController();
+
+    DmaVariableInit();
+
+    InitDma1();
+    InitDma2();
+    InitDma3();
+    InitDma4();
+
+}
+
+//DMA1, DI, AD_FLT, GATE_FLT
+void InitDma1()
+{
+//	DMA_configAddresses(DMA_CH1_BASE, &Dma1, (const void*)(CS_FPGA + CS_FPGA_READ_OFFSET));
+//	DMA_configBurst(DMA_CH1_BASE, 4, 1, 1);
+//	DMA_configTransfer(DMA_CH1_BASE, 1, 1, 1);
+//	DMA_configWrap(DMA_CH1_BASE, 0xFFFF, 0, 0xFFFF, 0);
+//	DMA_configMode(DMA_CH1_BASE, DMA_TRIGGER_XINT1, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE));
+////	DMA_setPriorityMode(1);
+//	DMA_setInterruptMode(DMA_CH1_BASE, DMA_INT_AT_END);
+//	DMA_enableTrigger(DMA_CH1_BASE);
+//	DMA_enableInterrupt(DMA_CH1_BASE);
+//	DMA_startChannel(DMA_CH1_BASE);
+//
+//	Interrupt_register(INT_DMA_CH1, &Dma1_Isr);
+//	Interrupt_enable(INT_DMA_CH1);
+}
+
+
+// DMA2 = External ADC
+void InitDma2()
+{
+//	DMA_configAddresses(DMA_CH2_BASE, &Ai, (const void*)(CS_FPGA + CS_FPGA_ADC_READ_OFFSET));
+//	DMA_configBurst(DMA_CH2_BASE, 6, 0, 1);
+//	DMA_configTransfer(DMA_CH2_BASE, 6, 1, 1);
+//	DMA_configWrap(DMA_CH2_BASE, 0xFFFF, 0, 0xFFFF, 0);
+//	DMA_configMode(DMA_CH2_BASE, DMA_TRIGGER_XINT2, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE | DMA_CFG_SIZE_16BIT));
+//	DMA_setInterruptMode(DMA_CH2_BASE, DMA_INT_AT_END);
+//	DMA_enableTrigger(DMA_CH2_BASE);
+//	DMA_enableInterrupt(DMA_CH2_BASE);
+//	DMA_startChannel(DMA_CH2_BASE);
+//
+//	Interrupt_register(INT_DMA_CH2, &Dma2_Isr);
+//	Interrupt_enable(INT_DMA_CH2);
+}
+
+// DMA3 PWM, DO, RSV, DAC, WD.....
+void InitDma3()
+{
+//	DMA_configAddresses(DMA_CH3_BASE, (const void*)(CS_FPGA + CS_FPGA_WRITE_OFFSET), &Dma3);
+//	DMA_configBurst(DMA_CH3_BASE, 23, 1, 1);
+//	DMA_configTransfer(DMA_CH3_BASE, 2, 1, 1);
+//	DMA_configWrap(DMA_CH3_BASE, 0xFFFF, 0, 0xFFFF, 0);
+//	DMA_configMode(DMA_CH3_BASE, DMA_TRIGGER_SOFTWARE, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE | DMA_CFG_SIZE_16BIT));
+//	DMA_setInterruptMode(DMA_CH3_BASE, DMA_INT_AT_END);
+//	DMA_enableTrigger(DMA_CH3_BASE);
+//	DMA_enableInterrupt(DMA_CH3_BASE);
+//	DMA_startChannel(DMA_CH3_BASE);
+//
+//	Interrupt_register(INT_DMA_CH3, &Dma3_Isr);
+//	Interrupt_enable(INT_DMA_CH3);
+}
+
+
+//DMA3 = Internal ADC Read
+// ADCA Interrupt 1번이 체널이 제일 많아 오래걸리므로 ADCA1번 기준으로 설정
+
+
+void InitDma4()
+{
+//	DMA_configAddresses(DMA_CH4_BASE, &AdcData, (const void*)ADCARESULT_BASE);
+//	DMA_configBurst(DMA_CH4_BASE, 8, 1, 1);
+//	DMA_configTransfer(DMA_CH4_BASE, 4, 0x19, 1);
+//	DMA_configWrap(DMA_CH4_BASE, 0xFFFF, 0, 0xFFFF, 0);
+//	DMA_configMode(DMA_CH4_BASE, DMA_TRIGGER_ADCA1, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE | DMA_CFG_SIZE_16BIT));
+//	DMA_setInterruptMode(DMA_CH4_BASE, DMA_INT_AT_END);
+//	DMA_enableTrigger(DMA_CH4_BASE);
+//	DMA_enableInterrupt(DMA_CH4_BASE);
+//	DMA_startChannel(DMA_CH4_BASE);
+//
+//	Interrupt_register(INT_DMA_CH4, &NtcRead);
+//	Interrupt_enable(INT_DMA_CH4);
+}
+
+
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/Cpu2Main.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/Cpu2Main.cpp
@@ -0,0 +1,135 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : CPU1_Main.cpp
+//          Created on : 2022. 9. 22.
+//         Description : 
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+interrupt void Cpu2EIpc1Isr(void);
+#pragma SET_CODE_SECTION()
+
+int main(void)
+{
+
+	CpuInfo();
+
+	Device_init();
+	Interrupt_initModule();
+	Interrupt_initVectorTable();
+
+	easyDSP_Boot_Sync();
+
+	DEVICE_DELAY_US(1000L);
+//	Interrupt_enable(INT_EPWM1);
+//	Interrupt_register(INT_EPWM1, &Cpu2Epwm1Isr);
+
+	IPC_clearFlagLtoR(IPC_CPU2_L_CPU1_R, IPC_FLAG_ALL);
+	Interrupt_register(INT_IPC_0, &Cpu2EIpc1Isr);
+	Interrupt_enable(INT_IPC_0);
+
+//    Interrupt_enable(INT_CANA0);
+//    Interrupt_register(INT_CANA0, &CanBeRxIsr);
+//    Interrupt_enable(INT_CANB0);
+//    Interrupt_register(INT_CANB0, &CanMeRxIsr);
+	InitTimeSharing(20.0e3);
+
+	GPIO_writePin(45, 1);
+//	InitDma();
+	InitCan();
+
+//	InitModbusSci();
+
+	InitNtcTable();
+
+//	easyDSP_SCI_Init();
+	Interrupt_enableMaster();
+
+
+	EINT;
+	ERTM;
+
+	for (;;)
+	{
+
+		if (OS_Time.T500us.Flag == 1)
+		{
+			RoutineT500us();
+			OS_Time.T500us.Flag = 0;
+		}
+        else if (OS_Time.T1ms.Flag == 1)
+        {
+            RoutineT1ms();          // 1ms routine
+            OS_Time.T1ms.Flag = 0;
+        }
+		else if (OS_Time.T2ms.Flag == 1)
+		{
+			RoutineT2ms();          // 2ms routine
+			OS_Time.T2ms.Flag = 0;
+		}
+		else if (OS_Time.T10ms.Flag == 1)
+		{
+			RoutineT10ms();
+			OS_Time.T10ms.Flag = 0;
+
+
+		}
+		else if (OS_Time.T100ms.Flag == 1)
+		{
+//			GPIO_togglePin(45);
+			RoutineT100ms();
+			OS_Time.T100ms.Flag = 0;
+
+
+		}
+		else if (OS_Time.T500ms.Flag == 1)
+		{
+			RoutineT500ms();
+			OS_Time.T500ms.Flag = 0;
+
+		}
+		else if (OS_Time.T1s.Flag == 1)
+		{
+			RoutineT1s();
+			OS_Time.T1s.Flag = 0;
+		}
+
+	}
+
+//	return 0;
+}
+
+unsigned int Cpu2Epwm1IsrCnt = 0;
+
+interrupt void Cpu2EIpc1Isr(void)
+{
+	Cpu2Epwm1IsrCnt++;
+
+    OS_Time.Sharing();
+    RoutineTsamp();
+
+    ModbusALLCheckBuffer();
+
+
+//    EPWM_clearEventTriggerInterruptFlag(EPWM1_BASE);
+//    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP3);
+
+    IPC_ackFlagRtoL(IPC_CPU2_L_CPU1_R, IPC_FLAG0);
+    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1);
+
+
+}
+
+
+
+
+
+
+
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT100ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT100ms.cpp
@@ -0,0 +1,24 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT100ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu2DeviceDefine.h"
+
+
+void RoutineT100ms()
+{
+
+
+	ModbusARxDataUpdate();
+	ModbusATxDataUpdate();
+
+	NtcRead();
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT10ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT10ms.cpp
@@ -0,0 +1,19 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT10ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+void RoutineT10ms()
+{
+
+}
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT1ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT1ms.cpp
@@ -0,0 +1,19 @@
+
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT1ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+void RoutineT1ms()
+{
+
+}
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT2ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT2ms.cpp
@@ -0,0 +1,21 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT2ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+void RoutineT2ms()
+{
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT500ms.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT500ms.cpp
@@ -0,0 +1,29 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT500ms.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+
+void RoutineT500ms()
+{
+	RmsAvgCal();
+
+}
+
+
+void RoutineT1s()
+{
+
+
+
+}
+
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT500us.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineT500us.cpp
@@ -0,0 +1,17 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineT500us.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#include "Cpu2DeviceDefine.h"
+
+
+
+void RoutineT500us()
+{
+	ModbusALLResponse();
+}
+
 
ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineTsamp.cpp (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/Main_Resource/source/RoutineTsamp.cpp
@@ -0,0 +1,23 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : RoutineTsamp.cpp
+//          Created on : 2023. 8. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Cpu2DeviceDefine.h"
+
+
+
+void RoutineTsamp()
+{
+
+	RmsAvgSum();
+
+
+
+
+}
+
 
ArcCTRL-23-NEXTSQ-CPU2/V2H_2837xD_FLASH_lnk_cpu2.cmd (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/V2H_2837xD_FLASH_lnk_cpu2.cmd
@@ -0,0 +1,167 @@
+
+MEMORY
+{
+PAGE 0 :
+   /* BEGIN is used for the "boot to SARAM" bootloader mode   */
+
+   BEGIN			: origin = 0x080000, length = 0x000002
+
+   RAMLS012         : origin = 0x008000, length = 0x001800
+// RAMLS1          	: origin = 0x008800, length = 0x000800
+// RAMLS2      		: origin = 0x009000, length = 0x000800
+
+
+   RAMGS14      	: origin = 0x01A000, length = 0x001000     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
+   RAMGS15          : origin = 0x01B000, length = 0x000FF8     /* Only Available on F28379D, F28377D, F28375D devices. Remove line on other devices. */
+
+// RAMGS15_RSVD     : origin = 0x01BFF8, length = 0x000008    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+
+   RESET       		: origin = 0x3FFFC0, length = 0x000002
+
+   /* Flash sectors */
+   FLASHA           : origin = 0x080002, length = 0x001FFE	/* on-chip Flash */
+   FLASHB           : origin = 0x082000, length = 0x002000	/* on-chip Flash */
+   FLASHC           : origin = 0x084000, length = 0x002000	/* on-chip Flash */
+   FLASHD           : origin = 0x086000, length = 0x002000	/* on-chip Flash */
+   FLASHE           : origin = 0x088000, length = 0x008000	/* on-chip Flash */
+   FLASHF           : origin = 0x090000, length = 0x008000	/* on-chip Flash */
+   FLASHG           : origin = 0x098000, length = 0x008000	/* on-chip Flash */
+   FLASHH           : origin = 0x0A0000, length = 0x008000	/* on-chip Flash */
+   FLASHI           : origin = 0x0A8000, length = 0x008000	/* on-chip Flash */
+   FLASHJ           : origin = 0x0B0000, length = 0x008000	/* on-chip Flash */
+   FLASHK           : origin = 0x0B8000, length = 0x002000	/* on-chip Flash */
+   FLASHL           : origin = 0x0BA000, length = 0x002000	/* on-chip Flash */
+   FLASHM           : origin = 0x0BC000, length = 0x002000	/* on-chip Flash */
+
+
+//   FLASHN_RSVD     : origin = 0x0BFFF0, length = 0x000010    /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+
+PAGE 1 :
+
+   BOOT_RSVD		: origin = 0x000002, length = 0x0000A0     /* Part of M0, BOOT rom will use this for stack */
+   RAMM0           	: origin = 0x0000A2, length = 0x00035E
+   RAMM1			: origin = 0x000400, length = 0x0003F8     /* on-chip RAM block M1 */
+// RAMM1_RSVD		: origin = 0x0007F8, length = 0x000008     /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
+   RAMD0           	: origin = 0x00B000, length = 0x000800
+   RAMD1			: origin = 0x00B800, length = 0x000800
+
+   RAMLS3      		: origin = 0x009800, length = 0x000800
+   RAMLS4      	  	: origin = 0x00A000, length = 0x000800
+   RAMLS5          	: origin = 0x00A800, length = 0x000800
+
+   //CPU1
+   RAMGS0			: origin = 0x00C000, length = 0x001000
+   RAMGS1			: origin = 0x00D000, length = 0x001000
+   RAMGS2			: origin = 0x00E000, length = 0x001000
+   RAMGS3			: origin = 0x00F000, length = 0x001000
+   RAMGS4			: origin = 0x010000, length = 0x001000
+   RAMGS5			: origin = 0x011000, length = 0x001000
+   RAMGS6			: origin = 0x012000, length = 0x001000
+   //CPU2
+   RAMGS7			: origin = 0x013000, length = 0x001000
+   RAMGS8			: origin = 0x014000, length = 0x001000
+   RAMGS9			: origin = 0x015000, length = 0x001000
+   RAMGS10			: origin = 0x016000, length = 0x001000
+   RAMGS11			: origin = 0x017000, length = 0x001000
+   RAMGS12			: origin = 0x018000, length = 0x001000
+   RAMGS13			: origin = 0x019000, length = 0x001000
+
+   CPU2TOCPU1RAM	: origin = 0x03F800, length = 0x000400
+   CPU1TOCPU2RAM	: origin = 0x03FC00, length = 0x000400
+
+   FLASHN			: origin = 0x0BE000, length = 0x001FF0	/* on-chip Flash */ //for FpuTable
+}
+
+SECTIONS
+{
+   /* Allocate program areas: */
+   	.cinit				: > FLASHB		PAGE = 0, ALIGN(8)
+	.pinit				: > FLASHB,		PAGE = 0, ALIGN(8)
+   	.text				: >> FLASHB | FLASHC | FLASHD | FLASHE	PAGE = 0, ALIGN(8)
+    codestart			: > BEGIN       PAGE = 0, ALIGN(8)
+
+   /* Allocate uninitalized data sections: */
+	.stack				: > RAMM1		PAGE = 1
+	.ebss				: >> RAMLS3 | RAMLS4 | RAMLS5,	PAGE = 1
+	.esysmem			: > RAMLS5,		PAGE = 1
+	.cio				: > RAMLS5,		PAGE = 1
+
+	/* Initalized sections go in Flash */
+	.econst				: >> FLASHF		PAGE = 0, ALIGN(8)
+	.switch				: > FLASHB		PAGE = 0, ALIGN(8)
+	.reset				: > RESET,		PAGE = 0, TYPE = DSECT /* not used, */
+
+
+ 	.TI.ramfunc : {} 	LOAD = FLASHD,
+    					RUN = RAMLS012,
+                        LOAD_START(_RamfuncsLoadStart),
+                        LOAD_SIZE(_RamfuncsLoadSize),
+                        LOAD_END(_RamfuncsLoadEnd),
+                        RUN_START(_RamfuncsRunStart),
+                        RUN_SIZE(_RamfuncsRunSize),
+                        RUN_END(_RamfuncsRunEnd),
+                        PAGE = 0, ALIGN(8)
+
+	FPUmathTables : {} 	LOAD = FLASHN,
+						RUN = RAMD0,
+					  	RUN_START(_FPUmathTablesRunStart),
+					  	LOAD_START(_FPUmathTablesLoadStart),
+					  	LOAD_SIZE(_FPUmathTablesLoadSize),
+					  	PAGE = 1, ALIGN(8)
+
+
+	MSGRAM_CPU1_TO_CPU2	 : > CPU1TOCPU2RAM, PAGE = 1
+	MSGRAM_CPU2_TO_CPU1	 : > CPU2TOCPU1RAM, PAGE = 1
+
+
+
+	DMARAM1  : > RAMGS10, PAGE = 1
+	DMARAM2  : > RAMGS10, PAGE = 1
+	DMARAM3  : > RAMGS10, PAGE = 1
+	DMARAM4  : > RAMGS10, PAGE = 1
+
+
+	//only Cpu2 can access
+	.CpuInfo 		: > RAMLS5, PAGE = 1
+	.TimeSharing 	: > RAMLS5, PAGE = 1
+	//-------------------------------------------------------------//
+
+	//CPU1 RW, CPU2 R Memory
+	.AdcLib		: > RAMGS6, PAGE = 1
+	.SystemVar	: > RAMGS6, PAGE = 1
+	.Fault		: > RAMGS6, PAGE = 1
+	.Scale 		: > RAMGS6, PAGE = 1
+	.Status		: > RAMGS6, PAGE = 1
+	.IntTemp	: > RAMGS6, PAGE = 1
+	.ModbusData	: > RAMGS6, PAGE = 1
+
+	//CPU2 RW, CPU1 R Memory
+	.RmsAvg 	: > RAMGS13, PAGE = 1
+	.TempData	: > RAMGS13, PAGE = 1
+	.CanLib	   	: > RAMGS13, PAGE = 1
+	.CanMeData 	: > RAMGS13, PAGE = 1
+	.CanBeData 	: > RAMGS13, PAGE = 1
+	.Modbus		: > RAMGS13, PAGE = 1
+
+//-------------------------------------------------------------//
+   /* The following section definitions are required when using the IPC API Drivers */
+    GROUP : > CPU2TOCPU1RAM, PAGE = 1
+    {
+        PUTBUFFER
+        PUTWRITEIDX
+        GETREADIDX
+    }
+
+    GROUP : > CPU1TOCPU2RAM, PAGE = 1
+    {
+        GETBUFFER :    TYPE = DSECT
+        GETWRITEIDX :  TYPE = DSECT
+        PUTREADIDX :   TYPE = DSECT
+    }
+}
+
+/*
+//===========================================================================
+// End of file.
+//===========================================================================
+*/
 
ArcCTRL-23-NEXTSQ-CPU2/targetConfigs/TMS320F28377D.ccxml (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/targetConfigs/TMS320F28377D.ccxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+    <configuration XML_version="1.2" id="configuration_0">
+        <instance XML_version="1.2" desc="Spectrum Digital XDS560V2 STM USB Emulator" href="connections/SD560V2USB_Connection.xml" id="Spectrum Digital XDS560V2 STM USB Emulator" xml="SD560V2USB_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Spectrum Digital XDS560V2 STM USB Emulator">
+            <instance XML_version="1.2" href="drivers/tixds560icepick_c.xml" id="drivers" xml="tixds560icepick_c.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560c28x.xml" id="drivers" xml="tixds560c28x.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560cla1.xml" id="drivers" xml="tixds560cla1.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds560cs_child.xml" id="drivers" xml="tixds560cs_child.xml" xmlpath="drivers"/>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="TMS320F28377D" href="devices/tms320f28377d.xml" id="TMS320F28377D" xml="tms320f28377d.xml" xmlpath="devices"/>
+                <device HW_revision="1" XML_version="1.2" description="" id="TMS320F28377D" partnum="TMS320F28377D">
+                    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C router" id="IcePick_C_0" isa="ICEPICK_C">
+                        <subpath id="Subpath_1">
+                            <property Type="numericfield" Value="0x11" desc="Port Number_0" id="Port Number"/>
+                        </subpath>
+                    </router>
+                </device>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>
 
ArcCTRL-23-NEXTSQ-CPU2/targetConfigs/readme.txt (added)
+++ ArcCTRL-23-NEXTSQ-CPU2/targetConfigs/readme.txt
@@ -0,0 +1,9 @@
+The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based
+on the device and connection settings specified in your project on the Properties > General page.
+
+Please note that in automatic target-configuration management, changes to the project's device and/or
+connection settings will either modify an existing or generate a new target-configuration file. Thus,
+if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively,
+you may create your own target-configuration file for this project and manage it manually. You can
+always switch back to automatic target-configuration management by checking the "Manage the project's
+target-configuration automatically" checkbox on the project's Properties > General page.(파일 끝에 줄바꿈 문자 없음)
 
Common_Resource/CodeLibrary/.ccsproject (added)
+++ Common_Resource/CodeLibrary/.ccsproject
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<ccsVersion value="12.3.0"/>
+	<deviceVariant value="TMS320C28XX.TMS320F28377D"/>
+	<deviceFamily value="C2000"/>
+	<deviceEndianness value="little"/>
+	<codegenToolVersion value="22.6.0.LTS"/>
+	<isElfFormat value="false"/>
+	<createSlaveProjects value=""/>
+	<templateProperties value="id=com.ti.common.project.core.emptyProjectTemplate"/>
+	<filesToOpen value=""/>
+</projectOptions>
 
Common_Resource/CodeLibrary/.cproject (added)
+++ Common_Resource/CodeLibrary/.cproject
@@ -0,0 +1,135 @@
+<?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.ti.ccstudio.buildDefinitions.C2000.Debug.481227736">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.481227736" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="lib" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Debug.481227736" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C2000.Debug">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Debug.481227736." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.libraryDebugToolchain.1779907368" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.libraryDebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianDebug.1326696948">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1614823557" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID="/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=staticLibrary"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.686002378" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.targetPlatformDebug.471694634" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.targetPlatformDebug"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.builderDebug.2017909000" keepEnvironmentInBuildfile="false" name="GNU Make" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.builderDebug"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.compilerDebug.1253913672" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.compilerDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.1531057239" name="Option deprecated, set by default (--large_memory_model, -ml)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.1774406" name="Unified memory (--unified_memory, -mt)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.2119820736" name="Processor version (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.1563940131" name="Specify floating point support (--float_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1979756594" name="Specify CLA support (--cla_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.425723612" name="Specify VCU support (--vcu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.860048800" name="Specify TMU support (--tmu_support)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.1512174653" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.1684664076" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" useByScannerDiscovery="false" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.457628334" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.1253757588" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.476657087" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.1778942514" name="Application binary interface [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.379086044" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.292776831" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_FOR_SPEED.0" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.1581382537" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OPT_LEVEL.3" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.696547452" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.1964787623" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.276108219" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.1744222075" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianDebug.1326696948" name="C2000 Archiver" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianDebug">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.archiverID.OUTPUT_FILE.1053358065" name="Output file" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.archiverID.OUTPUT_FILE" useByScannerDiscovery="false" value="${ProjName}.lib" valueType="string"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+		<cconfiguration id="com.ti.ccstudio.buildDefinitions.C2000.Release.451006761">
+			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C2000.Release.451006761" moduleId="org.eclipse.cdt.core.settings" name="Release">
+				<externalSettings/>
+				<extensions>
+					<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+					<extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+				<configuration artifactExtension="lib" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C2000.Release.451006761" name="Release" parent="com.ti.ccstudio.buildDefinitions.C2000.Release">
+					<folderInfo id="com.ti.ccstudio.buildDefinitions.C2000.Release.451006761." name="/" resourcePath="">
+						<toolChain id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.ReleaseToolchain.1438455741" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianRelease.72530162">
+							<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.172522227" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+								<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C28XX.TMS320F28377D"/>
+								<listOptionValue builtIn="false" value="DEVICE_CORE_ID="/>
+								<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>
+								<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+								<listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+								<listOptionValue builtIn="false" value="OUTPUT_TYPE=staticLibrary"/>
+								<listOptionValue builtIn="false" value="PRODUCTS="/>
+								<listOptionValue builtIn="false" value="PRODUCT_MACRO_IMPORTS={}"/>
+							</option>
+							<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.152891223" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="22.6.0.LTS" valueType="string"/>
+							<targetPlatform id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.targetPlatformRelease.1596951938" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.targetPlatformRelease"/>
+							<builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.builderRelease.1010902584" name="GNU Make.Release" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.builderRelease"/>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.compilerRelease.143520485" name="C2000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.compilerRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL.1087349893" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.LARGE_MEMORY_MODEL" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY.2022034764" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.UNIFIED_MEMORY" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.1671667032" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.SILICON_VERSION.28" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.2066784967" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FLOAT_SUPPORT.fpu32" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.1008330494" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.CLA_SUPPORT.cla1" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.1039609819" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.VCU_SUPPORT.vcu2" valueType="enumerated"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.580705894" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.TMU_SUPPORT.tmu0" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING.1202823400" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WARNING" useByScannerDiscovery="false" valueType="stringList">
+									<listOptionValue builtIn="false" value="225"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.724969209" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.1940115282" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
+								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.1191072888" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
+									<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
+									<listOptionValue builtIn="false" value="${CG_TOOL_ROOT}/include"/>
+								</option>
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.626937096" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" useByScannerDiscovery="false" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.coffabi" valueType="enumerated"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.1639113755" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.1286139843" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.1026494801" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
+								<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS.973322631" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM2_SRCS"/>
+							</tool>
+							<tool id="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianRelease.72530162" name="C2000 Archiver" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.library.librarianRelease">
+								<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.archiverID.OUTPUT_FILE.1800176911" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.archiverID.OUTPUT_FILE" useByScannerDiscovery="false" value="${ProjName}.lib" valueType="string"/>
+							</tool>
+						</toolChain>
+					</folderInfo>
+				</configuration>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
+		<project id="CodeLibrary.com.ti.ccstudio.buildDefinitions.C2000.ProjectType.57556923" name="C2000" projectType="com.ti.ccstudio.buildDefinitions.C2000.ProjectType"/>
+	</storageModule>
+	<storageModule moduleId="scannerConfiguration"/>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+</cproject>(파일 끝에 줄바꿈 문자 없음)
 
Common_Resource/CodeLibrary/.gitignore (added)
+++ Common_Resource/CodeLibrary/.gitignore
@@ -0,0 +1,1 @@
+/Debug/
 
Common_Resource/CodeLibrary/.project (added)
+++ Common_Resource/CodeLibrary/.project
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>CodeLibrary</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.ti.ccstudio.core.ccsNature</nature>
+		<nature>org.eclipse.cdt.core.cnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+		<nature>org.eclipse.cdt.core.ccnature</nature>
+		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+	</natures>
+</projectDescription>
 
Common_Resource/CodeLibrary/.settings/org.eclipse.cdt.codan.core.prefs (added)
+++ Common_Resource/CodeLibrary/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+inEditor=false
+onBuild=false
 
Common_Resource/CodeLibrary/.settings/org.eclipse.cdt.debug.core.prefs (added)
+++ Common_Resource/CodeLibrary/.settings/org.eclipse.cdt.debug.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker
 
Common_Resource/CodeLibrary/.settings/org.eclipse.core.resources.prefs (added)
+++ Common_Resource/CodeLibrary/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,18 @@
+eclipse.preferences.version=1
+encoding//Debug/CRC/subdir_rules.mk=UTF-8
+encoding//Debug/CRC/subdir_vars.mk=UTF-8
+encoding//Debug/DigitalCtrl/subdir_rules.mk=UTF-8
+encoding//Debug/DigitalCtrl/subdir_vars.mk=UTF-8
+encoding//Debug/DigitalFilter/subdir_rules.mk=UTF-8
+encoding//Debug/DigitalFilter/subdir_vars.mk=UTF-8
+encoding//Debug/Ntc/subdir_rules.mk=UTF-8
+encoding//Debug/Ntc/subdir_vars.mk=UTF-8
+encoding//Debug/PLL/subdir_rules.mk=UTF-8
+encoding//Debug/PLL/subdir_vars.mk=UTF-8
+encoding//Debug/TimeSharing/subdir_rules.mk=UTF-8
+encoding//Debug/TimeSharing/subdir_vars.mk=UTF-8
+encoding//Debug/Util/subdir_rules.mk=UTF-8
+encoding//Debug/Util/subdir_vars.mk=UTF-8
+encoding//Debug/makefile=UTF-8
+encoding//Debug/objects.mk=UTF-8
+encoding//Debug/sources.mk=UTF-8
 
Common_Resource/CodeLibrary/CRC/CRC16.cpp (added)
+++ Common_Resource/CodeLibrary/CRC/CRC16.cpp
@@ -0,0 +1,65 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : CRC16.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <CodeLibMath.h>
+#include <CRC/CRC16.h>
+
+
+
+static const Uint8 CrcHi[256] =
+		{	0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x00, 0xC1,	0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+			0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,	0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 };
+
+static const Uint8 CrcLo[256] =
+		{ 	0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04,
+			0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8,
+			0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
+			0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10,
+			0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
+			0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
+			0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C,
+			0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0,
+			0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
+			0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9,	0xA8, 0x68,
+			0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C,
+			0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
+			0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54,
+			0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98,
+			0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+			0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 };
+
+Uint16 CRC16(Uint8 * pucFrame, Uint16 usLen)
+{
+	Uint16 ucCrcHi = 0xFF;
+	Uint16 ucCrcLo = 0xFF;
+	int Index;
+
+	while (usLen--)
+	{
+		Index = ucCrcLo ^ *(pucFrame++);
+		ucCrcLo = (Uint16) (ucCrcHi ^ CrcHi[Index]);
+		ucCrcHi = CrcLo[Index];
+	}
+	return ((Uint16) ucCrcHi << 8 | ucCrcLo);
+}
+
 
Common_Resource/CodeLibrary/CRC/CRC16.h (added)
+++ Common_Resource/CodeLibrary/CRC/CRC16.h
@@ -0,0 +1,27 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : CRC16.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#ifndef CRC_CRC16_H_
+#define CRC_CRC16_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+extern Uint16 CRC16(Uint8 * pucFrame, Uint16 usLen);
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /*  _CRC16_H_ */
 
Common_Resource/CodeLibrary/CodeLibMath.h (added)
+++ Common_Resource/CodeLibrary/CodeLibMath.h
@@ -0,0 +1,55 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : CodeLibMath.h
+//          Created on : 2022. 11. 5.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_CODELIBRARY_CODELIBMATH_H_
+#define COMMON_RESOURCE_CODELIBRARY_CODELIBMATH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef int                                     int16;
+typedef long                                    int32;
+typedef long long                               int64;
+typedef unsigned char      						Uint8;
+typedef unsigned int                            Uint16;
+typedef unsigned long                           Uint32;
+typedef unsigned long long                      Uint64;
+typedef float                                   float32;
+typedef long double                             float64;
+
+#include <stdint.h>
+typedef uint16_t uint8_t;
+typedef int16_t int8_t;
+
+
+#define PI          3.14159265358979323846
+#define INV_PI      0.31830988618379067153
+
+#define SQRT2       1.41421356237309504880
+#define SQRT3       1.73205080756887729352
+#define INV_SQRT2   0.70710678118654752440
+#define INV_SQRT3   0.57735026918962576450
+
+#define INV3        0.33333333333333333333
+
+#define BOUND_PI(x)	((x) + (((x) > PI) ? (-2. * PI) : ((x) < (-PI)) ? (2. * PI) : 0.))
+#define LIMITER(value,Upper,Lower)  ((value) > (Upper) ? (Upper) : (value) < (Lower) ? (Lower) : (value))
+
+#include "math.h"
+#include "Util/Util.h"
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_CODELIBMATH_H_ */
 
Common_Resource/CodeLibrary/CodeLibrary.h (added)
+++ Common_Resource/CodeLibrary/CodeLibrary.h
@@ -0,0 +1,48 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary Header
+//           File Name : CodeLibrary.h
+//          Created on : 2022. 11. 04.
+//         Description : 코드 라이브러리 헤더
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#ifndef CODELIBRARY_H_
+#define CODELIBRARY_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "CodeLibMath.h"
+
+//---------------PLL-------------------//
+#include "PLL/SoapPll3ph.h"
+#include "PLL/SogiPll3ph.h"
+#include "PLL/SogiFll1ph.h"
+
+//---------------Digital Controller-------//
+#include "DigitalCtrl/PiCtrl.h"
+#include "DigitalCtrl/HarRes.h"
+//---------------UTIL-------------------//
+#include "Util/Ramp.h"
+#include "Util/Util.h"
+//---------------CRC---------------------//
+#include "CRC/CRC16.h"
+
+//---------------Digital Filter----------//
+#include "DigitalFilter/Lpf.h"
+#include "DigitalFilter/Notch.h"
+
+//--------Time Sharing ------------------//
+#include "TimeSharing/TimeSharing.h"
+
+
+//---------------------NTC---------------//
+#include "Ntc/Ntc.h"
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* CODELIBRARY_H_ */
 
Common_Resource/CodeLibrary/DigitalCtrl/HarRes.cpp (added)
+++ Common_Resource/CodeLibrary/DigitalCtrl/HarRes.cpp
@@ -0,0 +1,180 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : HarRes.cpp
+//          Created on : 2022. 11. 5.
+//         Description : 고조파 제어기
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <CodeLibMath.h>
+#include <DigitalCtrl/HarRes.h>
+
+
+
+float sLeadCompensator::Run(float in)
+{
+	out = k1 * in;
+	out += k2 * inPrev;
+	out += k3 * outPrev;
+
+	// update compensator-variables
+	inPrev = in;
+	outPrev = out;
+
+	return out;
+}
+
+void sIinvHarRes::LeadCompUpdateGain()
+{
+	// gains for lead compensator in R controller
+	// d-axis gains
+
+	LeadCompd.WTcomp = Wr * Tsamp;
+	ThetaRes = 1.5 * LeadCompd.WTcomp;		// 1.5Tsamp digital delay is considered
+	ThetaRes = BOUND_PI(ThetaRes);
+	LeadCompd.SinComp = sin(ThetaRes);
+	LeadCompd.CosComp = 1. / cos(ThetaRes);
+
+	LeadCompd.ZT = LeadCompd.WTcomp * LeadCompd.CosComp * (1. - LeadCompd.SinComp) * 0.5;
+	LeadCompd.PT = LeadCompd.WTcomp * LeadCompd.CosComp * (1. + LeadCompd.SinComp) * 0.5;
+	LeadCompd.Kc = sqrt(LeadCompd.PT / LeadCompd.ZT);
+
+	LeadCompd.k1 = (1. + LeadCompd.ZT) * LeadCompd.Kc / (1. + LeadCompd.PT);
+	LeadCompd.k2 = (LeadCompd.ZT - 1.) * LeadCompd.Kc / (1. + LeadCompd.PT);
+	LeadCompd.k3 = (1. - LeadCompd.PT) / (1. + LeadCompd.PT);
+
+	// q-axis gains
+	LeadCompq.k1 = LeadCompd.k1;
+	LeadCompq.k2 = LeadCompd.k2;
+	LeadCompq.k3 = LeadCompd.k3;
+}
+
+void sIinvHarRes::Reset()
+{
+	Idr1 = 0.;
+	Idr2 = 0.;
+	Vdr1 = 0.;
+	Vdr2 = 0.;
+
+	Iqr1 = 0.;
+	Iqr2 = 0.;
+	Vqr1 = 0.;
+	Vqr2 = 0.;
+
+	VdssRef = 0.;
+	VqssRef = 0.;
+	VdssLead = 0.;
+	VqssLead = 0.;
+
+	LeadCompd.inPrev = 0.;
+	LeadCompd.outPrev = 0.;
+	LeadCompd.out = 0.;
+	LeadCompq.inPrev = 0.;
+	LeadCompq.outPrev = 0.;
+	LeadCompq.out = 0.;
+}
+
+void sIinvHarRes::Init(float mRc, float mOrder, float mWcc, float mWeRate, float mTsamp)
+{
+	Idr1 = 0.;
+	Idr2 = 0.;
+	Vdr1 = 0.;
+	Vdr2 = 0.;
+
+	Iqr1 = 0.;
+	Iqr2 = 0.;
+	Vqr1 = 0.;
+	Vqr2 = 0.;
+
+	VdssRef = 0.;
+	VqssRef = 0.;
+	VdssLead = 0.;
+	VqssLead = 0.;
+
+	LeadCompd.inPrev = 0.;
+	LeadCompd.outPrev = 0.;
+	LeadCompd.out = 0.;
+	LeadCompq.inPrev = 0.;
+	LeadCompq.outPrev = 0.;
+	LeadCompq.out = 0.;
+
+	Tsamp = mTsamp;
+	Wcc = mWcc;
+	Rc = mRc;
+	Kr = Rc * Wcc;
+	order = mOrder;
+	WeRate = mWeRate;
+	Wr = order * WeRate;
+	delay = 1.5;
+
+	// gains of R controller
+	Cr1 = tan( Wr * Tsamp * 0.5);
+	Cr2 = 1. -  Cr1 *  Cr1;
+	Cr3 = 1. +  Cr1 *  Cr1;
+	Kr1 =  Cr1 /  Wr /  Cr3;
+	Kr2 = 2. *  Cr2 /  Cr3;
+
+	LeadCompUpdateGain();
+
+} // initilize gains of resonant controller
+
+void sIinvHarRes::UpdateGain(float mWe_hat)
+{
+
+    Kr = Rc * Wcc;
+	// frequency updates
+	Wr = order * mWe_hat;
+
+	// gains of R controller
+	Cr1 = tan(Wr * Tsamp * 0.5);
+	Cr2 = 1. - Cr1 * Cr1;
+	Cr3 = 1. + Cr1 * Cr1;
+	// More simplified gain settings for R controller itself
+	Kr1 = Cr1 / Wr / Cr3;
+	Kr2 = 2. * Cr2 / Cr3;
+
+	LeadCompUpdateGain();
+}
+
+void sIinvHarRes::Run(float mIds, float mIqs)
+{
+
+	// error currents in the synchronous d-q reference frame
+	Idr = -Kr * mIds;
+	Iqr = -Kr * mIqs;
+
+	// d-axis harmonic voltage references
+	VdssRef = Kr1 * (Idr - Idr2);
+	VdssRef += Kr2 * Vdr1;
+	VdssRef -= Vdr2;
+
+	// q-axis harmonic voltage references
+	VqssRef = Kr1 * (Iqr - Iqr2);
+	VqssRef += Kr2 * Vqr1;
+	VqssRef -= Vqr2;
+
+	// update state variables for next sampling period
+	// d-axis
+	Idr2 = Idr1;
+	Idr1 = Idr;
+	Vdr2 = Vdr1;
+	Vdr1 = VdssRef;
+
+	// q-axis
+	Iqr2 = Iqr1;
+	Iqr1 = Iqr;
+	Vqr2 = Vqr1;
+	Vqr1 = VqssRef;
+
+	// lead compensator for digital delay in R controller
+	VdssLead = LeadCompd.Run(VdssRef);
+	VqssLead = LeadCompq.Run(VqssRef);
+
+	// limiter for voltage references of resonant controller
+	VdssLead = LIMITER(VdssLead, 20, -20);
+	VqssLead = LIMITER(VqssLead, 20, -20);
+
+}
+
+
 
Common_Resource/CodeLibrary/DigitalCtrl/HarRes.h (added)
+++ Common_Resource/CodeLibrary/DigitalCtrl/HarRes.h
@@ -0,0 +1,66 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : HarRes.h
+//          Created on : 2022. 11. 5.
+//         Description : 고조파 제어기
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef DIGITALCTRL_HARRES_H_
+#define DIGITALCTRL_HARRES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+//Resonant Control(SNU)
+struct sLeadCompensator
+{
+	float WTcomp, SinComp, CosComp, ZT, PT, Kc;
+	float k1, k2, k3;
+	float inPrev, outPrev;
+	float out;
+
+	float Run(float in);
+};
+
+struct sIinvHarRes
+{
+    float Rc;
+	float Wcc, Kr;
+	float Cr1, Cr2, Cr3, Wr;
+	float WeRate;
+	float Kr1, Kr2;
+	float Idr, Idr1, Idr2, Iqr, Iqr1, Iqr2;
+	float Vdr1, Vdr2, Vqr1, Vqr2;
+	float VdssRef, VqssRef;
+	float VdssLead;
+	float VqssLead;
+	float delay, order;
+
+	float Tsamp;
+	float ThetaRes;
+
+
+	void Init(float mRc, float mOrder, float mWcc, float mWeRate, float mTsamp);
+	void UpdateGain(float mWe_hat);
+	void Run(float mIds, float mIqs);
+	void Reset();
+
+	struct sLeadCompensator LeadCompd;
+	struct sLeadCompensator LeadCompq;
+	void LeadCompUpdateGain();
+
+};
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_HARRES_HARRES_H_ */
 
Common_Resource/CodeLibrary/DigitalCtrl/PiCtrl.cpp (added)
+++ Common_Resource/CodeLibrary/DigitalCtrl/PiCtrl.cpp
@@ -0,0 +1,42 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : PI_Ctrl.cpp
+//          Created on : 2019. 06. 07.
+//         Description : PI 제어기
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <CodeLibMath.h>
+#include <DigitalCtrl/PiCtrl.h>
+
+
+
+void sPiCtrl::Reset()
+{
+	Err = 0;
+	fb = 0;
+	Integ = 0;
+	out = 0;
+}
+
+float sPiCtrl::Run()
+{
+	Integ += Ki * (Err - Ka * (fb - out));
+//	Integ = LIMITER(Integ, PImax, PImin);
+	fb = Integ + Kp * Err + ff;	 // PI
+	out = LIMITER(fb, PiMax, PiMin);
+
+	return out;
+}
+
+void sPiCtrl::Init(float mKp, float mKi, float mKa, float mWc, float mTprd, float mPI_Max, float mPI_Min)
+{
+	Kp = mKp;
+	Ki = mKi;
+	Ka = mKa;
+	Wc = mWc;
+	Tprd = mTprd;
+	PiMax = mPI_Max;
+	PiMin = mPI_Min;
+}
 
Common_Resource/CodeLibrary/DigitalCtrl/PiCtrl.h (added)
+++ Common_Resource/CodeLibrary/DigitalCtrl/PiCtrl.h
@@ -0,0 +1,53 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : PiCtrl.h
+//          Created on : 2019. 06. 07.
+//         Description : PI 제어기
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef DIGITALCTRL_PICTRL_H_
+#define DIGITALCTRL_PICTRL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define PI_MODE 0
+#define IP_MODE 1
+
+
+struct sPiCtrl
+{
+	float Kp;		// 비례 게인
+	float Ki;		// 적분 게인
+	float Ka;		// 안티-와인드업 게인
+	float Wc;		// 제어기 대역폭
+	float ff;		// 피드포워드 항
+	float PiMax;	// 제어기 리미트 최대치
+	float PiMin;	// 제어기 리미트 최소치
+	float Err;		// 에러값
+	float Integ;	// 적분항
+	float fb;		// 피드백항
+	float out;		// 제어 출력값
+	float Tprd;		// 제어 주기
+	float ref;		// 지령치
+	float Val;		// 현재값
+
+
+	void Reset(void);		// 제어기 리셋
+	void Init(float mKp, float mKi, float mKa, float mWc,  float mTprd, float mPI_Max, float mPI_Min);		// 제어기 초기화
+	float Run();
+};
+
+//초기화 및 게인 업데이트는 각 상황마다 상이하므로 별도로 입력해 줄 것
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /*  _PI_CTRL_H_ */
 
Common_Resource/CodeLibrary/DigitalFilter/Lpf.cpp (added)
+++ Common_Resource/CodeLibrary/DigitalFilter/Lpf.cpp
@@ -0,0 +1,112 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Lpf.cpp
+//          Created on : 2022. 11. 5.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CodeLibMath.h"
+#include "DigitalFilter/Lpf.h"
+
+
+
+void sLpf1st::CoeffUpdate()
+{
+	Fcut = *pFcut;
+	Wc = 2. * PI * Fcut;
+	a1 = (2. - Wc * Tfsamp) / (2. + Wc * Tfsamp);
+	b0 = (Wc * Tfsamp) / (2. + Wc * Tfsamp);
+}
+
+void sLpf1st::Init(float *Fcutoff, float SamplingTime, float *InData)
+{
+	pInData = (float *) InData;
+	Tfsamp = SamplingTime;
+
+	Wc = 0.;
+	a1 = 0.;
+	b0 = 0.;
+
+	in = 0.;
+	old = 0.;
+	out = 0.;
+
+	pFcut = (float *) Fcutoff;
+
+	CoeffUpdate();
+}
+
+float sLpf1st::Run(void)
+{
+	in = *pInData;
+	out = a1 * out + b0 * (in + old);
+	old = in;
+
+	return out;
+}
+
+
+void sLpf2nd::CoeffUpdate()
+{
+    Fcut = (float)*pFcut;
+    Wc = 2. * PI * Fcut;
+    zeta = 1. / (2.*(float)*pQf);
+
+    d0 = Wc * Wc * Ts * Ts; // W^2 * Ts^2
+    d1 = 4. * zeta * Wc * Ts;   // 4 * zeta * omega *Tfsamp
+
+    a0 = (d0 + d1 + 4.);
+    a1 = (2. * d0 - 8.) / a0;
+    a2 = (d0 - d1 + 4.) / a0;
+    b0 = d0 / a0;
+    b1 = 2. * b0;
+    b2 = b0;
+
+}
+
+void sLpf2nd::Init(float* Fcutoff, float* Qf, float SamplingTime, float* InData)
+{
+    pInData = (float*)InData;
+    Ts = SamplingTime;
+    pQf = (float*)Qf;
+    zeta = 0.5 * (*pQf);
+    pFcut = (float*)Fcutoff;
+
+    Wc = 0.;
+    a0 = 0.;
+    a1 = 0.;
+    b0 = 0.;
+    b1 = 0.;
+    b2 = 0.;
+
+    in = 0.; // x[n]
+    in1 = 0.; // x[n-1]
+    in2 = 0.; // x[n-2]
+
+    out = 0.;  // y[n]
+    out1 = 0.;  // y[n-1]
+    out2 = 0.;  // y[n-2]
+
+    CoeffUpdate();
+}
+
+float sLpf2nd::Run(void)
+{
+    in = *pInData;
+    out = (b0 * in + b1 * in1 + b2 * in2) - (a1 * out1 + a2 * out2);
+
+    in2 = in1;
+    in1 = in;
+
+    out2 = out1;
+    out1 = out;
+
+
+    return out;
+}
+
+
+
+
 
Common_Resource/CodeLibrary/DigitalFilter/Lpf.h (added)
+++ Common_Resource/CodeLibrary/DigitalFilter/Lpf.h
@@ -0,0 +1,58 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Lpf.h
+//          Created on : 2022. 11. 5.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef DIGITALFILTER_LPF_H_
+#define DIGITALFILTER_LPF_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct sLpf1st
+{
+	float *pInData;
+	float *pFcut;
+
+	float in, old;
+	float out;
+	float a1, b0;
+	float Fcut, Wc;
+
+	float Tfsamp;
+
+	void Init(float *Fcutoff, float SamplingTime, float *InData);
+	void CoeffUpdate(void);
+	float Run(void);
+};
+
+struct sLpf2nd
+{
+	float *pInData;
+	float *pFcut;
+	float *pQf;     // Q Factor
+
+	float in, in1, in2;
+	float out, out1, out2;
+	float a0, a1, a2, b0, b1, b2;
+	float d0, d1, d2, d3;
+	float Fcut, Wc;
+	float zeta;
+
+	float Ts;
+
+	void Init(float *Fcutoff, float *Qf, float Tsampling, float *InData);
+	void CoeffUpdate(void);
+	float Run(void);
+};
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_DIGITALFILTER_LPF_H_ */
 
Common_Resource/CodeLibrary/DigitalFilter/Notch.cpp (added)
+++ Common_Resource/CodeLibrary/DigitalFilter/Notch.cpp
@@ -0,0 +1,84 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Notch.cpp
+//          Created on : 2022. 12. 20.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "DigitalFilter/Notch.h"
+#include "CodeLibMath.h"
+
+
+void sNotch::CoeffUpdate()
+{
+    //	Fcut = Fcutoff;
+        //LPF1st_Fcut = mCut_Off_Freq;
+
+    Fcut = (float)*pFcut;
+    Wc = 2. * PI * Fcut;
+    //K = 2. / Ts; // Tustin
+    k = Wc / tan((Wc * Ts) / 2.); // PreaWarp
+
+    //임시
+    c = 10;    //대역폭
+    d = 0.001; //감쇠율
+
+    zeta1 = 1 / c;
+    zeta2 = d / c;
+
+
+
+    d0 = 2. * k * Wc;
+    d1 = k * k + Wc * Wc;
+    d2 = ( -2. * k * k) + (2 * Wc * Wc);
+
+    a0 = (d0 * zeta1 + d1);
+    a1 = d2 / a0;
+    a2 = ( -1. * d0 * zeta1 + d1) / a0;
+    b0 = (d0 * zeta2 + d1) / a0;
+    b1 = d2 / a0;
+    b2 = ( -1. * d0 * zeta2 + d1) / a0;
+
+}
+
+void sNotch::Init(float* Fcutoff, float SamplingTime, float* InData)
+{
+    pInData = (float*)InData;
+    Ts = SamplingTime;
+
+    pFcut = (float*)Fcutoff;
+
+    Wc = 0.;
+    a0 = 0.;
+    a1 = 0.;
+    b0 = 0.;
+    b1 = 0.;
+    b2 = 0.;
+
+    in = 0.; // x[n]
+    in1 = 0.; // x[n-1]
+    in2 = 0.; // x[n-2]
+
+    out = 0.;  // y[n]
+    out1 = 0.;  // y[n-1]
+    out2 = 0.;  // y[n-2]
+
+    CoeffUpdate();
+}
+
+float sNotch::Run(void)
+{
+    in = *pInData;
+    out = (b0 * in + b1 * in1 + b2 * in2) - (a1 * out1 + a2 * out2);
+
+    in2 = in1;
+    in1 = in;
+
+    out2 = out1;
+    out1 = out;
+
+
+    return out;
+}
 
Common_Resource/CodeLibrary/DigitalFilter/Notch.h (added)
+++ Common_Resource/CodeLibrary/DigitalFilter/Notch.h
@@ -0,0 +1,51 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Notch.h
+//          Created on : 2022. 12. 20.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef DIGITALFILTER_NOTCH_H_
+#define DIGITALFILTER_NOTCH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+struct sNotch
+{
+    float* pInData; //데이터 포인터
+    float* pFcut;	//차단 주파수 포인터
+
+    float in, in1, in2;
+    float out, out1, out2;
+    float a0, a1, a2, b0, b1, b2;
+    float d0, d1, d2; //연산량 감소용 임시 변수
+    float Fcut, Wc;
+    float zeta1;
+    float zeta2;
+    float d; // notch 감쇄율
+    float c; // notch 대역폭.. // 나중에 수식 확인해 볼것
+    float k;
+
+    float Ts; //필터 입력 데이터의 샘플링 타임
+
+    void Init(float* Fcutoff, float Tsampling, float* InData);
+    void CoeffUpdate(void);
+    float Run(void);
+};
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_DIGITALFILTER_NOTCH_H_ */
 
Common_Resource/CodeLibrary/Ntc/Ntc.cpp (added)
+++ Common_Resource/CodeLibrary/Ntc/Ntc.cpp
@@ -0,0 +1,55 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Ntc.cpp
+//          Created on : 2022. 11. 5.
+//         Description : 테이블 방식의 NTC 온도계산 프로그램
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "CodeLibMath.h"
+#include "Ntc.h"
+
+
+void NtcTableReadTemp(float *NtcTemp, int *AdcData, struct sNTCTABLE *NtcTable)
+{
+
+    if (*NtcTemp <= 0)
+    {
+        if (*AdcData <= NtcTable->Table[0])    	*NtcTemp = 0;
+        else                              		*NtcTemp = 1;
+    }
+    else if (*NtcTemp >= NtcTable->Size)
+    {
+        if (*AdcData > NtcTable->Table[NtcTable->Size])    	*NtcTemp = NtcTable->Size - 1;
+        else                                     			*NtcTemp = NtcTable->Size;
+    }
+    else
+    {
+        if (*AdcData < NtcTable->Table[(Uint16) *NtcTemp - 1])     *NtcTemp = *NtcTemp - 1;
+        else if (*AdcData >= NtcTable->Table[(Uint16) *NtcTemp])   *NtcTemp = *NtcTemp + 1;
+    }
+}
+
+//--------------------------Table 생성코드---------------------------------//
+//todo Beta 값 기반인데 나중에 Stain-Heart Heart 방정식으로 변경하면 좋을 듯?
+//
+
+void NtcTableGen(struct sNTCTABLE *Ntc)
+{
+    int i = 0.;
+    float Rntc = 0.;
+    float Vntc = 0.;
+
+    for ( i = 0; i < Ntc->Size; i++)
+    {
+        Rntc = (Ntc->R25 * expf(Ntc->Beta * (1. / (273.15 + (float)i) - 1. / 298.15)));
+        Vntc = (Ntc->Vset * (Ntc->Rset / (Rntc + Ntc->Rset)));
+
+        //ADC 12bit, 3Vref
+        Ntc->Table[i] = 4095. * (Vntc / 3.);
+    }
+}
+
+//----------------------------------------------------------------------------------------------------//
 
Common_Resource/CodeLibrary/Ntc/Ntc.h (added)
+++ Common_Resource/CodeLibrary/Ntc/Ntc.h
@@ -0,0 +1,42 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Ntc.h
+//          Created on : 2022. 11. 5.
+//         Description : 테이블 방식의 NTC 온도계산 프로그램
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef NTC_NTC_H_
+#define NTC_NTC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+struct sNTCTABLE
+{
+    float R25;
+    float Rset;
+    float Vset;
+    float Beta;
+
+    unsigned int Size;
+    unsigned int TempStep;
+
+    unsigned int Table[200];
+};
+
+
+extern void NtcTableGen(struct sNTCTABLE *Ntc);
+extern void NtcTableReadTemp(float *NtcTemp, int *AdcVal, struct sNTCTABLE *Ntc);
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_NTC_NTC_H_ */
 
Common_Resource/CodeLibrary/PLL/SoapPll3ph.cpp (added)
+++ Common_Resource/CodeLibrary/PLL/SoapPll3ph.cpp
@@ -0,0 +1,90 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SoapPll3ph.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <PLL/SoapPll3ph.h>
+#include "CodeLibMath.h"
+
+
+//Synchronous Observer-Aided Preprocessing PLL
+
+void sSoapPll::Init(float mTsamp, float mVsRatePeak, float mFreqRate)
+{
+
+	Tprd = mTsamp;
+	Zeta = 1;
+	Wc = 2. * 5. * PI;
+
+	Kp = 2. * Zeta * Wc;
+	Ki = Wc * Wc;
+
+	k = 1.5;
+	rho = 1.;
+	c1 = 0.5 * (1. + rho) * k;
+	c2 = 0.5 * rho * k * k;
+
+	Reset(mVsRatePeak, mFreqRate);
+
+}
+
+void sSoapPll::Reset(float mVsRatePeak, float mFreqRate)
+{
+	Integral = 0.;
+	Wehat = 2. * PI * mFreqRate;
+	Weff = 2. * PI * mFreqRate;
+	Thetahat = 0.;
+
+	Thetd = 0.;
+
+	VdePos = 0.;
+	VqePos = mVsRatePeak;	//140.*INV_SQRT3*SQRT2;
+	Vdehat = 0.;
+	Vqehat = mVsRatePeak;	//0.;
+}
+
+float sSoapPll::Run(float mVde, float mVqe, float mFreqRate, float mTsamp)
+{
+	float coefficient = 0.;
+	float out = 0.;
+
+	coefficient = Wehat * mTsamp;
+
+	// Synchronous Observer-Aided Preprocessing (SOAP)
+	ErrVde = mVde - Vdehat;
+	VqePos -= c2 * coefficient * ErrVde;
+	Vdehat += 2. * coefficient * (c1 * ErrVde + mVqe - VqePos);
+
+	ErrVqe = mVqe - Vqehat;
+	VdePos += c2 * coefficient * ErrVqe;
+	Vqehat += 2. * coefficient * (c1 * ErrVqe - mVde + VdePos);
+
+	//PLL
+	Thetd = atan2(-VdePos, VqePos);
+	Integral += Ki * mTsamp * Thetd;
+	Wehat = Weff + Integral;
+	FreqOut = Wehat * 0.5 * INV_PI;
+
+	Thetahat += mTsamp * (Kp * Thetd + Wehat);
+	Thetahat = BOUND_PI(Thetahat);
+
+	out = Thetahat;
+
+	return out;
+}
+
+void sSoapPll::Preparing(float mVde, float mVqe, float mTheta, float mWeRate)
+{
+	Wehat = mWeRate;
+	Thetahat = mTheta;
+
+	VqePos = Vqehat = mVqe;
+	VdePos = Vdehat = mVde;
+
+	Integral = 0;
+
+}
 
Common_Resource/CodeLibrary/PLL/SoapPll3ph.h (added)
+++ Common_Resource/CodeLibrary/PLL/SoapPll3ph.h
@@ -0,0 +1,59 @@
+
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SogiPll3ph.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef PLL_SOAPPLL3PH_H_
+#define PLL_SOAPPLL3PH_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//Synchronous Observer-Aided Preprocessing PLL
+struct sSoapPll
+{
+	float Tprd;
+
+	float Kp;
+	float Ki;
+	float Wc;
+	float Zeta;
+
+	float k;
+	float rho;
+	float c1;
+	float c2;
+
+	float ErrVde;
+	float ErrVqe;
+	float VdePos;
+	float VqePos;
+	float Vdehat;
+	float Vqehat;
+
+	float Thetd;
+	float Integral;
+	float Wehat;
+	float Weff;
+	float Thetahat;
+	float FreqOut;
+
+	void Init(float mTsamp, float mVsRatePeak, float mFreqRate);
+	void Reset(float mEqe_rate, float mFreqRate);
+	float Run(float mVde, float mVqe, float mFreqRate, float mTsamp);
+	void Preparing(float mVde, float mVqe, float mTheta, float mWeRate);
+};
+
+
+#ifdef __cplusplus
+}
+#endif // extern "C" //
+#endif // MAIN_RESOURCE_INCLUDE_SOAPPLL_H_ //
 
Common_Resource/CodeLibrary/PLL/SogiFll1ph.cpp (added)
+++ Common_Resource/CodeLibrary/PLL/SogiFll1ph.cpp
@@ -0,0 +1,182 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SogiFll1ph.cpp
+//          Created on : 2023. 7. 13.
+//         Description :
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <PLL/SogiFll1ph.h>
+#include "CodeLibMath.h"
+
+
+void sSogiFll1ph::Init(float mFreqRate, float mTsamp, float mVacPeakMax, float *Vac, float *Iac)
+{
+	pVac = (float *) Vac;
+	pIac = (float *) Iac;
+
+
+	Vs_U[0] = 0.0;
+	Vs_U[1] = 0.0;
+	Vs_U[2] = 0.0;
+
+	Is_U[0] = 0.0;
+	Is_U[1] = 0.0;
+	Is_U[2] = 0.0;
+
+	Vs_Osg_U[0] = 0.0;
+	Vs_Osg_U[1] = 0.0;
+	Vs_Osg_U[2] = 0.0;
+
+	Vs_Osg_Qu[0] = 0.0;
+	Vs_Osg_Qu[1] = 0.0;
+	Vs_Osg_Qu[2] = 0.0;
+
+	Vs_u_Q[0] = 0.0;
+	Vs_u_Q[1] = 0.0;
+
+	Vs_u_D[0] = 0.0;
+	Vs_u_D[1] = 0.0;
+
+	Is_Osg_U[0] = 0.0;
+	Is_Osg_U[1] = 0.0;
+	Is_Osg_U[2] = 0.0;
+
+	Is_Osg_Qu[0] = 0.0;
+	Is_Osg_Qu[1] = 0.0;
+	Is_Osg_Qu[2] = 0.0;
+
+	Is_u_Q[0] = 0.0;
+	Is_u_Q[1] = 0.0;
+
+	Is_u_D[0] = 0.0;
+	Is_u_D[1] = 0.0;
+
+	Vs_ylf[0] = 0.0;
+	Vs_ylf[1] = 0.0;
+
+	Is_ylf[0] = 0.0;
+	Is_ylf[1] = 0.0;
+
+	FreqOut = 0.0;
+	FreqRate = mFreqRate;
+
+	Theta = 0.0;
+	SinTheta = 0.0;
+	CosTheta = 0.0;
+
+	Tsamp = mTsamp;
+	VacPeakMax = mVacPeakMax;
+
+	x3[0] = 0;
+	x3[1] = 0;
+
+	ef2 = 0;
+
+	WeRate = 2 * PI * FreqRate;
+	WeHat = 2 * PI * FreqRate;
+
+	SettlingTime = 0.03; //3ms
+	DampingRatio = 0.7;
+	ErrBand = 0.01;
+	Wn = ((log((1 / sqrt(1 - DampingRatio * DampingRatio)) / ErrBand)) / SettlingTime) / DampingRatio;
+
+	Ti = 2 * (DampingRatio / Wn);
+	Kp = Wn * Wn * Ti;
+	Ki = Kp / Ti;
+
+
+	LpfCoefUpdate();
+	CoefUpdate(WeRate);
+}
+
+void sSogiFll1ph::LpfCoefUpdate()
+{
+	// loop filter coefficients for 20kHz
+	Lpf.b0 = ((2.0) * Kp + Ki * Tsamp) * 0.5 / VacPeakMax;
+	Lpf.b1 = -((2.0) * Kp - Ki * Tsamp) * 0.5 / VacPeakMax;
+	Lpf.a1 = 1.0;
+}
+
+void sSogiFll1ph::CoefUpdate(float mWe)
+{
+	float temp;
+
+	Osg.k = (float)(1.2);
+
+	Osg.x = (float)(2.0 * Osg.k * mWe * Tsamp);
+	Osg.y = (float)(mWe * Tsamp * mWe * Tsamp);
+
+	temp = (float)1.0 / (Osg.x + Osg.y + 4.0);
+
+	Osg.b0 = ((float)Osg.x * temp);
+	Osg.b2 = ((float)(-1.0) * Osg.b0);
+	Osg.a1 = ((float)(2.0 * (4.0 - Osg.y)) * temp);
+	Osg.a2 = ((float)(Osg.x - Osg.y - 4) * temp);
+
+	Osg.qb0 = ((float)(Osg.k * Osg.y) * temp);
+	Osg.qb1 = (Osg.qb0 * (float)(2.0));
+	Osg.qb2 = Osg.qb0;
+}
+
+void sSogiFll1ph::Run(void)
+{
+	Vs_U[0] = *pVac;
+
+	Vs_Osg_U[0] = (Osg.b0 * (Vs_U[0] - Vs_U[2])) + (Osg.a1 * Vs_Osg_U[1]) + (Osg.a2 * Vs_Osg_U[2]);
+	Vs_Osg_U[2] = Vs_Osg_U[1];
+	Vs_Osg_U[1] = Vs_Osg_U[0];
+
+	Vs_Osg_Qu[0] = ((Osg.qb0 * Vs_U[0]) + (Osg.qb1 * Vs_U[1]) + (Osg.qb2 * Vs_U[2]) + (Osg.a1 * Vs_Osg_Qu[1]) + (Osg.a2 * Vs_Osg_Qu[2]));
+	Vs_Osg_Qu[2] = Vs_Osg_Qu[1];
+	Vs_Osg_Qu[1] = Vs_Osg_Qu[0];
+
+	Vs_U[2] = Vs_U[1];
+	Vs_U[1] = Vs_U[0];
+
+	Vs_u_D[0] = (CosTheta * Vs_Osg_U[0]) + (SinTheta * Vs_Osg_Qu[0]);
+	Vs_u_Q[0] = (CosTheta * Vs_Osg_Qu[0]) - (SinTheta * Vs_Osg_U[0]);
+
+	//
+	Is_U[0] = *pIac;
+
+	Is_Osg_U[0] = (Osg.b0 * (Is_U[0] - Is_U[2])) + (Osg.a1 * Is_Osg_U[1]) + (Osg.a2 * Is_Osg_U[2]);
+	Is_Osg_U[2] = Is_Osg_U[1];
+	Is_Osg_U[1] = Is_Osg_U[0];
+
+	Is_Osg_Qu[0] = ((Osg.qb0 * Is_U[0]) + (Osg.qb1 * Is_U[1]) + (Osg.qb2 * Is_U[2]) + (Osg.a1 * Is_Osg_Qu[1]) + (Osg.a2 * Is_Osg_Qu[2]));
+	Is_Osg_Qu[2] = Is_Osg_Qu[1];
+	Is_Osg_Qu[1] = Is_Osg_Qu[0];
+
+	Is_U[2] = Is_U[1];
+	Is_U[1] = Is_U[0];
+
+	Is_u_D[0] = (CosTheta * Is_Osg_U[0]) + (SinTheta * Is_Osg_Qu[0]);
+	Is_u_Q[0] = (CosTheta * Is_Osg_Qu[0]) - (SinTheta * Is_Osg_U[0]);
+
+	Vs_ylf[0] = Vs_ylf[1] + (Lpf.b0 * Vs_u_D[0]) + (Lpf.b1 * Vs_u_D[1]);
+	Vs_ylf[1] = Vs_ylf[0];
+	Vs_u_D[1] = Vs_u_D[0];
+
+	FreqOut = (FreqRate - Vs_ylf[0]);
+	WeHat = ((FreqOut) * (float(2.0 * PI)));
+
+	Theta = Theta + WeHat * Tsamp;
+	Theta = BOUND_PI(Theta);
+
+	SinTheta = (float)sin(Theta);
+	CosTheta = (float)cos(Theta);
+
+	ef2 = ((Vs_U[0] - Vs_Osg_U[0]) * Vs_Osg_Qu[0]) * 0.7 * Tsamp * -1.0;
+
+	x3[0] = x3[1] + ef2;
+	x3[1] = x3[0];
+
+	WeHat = WeRate + x3[0];
+	FreqRate = WeHat / (2.0 * PI);
+
+	CoefUpdate(WeHat);
+
+}
+
 
Common_Resource/CodeLibrary/PLL/SogiFll1ph.h (added)
+++ Common_Resource/CodeLibrary/PLL/SogiFll1ph.h
@@ -0,0 +1,102 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SogiFll1ph.h
+//          Created on : 2023. 7. 13.
+//         Description :
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef PLL_SOGIFLL1PH_H_
+#define PLL_SOGIFLL1PH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+//*********** Structure Definition ********//
+struct sOsgCoef
+{
+	float k;
+	float x;
+	float y;
+	float b0;
+	float b2;
+	float a1;
+	float a2;
+	float qb0;
+	float qb1;
+	float qb2;
+};
+
+//PI제어기를 필터형태로 구현한 것
+struct sOsgLpfCoef
+{
+	float b1;
+	float b0;
+	float a1;
+};
+
+struct sSogiFll1ph
+{
+	float *pVac;
+	float *pIac;
+
+	float Vs_U[3];  // Ac Input
+	float Vs_Osg_U[3];
+	float Vs_Osg_Qu[3];
+	float Vs_u_Q[2];
+	float Vs_u_D[2];
+
+	float Is_U[3];  // Ac Input
+	float Is_Osg_U[3];
+	float Is_Osg_Qu[3];
+	float Is_u_Q[2];
+	float Is_u_D[2];
+
+	float Vs_ylf[2];
+	float Is_ylf[2];
+
+	float FreqOut; // output frequency of PLL
+	float FreqRate; //nominal frequency
+	float Theta;
+	float CosTheta;
+	float SinTheta;
+	float Tsamp;
+
+	float x3[2];
+	float ef2;
+
+	float WeHat;
+	float WeRate;
+
+	float SettlingTime; // ms
+	float DampingRatio;
+	float ErrBand;
+	float Wn;
+
+	float Ti;
+	float Kp;
+	float Ki;
+
+	float VacPeakMax;
+
+	sOsgCoef Osg;
+	sOsgLpfCoef Lpf;
+
+	void Init(float mFreqRate, float mTsamp, float mVacPeakMax, float *pVac, float *pIac);
+	void Run(void);
+	void CoefUpdate(float mWe);
+	void LpfCoefUpdate();
+
+};
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_PLL_SOGIFLL1PH_H_ */
 
Common_Resource/CodeLibrary/PLL/SogiPll3ph.cpp (added)
+++ Common_Resource/CodeLibrary/PLL/SogiPll3ph.cpp
@@ -0,0 +1,184 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SogiPll3ph.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <PLL/SogiPll3ph.h>
+#include "CodeLibMath.h"
+
+
+//Second Order Generalized Integrators PLL
+void sSogiPll::Reset(float mFreqRate, float mTsamp)
+{
+
+	k = 0.5;
+	Wehat = 2. * PI * mFreqRate;
+
+	d0 = Wehat * Wehat * mTsamp * mTsamp;
+	d1 = 2 * k * Wehat * mTsamp;
+
+	//동상 계수
+	D_a0 = (d0 + d1 + 4.);
+	D_a1 = (2. * d0 - 8.) / D_a0;
+	D_a2 = (d0 - d1 + 4.) / D_a0;
+	D_b0 = (d1) / D_a0;
+	D_b1 = 0;
+	D_b2 = -D_b0;
+
+	//90도 지연 계수
+	Q_a0 = D_a0;
+	Q_a1 = D_a1;
+	Q_a2 = D_a2;
+	Q_b0 = (k * d0) / Q_a0;
+	Q_b1 = (2. * Q_b0);
+	Q_b2 = Q_b0;
+
+
+
+	//d축 전압
+	Eds[0] = 0.;  //x[n]
+	Eds[1] = 0.;  //x[n-1]	
+	Eds[2] = 0.;  //x[n-2]
+
+	EdsIn[0] = 0.; //y[n]
+	EdsIn[1] = 0.; //y[n-1]
+	EdsIn[2] = 0.; //y[n-2]
+
+	EdsLag[0] = 0.; //y[n]
+	EdsLag[1] = 0.; //y[n-1]
+	EdsLag[2] = 0.; //y[n-2]
+
+
+	//q축 전압
+	Eqs[0] = 0.;
+	Eqs[1] = 0.;
+	Eqs[2] = 0.;
+
+	EqsIn[0] = 0.;
+	EqsIn[1] = 0.;
+	EqsIn[2] = 0.;
+
+	EqsLag[0] = 0.; //y[n]
+	EqsLag[1] = 0.; //y[n-1]
+	EqsLag[2] = 0.; //y[n-2]
+
+	EdsPos = 0.;
+	EqsPos = 0.;
+	EdsNeg = 0.;
+	EqsNeg = 0.;
+
+	EdePos = 0.;
+	EqePos = 0.;
+
+	//SRF-PLL. 위상 동기화 제어기
+	Err = 0.;
+	Integ = 0.;
+
+	Fb = 0.;
+
+	Thetahat = 0.;
+}
+
+void sSogiPll::Init(float mVsRatePeak, float mFreqRate, float mTsamp)
+{
+	//Ksogi가 작으면 필터링 성능이 증가하지만, 과도 상태가 증가함. Ksogi 값이 너무 작을 경우 과도상태가 매우 길어져서 제어기가 제대로 동작하지 못함.
+	//강한 필터링에 과도 상태를 빠르게 하기 위해서는 SOGI-FLL로 구성하면 되지만, 주파수 추정할 때 Gain 튜닝에도 불구하고 리플이 존재함.
+	k = 0.5;
+	Wehat = 2. * PI * mFreqRate;
+
+	Zeta = 1.;
+	Wc = 2. * PI * 5.;
+
+	//PI제어기
+	Kp = 2. * Zeta * Wc / mVsRatePeak;
+	Ki = Wc * Wc / mVsRatePeak;
+}
+
+float sSogiPll::Run(float mEds, float mEqs, float mFreqRate, float mTsamp)
+{
+	d0 = Wehat * Wehat * mTsamp * mTsamp;
+	d1 = 2 * k * Wehat * mTsamp;
+
+	//동상 계수
+	D_a0 = (d0 + d1 + 4.);
+	D_a1 = (2. * d0 - 8.) / D_a0;
+	D_a2 = (d0 - d1 + 4.) / D_a0;
+	D_b0 = (d1) / D_a0;
+	D_b1 = 0;
+	D_b2 = -D_b0;
+
+	//90도 지연 계수
+	Q_a0 = D_a0;
+	Q_a1 = D_a1;
+	Q_a2 = D_a2;
+	Q_b0 = (k * d0) / Q_a0;
+	Q_b1 = (2. * Q_b0);
+	Q_b2 = Q_b0;
+
+
+	Eds[0] = mEds;
+	Eqs[0] = mEqs;
+
+
+	//동상 전압
+	EdsIn[0] =  (D_b0 * Eds[0] + D_b1 * Eds[1] + D_b2 * Eds[2])
+					- (D_a1 * EdsIn[1] + D_a2 * EdsIn[2]);
+
+	EqsIn[0] =  (D_b0 * Eqs[0] + D_b1 * Eqs[1] + D_b2 * Eqs[2])
+					- (D_a1 * EqsIn[1] + D_a2 * EqsIn[2]);
+	
+	//90도 지연 전압
+	EdsLag[0] = (Q_b0 * Eds[0] + Q_b1 * Eds[1] + Q_b2 * Eds[2])
+					- (Q_a1 * EdsLag[1] + Q_a2 * EdsLag[2]);
+
+	EqsLag[0] = (Q_b0 * Eqs[0] + Q_b1 * Eqs[1] + Q_b2 * Eqs[2])
+					- (Q_a1 * EqsLag[1] + Q_a2 * EqsLag[2]);
+
+
+	//d축 전압
+	Eds[2] = Eds[1];
+	Eds[1] = Eds[0];
+	EdsIn[2] = EdsIn[1];
+	EdsIn[1] = EdsIn[0];
+	EdsLag[2] = EdsLag[1];
+	EdsLag[1] = EdsLag[0];
+
+	//q축 전압
+	Eqs[2] = Eqs[1];
+	Eqs[1] = Eqs[0];
+	EqsIn[2] = EqsIn[1];
+	EqsIn[1] = EqsIn[0];
+	EqsLag[2] = EqsLag[1];
+	EqsLag[1] = EqsLag[0];
+
+	//정상분 dq 전압
+	EdsPos = 0.5 * EdsIn[0] - 0.5 * EqsLag[0];
+	EqsPos = 0.5 * EdsLag[0] + 0.5 * EqsIn[0];
+
+	//역상분 dq 전압
+	EdsNeg = 0.5 * EdsIn[0] + 0.5 * EqsLag[0];
+	EqsNeg = -0.5 * EdsLag[0] + 0.5 * EqsIn[0];
+
+	//정상분 동기 좌표계 전압
+	//a =  Theta_hat* Thetahat;
+	EdePos = cos(Thetahat) * EdsPos + sin(Thetahat) * EqsPos;
+	EqePos = -sin(Thetahat) * EdsPos + cos(Thetahat) * EqsPos;
+
+	//SRF-PLL. 위상 동기화 제어기
+	Err = 0 - EdePos;
+	Integ = Integ + Ki * Err * mTsamp;
+
+	Wehat = Integ + 2. * PI * mFreqRate;
+	Fb = Err * Kp + Wehat;
+
+	FreqOut = Wehat * 0.5 * INV_PI;
+
+	Thetahat = Thetahat + Fb * mTsamp;
+	Thetahat = Thetahat + ((Thetahat > PI) ? -2. * PI : (Thetahat < -PI) ? 2. * PI : 0.);
+
+	return Thetahat;
+}
 
Common_Resource/CodeLibrary/PLL/SogiPll3ph.h (added)
+++ Common_Resource/CodeLibrary/PLL/SogiPll3ph.h
@@ -0,0 +1,79 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : SogiPll3ph.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef PLL_SOGIPLL3PH_H_
+#define PLL_SOGIPLL3PH_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//Second Order Generalized Integrators PLL
+//Inph 	: 동상
+//Lagph	: 지상
+struct sSogiPll
+{
+
+	float Eds[3];
+	float EdsIn[3];					//Eds 동상
+	float EdsLag[3];				//Eds 90도 지상
+
+	float Eqs[3];
+	float EqsIn[3];					//Eqs 동상
+	float EqsLag[3];				//Eqs 90도 지상
+
+	float EdsPos, EdePos;			//Pos 정상분
+	float EqsPos, EqePos;
+
+	float EdsNeg, EdeNeg;			//Neg 역상분
+	float EqsNeg, EqeNeg;
+
+	float k;						//k 비례게인
+
+	float Kp;
+	float Ki;
+	float Wc;
+	float Zeta;
+	float Integ;
+	float Err;
+	float Fb;
+
+	float Q_a0;			//Q-Axis
+	float Q_a1;
+	float Q_a2;
+	float Q_b0;
+	float Q_b1;
+	float Q_b2;
+
+	float D_a0;
+	float D_a1;
+	float D_a2;
+	float D_b0;
+	float D_b1;
+	float D_b2;
+
+	float d0; //연산량 줄이기용
+	float d1;
+	float d2;
+
+	float Wehat;
+	float Thetahat;
+
+	float FreqOut;
+
+	void Reset(float mFreq_rate, float mTsamp);
+	void Init(float mEqe_rate, float mFreq_rate, float mTsamp);
+	float Run(float mEds, float mEqs, float mFreq_rate, float mTsamp);
+
+};
+
+
+#ifdef __cplusplus
+}
+#endif // extern "C" //
+#endif // MAIN_RESOURCE_INCLUDE_SOGIPLL_H_ //
 
Common_Resource/CodeLibrary/README.md (added)
+++ Common_Resource/CodeLibrary/README.md
@@ -0,0 +1,1 @@
+# CodeLibrary
 
Common_Resource/CodeLibrary/TimeSharing/TimeSharing.cpp (added)
+++ Common_Resource/CodeLibrary/TimeSharing/TimeSharing.cpp
@@ -0,0 +1,161 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : TimeSharing.cpp
+//          Created on : 2019. 06. 07
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include "TimeSharing.h"
+
+
+float Tsamp  = 0;
+float T250us = 0;
+float T500us = 0;
+float T1ms   = 0;
+float T2ms   = 0;
+float T10ms  = 0;
+float T100ms = 0;
+float T500ms = 0;
+float T1s	 = 0;
+
+float INV_Tsamp = 0;
+float INV_T250us = 0;
+float INV_T500us = 0;
+float INV_T1ms = 0;
+float INV_T2ms = 0;
+float INV_T10ms = 0;
+float INV_T100ms = 0;
+float INV_T500ms = 0;
+float INV_T1s = 0;
+
+
+float INV_RMS_T100ms = 0;
+float INV_RMS_T500ms = 0;
+
+struct sTiME_SHARING OS_Time;
+
+
+void InitTimeSharing(float BaseFreq)
+{
+    OS_Time.Init(BaseFreq);
+
+    Tsamp   = OS_Time.Tsamp.Prd;
+    T250us  = OS_Time.T250us.Prd;
+    T500us  = OS_Time.T500us.Prd;
+    T1ms    = OS_Time.T1ms.Prd;
+    T2ms    = OS_Time.T2ms.Prd;
+    T10ms   = OS_Time.T10ms.Prd;
+    T100ms  = OS_Time.T100ms.Prd;
+    T500ms  = OS_Time.T500ms.Prd;
+
+    INV_Tsamp   = OS_Time.Tsamp.Inverse;
+    INV_T250us  = OS_Time.T250us.Inverse;
+    INV_T500us  = OS_Time.T500us.Inverse;
+    INV_T1ms    = OS_Time.T1ms.Inverse;
+    INV_T2ms    = OS_Time.T2ms.Inverse;
+    INV_T10ms   = OS_Time.T10ms.Inverse;
+    INV_T100ms  = OS_Time.T100ms.Inverse;
+    INV_T500ms  = OS_Time.T500ms.Inverse;
+
+	INV_RMS_T500ms = 1 / (T500ms / Tsamp);
+	INV_RMS_T100ms = 1 / (T100ms / Tsamp);
+
+}
+
+
+
+void sTiME_SHARING :: Init(float BaseFreq)
+{
+    BaseTime = (1 / BaseFreq);
+
+    Tsamp.Prd   = BaseTime;
+    T250us.Prd  = 250e-6;
+    T500us.Prd  = 500e-6;
+    T1ms.Prd    = 1e-3;
+    T2ms.Prd    = 2e-3;
+    T10ms.Prd   = 10e-3;
+    T100ms.Prd  = 100e-3;
+    T500ms.Prd  = 500e-3;
+    T1s.Prd  	= 1.;
+
+    Tsamp.Inverse   = 1. / Tsamp.Prd;
+    T250us.Inverse  = 1. / T250us.Prd;
+    T500us.Inverse  = 1. / T500us.Prd;
+    T1ms.Inverse    = 1. / T1ms.Prd;
+    T2ms.Inverse    = 1. / T2ms.Prd;
+    T10ms.Inverse   = 1. / T10ms.Prd;
+    T100ms.Inverse  = 1. / T100ms.Prd;
+    T500ms.Inverse  = 1. / T500ms.Prd;
+    T1s.Inverse  	= 1. / T1s.Prd;
+
+    T250us.Flag = 0;
+    T500us.Flag = 0;
+    T1ms.Flag   = 0;
+    T2ms.Flag   = 0;
+    T10ms.Flag  = 0;
+    T100ms.Flag = 0;
+    T500ms.Flag = 0;
+    T1s.Flag	= 0;
+
+    T250us.Tick = T250us.SetTick    = (int) (T250us.Prd * Tsamp.Inverse + 0.5 );
+    T500us.Tick = T500us.SetTick    = (int) (T500us.Prd * Tsamp.Inverse + 0.5 );
+    T1ms.Tick   = T1ms.SetTick      = (int) (T1ms.Prd   * Tsamp.Inverse + 0.5 );
+    T2ms.Tick   = T2ms.SetTick      = (int) (T2ms.Prd   * Tsamp.Inverse + 0.5 );
+    T10ms.Tick  = T10ms.SetTick     = (int) (T10ms.Prd  * Tsamp.Inverse + 0.5 );
+    T100ms.Tick = T100ms.SetTick    = (int) (T100ms.Prd * Tsamp.Inverse + 0.5 );
+    T500ms.Tick = T500ms.SetTick    = (int) (T500ms.Prd * Tsamp.Inverse + 0.5 );
+    T1s.Tick = T1s.SetTick    		= (int) (T1s.Prd * Tsamp.Inverse + 0.5 );
+
+
+}
+
+void sTiME_SHARING::Sharing(void)
+{
+    if ((T250us.Tick--) <= 0)
+    {
+        T250us.Flag = 1;
+        T250us.Tick = T250us.SetTick - 1;
+    }
+    if ((T500us.Tick--) <= 0)
+    {
+        T500us.Flag = 1;
+        T500us.Tick = T500us.SetTick - 1;
+    }
+    if ((T1ms.Tick--) <= 0)
+    {
+        T1ms.Flag = 1;
+        T1ms.Tick = T1ms.SetTick - 1;
+    }
+    if ((T2ms.Tick--) <= 0)
+    {
+        T2ms.Flag = 1;
+        T2ms.Tick = T2ms.SetTick - 1;
+    }
+    if ((T10ms.Tick--) <= 0)
+    {
+        T10ms.Flag = 1;
+        T10ms.Tick = T10ms.SetTick - 1;
+    }
+    if ((T100ms.Tick--) <= 0)
+    {
+        T100ms.Flag = 1;
+        T100ms.Tick = T100ms.SetTick - 1;
+    }
+    if ((T500ms.Tick--) <= 0)
+    {
+        T500ms.Flag = 1;
+        T500ms.Tick = T500ms.SetTick - 1;
+    }
+    if ((T1s.Tick--) <= 0)
+    {
+        T1s.Flag = 1;
+        T1s.Tick = T1s.SetTick - 1;
+    }
+}
+
+
+
+
+
 
Common_Resource/CodeLibrary/TimeSharing/TimeSharing.h (added)
+++ Common_Resource/CodeLibrary/TimeSharing/TimeSharing.h
@@ -0,0 +1,112 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : TimeSharing.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#ifndef  TIMESHARING_TIMESHARING_H_
+#define  TIMESHARING_TIMESHARING_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+struct sTiME_SHARING_SUB
+{
+    float Prd;
+    float Inverse;
+    long int SetTick;
+    long int Tick;
+    int Flag;
+};
+
+
+
+struct sTiME_SHARING
+{
+    float BaseTime;
+
+    volatile struct sTiME_SHARING_SUB Tsamp;
+    volatile struct sTiME_SHARING_SUB T250us;
+    volatile struct sTiME_SHARING_SUB T500us;
+    volatile struct sTiME_SHARING_SUB T1ms;
+    volatile struct sTiME_SHARING_SUB T2ms;
+    volatile struct sTiME_SHARING_SUB T10ms;
+    volatile struct sTiME_SHARING_SUB T100ms;
+    volatile struct sTiME_SHARING_SUB T500ms;
+    volatile struct sTiME_SHARING_SUB T1s;
+
+    void Init(float BaseFreq);
+    void Sharing(void);
+
+};
+
+
+
+//-------------------------------------------------------------//
+// 듀얼코어 사용시 CPU간 상호 참조하거나 GS메모리에 위치하여 원하지 않는 동작을
+// 방지하기 위하여 각 CPU에서만 사용가능한 LS메모리에 위치하여 동작 시킬 것
+//-------------------------------------------------------------//
+
+
+
+
+#pragma SET_DATA_SECTION(".TimeSharing")
+
+extern struct sTiME_SHARING OS_Time;
+
+extern float Tsamp;
+extern float T250us;
+extern float T500us;
+extern float T1ms;
+extern float T2ms;
+extern float T10ms;
+extern float T100ms;
+extern float T500ms;
+extern float T1s;
+
+extern float INV_Tsamp;
+extern float INV_T250us;
+extern float INV_T500us;
+extern float INV_T1ms;
+extern float INV_T2ms;
+extern float INV_T10ms;
+extern float INV_T100ms;
+extern float INV_T500ms;
+extern float INV_T1s;
+
+extern float INV_RMS_T100ms;
+extern float INV_RMS_T500ms;
+
+#pragma SET_DATA_SECTION()
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+extern void RoutineTsamp(void);
+extern void RoutineT250us(void);
+extern void RoutineT500us(void);
+extern void RoutineT1ms(void);
+extern void RoutineT2ms(void);
+extern void RoutineT10ms(void);
+extern void RoutineT100ms(void);
+extern void RoutineT500ms(void);
+extern void RoutineT1s(void);
+#pragma SET_CODE_SECTION()
+
+extern void InitTimeSharing(float BaseFreq);
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _TIMESHARING_H_ */
 
Common_Resource/CodeLibrary/Util/Ramp.cpp (added)
+++ Common_Resource/CodeLibrary/Util/Ramp.cpp
@@ -0,0 +1,79 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Ramp.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "Ramp.h"
+
+void sRampGen::Init(float *InData, float *InDelt, float Tprd)
+{
+
+    pInData = (float *) InData;
+    pInDelt = (float *) InDelt;
+
+    TprdCnt = 1 / Tprd;
+    Reset();
+    UpdateSlope();
+
+}
+
+float sRampGen::Run(void)
+{
+    in = (float) *pInData;
+
+    if (fabs(in - out) < DelMag) out = in;
+    else if (in > (out - DelMag)) out += DelMag;
+    else if (in < (out + DelMag)) out -= DelMag;
+    else out = in;
+
+    return out;
+}
+
+float sRampGen::RunStepDown(void)
+{
+    in = (float) *pInData;
+
+    if (fabs(in - out) < DelMag) out = in;
+    else if (in < (out + DelMag)) out -= DelMag;
+    else out = in;
+
+    return out;
+}
+
+
+float sRampGen::RunStepUp(void)
+{
+    in = (float) *pInData;
+
+    if (fabs(in - out) < DelMag) out = in;
+    else if (in > (out - DelMag)) out += DelMag;
+    else out = in;
+
+    return out;
+}
+
+void sRampGen::Reset(void)
+{
+    in = 0;
+    out = 0;
+}
+
+void sRampGen::UpdateSlope(void)
+{
+    Delt = (float) *pInDelt;
+    DelMag = Delt / TprdCnt;
+}
+
+
+
+
+
+
+
+
+
+
 
Common_Resource/CodeLibrary/Util/Ramp.h (added)
+++ Common_Resource/CodeLibrary/Util/Ramp.h
@@ -0,0 +1,40 @@
+//-------------------------------------------------------//
+//        Project Code : CodeLibrary
+//           File Name : Ramp.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef UTIL_RAMP_H_
+#define UTIL_RAMP_H_
+
+
+struct sRampGen
+{
+    float *pInData;
+    float *pInDelt;
+    float Delt;
+    float in;
+    float out;
+    float DelMag;
+
+    float TprdCnt;
+
+    void Init(float *InData, float *InDelt, float Tprd);
+    float Run(void);					//UpDwon
+    float RunStepDown(void);			//RampUp - StepDown
+    float RunStepUp(void);				//StepUp - RampDwon
+    void Reset(void);
+    void UpdateSlope(void);
+
+};
+
+
+
+
+
+
+#endif /* MAIN_RESOURCE_INCLUDE_RAMP_H_ */
 
Common_Resource/CodeLibrary/Util/Util.cpp (added)
+++ Common_Resource/CodeLibrary/Util/Util.cpp
@@ -0,0 +1,162 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : Util.cpp
+//          Created on : 2022. 11. 5.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CodeLibMath.h"
+#include "Util.h"
+
+#define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
+#define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
+#define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
+#define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
+#define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
+#define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
+#define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
+#define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
+#define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
+#define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
+#define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
+#define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')
+
+#define BUILD_DATE_CH0 (__DATE__[ 4] - '0')
+#define BUILD_DATE_CH1 (__DATE__[ 5] - '0')
+
+#define BUILD_YEAR_CH0 (__DATE__[ 7] - '0')
+#define BUILD_YEAR_CH1 (__DATE__[ 8] - '0')
+#define BUILD_YEAR_CH2 (__DATE__[ 9] - '0')
+#define BUILD_YEAR_CH3 (__DATE__[10] - '0')
+
+#define BUILD_HOUR (((__TIME__[0] - '0') * 10 + __TIME__[1] - '0'))
+#define BUILD_MIN  (((__TIME__[3] - '0') * 10 + __TIME__[4] - '0'))
+#define BUILD_SEC  (((__TIME__[6] - '0') * 10 + __TIME__[7] - '0'))
+
+
+struct sCompileTime
+{
+    Uint32 Date;
+    Uint32 Time;
+};
+
+volatile struct sCompileTime Compiletime;
+
+void getCompileTime()
+{
+
+    unsigned long TempYear = 0;
+    unsigned long TempMonth = 0;
+    unsigned long TempDate = 0;
+    unsigned long TempHour = 0;
+    unsigned long TempMin = 0;
+    unsigned long TempSec = 0;
+    unsigned long TempCal = 0;
+
+    TempYear = (Uint32) (BUILD_YEAR_CH0 * 1000 + BUILD_YEAR_CH1 * 100 + BUILD_YEAR_CH2 * 10 + BUILD_YEAR_CH3) * 10000;
+
+    //�� ���� --> ���ڷ� ��ȯ easy���� ���ڿ��� ���� �����Ƿ�...
+    if (BUILD_MONTH_IS_JAN) TempMonth = (Uint32) (1 * 100);
+    else if (BUILD_MONTH_IS_FEB) TempMonth = (Uint32) (2 * 100);
+    else if (BUILD_MONTH_IS_MAR) TempMonth = (Uint32) (3 * 100);
+    else if (BUILD_MONTH_IS_APR) TempMonth = (Uint32) (4 * 100);
+    else if (BUILD_MONTH_IS_MAY) TempMonth = (Uint32) (5 * 100);
+    else if (BUILD_MONTH_IS_JUN) TempMonth = (Uint32) (6 * 100);
+    else if (BUILD_MONTH_IS_JUL) TempMonth = (Uint32) (7 * 100);
+    else if (BUILD_MONTH_IS_AUG) TempMonth = (Uint32) (8 * 100);
+    else if (BUILD_MONTH_IS_SEP) TempMonth = (Uint32) (9 * 100);
+    else if (BUILD_MONTH_IS_OCT) TempMonth = (Uint32) (10 * 100);
+    else if (BUILD_MONTH_IS_NOV) TempMonth = (Uint32) (11 * 100);
+    else if (BUILD_MONTH_IS_DEC) TempMonth = (Uint32) (12 * 100);
+
+    TempCal = BUILD_DATE_CH0;
+    if (( BUILD_DATE_CH0 < 0) || ( BUILD_DATE_CH0 > 9)) TempCal = 0;
+
+    TempDate = (Uint32) ((TempCal * 10) + BUILD_DATE_CH1);
+
+    TempHour = (Uint32) BUILD_HOUR * 10000; //Unit32 ij���� ���� ���� 16bit ������ ����ؼ� ���ڸ� �߸�
+    TempMin = (Uint32) BUILD_MIN * 100;
+    TempSec = (Uint32) BUILD_SEC;
+
+    Compiletime.Date = (TempYear + TempMonth + TempDate);
+    Compiletime.Time = (TempHour + TempMin + TempSec);
+
+}
+
+
+//BCD �ڵ带 Decimal ���·� ���� ex) 0x45 -> 45��
+Uint16 BcdToDec(unsigned int x)
+{
+    return (x - 6 * (x >> 4));
+}
+
+int compare(const void *a, const void *b)
+{
+    return *(int *) a - *(int *) b; //ũ�� ���, ������ ���� ����
+}
+
+float fMax2(float in1, float in2)
+{
+    float max;
+
+    if (in1 > in2) max = in1;
+    else max = in2;
+
+    return max;
+}   // return maximum value of two
+
+float fMin2(float in1, float in2)
+{
+    float min;
+
+    if (in1 < in2) min = in1;
+    else min = in2;
+
+    return min;
+}   // return minimum value of two
+
+float fMax3(float in1, float in2, float in3)
+{
+    float max;
+
+    if (in1 > in2) max = in1;
+    else max = in2;
+    if (in3 > max) max = in3;
+
+    return max;
+}   // return maximum value of two
+
+float fMid3(float in1, float in2, float in3)
+{
+    float mid;
+
+    if (in1 < in2)
+    {
+        if (in2 < in3) mid = in2;
+        else if (in1 < in3) mid = in3;
+        else mid = in1;
+    }
+    else if (in1 > in2)
+    {
+        if (in1 < in3) mid = in1;
+        else if (in2 < in3) mid = in3;
+        else mid = in2;
+    }
+
+
+    return mid;
+}
+
+float fMin3(float in1, float in2, float in3)
+{
+    float min;
+
+    if (in1 < in2) min = in1;
+    else min = in2;
+    if (in3 < min) min = in3;
+
+    return min;
+}   // return minimum value of two
+
 
Common_Resource/CodeLibrary/Util/Util.h (added)
+++ Common_Resource/CodeLibrary/Util/Util.h
@@ -0,0 +1,35 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : Util.h
+//          Created on : 2022. 11. 5.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef UTIL_UTIL_H_
+#define UTIL_UTIL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void getCompileTime(void);
+extern Uint16 BcdToDec(Uint16 x);
+extern int compare(const void *a, const void *b);
+
+extern float fMax2(float in1, float in2);
+extern float fMin2(float in1, float in2);
+extern float fMax3(float in1, float in2, float in3);
+extern float fMin3(float in1, float in2, float in3);
+extern float fMid3(float in1, float in2, float in3);
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_CODELIBRARY_UTIL_UTIL_H_ */
 
Common_Resource/CommonLibrary/CommonLib.h (added)
+++ Common_Resource/CommonLibrary/CommonLib.h
@@ -0,0 +1,68 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Peripherals.h
+//          Created on : 2022. 10. 19.
+//         Description :
+//              Author : Kim-JeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_LIB_PERIPHERALS_H_
+#define MAIN_RESOURCE_LIB_PERIPHERALS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//--------------------------Ti Lib------------//
+#include "F2837xD_device.h"
+#include "driverlib.h"
+#include "device.h"
+#include "inc/hw_ipc.h"
+#include "math.h"
+#include "string.h"
+
+#include "fpu_vector.h"
+
+#include "F2837xD_EPwm_defines.h"
+//#include "F2837xD_I2c_defines.h"
+//--------------------------------------------//
+
+//------------ Board Lib----------------------//
+#include "include/CpuInfo.h"
+#include "include/AdcLib.h"
+#include "include/DigitalIO.h"
+#include "include/CanLib.h"
+#include "include/EPwmLib.h"
+#include "include/TimerLib.h"
+#include "include/NtcLib.h"
+
+#include "include/Status.h"
+#include "include/SystemVar.h"
+#include "include/SensingScale.h"
+#include "include/FaultDefine.h"
+#include "include/RmsAvgCal.h"
+
+#include <include/Trace.h>
+
+#include "include/F28377D_TempSensor.h"
+#include "include/ModBus.h"
+
+//Can 통신 관련
+#include "include/CanCHAdeMODataMap.h"
+#include "include/CanCHAdeMO.h"
+
+//Eeprom
+#include "include/Eeprom.h"
+#include "include/SpiEepromLib.h"
+
+#include "include/RTC_SPI.h"
+
+#include "include/RTC.h"
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_LIB_PERIPHERALS_H_ */
 
Common_Resource/CommonLibrary/include/AdcLib.h (added)
+++ Common_Resource/CommonLibrary/include/AdcLib.h
@@ -0,0 +1,98 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Adc_Driver.h
+//          Created on : 2022. 10. 16.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_ADC_SETTING_ADC_DRIVER_H_
+#define MAIN_RESOURCE_ADC_SETTING_ADC_DRIVER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <CommonLib.h>
+
+
+#define ADCA_FORCE_SOC_SET ( ADC_FORCE_SOC0 \
+                           | ADC_FORCE_SOC1 \
+                           | ADC_FORCE_SOC2 \
+                           | ADC_FORCE_SOC3 \
+                           | ADC_FORCE_SOC4 \
+                           | ADC_FORCE_SOC5 \
+                           | ADC_FORCE_SOC6 \
+                           | ADC_FORCE_SOC7 \
+						   | ADC_FORCE_SOC8 )
+
+#define ADCB_FORCE_SOC_SET ( ADC_FORCE_SOC0 \
+                           | ADC_FORCE_SOC1 \
+                           | ADC_FORCE_SOC2 \
+                           | ADC_FORCE_SOC3 \
+                           | ADC_FORCE_SOC4 \
+                           | ADC_FORCE_SOC5 )
+
+#define ADCC_FORCE_SOC_SET ( ADC_FORCE_SOC2 \
+                           | ADC_FORCE_SOC3 \
+                           | ADC_FORCE_SOC4 \
+                           | ADC_FORCE_SOC5 )
+
+#define ADCD_FORCE_SOC_SET ( ADC_FORCE_SOC0 \
+                           | ADC_FORCE_SOC1 \
+                           | ADC_FORCE_SOC2 \
+                           | ADC_FORCE_SOC3 \
+                           | ADC_FORCE_SOC4 \
+                           | ADC_FORCE_SOC5 )
+
+extern void InitAdc();
+
+extern void ConfigAdc();
+extern void SetupAdcSoc();
+
+extern void AdcForceSoc();
+extern void AdcIntEocState();
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+extern void AdcIntInterruptClear();
+#pragma SET_CODE_SECTION()
+
+
+
+struct sAdc
+{
+    int RawData[32];
+	int Data[32];
+    float Offset[32];
+    float OffsetDefault[32];
+    float OffsetSum[32];
+    float OffsetDelt[32];
+
+    float InversBit;
+
+    int Cmd_Reset;
+};
+
+
+#pragma SET_DATA_SECTION(".AdcLib")
+
+extern struct sAdc Adc;
+
+extern unsigned int CntWaitAdcEoc;
+extern unsigned int SetWaitAdcEoc;
+
+extern int Flag_ErrEoc;
+
+#pragma SET_DATA_SECTION()
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_ADC_SETTING_ADC_DRIVER_H_ */
 
Common_Resource/CommonLibrary/include/CanCHAdeMO.h (added)
+++ Common_Resource/CommonLibrary/include/CanCHAdeMO.h
@@ -0,0 +1,63 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : CanCHAdeMO.h
+//          Created on : 2023. 11. 15.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMO_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define CanCHAdeMOTxMbox CanaTxMbox
+#define CanCHAdeMORxMbox CanaRxMbox
+
+#define CANCHADEMO CANA_BASE
+
+#define CANCHADEMO_SLV_ID_OFFSET 0x100
+
+
+#pragma SET_DATA_SECTION(".CanCHAData")
+
+extern union uCanCHAdeMO CanCHAdeMO;
+extern struct sCanCHAdeMO CanCHAdeMORx;
+extern unsigned int CanCHAdeMORxStatus;
+extern unsigned int CanCHAdeMORxIsrCnt;
+extern unsigned int CanCHAdeMORxIsrErrCnt;
+
+extern unsigned int CanCHAdeMOTxSeqTable[];
+extern unsigned int CanCHAdeMOTxSeqTableSize;
+extern unsigned int CanCHAdeMOTxSeqTableCnt;
+
+extern unsigned int CANCHADEMO_RxID_OFFSET;
+extern unsigned int CANCHADEMO_TxID_OFFSET;
+
+#pragma SET_DATA_SECTION()
+
+extern void InitCanCHAdeMO();
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void CanCHAdeMORxUpdate();
+extern void CanCHAdeMORun_500us();
+extern void CanCHAdeMORun();
+extern void CanCHAdeMOTxUpdate();
+extern void CanCHAdeMOTxMasToSlv();
+extern void CanCHAdeMOTxSlvToMas();
+
+extern void CanCHAdeMOMasTxRun();
+extern void CanCHAdeMOSlvTxRun();
+
+extern interrupt void CanCHAdeMORxIsr(void);
+#pragma SET_CODE_SECTION()
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMO_H_ */
 
Common_Resource/CommonLibrary/include/CanCHAdeMODataMap.h (added)
+++ Common_Resource/CommonLibrary/include/CanCHAdeMODataMap.h
@@ -0,0 +1,186 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : CanCHAdeMODataMap.h
+//          Created on : 2023. 11. 15.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMODATAMAP_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMODATAMAP_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include  "CommonLib.h"
+
+struct sCanCHAdeMOIDx00
+{
+    float IbatRef;
+    union uSTATUS Status;
+    uint16_t :16;
+};
+
+struct sCanCHAdeMOIDx01
+{
+    uint16_t HeartBeat :16;
+    uint16_t Mode :16;
+    uint32_t :32;
+};
+
+struct sCanCHAdeMOIDx02
+{
+//    union uFAULT_HW FaultHW;
+    union uFAULT_SW1 FaultSW1;
+};
+
+struct sCanCHAdeMOIDx03
+{
+    union uFAULT_SW2 FaultSW2;
+    union uFAULT_SW3 FaultSW3;
+};
+
+struct sCanCHAdeMOIDx04
+{
+    float Temp_AcSwHeatSink1;
+    float Temp_AcSwHeatSink2;
+};
+
+struct sCanCHAdeMOIDx05
+{
+    float Temp_DcSwHeatSink1;
+    float Temp_DcSwHeatSink2;
+};
+
+struct sCanCHAdeMOIDx06
+{
+    float Temp_Spare1;
+    float Temp_Spare2;
+};
+
+struct sCanCHAdeMOIDx07
+{
+    float Ibat;
+    float Vbat;
+};
+
+struct sCanCHAdeMOIDx08
+{
+    float Pbat;
+    float Vdc;
+};
+
+struct sCanCHAdeMOIDx09
+{
+    float Vqe;
+    float Iqe;
+};
+
+struct sCanCHAdeMOIDx0A
+{
+    float Pinv;
+    uint32_t :32;
+};
+
+union uCanCHAdeMOIDx00
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx00 bit;
+};
+
+union uCanCHAdeMOIDx01
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx01 bit;
+};
+
+union uCanCHAdeMOIDx02
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx02 bit;
+};
+
+union uCanCHAdeMOIDx03
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx03 bit;
+};
+
+union uCanCHAdeMOIDx04
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx04 bit;
+};
+
+union uCanCHAdeMOIDx05
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx05 bit;
+};
+
+union uCanCHAdeMOIDx06
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx06 bit;
+};
+
+union uCanCHAdeMOIDx07
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx07 bit;
+};
+
+union uCanCHAdeMOIDx08
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx08 bit;
+};
+
+union uCanCHAdeMOIDx09
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx09 bit;
+};
+
+union uCanCHAdeMOIDx0A
+{
+    uint64_t all;
+    struct sCanCHAdeMOIDx0A bit;
+};
+
+//ID0xx = Master, ID1xx = Slave
+struct sCanCHAdeMODataSet
+{
+    union uCanCHAdeMOIDx00 IDx00;
+    union uCanCHAdeMOIDx01 IDx01;
+    union uCanCHAdeMOIDx02 IDx02;
+    union uCanCHAdeMOIDx03 IDx03;
+    union uCanCHAdeMOIDx04 IDx04;
+    union uCanCHAdeMOIDx05 IDx05;
+    union uCanCHAdeMOIDx06 IDx06;
+    union uCanCHAdeMOIDx07 IDx07;
+    union uCanCHAdeMOIDx08 IDx08;
+    union uCanCHAdeMOIDx09 IDx09;
+    union uCanCHAdeMOIDx0A IDx0A;
+};
+
+union uCanCHAdeMO
+{
+    struct sCanCHAdeMODataSet Data;
+    uint64_t DataArr[0x0A + 1];
+};
+
+struct sCanCHAdeMO
+{
+    union uCanCHAdeMO Mas;
+    union uCanCHAdeMO Slv;
+};
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_CANCHADEMODATAMAP_H_ */
 
Common_Resource/CommonLibrary/include/CanLib.h (added)
+++ Common_Resource/CommonLibrary/include/CanLib.h
@@ -0,0 +1,116 @@
+/*
+ * Can_Driver.h
+ *
+ *  Created on: 2021. 8. 3.
+ *      Author: Kim-JeongWoo
+ */
+
+#ifndef MAIN_RESOURCE_CAN_DRIVER_H_
+#define MAIN_RESOURCE_CAN_DRIVER_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+struct sCanData32bit
+{
+	uint32_t Low;
+	uint32_t High;
+};
+
+struct sCanData16bit
+{
+	uint16_t Word[4];
+};
+
+
+struct sCanData8bit
+{
+	uint64_t Byte0 :8;
+	uint64_t Byte1 :8;
+	uint64_t Byte2 :8;
+	uint64_t Byte3 :8;
+	uint64_t Byte4 :8;
+	uint64_t Byte5 :8;
+	uint64_t Byte6 :8;
+	uint64_t Byte7 :8;
+};
+
+
+
+union uCANDATA_TYPE
+{
+    uint64_t all;
+    struct sCanData16bit U16;
+    struct sCanData32bit U32;
+    struct sCanData8bit U8;
+};
+
+struct sCANRXDATA
+{
+    unsigned int Id;
+    CAN_MsgFrameType *frameType;
+    uint16_t Data[8];
+};
+
+struct sCanMsg
+{
+	union uCANDATA_TYPE Data;    //Data
+    uint32_t Id;				 //Id ext 모드일 경우 최대 29bit
+    CAN_MsgFrameType *frameType; //Std or Ext
+    uint16_t Lenth;			     //Lenth
+    uint16_t Cnt;			     //Lenth
+};
+
+
+
+
+#define CANCHADEMO_RX_MBOX_START 1
+#define CANCHADEMO_RX_MBOX_END   31
+
+//#define CANME_RX_MBOX_START 1
+//#define CANME_RX_MBOX_END   31
+
+
+#pragma SET_DATA_SECTION(".CanLib")
+
+extern unsigned int TerminalResSet;
+extern sCanMsg CanaRxMbox[32];
+extern sCanMsg CanaTxMbox;
+//extern sCanMsg CanaTxMbox2;
+
+//extern sCanMsg CanbRxMbox[32];
+//extern sCanMsg CanbTxMbox;
+
+extern int FlagCanReset;
+
+#pragma SET_DATA_SECTION()
+
+
+
+
+
+extern void CanErrorReset();
+extern void InitCan();
+
+
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+
+extern void CanTxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg);
+extern bool CanRxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg);
+
+#pragma SET_CODE_SECTION()
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_CAN_DRIVER_H_ */
 
Common_Resource/CommonLibrary/include/CpuInfo.h (added)
+++ Common_Resource/CommonLibrary/include/CpuInfo.h
@@ -0,0 +1,25 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : CpuInfo.h
+//          Created on : 2023. 3. 6.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_SOURCE_CPUINFO_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_SOURCE_CPUINFO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void CpuInfo();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_SOURCE_CPUINFO_H_ */
 
Common_Resource/CommonLibrary/include/DigitalIO.h (added)
+++ Common_Resource/CommonLibrary/include/DigitalIO.h
@@ -0,0 +1,143 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : DigitalIO.h
+//          Created on : 2022. 10. 30.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_DIGITALIO_H_
+#define MAIN_RESOURCE_INCLUDE_DIGITALIO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NORMAL_OPEN 0
+#define NORMAL_CLOSE 1
+
+
+
+extern void InitDigitalIOSet(void);
+extern void DigitalInput(void);
+extern void DigitalOutput(void);
+
+void InitDigitalInput(void);
+void InitDigitalOutput(void);
+
+
+extern void ReadDioExor(void);
+extern void WriteDioExor(void);
+extern void ResetDioExor(void);
+
+extern int FlagWrDioExor;
+extern int FlagRstDioExor;
+
+extern long int BufferDoutExorAll;
+
+union uDinRawData
+{
+    Uint32 all;
+};
+
+
+
+struct sDinList
+{
+    Uint16 Button           :1;                 //0
+    Uint16 Door_chk         :1;                 //1
+
+    Uint16 rsd1             :6;                 //2~7
+
+    Uint16 rsd2             :8;                 //8~15
+
+    Uint16 FT_CH1_UV        :1;                 //0
+    Uint16 FT_CH1_VIS       :1;                 //1
+    Uint16 FT_CH1_IR        :1;                 //2
+    Uint16 FT_CH2_UV        :1;                 //3
+
+    Uint16 FT_CH2_VIS       :1;                 //4
+    Uint16 FT_CH2_IR        :1;                 //5
+    Uint16 FT_CH3_UV        :1;                 //6
+    Uint16 FT_CH3_VIS       :1;                 //7
+
+    Uint16 FT_CH3_IR        :1;                 //8
+    Uint16 FT_CH4_UV        :1;                 //9
+    Uint16 FT_CH4_VIS       :1;                 //10
+    Uint16 FT_CH4_IR        :1;                 //11
+
+    Uint16 rsd3             :4;                 //12
+
+};
+
+
+
+union uDinData
+{
+    Uint32 all;
+    struct sDinList bit;
+};
+
+union uDinExor
+{
+    Uint32 all;
+    struct sDinList bit;
+};
+
+struct sDin
+{
+    union uDinRawData DataRaw;
+    union uDinData Data;
+    union uDinExor Exor;
+};
+
+struct sDoutList
+{
+    Uint16 Ch00                 :1; // 0x0001 (Red)
+    Uint16 Ch01                 :1; // 0x0002
+    Uint16 Ch02                 :1; // 0x0004 (Green)
+    Uint16 Ch03                 :1; // 0x0008 (Yellow)
+
+    Uint16 Ch04                 :1; // 0x0010
+    Uint16 Ch05                 :1; // 0x0020
+    Uint16 Ch06                 :1; // 0x0040
+    Uint16 Ch07                 :1; // 0x0080
+
+    Uint16 Ch08                 :1; // 0x0100  //충전건 Lock
+    Uint16 Ch09                 :1; // 0x0200
+    Uint16 Ch20                 :1; // 0x0400
+    Uint16 Ch21                 :1; // 0x0800  //충전건 Unlock
+
+    Uint16 Ch22                 :1; // 0x1000
+    Uint16 Ch23                 :1; // 0x2000
+    Uint16 Ch24                 :1; // 0x4000
+    Uint16 Ch25                 :1; // 0x8000
+};
+
+union uDOUT_DATA
+{
+    Uint16 all;
+    struct sDoutList bit;
+};
+
+union uDOUT_EXOR
+{
+    Uint16 all;
+    struct sDoutList bit;
+};
+
+struct sDOUT
+{
+    union uDOUT_DATA Data;
+    union uDOUT_EXOR Exor;
+};
+
+extern struct sDin Din;
+extern struct sDOUT Dout;
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_DIGITALIO_H_ */
 
Common_Resource/CommonLibrary/include/EPwmLib.h (added)
+++ Common_Resource/CommonLibrary/include/EPwmLib.h
@@ -0,0 +1,90 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : EPwm.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+
+#ifndef _EPWM_H_
+#define _EPWM_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PWM1_INT_ENABLE 1
+#define PWM2_INT_ENABLE 1
+#define PWM3_INT_ENABLE 1
+#define PWM4_INT_ENABLE 1
+#define PWM5_INT_ENABLE 1
+#define PWM6_INT_ENABLE 1
+
+extern void InitEPwm1Gpio(void);
+extern void InitEPwm2Gpio(void);
+extern void InitEPwm3Gpio(void);
+extern void InitEPwm4Gpio(void);
+extern void InitEPwm5Gpio(void);
+extern void InitEPwm6Gpio(void);
+extern void InitEPwm7Gpio(void);
+extern void InitEPwm8Gpio(void);
+extern void InitEPwm9Gpio(void);
+extern void InitEPwm10Gpio(void);
+extern void InitEPwm11Gpio(void);
+extern void InitEPwm12Gpio(void);
+
+extern void InitEPwm(void);
+
+extern void InitEPwm1(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm2(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm3(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm4(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm5(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm6(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm7(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm8(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+extern void InitEPwm9(float PwmFreq, float Deadtime, unsigned int CTR_Mode, unsigned int Tbphs);
+
+extern unsigned int PwmPrdCal(float PwmFreq, float Tbclk, unsigned int CtrDiv);
+extern unsigned int PwmDeadtimeCal(float PwmDeadtime, float Tbclk);
+
+
+extern float Tpwm;
+
+extern float InvPwmFreq;
+extern unsigned int InvPwmPrd;
+
+extern float BoostPwmFreq;
+extern unsigned int BoostPwmPrd;
+
+extern unsigned int DabPwmPrd;
+
+extern float Deadtime;
+
+
+
+
+extern void InitGateEnbGpio(void);
+extern void GatePulseGenerate(void);
+
+////////////Temp///////////////////////////
+#define GPIO_GATE_ENB    GpioDataRegs.GPCDAT.bit.GPIO95
+
+
+extern void GateOutEnable(void);
+extern void GateOutDisable(void);
+extern void PwmCntUpDate(void);
+
+extern void PwmTestCode(void);
+
+
+extern interrupt void Cpu1Epwm1Isr(void);
+extern interrupt void Cpu2Epwm1Isr(void);
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _EPWM_H_ */
 
Common_Resource/CommonLibrary/include/Eeprom.h (added)
+++ Common_Resource/CommonLibrary/include/Eeprom.h
@@ -0,0 +1,62 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : Eeprom.h
+//          Created on : 2023. 10. 31.
+//         Description : EEPROM Library (SPI-Type)
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_SOURCE_EEPROM_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_SOURCE_EEPROM_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//EEPROM 저장영역 설정
+#define pEepromAdcScale  	0x0000
+#define pEepromAdcOffset 	0x0100
+#define pEepromExor       	0x1000
+#define pEepromChk			0x3000
+
+#define EEPROM_MAX_SIZE  0xFFFF /4
+
+extern void EepromWriteAdcScale();
+extern void EepromReadAdcScale();
+
+extern void EepromWriteAdcOffset();
+extern void EepromReadAdcOffset();
+
+extern void EepromReadDioExor();
+extern void EepromWriteDioExor();
+
+extern void EepromCmds();
+extern void EepromChk();
+
+//for test
+extern void EepromChkCodeClr();
+extern void EepromChkCodeWr();
+
+
+extern unsigned int FlagWrAdcScale;
+extern unsigned int FlagRdAdcScale;
+extern unsigned int FlagWrAdcOffset;
+extern unsigned int FlagRdAdcOffset;
+
+extern float Testpcs1;
+extern float Testpcs2;
+extern float Testpcs3;
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+
+
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_SOURCE_EEPROM_H_ */
 
Common_Resource/CommonLibrary/include/EepromLib.h (added)
+++ Common_Resource/CommonLibrary/include/EepromLib.h
@@ -0,0 +1,44 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-ENEMAN-CPU1
+//           File Name : EepromLib.h
+//          Created on : 2023. 07. 12.
+//         Description :
+//              Author : KWONJEONGMIN
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_EEPROMLIB_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_EEPROMLIB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <CommonLib.h>
+
+#define ERASE   0x0380    //ERASE
+#define ERAL    0x0240    //ERASE ALL
+#define EWDS    0x0200    //ERASE/WRITE DISABLE
+#define EWEN    0x0260    //ERASE/WRITE ENABLE
+#define READ    0x0300    //READ
+#define WRITE   0x0280    //WRITE
+#define WRAL    0x0220    //WRITE ALL
+
+//extern void InitSpi();
+extern void InitSpiGpio();
+
+extern void ew_disable();
+extern void ew_enable();
+extern bool is_ew_enabled();
+extern void erase_all();
+extern void write_all();
+extern void write();
+extern void erase();
+extern word read();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_EEPROMLIB_H_ */
 
Common_Resource/CommonLibrary/include/F28377D_TempSensor.h (added)
+++ Common_Resource/CommonLibrary/include/F28377D_TempSensor.h
@@ -0,0 +1,34 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU2
+//           File Name : F28377D_TempSensor.h
+//          Created on : 2022. 12. 16.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_F28377D_TEMPSENSOR_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_F28377D_TEMPSENSOR_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void InitDspTempSensor(void);
+
+extern int16 GetTemperatureC(int16 sensorSample);
+extern int16 GetTemperatureK(int16 sensorSample);
+
+#pragma SET_DATA_SECTION(".IntTemp")
+extern float32 tempSensor_tempSlope;
+extern float32 tempSensor_tempOffset;
+extern float32 tempSensor_scaleFactor;
+#pragma SET_DATA_SECTION()
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_F28377D_TEMPSENSOR_H_ */
 
Common_Resource/CommonLibrary/include/FaultDefine.h (added)
+++ Common_Resource/CommonLibrary/include/FaultDefine.h
@@ -0,0 +1,157 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : FaultDefine.h
+//          Created on : 2022. 10. 30.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_INCLUDE_FAULTDEFINE_H_
+#define MAIN_RESOURCE_INCLUDE_FAULTDEFINE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct sFAULT_SW_LIST1
+{
+	Uint32 CH1_UV_OV :1;		//  0x00000001
+	Uint32 CH1_VIS_OV :1;		//  0x00000002
+	Uint32 CH1_IR_OV :1;		        //	0x00000004
+
+	Uint32 CH2_UV_OV :1;               //  0x00000008
+	Uint32 CH2_VIS_OV :1;  		//  0x00000010
+	Uint32 CH2_IR_OV :1;         //  0x00000020
+
+	Uint32 CH3_UV_OV :1;         //  0x00000040
+	Uint32 CH3_VIS_OV :1;         //  0x00000080
+	Uint32 CH3_IR_OV :1;			//  0x00000100
+
+	Uint32 CH4_UV_OV :1;          //  0x00000200
+	Uint32 CH4_VIS_OV :1;            //  0x00000400
+    Uint32 CH4_IR_OV :1;           //  0x00000800
+
+	Uint32 Reseved0 :20;			    //  0x08000000 ~ 0x80000000
+
+};
+
+union uFAULT_SW1
+{
+	Uint32 all;
+	struct sFAULT_SW_LIST1 bit;
+};
+
+struct sFAULT_SW_LIST2
+{
+
+	//contactType Fault
+	Uint32 Switch_EmergencyStop :1;		// 0x00000001
+//	Uint32 Switch_Paddlelock :1;		// 0x00000002 Paddle lock switch or Limit �switch
+//	Uint32 FuseAcAphase :1;				// 0x00000004
+//	Uint32 FuseAcBphase :1;				// 0x00000008
+//	Uint32 FuseAcCphase :1;				// 0x00000010
+//	Uint32 FuseDc :1;					// 0x00000020
+//
+//	Uint32 SpdCtrl :1;					// 0x00000040
+//	Uint32 SpdPower :1;				    // 0x00000080
+//
+//	Uint32 FanBeOutStackFrontTop :1;	// 0x00000100
+//	Uint32 FanBeOutStackFrontBot :1;	// 0x00000200
+//	Uint32 FanMcStackFront :1;			// 0x00000400
+//	Uint32 FanMcStackRear :1;			// 0x00000800
+//	Uint32 FanCpRearLeft :1;			// 0x00001000
+//	Uint32 FanCpRearRight :1;			// 0x00002000
+//	Uint32 FanRackLeft :1;				// 0x00004000
+//	Uint32 FanRackRight :1;			    // 0x00008000
+//	Uint32 FanBeStackFront :1;			// 0x00010000
+//	Uint32 FanBeStackRear :1;			// 0x00020000
+//
+//	Uint32 OT_ThsBeStackLeft :1;		// 0x00040000  //Thermal Switch
+//	Uint32 OT_ThsBeStackRight :1;		// 0x00080000  //Thermal Switch
+//
+//	Uint16 Cmc :1;               		// 0x00100000  //Cmc
+//	Uint16 Mmc :1;              		// 0x00200000  //Mmc
+//	Uint16 Mccb_Open :1;				// 0x00400000  // MCCB
+//
+//	Uint16 OT_Ntc_Dcl :1;				// 0x00800000 //
+//	Uint16 OT_Ntc_Acl :1;				// 0x01000000 //
+//	Uint16 OT_Ntc_Tr :1;				// 0x02000000 //
+//
+//	Uint16 OT_Ntc_SicConvA :1;			// 0x04000000 //
+//	Uint16 OT_Ntc_SicConvB :1;			// 0x08000000 //
+//	Uint16 OT_Ntc_SicConvC :1;			// 0x10000000 //
+//
+//	Uint16 OT_Ntc_SicInvA :1;			// 0x20000000 //
+//	Uint16 OT_Ntc_SicInvB :1;			// 0x40000000 //
+//	Uint16 OT_Ntc_SicInvC :1;			// 0x80000000 //
+
+};
+
+union uFAULT_SW2
+{
+	Uint32 all;
+	struct sFAULT_SW_LIST2 bit;
+};
+
+struct sFAULT_SW_LIST3 //
+{
+    Uint32 Comm_RTU :1;                 // 0x00000001
+    Uint32 Comm_Can :1;                 // 0x00000002
+//	Uint32 Offset_Iabc :1;         // 0x00000001
+//	Uint32 Offset_IL :1;         // 0x00000002
+//	Uint32 Offset_Ibe :1;         // 0x00000004
+//
+//	Uint32 Err_Nvram :1; 		// 0x00000008
+//	Uint32 Comm_CanMe :1;  		// 0x00000010
+//	Uint32 Comm_CanBe :1;         // 0x00000020
+//
+//	Uint32 Err_Parallel :1;
+
+	Uint32 :30;
+};
+
+union uFAULT_SW3
+{
+	Uint32 all;
+	struct sFAULT_SW_LIST3 bit;
+};
+
+struct sFault
+{
+	union uFAULT_SW1 Sw1; //32bit
+	union uFAULT_SW2 Sw2; //32bit
+	union uFAULT_SW3 Sw3; //32bit
+};
+
+struct sFaultSet
+{
+	float Ratio;
+	float SetLevel;
+	float SetTime;
+	int SetCnt;
+	int ChkCnt; // Check Count
+	int SetStableCnt;
+	int StableCnt;
+};
+
+#pragma SET_DATA_SECTION(".Fault")
+
+extern struct sFault Fault;
+
+extern struct sFaultSet FT_UV_OV;
+extern struct sFaultSet FT_VIS_OV;
+extern struct sFaultSet FT_IR_OV;
+
+extern struct sFaultSet OtNtc5;
+extern struct sFaultSet OtNtc6;
+
+extern struct sMesureList FaultLatch;
+
+#pragma SET_DATA_SECTION()
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_INCLUDE_FAULTDEFINE_H_ */
 
Common_Resource/CommonLibrary/include/ModBus.h (added)
+++ Common_Resource/CommonLibrary/include/ModBus.h
@@ -0,0 +1,84 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : ModBus.h
+//          Created on : 2019. 06. 09.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef _MODBUS_SCI_H__
+#define _MODBUS_SCI_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void InitModbusSci();
+void InitModbusPtr();
+
+extern void InitSci();
+
+#define MODBUSA_ENB     1
+#define MODBUSB_ENB     0
+
+
+//-----------------------Modbus A -----------------------------//
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+extern void ModbusACheckBuffer();
+extern void ModbusAResponse();
+void ModbusA3rdResponse();
+void ModbusA4thResponse();
+void ModbusA6thResponse();
+void ModbusA16thResponse();
+void ModbusABadResponse();
+int ModbusASerialRange(int address);
+int ModbusACRC16(int dataLength,int check);
+
+extern void ModbusARxDataUpdate(void);
+extern void ModbusATxDataUpdate(void);
+#pragma SET_CODE_SECTION()
+
+
+#define MODBUSAPTRMAX 1010
+
+#pragma SET_DATA_SECTION(".Modbus")
+extern volatile void *ModbusAPtr[MODBUSAPTRMAX];
+void InitModbusAPtr(void);
+#pragma SET_DATA_SECTION()
+
+//-----------------------Modbus B -----------------------------//
+
+#if(MODBUSB_ENB)
+
+extern void ModbusBCheckBuffer();
+extern void ModbusBResponse();
+void ModbusB3rdResponse();
+void ModbusB4thResponse();
+void ModbusB6thResponse();
+void ModbusB16thResponse();
+void ModbusBBadResponse();
+int ModbusBSerialRange(int address);
+int ModbusBCRC16(int dataLength,int check);
+
+void InitModbusBPtr(void);
+#define MODBUSBPTRMAX 300
+extern volatile void *ModbusBPtr[MODBUSBPTRMAX];
+extern void ModbusBRxDataUpdate(void);
+extern void ModbusBTxDataUpdate(void);
+
+#endif
+
+extern void ModbusALLCheckBuffer(void);
+extern void ModbusALLResponse(void);
+extern void ModbusALLDataUpdate(void);
+
+//#include "CRC16.h"
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif	// of _Modbus_SCI_H__
 
Common_Resource/CommonLibrary/include/NtcLib.h (added)
+++ Common_Resource/CommonLibrary/include/NtcLib.h
@@ -0,0 +1,53 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Ntc.h
+//          Created on : 2022. 10. 17.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_NTC_H_
+#define MAIN_RESOURCE_NTC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "CodeLibrary.h"
+
+struct sTEMP_LIST
+{
+	//Internal ADC
+	float DcSwHeatSink1;
+	float DcSwHeatSink2;
+	float AcSwHeatSink1; //나중에 변수명 정확하게 기입 할 것
+	float AcSwHeatSink2;
+	float Spare1;
+	float Spare2;
+
+	//I.C 온도
+	float MCU;
+	float RTC;
+};
+
+
+#pragma SET_DATA_SECTION(".TempData")
+
+extern sTEMP_LIST Temp;
+#pragma SET_DATA_SECTION()
+
+
+
+extern void InitNtcTable(void);
+extern void NtcRead(void);
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_NTC_H_ */
 
Common_Resource/CommonLibrary/include/RTC.h (added)
+++ Common_Resource/CommonLibrary/include/RTC.h
@@ -0,0 +1,414 @@
+/*
+ * RTC.h
+ *
+ *  Created on: 2024. 2. 20.
+ *      Author: user
+ */
+
+/*
+* RTC.h
+*
+*  Created on: 2017. 1. 25.
+*      Author: kdkor
+*/
+
+
+#ifndef MAIN_RESOURCE_INCLUDE_RTC_H_
+#define MAIN_RESOURCE_INCLUDE_RTC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern unsigned int Spid_Rx(unsigned int Read_addr);
+extern void Spid_Tx(unsigned int Tx_Data);
+
+//RTC DEVICE MODEL
+// DS3234 SPI 4-Wire RTC
+#define M48T35Y 0
+#define DS3234 1
+#define DS1390 0
+
+
+#if(DS3234)
+
+
+// Read, Write Mode
+#define RTC_RD  0x0000
+#define RTC_WR  0x8000
+
+// ADDR Preset
+#define RTC_SEC         0x0000
+#define RTC_MIN         0x0100
+#define RTC_HOUR        0x0200
+#define RTC_DAY         0x0300
+#define RTC_DATE        0x0400
+#define RTC_MONTH       0x0500
+#define RTC_YEAR        0x0600
+
+#define RTC_ALARM1_SEC      0x0700
+#define RTC_ALARM1_MIN      0x0800
+#define RTC_ALARM1_HOUR     0x0900
+#define RTC_ALARM1_DAY_DATE 0x0A00
+
+#define RTC_ALARM2_MIN      0x0B00
+#define RTC_ALARM2_HOUR     0x0C00
+#define RTC_ALARM2_DATE     0x0D00
+
+#define RTC_CTRL            0x0E00
+#define RTC_CTRL_STATUS     0x0F00
+
+#define RTC_XTAL_AGING_OFFSET   0x1000
+
+#define RTC_TEMP_MSB 0x1100
+#define RTC_TEMP_LSB 0x1200
+
+struct sDS3234_SEC_BIT
+{
+        Uint16 Unit :4;         // 0:3    Seconds 일의 자리
+        Uint16 Tens :3;         // 4:6    Seconds 10의 자리
+        Uint16 rsvd1 :9;            // 7:15   rsvd
+};
+//
+union sDS3234_SEC
+{
+        Uint16 all;
+        struct sDS3234_SEC_BIT bit;
+};
+
+struct sDS3234_MIN_BIT
+{
+        Uint16 Unit :4;             // 0:3    Minutes 일의 자리
+        Uint16 Tens :3;         // 4:6    Minutes 10의 자리
+        Uint16 rsvd1 :9;            // 7:15   rsvd
+};
+
+union sDS3234_MIN
+{
+        Uint16 all;
+        struct sDS3234_MIN_BIT bit;
+};
+
+struct sDS3234_HOUR_BIT
+{
+        Uint16 Unit :4;             // 0:3    Hour 일의 자리
+        Uint16 Tens :2;             // 4:5    Hour 10의 자리
+        Uint16 Mode_24_12 :1;       // 6      12/24 Mode
+        Uint16 rsvd1 :9;            // 7:15   rsvd
+};
+//
+union sDS3234_HOUR
+{
+        Uint16 all;
+        struct sDS3234_HOUR_BIT bit;
+};
+
+
+struct sDS3234_DAY_BIT
+{
+        Uint16 Day :3;              // 0:2    Day (요일) 1~7
+        Uint16 rsvd4 :13;           // 3:15   rsvd
+
+};
+//
+union sDS3234_DAY
+{
+        Uint16 all;
+        struct sDS3234_DAY_BIT bit;
+};
+
+struct sDS3234_DATE_BIT
+{
+        Uint16 Unit :4;             // 0:3    1 Date (날짜)
+        Uint16 Tens :2;             // 4:5    10 Date (날짜)
+        Uint16 rsvd5 :10;           // 6:15   rsvd
+};
+//
+union sDS3234_DATE
+{
+        Uint16 all;
+        struct sDS3234_DATE_BIT bit;
+};
+
+
+struct sDS3234_MONTH_BIT
+{
+        Uint16 Unit :4;         // 0:3    Month
+        Uint16 Tens :1;         // 4      Month 10의 자리
+        Uint16 rsvd6 :2;            // 5:6    rsvd
+        Uint16 Century :1;          // 7      Century
+        Uint16 rsvd7 :8;            // 8:15   rsvd
+};
+//
+union sDS3234_MONTH
+{
+        Uint16 all;
+        struct sDS3234_MONTH_BIT bit;
+};
+
+struct sDS3234_YEAR_BIT
+{
+        Uint16 Unit :4;             // 0:3    Year
+        Uint16 Tens :4;             // 4:7    Year 10의 자리
+        Uint16 rsvd8 :8;            // 8:15   rsvd
+};
+
+union sDS3234_YEAR
+{
+        Uint16 all;
+        struct sDS3234_YEAR_BIT bit;
+};
+
+
+struct sDS3234_TEMP_BIT
+{
+        Uint16 LSB :8;              // 4:7    Month 10의 자리
+        Uint16 MSB :8;              // 0:3    Month
+};
+
+union sDS3234_TEMP
+{
+        Uint16 all;
+        struct sDS3234_TEMP_BIT bit;
+};
+
+struct sDS3234_REGS
+{
+    volatile union sDS3234_SEC SecDAT;
+    volatile int16 Sec;
+
+    volatile union sDS3234_MIN MinDAT;
+    volatile int16 Min;
+
+    volatile union sDS3234_HOUR HourDAT;
+    volatile int16 Hour;
+
+    volatile union sDS3234_DAY  DayDAT;
+    volatile int16 Day;
+
+    volatile union sDS3234_DATE  DateDAT;
+    volatile int16 Date;
+
+    volatile union sDS3234_MONTH MonthDAT;
+    volatile int16 Month;
+
+    volatile union sDS3234_YEAR YearDAT;
+    volatile int16 Year;
+
+    volatile union sDS3234_TEMP TempDAT;
+    volatile float Temp;
+};
+
+struct sRTC_DATA_BUF
+{
+        int Sec;
+        int Min;
+        int Hour;
+        int Date;
+        int Day;
+        int Month;
+        int Year;
+        int Temp;
+};
+
+extern struct sDS3234_REGS RTCRegs;
+extern struct sDS3234_REGS RTCWrBuf;
+
+#endif
+
+
+#if(DS1390)
+
+// Read, Write Mode
+#define RTC_RD  0x00
+#define RTC_WR  0x80
+
+// ADDR Preset
+#define RTC_HUNDREDTHS_SEC          0x00
+#define RTC_SEC                     0x01
+#define RTC_MIN                     0x02
+#define RTC_HOUR                    0x03
+#define RTC_DAY                     0x04
+#define RTC_DATE                    0x05
+#define RTC_MONTH                   0x06
+#define RTC_YEAR                    0x07
+
+#define RTC_ALARM1_HUNDREDTHS_SEC   0x08
+#define RTC_ALARM1_SEC              0x09
+#define RTC_ALARM1_MIN              0x0A
+#define RTC_ALARM1_HOUR             0x0B
+#define RTC_ALARM1_DAY_DATE         0x0C
+
+#define RTC_CTRL                    0x0D
+#define RTC_CTRL_STATUS             0x0E
+
+struct sDS1390_HUNDREDTH_SEC_BIT
+{
+        Uint16 Hundredths :4;           // 0:3    Seconds 일의 자리
+        Uint16 Tenths :4;           // 4:7    Seconds 10의 자리
+        Uint16 rsvd1 :8;            // 8:15   rsvd
+};
+
+union sDS1390_HUNDREDTH_SEC
+{
+        Uint16 all;
+        struct sDS1390_HUNDREDTH_SEC_BIT bit;
+};
+
+struct sDS1390_SEC_BIT
+{
+        Uint16 Unit :4;         // 0:3    Seconds 일의 자리
+        Uint16 Tens :3;         // 4:7    Seconds 10의 자리
+        Uint16 rsvd1 :9;            // 8:15   rsvd
+};
+//
+union sDS1390_SEC
+{
+        Uint16 all;
+        struct sDS1390_SEC_BIT bit;
+};
+
+struct sDS1390_MIN_BIT
+{
+        Uint16 Unit :4;             // 0:3    Minutes 일의 자리
+        Uint16 Tens :3;         // 4:6    Minutes 10의 자리
+        Uint16 rsvd1 :9;            // 7:15   rsvd
+};
+
+union sDS1390_MIN
+{
+        Uint16 all;
+        struct sDS1390_MIN_BIT bit;
+};
+
+struct sDS1390_HOUR_BIT
+{
+        Uint16 Unit :4;             // 0:3    Hour 일의 자리
+        Uint16 Tens :2;             // 4:5    Hour 10의 자리
+        Uint16 Mode_24_12 :1;       // 6      12/24 Mode
+        Uint16 rsvd1 :9;            // 7:15   rsvd
+};
+//
+union sDS1390_HOUR
+{
+        Uint16 all;
+        struct sDS1390_HOUR_BIT bit;
+};
+
+
+struct sDS1390_DAY_BIT
+{
+        Uint16 Day :3;              // 0:2    Day (요일)
+        Uint16 rsvd4 :13;           // 3:15   rsvd
+
+};
+//
+union sDS1390_DAY
+{
+        Uint16 all;
+        struct sDS1390_DAY_BIT bit;
+};
+
+struct sDS1390_DATE_BIT
+{
+        Uint16 Unit :4;             // 0:3    Date (날짜)
+        Uint16 Tens :2;         // 4:5    Date (날짜)
+        Uint16 rsvd5 :10;           // 6:15   rsvd
+};
+//
+union sDS1390_DATE
+{
+        Uint16 all;
+        struct sDS1390_DATE_BIT bit;
+};
+
+
+struct sDS1390_MONTH_BIT
+{
+        Uint16 Unit :4;         // 0:3    Month
+        Uint16 Tens :1;         // 4      Month 10의 자리
+        Uint16 rsvd6 :2;            // 5:6    rsvd
+        Uint16 Century :1;          // 7      Century
+        Uint16 rsvd7 :8;            // 8:15   rsvd
+};
+//
+union sDS1390_MONTH
+{
+        Uint16 all;
+        struct sDS1390_MONTH_BIT bit;
+};
+
+struct sDS1390_YEAR_BIT
+{
+        Uint16 Unit :4;             // 0:3    Month
+        Uint16 Tens :4;         // 4:7    Month 10의 자리
+        Uint16 rsvd8 :8;            // 8:15   rsvd
+};
+
+union sDS1390_YEAR
+{
+        Uint16 all;
+        struct sDS1390_YEAR_BIT bit;
+};
+
+
+struct sDS1390_REGS
+{
+    volatile union sDS1390_SEC SecDAT;
+    volatile int16 Sec;
+
+    volatile union sDS1390_MIN MinDAT;
+    volatile int16 Min;
+
+    volatile union sDS1390_HOUR HourDAT;
+    volatile int16 Hour;
+
+    volatile union sDS1390_DAY  DayDAT;
+    volatile int16 Day;
+
+    volatile union sDS1390_DATE  DateDAT;
+    volatile int16 Date;
+
+    volatile union sDS1390_MONTH MonthDAT;
+    volatile int16 Month;
+
+    volatile union sDS1390_YEAR YearDAT;
+    volatile int16 Year;
+};
+
+
+
+struct sRTC_DATA_BUF
+{
+        int Sec;
+        int Min;
+        int Hour;
+        int Date;
+        int Day;
+        int Month;
+        int Year;
+};
+
+
+extern struct sDS1390_REGS RTCRegs;
+extern struct sDS1390_REGS RTCWrBuf;
+
+#endif
+
+extern void InitRTC(void);
+extern void RtcRunning(void);
+extern void RtcRun(void);
+extern void RtcReadTime(void);
+extern void RtcWriteTime(void);
+
+extern unsigned int Flag_Wr_RTC;
+
+extern unsigned long RTCDate;
+extern unsigned long RTCTime;
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif
+
 
Common_Resource/CommonLibrary/include/RTC_SPI.h (added)
+++ Common_Resource/CommonLibrary/include/RTC_SPI.h
@@ -0,0 +1,52 @@
+/***************************************************************
+    RTC_SPI.h
+	copyright (c) 2017 by Sang-Yong Kim
+	All Rights Reserved.
+****************************************************************/
+#ifndef _RTC_SPI_H__
+#define _RTC_SPI_H__
+
+// Read, Write Mode
+#define RTC_RD	0x00
+#define RTC_WR	0x80
+
+// ADDR Preset
+#define RTC_SEC 		0x00
+#define RTC_MIN	 		0x01
+#define RTC_HOUR 		0x02
+#define RTC_DAY 		0x03
+#define RTC_DATE 		0x04
+#define RTC_MONTH 		0x05
+#define RTC_YEAR 		0x06
+
+#define RTC_ALARM1_SEC 		0x07
+#define RTC_ALARM1_MIN  	0x08
+#define RTC_ALARM1_HOUR 	0x09
+#define RTC_ALARM1_DAY_DATE 0x0A
+
+#define RTC_ALARM2_MIN 		0x0B
+#define RTC_ALARM2_HOUR 	0x0C
+#define RTC_ALARM2_DATE 	0x0D
+
+#define RTC_CTRL		 	0x0E
+#define RTC_CTRL_STATUS 	0x0F
+
+#define RTC_XTAL_AGING_OFFSET 	0x10
+
+#define RTC_TEMP_MSB 0x11
+#define RTC_TEMP_LSB 0x12
+
+extern int Time_sec, Time_min, Time_hour;
+extern int Day_date, Day_month, Day_year;
+extern int Write_sec,Write_min,Write_hour;
+extern int Write_date,Write_month,Write_year;
+extern int Time_1224, Time_AMPM;
+extern int State_RTC_Write_complete;
+
+void SPI_RTC_Read_Sequence();
+void SPI_RTC_Write_Sequence();
+
+extern void InitSpi_RTC();
+
+
+#endif	// of _RTC_SPI_H__
 
Common_Resource/CommonLibrary/include/RmsAvgCal.h (added)
+++ Common_Resource/CommonLibrary/include/RmsAvgCal.h
@@ -0,0 +1,120 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : RmsAvgCal.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+#ifndef RMSAVGCAL_H_
+#define RMSAVGCAL_H_
+
+
+extern void RmsAvgSum(void);
+extern void RmsAvgCal(void);
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+extern float RMS(float *Sum, float InversTime);
+extern float AVG(float *Sum, float InversTime);
+#pragma SET_CODE_SECTION()
+
+
+#pragma SET_DATA_SECTION(".RmsAvg")
+
+extern float VbatSum;
+extern float VbatAvg;
+
+extern float IbatSum;
+extern float IbatAvg;
+
+extern float VboostSum;
+extern float VboostAvg;
+
+extern float VdabSum;
+extern float VdabAvg;
+
+extern float VdcHSum;
+extern float VdcHAvg;
+
+extern float VdcLSum;
+extern float VdcLAvg;
+
+extern float VdcSum;
+extern float VdcAvg;
+
+extern float VunInvRms;
+extern float VunInvRmsSum;
+
+extern float VnwInvRms;
+extern float VnwInvRmsSum;
+
+extern float VacInvRms;
+extern float VacInvRmsSum;
+
+extern float VunGridRms;
+extern float VunGridRmsSum;
+
+extern float VnwGridRms;
+extern float VnwGridRmsSum;
+
+extern float VacGridRms;
+extern float VacGridRmsSum;
+
+extern float IacInvRms;
+extern float IacInvRmsSum;
+
+extern float IuInvRms;
+extern float IuInvRmsSum;
+
+extern float IwInvRms;
+extern float IwInvRmsSum;
+
+extern float InInvRms;
+extern float InInvRmsSum;
+
+extern float IacGridRms;
+extern float IacGridRmsSum;
+
+extern float IuGridRms;
+extern float IuGridRmsSum;
+
+extern float IwGridRms;
+extern float IwGridRmsSum;
+
+extern float InGridRms;
+extern float InGridRmsSum;
+
+extern float IzctRms;
+extern float IzctRmsSum;
+
+extern float PinvReactive;
+extern float PinvReactiveSum;
+extern float PinvReactiveAvg;
+
+extern float PinvActive;
+extern float PinvActiveSum;
+extern float PinvActiveAvg;
+
+extern float PinvApparentAvg;
+
+extern float Pbat;
+extern float PbatAvg;
+extern float PbatSum;
+
+extern float IdeSum;
+extern float IdeAvg;
+
+extern float IqeSum;
+extern float IqeAvg;
+
+extern float VdeSum;
+extern float VdeAvg;
+
+extern float VqeSum;
+extern float VqeAvg;
+
+extern float PfAvg;
+
+#pragma SET_DATA_SECTION()
+
+#endif /* RMSAVGCAL_H_ */
 
Common_Resource/CommonLibrary/include/SensingScale.h (added)
+++ Common_Resource/CommonLibrary/include/SensingScale.h
@@ -0,0 +1,171 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : SensingScale.h
+//          Created on : 2022. 11. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ADC_OFFSET1V5				(4095./2.)
+#define ZCT_OFFSET					(1442.133333)
+
+#define ADC_MAX_VOLT 				(3.)
+#define INV_ADC_12BIT    			(0.000244200244200244000)                //0x0FFF 역수
+#define VOLT_PER_ADCBIT				(ADC_MAX_VOLT * INV_ADC_12BIT)
+
+#define LAH50_P_GAIN				(2000.)               			//LAH 50-P 50A CT turn ratio 1:2000
+#define LAH100_P_GAIN				(2000.)               			//LAH 100-P 100A CT turn ratio 1:2000
+
+#define AMC3330_GAIN				(2.)								//AMC3330 Fixed Gain 2.
+#define INV_AMC3330_GAIN			(1./2.)							//AMC3330 Fixed Gain 2.
+
+#define PT_INA821_RG 				(12.4)							//12.4kOhm
+#define PT_INA821_GAIN				(1. + (49.4 / PT_INA821_RG))    //INA821 Datasheet 참조
+#define INV_PT_INA821_GAIN			(1. / PT_INA821_GAIN)
+
+#define PT_OPAMP_GAIN				(3./20.)
+#define CT_OPAMP_GAIN				(3./20.)
+
+//------------------------입력전압 PT ---------------------------------------------------------------------------------------//
+#define DC_PT_PRI_RD				(992000.)						//분압저항
+#define DC_PT_PRI_RM				(1300.)							//측정저항
+#define DC_PT_PRI_R_RATIO			(DC_PT_PRI_RM / (DC_PT_PRI_RD + DC_PT_PRI_RM)) // 저항비
+#define INV_DC_PT_PRI_R_RATIO		(1. / DC_PT_PRI_R_RATIO)
+
+#define DC_PT_GAIN					(PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * DC_PT_PRI_R_RATIO)
+#define INV_DC_PT_GAIN				((1. / DC_PT_GAIN) * VOLT_PER_ADCBIT)  				//Vbat / Vboost / Vdab gain
+//-------------------------------------------------------------------------------------------------------------------------//
+
+//------------------------DCLINK 상/하 PT ----------------------------------------------------------------------------------//
+#define DCLINK_PT_PRI_RD			(992000.)						//분압저항
+#define DCLINK_PT_PRI_RM			(2700.)							//측정저항
+#define DCLINK_PT_PRI_R_RATIO		(DCLINK_PT_PRI_RM / (DCLINK_PT_PRI_RD + DCLINK_PT_PRI_RM)) // 저항비
+#define INV_DCLINK_PT_PRI_R_RATIO	(1. / DCLINK_PT_PRI_R_RATIO)
+
+#define DCLINK_PT_GAIN				(PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * DCLINK_PT_PRI_R_RATIO)
+#define INV_DCLINK_PT_GAIN			(1. / DCLINK_PT_GAIN) * VOLT_PER_ADCBIT    			//Vdc link HIGH / LOW
+//-------------------------------------------------------------------------------------------------------------------------//
+
+//----------------------------------AC전압----------------------------------------------------------------------------------//
+#define AC_PT_PRI_RD				(992000.)						//분압저항
+#define AC_PT_PRI_RM				(3400.)							//측정저항
+#define AC_PT_PRI_R_RATIO			(AC_PT_PRI_RM / (AC_PT_PRI_RD + AC_PT_PRI_RM)) // 저항비
+#define INV_AC_PT_PRI_R_RATIO		(1. / AC_PT_PRI_R_RATIO)
+
+#define AC_PT_GAIN					(PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * AC_PT_PRI_R_RATIO)
+#define INV_AC_PT_GAIN				(1. / AC_PT_GAIN) * VOLT_PER_ADCBIT				//Vgrid U / Vgrid W / Vgrid
+//-------------------------------------------------------------------------------------------------------------------------//
+
+
+//----------------------------------AC전류----------------------------------------------------------------------------------//
+#define AC_CT_RATIO 				LAH100_P_GAIN
+#define AC_CT_RM					(280.)
+#define AC_CT_GAIN					((CT_OPAMP_GAIN * AC_CT_RM) / AC_CT_RATIO)
+#define INV_AC_CT_GAIN				(1. / AC_CT_GAIN) * VOLT_PER_ADCBIT			//IuGridExt / IwGridExt / IuGrid / IwGrid
+//-------------------------------------------------------------------------------------------------------------------------//
+
+//----------------------------------DC전류----------------------------------------------------------------------------------//
+#define DC_CT_RATIO					LAH50_P_GAIN
+#define DC_CT_RM					(280.)
+#define DC_CT_GAIN					((CT_OPAMP_GAIN * DC_CT_RM) / DC_CT_RATIO)
+#define INV_DC_CT_GAIN				(1. / DC_CT_GAIN) * VOLT_PER_ADCBIT 			//Ibat
+//-------------------------------------------------------------------------------------------------------------------------//
+
+
+
+//----------------------------------ADC전압---------------------------------------------------------------------------------//
+#define INV_VADC_GAIN 					VOLT_PER_ADCBIT
+
+
+//----------------------------------Zct 전류--------------------------------------------------------------------------------//
+
+#define ZCT_CT_GAIN					(4.)
+#define ZCT_OPAMP_GAIN				(8.45/20.)
+#define ZCT_GAIN					(ZCT_CT_GAIN * ZCT_OPAMP_GAIN)
+#define INV_AC_ZCT_GAIN				(1. / ZCT_GAIN)	 * VOLT_PER_ADCBIT //임시
+
+struct sMesureList
+{
+
+    float ADC_CH1_UV;			//Adc1 배터리 입력전압
+    float ADC_CH1_VIS;			//Adc2 배터리 입력전류
+    float ADC_CH1_IR;		//Adc3 부스트 입력전압(배터리 릴레이 후단 전압)
+    float ADC_CH2_UV;			//Adc4 Dab 입력전압(부스트 출력전압)
+    float ADC_CH2_VIS;		    //Adc5 GFD
+    float ADC_CH2_IR;			//Adc6 DC-Link 상단전압
+    float ADC_CH3_UV;			//Adc7 DC-Link 하단전압
+    float ADC_CH3_VIS;		//Adc8 계통 U-N전압(단상 삼선식)
+	float ADC_CH3_IR;		//Adc9 계통 N-W전압
+	float ADC_CH4_UV;		//Adc10 인버터 전류 U
+	float ADC_CH4_VIS;		//Adc11 인버터 전류 W
+	float ADC_CH4_IR;			//Adc12 ZCT 전류
+
+};
+
+//------------------------------------------------------------------------//
+extern float CH1_UV, CH1_VIS, CH1_IR;
+extern float CH2_UV, CH2_VIS, CH2_IR;
+extern float CH3_UV, CH3_VIS, CH3_IR;
+extern float CH4_UV, CH4_VIS, CH4_IR;
+
+extern float DAC_1, DAC_2, DAC_3;
+
+extern void InitScale(void);
+
+#pragma SET_CODE_SECTION(".TI.ramfunc")
+extern void AdcResult(void);
+#pragma SET_CODE_SECTION()
+
+extern void ScaleDefaultCal(void);
+extern void ScaleUpdate(void);
+extern void ReadScaleDelt(void);
+extern void WriteScaleDelt(void);
+extern void ResetScaleDelt(void);
+
+extern void OffsetDefaultCal(void);
+extern void OffsetUpdate(void);
+extern void ReadOffsetDelt(void);
+extern void WriteOffsetDelt(void);
+extern void ResetOffsetDelt(void);
+
+
+extern int Flag_Wr_ScaleDelt;
+extern int Flag_Rst_ScaleDelt;
+
+
+
+#pragma SET_DATA_SECTION(".Scale")
+
+extern struct sMesureList Scale;
+extern struct sMesureList ScaleDefault;
+extern struct sMesureList ScaleDelt;
+
+//
+//extern struct sMesureList Offset;
+//extern struct sMesureList OffsetDefault;
+//extern struct sMesureList OffsetSum;
+//extern struct sMesureList OffsetDelt;
+
+
+#pragma SET_DATA_SECTION()
+
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_ */
 
Common_Resource/CommonLibrary/include/SpiEepromLib.h (added)
+++ Common_Resource/CommonLibrary/include/SpiEepromLib.h
@@ -0,0 +1,43 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : EepromLib.h
+//          Created on : 2023. 10. 31.
+//         Description : EEPROM Library for CAT25512VI-GT3
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_SPIEEPROMLIB_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_SPIEEPROMLIB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+extern void InitSpi();
+extern uint16_t ReadEepromStatusReg(void);
+
+extern void ReadEeprom(uint16_t address, uint16_t *data, uint16_t length);
+extern void WriteEepromArray(uint16_t address, uint16_t *data, uint16_t length);
+extern void WriteEepromFloat(uint16_t Addr, float *Val);
+extern void WriteEepromInt(uint16_t Addr, void *Val);
+
+extern float ReadEepromFloat(uint16_t address, float *Val);
+extern int ReadEepromInt(uint16_t address, void *Val);
+
+void WriteEeprom(uint16_t address, uint16_t * data, uint16_t length);
+
+extern int FlagReadEeprom;
+extern int FlagWriteEeprom;
+
+extern unsigned int EepromAddr;
+extern unsigned int EepromNumofBytes;
+
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_SPIEEPROMLIB_H_ */
 
Common_Resource/CommonLibrary/include/Status.h (added)
+++ Common_Resource/CommonLibrary/include/Status.h
@@ -0,0 +1,56 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : Status.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef  _STATUS_H_
+#define  _STATUS_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct sSTATUS_LIST
+{
+//	Uint16 Standby :1;                // 0x0001
+	Uint16 Ready :1;                  // 0x0004
+	Uint16 InvRun :1;
+	Uint16 BeRun :1;
+	Uint16 SystemFault :1;         // 0x0800
+
+	Uint16 ParallelMode :1;         // 0x0800
+	Uint16 Master :1;
+    Uint16 InvBuilup :1;
+    Uint16 CmdSlvRun :1;
+    Uint16 CmdSlvReset :1;
+    Uint16 VbeParaMode :1;
+
+    Uint16 Reserved :6;
+};
+
+
+union uSTATUS
+{
+    Uint16 all;
+    struct sSTATUS_LIST bit;
+};
+
+#pragma SET_DATA_SECTION(".Status")
+extern union uSTATUS Status;
+extern unsigned int FlagCanBeMasSlvChange;
+extern unsigned int FlagParaInvBuilup;  //병렬운전시 Mas,Slv Inv 빌드업 확인 변수
+extern int RemoteMode;
+extern int SetRemoteMode;
+
+
+#pragma SET_DATA_SECTION()
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+#endif /*  _STATUS_H_ */
 
Common_Resource/CommonLibrary/include/SystemVar.h (added)
+++ Common_Resource/CommonLibrary/include/SystemVar.h
@@ -0,0 +1,197 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : SystemVar.h
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#ifndef  _SYSTEMVAR_H_
+#define  _SYSTEMVAR_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define delay_us(us)		DEVICE_DELAY_US(us)
+#define delay_ms(ms)		DEVICE_DELAY_US(ms*1000)
+
+
+#pragma SET_DATA_SECTION(".SystemVar")
+
+extern float SystemClock;
+
+
+
+//------------------------------------------------------------------------//
+
+//extern float VdcRate;
+//extern float VdcMax;
+//extern float VdcMin;
+//
+//extern float VdabMax;
+//extern float VdabMin;
+//extern float VdabRate;
+//
+//extern float VboostRate;
+//extern float VboostMin;
+//extern float VboostMax;
+//
+//extern float VbatRate;
+//extern float VbatMin;
+//extern float VbatMax;
+
+//extern float  INV_Wh_T500ms;
+extern int SET_FT_UV_Level;
+extern int SET_FT_VIS_Level;
+extern int SET_FT_IR_Level;
+
+
+extern int SystemFault;
+extern int EmergencyStop;
+
+extern int CmdFaultReset;
+
+extern float CH1_UV_Flt;
+extern float CH1_VIS_Flt;
+extern float CH1_IR_Flt;
+
+extern float CH2_UV_Flt;
+extern float CH2_VIS_Flt;
+extern float CH2_IR_Flt;
+
+extern float CH3_UV_Flt;
+extern float CH3_VIS_Flt;
+extern float CH3_IR_Flt;
+
+extern float CH4_UV_Flt;
+extern float CH4_VIS_Flt;
+extern float CH4_IR_Flt;
+
+extern int SystemReady;
+//
+//extern int FlagInvGating;
+//extern int FlagInvGatingInput;
+//
+//extern int FlagBoostGating;
+//extern int FlagBoostGatingInput;
+//
+//extern int FlagDabGating;
+//extern int FlagDabGatingInput;
+//
+//extern float Tboost;
+//
+//extern float TdabPh;
+//extern float TdabA;
+//extern float TdabB;
+//extern float TdabC;
+//extern float TdabD;
+//
+//extern float TinvA;
+//extern float TinvB;
+//
+//extern unsigned int TboostCnt;
+//
+//extern int TdabPhCnt;
+//extern unsigned int TdabACnt;
+//extern unsigned int TdabBCnt;
+//extern unsigned int TdabCCnt;
+//extern unsigned int TdabDCnt;
+//
+//extern unsigned int TinvACnt;
+//extern unsigned int TinvBCnt;
+
+
+
+extern int FaultReset;
+
+enum eSystemMode
+{
+	Normal = 0,
+	Test_Mode = 1
+
+};
+extern enum eSystemMode ModeSystem;
+
+enum eTestSelect
+{
+	NonSelect = 0,
+	BoardTest = 1,
+	StackTest = 2,
+	ControllerTest = 3
+};
+
+extern enum eTestSelect TestSelect;
+
+enum eSystemState
+{
+	StateInitial = 0,
+	StateOffset = 1,
+	StateReady = 2,
+	StateRun = 3,
+	StateFault = 4
+};
+extern enum eSystemState SystemState;
+
+enum eINV_OP_MODE
+{
+	OpMode_GridTie = 0,
+	OpMode_StandAlone = 1
+};
+
+extern enum eINV_OP_MODE InvOpMode;
+
+
+
+extern void InitSystemParameter();
+extern void SystemParameterUpdate();
+
+
+
+extern struct sRampGen MagVqeRamp;
+extern float MagVqeRefSet;
+extern float MagSinRef;
+extern float DelMagVqe;
+
+extern void FreqSinGen();
+
+extern float ThetaTest;
+extern float FreqSineTest;
+extern float SinThetaTest;
+extern float CosThetaTest;
+extern float SinSquareTest;
+extern float CosSquareTest;
+
+
+//TEST
+
+extern float VdcRefSet;
+extern float PkwRefSet;
+
+
+//firmware Ver
+extern float FwVer;
+
+
+#pragma SET_DATA_SECTION()
+
+#pragma SET_DATA_SECTION(".Trace")
+extern unsigned long int pTrace1;
+extern unsigned long int pTrace2;
+
+extern unsigned int FlagTrace;
+
+extern float TraceData1[2000];
+extern float TraceData2[2000];
+extern unsigned int TraceCount;
+
+#pragma SET_DATA_SECTION()
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /*  _SYSTEMVAR_H_ */
 
Common_Resource/CommonLibrary/include/TimerLib.h (added)
+++ Common_Resource/CommonLibrary/include/TimerLib.h
@@ -0,0 +1,25 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : TimerLib.h
+//          Created on : 2022. 10. 19.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef MAIN_RESOURCE_BOARDLIB_TIMERLIB_H_
+#define MAIN_RESOURCE_BOARDLIB_TIMERLIB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+extern void configCPUTimer(uint32_t, float freq, float period);
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* MAIN_RESOURCE_BOARDLIB_TIMERLIB_H_ */
 
Common_Resource/CommonLibrary/include/Trace.h (added)
+++ Common_Resource/CommonLibrary/include/Trace.h
@@ -0,0 +1,37 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : Ringbuffer.h
+//          Created on : 2022. 12. 10.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#ifndef COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_TRACE_H_
+#define COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_TRACE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//todo 임시 테스트 구조체
+
+struct sRingBuf
+{
+	float BufLow[512];
+	unsigned int WrPtr;
+	unsigned int RdPtr;
+	unsigned int Size;
+};
+
+extern struct sRingBuf RingBuf;
+extern void InitRingBuf();
+extern void WrRingBuf();
+extern void SortRingBuf();
+
+
+#ifdef __cplusplus
+}
+#endif /* extern "C" */
+
+#endif /* COMMON_RESOURCE_COMMONLIBRARY_INCLUDE_TRACE_H_ */
 
Common_Resource/CommonLibrary/source/AdcLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/AdcLib.cpp
@@ -0,0 +1,160 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Adc_Driver.cpp
+//          Created on : 2022. 10. 16.
+//         Description : Internal ADC Function
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include <CommonLib.h>
+
+
+struct sAdc Adc = {0,};
+
+
+unsigned int StateAdcEOC = 0;
+unsigned int CntWaitAdcEoc = 0;
+unsigned int SetWaitAdcEoc = 2000; //clock
+
+int Flag_ErrEoc = 0;
+
+ADC_Trigger AdcTriggerMode = ADC_TRIGGER_EPWM1_SOCA;
+
+// - Acquisition window = (ACQPS + 1)∙(System Clock (SYSCLK) cycle time
+// - The selected acquisition window duration must be at least as long as one ADCCLK cycle.
+// - The datasheet will specify a minimum acquisition window duration (in nanoseconds). The user is
+//   responsible for selecting an acquisition window duration that meets this requirement.
+
+unsigned int acqps = 50;
+
+void InitAdc()
+{
+	memset(&Adc, 0, (sizeof(Adc) / sizeof(int)));
+
+	ConfigAdc();
+	SetupAdcSoc();
+}
+
+void AdcForceSoc()
+{
+	ADC_forceMultipleSOC(ADCA_BASE, ADCA_FORCE_SOC_SET);
+	ADC_forceMultipleSOC(ADCB_BASE, ADCB_FORCE_SOC_SET);
+	ADC_forceMultipleSOC(ADCC_BASE, ADCC_FORCE_SOC_SET);
+	ADC_forceMultipleSOC(ADCD_BASE, ADCD_FORCE_SOC_SET);
+}
+
+void ConfigAdc(void)
+{
+	// Set ADCDLK divider to /2
+	ADC_setPrescaler(ADCA_BASE, ADC_CLK_DIV_2_0);
+	ADC_setPrescaler(ADCB_BASE, ADC_CLK_DIV_2_0);
+	ADC_setPrescaler(ADCC_BASE, ADC_CLK_DIV_2_0);
+	ADC_setPrescaler(ADCD_BASE, ADC_CLK_DIV_2_0);
+
+	ADC_setMode(ADCA_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
+	ADC_setMode(ADCB_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
+	ADC_setMode(ADCC_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
+	ADC_setMode(ADCD_BASE, ADC_RESOLUTION_12BIT, ADC_MODE_SINGLE_ENDED);
+
+	ADC_setInterruptPulseMode(ADCA_BASE, ADC_PULSE_END_OF_CONV);
+	ADC_setInterruptPulseMode(ADCB_BASE, ADC_PULSE_END_OF_CONV);
+	ADC_setInterruptPulseMode(ADCC_BASE, ADC_PULSE_END_OF_CONV);
+	ADC_setInterruptPulseMode(ADCD_BASE, ADC_PULSE_END_OF_CONV);
+
+	ADC_enableConverter(ADCA_BASE);
+	ADC_enableConverter(ADCB_BASE);
+	ADC_enableConverter(ADCC_BASE);
+	ADC_enableConverter(ADCD_BASE);
+
+	DEVICE_DELAY_US(1000);
+
+}
+
+
+int FactoryOffset[24];
+int FactoryScale[24];
+
+void SetupAdcSoc(void)
+{
+	//ADCA
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER0, AdcTriggerMode, ADC_CH_ADCIN0, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER1, AdcTriggerMode, ADC_CH_ADCIN1, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER2, AdcTriggerMode, ADC_CH_ADCIN2, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER3, AdcTriggerMode, ADC_CH_ADCIN3, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER4, AdcTriggerMode, ADC_CH_ADCIN4, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER5, AdcTriggerMode, ADC_CH_ADCIN5, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER6, AdcTriggerMode, ADC_CH_ADCIN14, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER7, AdcTriggerMode, ADC_CH_ADCIN15, acqps);
+	ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER8, AdcTriggerMode, ADC_CH_ADCIN13, acqps); //for MCU Temperature
+
+	ADC_setInterruptSource(ADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER8);
+	ADC_enableInterrupt(ADCA_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1);
+
+	//ADCB
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER0, AdcTriggerMode, ADC_CH_ADCIN0, acqps);
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER1, AdcTriggerMode, ADC_CH_ADCIN1, acqps);
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER2, AdcTriggerMode, ADC_CH_ADCIN2, acqps);
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER3, AdcTriggerMode, ADC_CH_ADCIN3, acqps);
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER4, AdcTriggerMode, ADC_CH_ADCIN4, acqps);
+	ADC_setupSOC(ADCB_BASE, ADC_SOC_NUMBER5, AdcTriggerMode, ADC_CH_ADCIN5, acqps);
+
+//	ADC_setInterruptSource(ADCB_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER5);
+//	ADC_enableInterrupt(ADCB_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCB_BASE, ADC_INT_NUMBER1);
+
+	//ADCC
+	ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER2, AdcTriggerMode, ADC_CH_ADCIN2, acqps);
+	ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER3, AdcTriggerMode, ADC_CH_ADCIN3, acqps);
+	ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER4, AdcTriggerMode, ADC_CH_ADCIN4, acqps);
+	ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER5, AdcTriggerMode, ADC_CH_ADCIN5, acqps);
+
+//	ADC_setInterruptSource(ADCC_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER3);
+//	ADC_enableInterrupt(ADCC_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCC_BASE, ADC_INT_NUMBER1);
+
+
+	//ADCD
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER0, AdcTriggerMode, ADC_CH_ADCIN0, acqps);
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER1, AdcTriggerMode, ADC_CH_ADCIN1, acqps);
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER2, AdcTriggerMode, ADC_CH_ADCIN2, acqps);
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER3, AdcTriggerMode, ADC_CH_ADCIN3, acqps);
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER4, AdcTriggerMode, ADC_CH_ADCIN4, acqps);
+	ADC_setupSOC(ADCD_BASE, ADC_SOC_NUMBER5, AdcTriggerMode, ADC_CH_ADCIN5, acqps);
+
+//	ADC_setInterruptSource(ADCD_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER5);
+//	ADC_enableInterrupt(ADCD_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCD_BASE, ADC_INT_NUMBER1);
+}
+
+void AdcIntInterruptClear()
+{
+	ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCB_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCC_BASE, ADC_INT_NUMBER1);
+	ADC_clearInterruptStatus(ADCD_BASE, ADC_INT_NUMBER1);
+}
+
+void AdcIntEocState()
+{
+	//제일 오래걸리는 체널만 체크
+	while (ADC_getInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1) != 0x01)
+	{
+		if (CntWaitAdcEoc++ > SetWaitAdcEoc)
+		{
+			//Internal Adc Read Error
+			CntWaitAdcEoc = 0;
+			Flag_ErrEoc = 1;
+			break;
+		}
+		else
+		{
+			Flag_ErrEoc = 0;
+		}
+	}
+	AdcIntInterruptClear();
+}
+
+
+
 
Common_Resource/CommonLibrary/source/CanCHAdeMO.cpp (added)
+++ Common_Resource/CommonLibrary/source/CanCHAdeMO.cpp
@@ -0,0 +1,107 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : CanCHAdeMO.cpp
+//          Created on : 2023. 11. 15.
+//         Description :
+//              Author : KwonJeongMin
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+union uCanCHAdeMO CanCHAdeMO;
+struct sCanCHAdeMO CanCHAdeMORx; //CanBeRx.Mas = Master to Slave Data, CanBeRx.Slv = Slave to Master Data
+
+unsigned int CanCHAdeMORxStatus = 0;
+unsigned int CanCHAdeMORxIsrCnt = 0;
+unsigned int CanCHAdeMORxIsrErrCnt = 0;
+
+unsigned int CANCHADEMO_RxID_OFFSET = 0x0000;
+unsigned int CANCHADEMO_TxID_OFFSET = 0x0000;
+
+void InitCanCHAdeMO()
+{
+
+}
+
+interrupt void CanCHAdeMORxIsr(void)
+{
+    CanCHAdeMORxStatus = CAN_getInterruptCause(CANCHADEMO);
+    //수신용 메일박스 사용 숫자에 따라 변경할 것
+    if((CanCHAdeMORxStatus >= CANCHADEMO_RX_MBOX_START) && (CanCHAdeMORxStatus <= CANCHADEMO_RX_MBOX_END))
+    {
+        CanRxMsg(CANCHADEMO, CanCHAdeMORxStatus, &CanCHAdeMORxMbox[CanCHAdeMORxStatus]);
+        if (Status.bit.Master != 1) CanCHAdeMORx.Mas.DataArr[CanCHAdeMORxMbox[CanCHAdeMORxStatus].Id - CANCHADEMO_RxID_OFFSET] = CanCHAdeMORxMbox[CanCHAdeMORxStatus].Data.all;
+        else                        CanCHAdeMORx.Slv.DataArr[CanCHAdeMORxMbox[CanCHAdeMORxStatus].Id - CANCHADEMO_RxID_OFFSET] = CanCHAdeMORxMbox[CanCHAdeMORxStatus].Data.all;
+    }
+    else
+    {
+        //0x8000 이면 에러..
+        //나머지는 미사용 메일박스
+        CanCHAdeMORxIsrErrCnt++;
+    }
+
+    CanCHAdeMORxIsrCnt++;
+
+    CAN_clearInterruptStatus(CANCHADEMO, CanCHAdeMORxStatus);
+    CAN_clearGlobalInterruptStatus(CANCHADEMO, CAN_GLOBAL_INT_CANINT0);
+    Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP9);
+
+}
+
+void CanCHAdeMORun_500us()
+{
+//    CanCHAdeMO.Data.IDx00.bit.IbatRef = IbatRef;
+//    CanCHAdeMO.Data.IDx00.bit.Status.all = Status.all;
+//
+//    CanCHAdeMOTxMbox.Lenth = 8;
+//    CanCHAdeMOTxMbox.Id = CANCHADEMO_TxID_OFFSET;
+//    CanCHAdeMOTxMbox.Data.all = CanCHAdeMO.Data.IDx00.all;
+//
+//    CanTxMsg(CANCHADEMO, 32, &CanCHAdeMOTxMbox);
+
+}
+
+unsigned int CanCHAdeMOTable[] = {0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000A};
+unsigned int CanCHAdeMOTxSeqTableSize = 0;
+unsigned int CanCHAdeMOTxSeqTableCnt = 0;
+
+void CanCHAdeMORun()
+{
+    CanCHAdeMOTxUpdate();
+
+    //배열 크기 계산
+    CanCHAdeMOTxSeqTableSize = sizeof(CanCHAdeMOTable);
+
+    if (CanCHAdeMOTxSeqTableCnt >= CanCHAdeMOTxSeqTableSize) CanCHAdeMOTxSeqTableCnt = 0;
+
+    CanCHAdeMOTxMbox.Id = CanCHAdeMOTxSeqTable[CanCHAdeMOTxSeqTableCnt++]+CANCHADEMO_TxID_OFFSET;
+    CanCHAdeMOTxMbox.Data.all = CanCHAdeMO.DataArr[CanCHAdeMOTxMbox.Id - CANCHADEMO_TxID_OFFSET];
+
+    CanTxMsg(CANCHADEMO, 32, &CanCHAdeMOTxMbox);
+
+}
+
+void CanCHAdeMOTxUpdate()
+{
+    CanCHAdeMO.Data.IDx01.bit.HeartBeat ^= 1;
+    CanCHAdeMO.Data.IDx01.bit.Mode = Status.bit.Master;
+//    CanCHAdeMO.Data.IDx02.bit.FaultHW.all = Fault.Hw.all;
+    CanCHAdeMO.Data.IDx02.bit.FaultSW1.all = Fault.Sw1.all;
+    CanCHAdeMO.Data.IDx03.bit.FaultSW2.all = Fault.Sw2.all;
+    CanCHAdeMO.Data.IDx03.bit.FaultSW3.all = Fault.Sw3.all;
+    CanCHAdeMO.Data.IDx04.bit.Temp_AcSwHeatSink1 = Temp.AcSwHeatSink1;
+    CanCHAdeMO.Data.IDx04.bit.Temp_AcSwHeatSink2 = Temp.AcSwHeatSink2;
+    CanCHAdeMO.Data.IDx05.bit.Temp_DcSwHeatSink1 = Temp.DcSwHeatSink1;
+    CanCHAdeMO.Data.IDx05.bit.Temp_DcSwHeatSink2 = Temp.DcSwHeatSink2;
+    CanCHAdeMO.Data.IDx06.bit.Temp_Spare1 = Temp.Spare1;
+    CanCHAdeMO.Data.IDx06.bit.Temp_Spare2 = Temp.Spare2;
+    CanCHAdeMO.Data.IDx07.bit.Ibat = IbatAvg;
+    CanCHAdeMO.Data.IDx07.bit.Vbat = VbatAvg;
+    CanCHAdeMO.Data.IDx08.bit.Pbat = PbatAvg;
+    CanCHAdeMO.Data.IDx08.bit.Vdc = VdcAvg;
+    CanCHAdeMO.Data.IDx09.bit.Iqe = IqeAvg;
+    CanCHAdeMO.Data.IDx09.bit.Vqe = VqeAvg;
+    CanCHAdeMO.Data.IDx0A.bit.Pinv = PinvActiveAvg;
+
+}
 
Common_Resource/CommonLibrary/source/CanLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/CanLib.cpp
@@ -0,0 +1,209 @@
+/*
+ * Can_Driver.c
+ *
+ *  Created on: 2021. 8. 3.
+ *      Author: KimJeongWoo
+ */
+
+#include <CommonLib.h>
+
+sCanMsg CanaTxMbox1;
+sCanMsg CanaTxMbox2;
+sCanMsg CanbTxMbox;
+
+sCanMsg CanaRxMbox[32];
+sCanMsg CanbRxMbox[32];
+
+unsigned int TerminalResSet = 0xff;
+
+
+
+
+void InitCan()
+{
+//    InitCanGpio();
+	CAN_initModule(CANA_BASE);
+	CAN_initModule(CANB_BASE);
+
+	CAN_setBitRate(CANA_BASE, DEVICE_SYSCLK_FREQ, 500000, 16);
+	CAN_setBitRate(CANB_BASE, DEVICE_SYSCLK_FREQ, 500000, 16);
+
+	CAN_enableGlobalInterrupt(CANA_BASE, CAN_GLOBAL_INT_CANINT0);
+	CAN_enableGlobalInterrupt(CANB_BASE, CAN_GLOBAL_INT_CANINT0);
+
+	CAN_enableInterrupt(CANA_BASE, CAN_INT_IE0);
+	CAN_enableInterrupt(CANB_BASE, CAN_INT_IE0);
+
+
+	//송신용
+//    CAN_setupMessageObject(CANA_BASE, 32, 0x000 + CanBe_TxId_Offset, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_TX, 0x7FF, CAN_MSG_OBJ_USE_ID_FILTER, 8);
+//    CAN_setupMessageObject(CANA_BASE, 31, 0x01F + CanBe_TxId_Offset, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_TX, 0x7F0, CAN_MSG_OBJ_USE_ID_FILTER, 8);
+	//수신용
+//    CAN_setupMessageObject(CANA_BASE, 1, 0x000 + CanBe_RxId_Offset, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0x7FF, (CAN_MSG_OBJ_RX_INT_ENABLE | CAN_MSG_OBJ_USE_ID_FILTER), 0);
+//    CAN_setupMessageObject(CANA_BASE, 2, 0x01F + CanBe_RxId_Offset, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0x7F0, (CAN_MSG_OBJ_RX_INT_ENABLE | CAN_MSG_OBJ_USE_ID_FILTER), 0);
+
+	CAN_startModule(CANA_BASE);
+	CAN_startModule(CANB_BASE);
+}
+
+int FlagCanReset = 0;
+
+/*
+ bp_16 LEC:3;                        // 2:0 Last Error Code
+ bp_16 TxOk:1;                       // 3 Transmission status
+ bp_16 RxOk:1;                       // 4 Reception status
+ bp_16 EPass:1;                      // 5 Error Passive State
+ bp_16 EWarn:1;                      // 6 Warning State
+ bp_16 BOff:1;                       // 7 Bus-Off State
+ bp_16 PER:1;                        // 8 Parity Error Detected
+ */
+
+void CanErrorReset()
+{
+	if ((CanaRegs.CAN_ES.bit.BOff == 1) || (CanaRegs.CAN_ES.bit.PER == 1))
+	{
+		CAN_startModule(CANA_BASE);
+	}
+	if ((CanbRegs.CAN_ES.bit.BOff == 1) || (CanbRegs.CAN_ES.bit.PER == 1))
+	{
+		CAN_startModule(CANB_BASE);
+	}
+
+	if (FlagCanReset == 1)
+	{
+		InitCan();
+		FlagCanReset = 0;
+	}
+}
+
+
+//todo 일단은 std만.. 나중에 고칠 것
+
+//ID 변경가능, DLC 변경 가능, Std 모드
+void CanTxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg)
+{
+	uint32_t msgCtrl = 0U;
+	uint32_t arbReg = 0U;
+
+	HWREG_BP(base + CAN_O_IF1CMD) = ((uint32_t) CAN_IF1CMD_CONTROL | (objID & CAN_IF1CMD_MSG_NUM_M));
+
+	while ((HWREGH(base + CAN_O_IF1CMD) & CAN_IF1CMD_BUSY) == CAN_IF1CMD_BUSY);
+
+	msgCtrl = HWREGH(base + CAN_O_IF1MCTL);
+	arbReg = HWREGH(base + CAN_O_IF1ARB);
+
+	// 데이터 길이 업데이트
+	msgCtrl &= ~CAN_IF1MCTL_DLC_M;
+	msgCtrl |= (Msg->Lenth & CAN_IF1MCTL_DLC_M);
+	HWREG_BP(base + CAN_O_IF1MCTL) = msgCtrl;
+
+	//ID 업데이트 Id std.
+	arbReg |= ((Msg->Id << CAN_IF1ARB_STD_ID_S) & CAN_IF1ARB_STD_ID_M) | CAN_IF1ARB_MSGVAL | CAN_IF1ARB_DIR;
+	HWREG_BP(base + CAN_O_IF1ARB) = arbReg;
+
+	HWREG_BP(base + CAN_O_IF1CMD) = (CAN_IF1CMD_CONTROL | CAN_IF1CMD_DIR | (objID & CAN_IF1CMD_MSG_NUM_M));
+
+	uint16_t Cnt = 0;
+	uint16_t idx = 0;
+	uint32_t dataReg = 0;
+
+	//Data 주소위치
+	dataReg = (base + CAN_O_IF1DATA);
+
+	//16bit 처리를 위한 인덱스 카운트 생성, 데이터길이가 홀수일 때 + 1
+	Cnt = ((Msg->Lenth * 0.5) + (Msg->Lenth % 2));
+
+	//MassageRam 영역에 데이터 쓰기
+	for (idx = 0U; idx < Cnt; idx++)
+	{
+		//HWREGH는16bit, HWREGB는 8bit
+		HWREGH(dataReg) = Msg->Data.U16.Word[idx];
+		dataReg = dataReg + 2;
+	}
+
+	//  Set Data to be transferred from IF
+	if (Msg->Lenth > 0U)
+	{
+		msgCtrl = CAN_IF1CMD_DATA_B | CAN_IF1CMD_DATA_A;
+	}
+	else
+	{
+		msgCtrl = 0U;
+	}
+
+	HWREG_BP(base + CAN_O_IF1CMD) = (msgCtrl | (uint32_t) CAN_IF1CMD_DIR | CAN_IF1CMD_ARB | (uint32_t) CAN_IF1CMD_TXRQST | (objID & CAN_IF1CMD_MSG_NUM_M));
+}
+
+
+bool CanRxMsg(uint32_t base, uint32_t objID, sCanMsg *Msg)
+{
+	bool status;
+	uint16_t msgCtrl = 0U;
+    uint32_t idx;
+    uint32_t dataReg;
+
+	HWREG_BP(base + CAN_O_IF2CMD) =  ((uint32_t) CAN_IF2CMD_DATA_A
+									| (uint32_t) CAN_IF2CMD_DATA_B
+									| (uint32_t) CAN_IF2CMD_CONTROL
+									| (objID & CAN_IF2CMD_MSG_NUM_M)
+									| (uint32_t) CAN_IF2CMD_ARB);
+
+
+	while ((HWREGH(base + CAN_O_IF2CMD) & CAN_IF2CMD_BUSY) == CAN_IF2CMD_BUSY);
+
+	msgCtrl = HWREGH(base + CAN_O_IF2MCTL);
+
+	Msg->Lenth = (msgCtrl & CAN_IF2MCTL_DLC_M);
+
+	if ((msgCtrl & CAN_IF2MCTL_NEWDAT) == CAN_IF2MCTL_NEWDAT)
+	{
+		uint16_t Cnt;
+
+		Cnt = ((Msg->Lenth * 0.5) + (Msg->Lenth % 2));
+
+		dataReg = (base + CAN_O_IF2DATA);
+
+	    for(idx = 0;  idx < Cnt; idx++)
+	    {
+	    	Msg->Data.U16.Word[idx] = HWREGH(dataReg);
+	        dataReg = dataReg + 2;
+	    }
+
+		status = true;
+
+		//
+		// Now clear out the new data flag
+		//
+		HWREG_BP(base + CAN_O_IF2CMD) = ((uint32_t) CAN_IF2CMD_TXRQST | (objID & CAN_IF2CMD_MSG_NUM_M));
+
+		//
+		// Wait for busy bit to clear
+		//
+		while ((HWREGH(base + CAN_O_IF2CMD) & CAN_IF2CMD_BUSY) == CAN_IF2CMD_BUSY);
+
+	}
+	else
+	{
+		status = false;
+	}
+
+	if (status == true)
+	{
+		if ((HWREG_BP(base + CAN_O_IF2ARB) & CAN_IF2ARB_XTD) != 0U)
+		{
+			*Msg->frameType = CAN_MSG_FRAME_EXT;
+			Msg->Id = ((HWREG_BP(base + CAN_O_IF2ARB)) & CAN_IF2ARB_ID_M);
+		}
+		else
+		{
+			*Msg->frameType = CAN_MSG_FRAME_STD;
+			Msg->Id = (((HWREG_BP(base + CAN_O_IF2ARB)) & CAN_IF2ARB_STD_ID_M) >> CAN_IF2ARB_STD_ID_S);
+		}
+
+		Msg->Cnt++; //정상적인 수신일 경우 카운트
+	}
+
+	return (status);
+}
+
+
 
Common_Resource/CommonLibrary/source/CpuInfo.cpp (added)
+++ Common_Resource/CommonLibrary/source/CpuInfo.cpp
@@ -0,0 +1,36 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : CpuInfo.cpp
+//          Created on : 2023. 3. 6.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+
+#include "CommonLib.h"
+
+
+//-------------------------------------------------------//
+// CpuNum 및 CpuSiliconRev는 Cpu1 및 Cpu2의 정보가 각각 별도로
+// 존재 해야함으로 Cpu1과 Cpu2가 서로 접근할 수 없는 LS메모리에 위치
+// 할 것
+//-------------------------------------------------------//
+
+#pragma SET_DATA_SECTION(".CpuInfo")
+unsigned int CpuNum;
+unsigned int CpuSiliconRev;
+#pragma SET_DATA_SECTION(".CpuInfo")
+
+
+void CpuInfo()
+{
+   // Cpu1에서는 1, Cpu2에서는 2
+    CpuNum = HWREGH(0x0007026D) & 0x00FF;
+   // Cpu2에서는 SiliconRev 정보가 획득 안 됨 참고할 것
+    CpuSiliconRev = HWREGH(0x0005D00C);
+
+}
+
+
 
Common_Resource/CommonLibrary/source/DigitalIO.cpp (added)
+++ Common_Resource/CommonLibrary/source/DigitalIO.cpp
@@ -0,0 +1,239 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : DigitalIO.cpp
+//          Created on : 2022. 10. 30.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+
+struct sDin Din;
+struct sDOUT Dout;
+
+int FlagWrDioExor = 0;
+int FlagRstDioExor = 0;
+long int BufferDoutExorAll = 0;
+
+void InitDigitalIOSet()
+{
+    memset(&Din, 0, (sizeof(Din) / sizeof(int)));
+    memset(&Dout, 0, (sizeof(Dout) / sizeof(int)));
+
+
+  ResetDioExor();
+//  ReadDioExor();
+
+    InitDigitalInput();
+    InitDigitalOutput();
+
+
+
+    DigitalInput();
+    DigitalOutput();
+
+}
+
+
+void InitDigitalInput()
+{
+    //Din0
+    GPIO_setMasterCore(0, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(0, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_0_GPIO0);
+    GPIO_setQualificationMode(0, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(0, GPIO_DIR_MODE_IN);
+
+    //Din1
+    GPIO_setMasterCore(1, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(1, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_1_GPIO1);
+    GPIO_setQualificationMode(1, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(1, GPIO_DIR_MODE_IN);
+
+    //Din16
+    GPIO_setMasterCore(16, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(16, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_16_GPIO16);
+    GPIO_setQualificationMode(16, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(16, GPIO_DIR_MODE_IN);
+
+    //Din17
+    GPIO_setMasterCore(17, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(17, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_17_GPIO17);
+    GPIO_setQualificationMode(17, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(17, GPIO_DIR_MODE_IN);
+
+    //Din18
+    GPIO_setMasterCore(18, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(18, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_18_GPIO18);
+    GPIO_setQualificationMode(18, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(18, GPIO_DIR_MODE_IN);
+
+    //Din19
+    GPIO_setMasterCore(19, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(19, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_19_GPIO19);
+    GPIO_setQualificationMode(19, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(19, GPIO_DIR_MODE_IN);
+
+    //Din20
+    GPIO_setMasterCore(20, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(20, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_20_GPIO20);
+    GPIO_setQualificationMode(20, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(20, GPIO_DIR_MODE_IN);
+
+    //Din21
+    GPIO_setMasterCore(21, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(21, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_21_GPIO21);
+    GPIO_setQualificationMode(21, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(21, GPIO_DIR_MODE_IN);
+
+    //Din22
+    GPIO_setMasterCore(22, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(22, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_22_GPIO22);
+    GPIO_setQualificationMode(22, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(22, GPIO_DIR_MODE_IN);
+
+    //Din23
+    GPIO_setMasterCore(23, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(23, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_23_GPIO23);
+    GPIO_setQualificationMode(23, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(23, GPIO_DIR_MODE_IN);
+
+    //Din24
+    GPIO_setMasterCore(24, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(24, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_24_GPIO24);
+    GPIO_setQualificationMode(24, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(24, GPIO_DIR_MODE_IN);
+
+    //Din25
+    GPIO_setMasterCore(25, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(25, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_25_GPIO25);
+    GPIO_setQualificationMode(25, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(25, GPIO_DIR_MODE_IN);
+
+    //Din26
+    GPIO_setMasterCore(26, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(26, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_26_GPIO26);
+    GPIO_setQualificationMode(26, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(26, GPIO_DIR_MODE_IN);
+
+    //Din27
+    GPIO_setMasterCore(27, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(27, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_27_GPIO27);
+    GPIO_setQualificationMode(27, GPIO_QUAL_ASYNC);
+    GPIO_setDirectionMode(27, GPIO_DIR_MODE_IN);
+
+
+
+
+}
+
+
+void InitDigitalOutput()
+{
+
+    //Dout0
+    GPIO_setMasterCore(32, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(32, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_32_GPIO32);
+    GPIO_setDirectionMode(32, GPIO_DIR_MODE_OUT);
+    GPIO_writePin(32, 0);
+
+    //Dout1
+    GPIO_setMasterCore(33, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(33, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_33_GPIO33);
+    GPIO_setDirectionMode(33, GPIO_DIR_MODE_OUT);
+    GPIO_writePin(33, 0);
+
+    //Dout2
+    GPIO_setMasterCore(34, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(34, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_34_GPIO34);
+    GPIO_setDirectionMode(34, GPIO_DIR_MODE_OUT);
+    GPIO_writePin(34, 0);
+
+    //Dout3
+    GPIO_setMasterCore(35, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(35, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_35_GPIO35);
+    GPIO_setDirectionMode(35, GPIO_DIR_MODE_OUT);
+    GPIO_writePin(35, 0);
+
+    //Dout4
+    GPIO_setMasterCore(36, GPIO_CORE_CPU1);
+    GPIO_setPadConfig(36, GPIO_PIN_TYPE_PULLUP);
+    GPIO_setPinConfig(GPIO_36_GPIO36);
+    GPIO_setDirectionMode(36, GPIO_DIR_MODE_OUT);
+    GPIO_writePin(36, 0);
+
+}
+
+
+Uint16 TestDin;
+
+void DigitalInput()
+{
+    Din.DataRaw.all = HWREG(GPIODATA_BASE + 0x00);     //16-bit HWREGH -> 32-bit HWREG
+    Din.Data.all = Din.DataRaw.all ^ ~Din.Exor.all;
+}
+
+
+void DigitalOutput()
+{
+    HWREGH(GPIODATA_BASE + 0x8) = ~(Dout.Data.all ^ Dout.Exor.all);
+}
+//
+void ReadDioExor(void)
+{
+//    Din.Exor.all = NV.Din.Exor.all;
+//    Dout.Exor.all = NV.Dout.Exor.all;
+}
+//
+void WriteDioExor(void)
+{
+//    NV.Din.Exor.all = Din.Exor.all;
+//    NV.Dout.Exor.all = Dout.Exor.all;
+}
+
+void ResetDioExor()
+{
+    // 0, A접점(NO, Normal Open)
+    // 1, B접점(NC, Normal Close)
+    Din.Exor.bit.Button = NORMAL_OPEN;
+    Din.Exor.bit.Door_chk = NORMAL_CLOSE;
+
+    Din.Exor.bit.FT_CH1_IR = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH1_VIS = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH1_UV = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH2_IR = NORMAL_OPEN;
+
+    Din.Exor.bit.FT_CH2_VIS = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH2_UV = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH3_IR = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH3_VIS = NORMAL_OPEN;
+
+    Din.Exor.bit.FT_CH3_UV = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH4_IR = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH4_VIS = NORMAL_OPEN;
+    Din.Exor.bit.FT_CH4_UV = NORMAL_OPEN;
+
+
+}
+
+
+
 
Common_Resource/CommonLibrary/source/Eeprom.cpp (added)
+++ Common_Resource/CommonLibrary/source/Eeprom.cpp
@@ -0,0 +1,262 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : EepromLib.h
+//          Created on : 2023. 10. 31.
+//         Description : EEPROM Library (SPI-Type)
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+
+//나중에 DMA로 처리 할 것!!!!
+//FIFO 적용할 것!!!!!!!!
+//지금은 임시!!!!!!!!!!
+//코드 컨벤션 및 변수 네이밍 나중에 수정 할 것!!!!!!!!
+
+uint16_t EepromChkClrBuf[10] = {0,0,0,0,0,0,0,0,0,0};
+uint16_t EepromChkRdBuf[10] = {0,0,0,0,0,0,0,0,0,0};
+uint16_t EepromChkCodeSet[10] = {'N','e','x','t','S','q','u','a','r','e'};
+
+unsigned int EepromChkCnt = 0;
+
+float Testpcs1 = 1024;
+float Testpcs2 = 1024;
+float Testpcs3 = 1024;
+
+void EepromChkCodeClr()
+{
+    WriteEepromArray(pEepromChk + 0, EepromChkClrBuf, 10);
+}
+
+void EepromChkCodeWr()
+{
+    WriteEepromArray(pEepromChk + 0, EepromChkCodeSet, 10);
+}
+
+unsigned int EepromInitStatus = 0;
+
+
+int FlagTestEeprom = 0;
+
+
+void EepromChk()
+{
+	int i = 0;
+
+	ReadEeprom(pEepromChk + 0, EepromChkRdBuf, 10);
+
+	for(i = 0; i < 10; i++)
+	{
+//		if(EepromChkRdBuf[i] != EepromChkCodeSet[i]) EepromChkCnt++;
+//	    if(EepromChkCnt != 0) Fault.Sw3.bit.Err_Nvram |= 1;
+	}
+
+	if(EepromChkCnt != 0)
+	{
+		//임시
+		memset(&ScaleDelt, 0, (sizeof(ScaleDelt) / sizeof(int)));
+		memset(&Adc.OffsetDelt, 0, (sizeof(Adc.OffsetDelt) / sizeof(int)));
+		ResetDioExor();
+
+		WriteEepromArray(pEepromChk + 0, EepromChkCodeSet, 10);
+		EepromWriteAdcScale();
+		EepromWriteAdcOffset();
+		EepromWriteDioExor();
+
+//		EepromChkCnt = 0;
+		EepromInitStatus = 1;
+	}
+}
+
+
+
+void EepromWriteDioExor()
+{
+    WriteEepromInt(pEepromExor + 0, &Din.Exor.all);
+    WriteEepromInt(pEepromExor + 1, &Dout.Exor.all);
+}
+void EepromReadDioExor()
+{
+    ReadEepromInt(pEepromExor + 0, &Din.Exor.all);
+    ReadEepromInt(pEepromExor + 1, &Dout.Exor.all);
+}
+
+void EepromWriteAdcScale()
+{
+	WriteEepromFloat(pEepromAdcScale + 0, &Testpcs1);
+	WriteEepromFloat(pEepromAdcScale + 1, &Testpcs2);
+	WriteEepromFloat(pEepromAdcScale + 2, &Testpcs3);
+//	WriteEepromFloat(pEepromAdcScale + 3, &ScaleDelt.Vdab);
+//	WriteEepromFloat(pEepromAdcScale + 4, &ScaleDelt.AdcCh05);
+//	WriteEepromFloat(pEepromAdcScale + 5, &ScaleDelt.VdcH);
+//	WriteEepromFloat(pEepromAdcScale + 6, &ScaleDelt.VdcL);
+//	WriteEepromFloat(pEepromAdcScale + 7, &ScaleDelt.VunGrid);
+//	WriteEepromFloat(pEepromAdcScale + 8, &ScaleDelt.VnwGrid);
+//	WriteEepromFloat(pEepromAdcScale + 9, &ScaleDelt.IuInv);
+//	WriteEepromFloat(pEepromAdcScale + 10, &ScaleDelt.IwInv);
+//	WriteEepromFloat(pEepromAdcScale + 11, &ScaleDelt.Izct);
+//	WriteEepromFloat(pEepromAdcScale + 12, &ScaleDelt.IuGridExt);
+//	WriteEepromFloat(pEepromAdcScale + 13, &ScaleDelt.IwGridExt);
+//	WriteEepromFloat(pEepromAdcScale + 14, &ScaleDelt.VntcBoost);
+//	WriteEepromFloat(pEepromAdcScale + 15, &ScaleDelt.VntcLvDab);
+//	WriteEepromFloat(pEepromAdcScale + 16, &ScaleDelt.VntcHvDab);
+//	WriteEepromFloat(pEepromAdcScale + 17, &ScaleDelt.VntcInv);
+//	WriteEepromFloat(pEepromAdcScale + 18, &ScaleDelt.Vntc5);
+//	WriteEepromFloat(pEepromAdcScale + 19, &ScaleDelt.Vntc6);
+//	WriteEepromFloat(pEepromAdcScale + 20, &ScaleDelt.VunInv);
+//	WriteEepromFloat(pEepromAdcScale + 21, &ScaleDelt.VnwInv);
+//	WriteEepromFloat(pEepromAdcScale + 22, &ScaleDelt.IuGrid);
+//	WriteEepromFloat(pEepromAdcScale + 23, &ScaleDelt.IwGrid);
+}
+
+void EepromReadAdcScale()
+{
+	ReadEepromFloat(pEepromAdcScale + 0, &Testpcs1);
+	ReadEepromFloat(pEepromAdcScale + 1, &Testpcs2);
+	ReadEepromFloat(pEepromAdcScale + 2, &Testpcs3);
+//	ReadEepromFloat(pEepromAdcScale + 3, &ScaleDelt.Vdab);
+//	ReadEepromFloat(pEepromAdcScale + 4, &ScaleDelt.AdcCh05);
+//	ReadEepromFloat(pEepromAdcScale + 5, &ScaleDelt.VdcH);
+//	ReadEepromFloat(pEepromAdcScale + 6, &ScaleDelt.VdcL);
+//	ReadEepromFloat(pEepromAdcScale + 7, &ScaleDelt.VunGrid);
+//	ReadEepromFloat(pEepromAdcScale + 8, &ScaleDelt.VnwGrid);
+//	ReadEepromFloat(pEepromAdcScale + 9, &ScaleDelt.IuInv);
+//	ReadEepromFloat(pEepromAdcScale + 10, &ScaleDelt.IwInv);
+//	ReadEepromFloat(pEepromAdcScale + 11, &ScaleDelt.Izct);
+//	ReadEepromFloat(pEepromAdcScale + 12, &ScaleDelt.IuGridExt);
+//	ReadEepromFloat(pEepromAdcScale + 13, &ScaleDelt.IwGridExt);
+//	ReadEepromFloat(pEepromAdcScale + 14, &ScaleDelt.VntcBoost);
+//	ReadEepromFloat(pEepromAdcScale + 15, &ScaleDelt.VntcLvDab);
+//	ReadEepromFloat(pEepromAdcScale + 16, &ScaleDelt.VntcHvDab);
+//	ReadEepromFloat(pEepromAdcScale + 17, &ScaleDelt.VntcInv);
+//	ReadEepromFloat(pEepromAdcScale + 18, &ScaleDelt.Vntc5);
+//	ReadEepromFloat(pEepromAdcScale + 19, &ScaleDelt.Vntc6);
+//	ReadEepromFloat(pEepromAdcScale + 20, &ScaleDelt.VunInv);
+//	ReadEepromFloat(pEepromAdcScale + 21, &ScaleDelt.VnwInv);
+//	ReadEepromFloat(pEepromAdcScale + 22, &ScaleDelt.IuGrid);
+//	ReadEepromFloat(pEepromAdcScale + 23, &ScaleDelt.IwGrid);
+}
+
+void EepromWriteAdcOffset()
+{
+	int idx = 0;
+
+	for (idx = 0; idx < 32; idx++)
+	{
+	    WriteEepromFloat(pEepromAdcOffset + idx, &Adc.OffsetDelt[idx]);
+	}
+}
+
+void EepromReadAdcOffset()
+{
+	int idx = 0;
+
+	for (idx = 0; idx < 32; idx++)
+	{
+		ReadEepromFloat(pEepromAdcOffset + idx, &Adc.OffsetDelt[idx]);
+	}
+}
+
+unsigned int FlagRstAdcPara = 0;
+unsigned int FlagWrAdcScale = 0;
+unsigned int FlagRdAdcScale = 0;
+unsigned int FlagWrAdcOffset = 0;
+unsigned int FlagRdAdcOffset = 0;
+
+//unsigned int FlagRstDioExor = 0;
+unsigned int FlagRdDioExor = 0;
+//unsigned int FlagWrDioExor = 0;
+
+unsigned int FlagEepromRstAll = 0;
+unsigned int FlagEepromWrAll = 0;
+unsigned int FlagEepromRdAll = 0;
+unsigned int FlagEepromChkClr = 0;
+
+void EepromCmds()
+{
+	if(FlagEepromRstAll == 1)
+	{
+		FlagRstAdcPara = 1;
+		FlagRstDioExor = 1;
+		FlagEepromRstAll = 0;
+	}
+
+	if(FlagEepromWrAll == 1)
+	{
+        FlagWrAdcScale = 1;
+        FlagWrAdcOffset = 1;
+		FlagWrDioExor = 1;
+		FlagEepromWrAll = 0;
+	}
+
+	if(FlagEepromRdAll == 1)
+	{
+        FlagRdAdcScale = 1;
+        FlagRdAdcOffset = 1;
+		FlagRdDioExor = 1;
+		FlagEepromRdAll = 0;
+	}
+
+    if(FlagRdDioExor == 1 )
+    {
+        EepromReadDioExor();
+        FlagRdDioExor = 0;
+    }
+
+    if(FlagWrDioExor == 1 )
+    {
+        EepromWriteDioExor();
+        FlagWrDioExor = 0;
+    }
+
+
+	if(FlagRdAdcScale == 1 )
+	{
+		EepromReadAdcScale();
+		FlagRdAdcScale = 0;
+	}
+
+	if(FlagWrAdcScale == 1 )
+	{
+		EepromWriteAdcScale();
+		FlagWrAdcScale = 0;
+	}
+
+    if(FlagRdAdcOffset == 1 )
+    {
+        EepromReadAdcOffset();
+        FlagRdAdcScale = 0;
+    }
+
+    if(FlagWrAdcOffset == 1 )
+    {
+        EepromWriteAdcOffset();
+        FlagWrAdcOffset = 0;
+    }
+
+    if(FlagRstAdcPara == 1)
+    {
+    	//임시
+		memset(&ScaleDelt, 0, (sizeof(ScaleDelt) / sizeof(int)));
+		memset(&Adc.OffsetDelt, 0, (sizeof(Adc.OffsetDelt) / sizeof(int)));
+        FlagRstAdcPara = 0;
+    }
+
+    if(FlagRstDioExor == 1)
+    {
+        ResetDioExor();
+        FlagRstDioExor = 0;
+    }
+
+	if(FlagEepromChkClr == 1)
+	{
+	    EepromChkCodeClr();
+	    FlagEepromChkClr = 0;
+	}
+
+}
+
+
+
 
Common_Resource/CommonLibrary/source/EepromLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/EepromLib.cpp
@@ -0,0 +1,137 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-ENEMAN-CPU1
+//           File Name : EepromLib.h
+//          Created on : 2023. 07. 12.
+//         Description :
+//              Author : KWONJEONGMIN
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+#include "F2837xD_gpio.h"
+//
+// Calculate BRR: 7-bit baud rate register value
+// SPI CLK freq = 500 kHz
+// LSPCLK freq  = CPU freq / 4  (by default)
+// BRR          = (LSPCLK freq / SPI CLK freq) - 1
+//
+#define CPUCLK              200000000L                          // CPU Main Clock
+#define SPI_BRR             ((200E6 / 4) / 500E3) - 1           // SPI BRR
+
+//void InitSpi(void)
+//{
+//    //Initialize SPI-C
+//
+//    // Set reset low before configuration changes
+//    // Clock polarity (0 == rising, 1 == falling)
+//    // 16-bit character
+//    // Enable loop-back
+//    SpicRegs.SPICCR.bit.SPISWRESET = 0;
+//    SpicRegs.SPICCR.bit.CLKPOLARITY = 0;
+//    SpicRegs.SPICCR.bit.SPICHAR = (16-1);
+//    SpicRegs.SPICCR.bit.SPILBK = 1;
+//
+//    // Enable master (0 == slave, 1 == master)
+//    // Enable transmission (Talk)
+//    // Clock phase (0 == normal, 1 == delayed)
+//    // SPI interrupts are enabled
+//    SpicRegs.SPICTL.bit.MASTER_SLAVE = 1;
+//    SpicRegs.SPICTL.bit.TALK = 1;
+//    SpicRegs.SPICTL.bit.CLK_PHASE = 0;
+//    SpicRegs.SPICTL.bit.SPIINTENA = 1;
+//
+//    // Set the baud rate
+//    SpicRegs.SPIBRR.bit.SPI_BIT_RATE = SPI_BRR;
+//
+//    // Set FREE bit
+//    // Halting on a breakpoint will not halt the SPI
+//    SpicRegs.SPIPRI.bit.FREE = 1;
+//
+//    // Release the SPI from reset
+//    SpicRegs.SPICCR.bit.SPISWRESET = 1;
+//}
+
+//
+// InitSpiGpio - This function initializes GPIO pins to function as SPI pins.
+//               Each GPIO pin can be configured as a GPIO pin or up to 3
+//               different peripheral functional pins. By default all pins come
+//               up as GPIO inputs after reset.
+//
+//               Caution:
+//               For each SPI peripheral
+//               Only one GPIO pin should be enabled for SPISOMO operation.
+//               Only one GPIO pin should be enabled for SPISOMI operation.
+//               Only one GPIO pin should be enabled for SPICLK  operation.
+//
+
+
+#ifdef CPU1
+void InitSpiGpio(void)
+{
+    EALLOW;
+
+    //
+    // Enable internal pull-up for the selected pins
+    //
+    // Pull-ups can be enabled or disabled by the user.
+    // This will enable the pull ups for the specified pins.
+    //
+    GpioCtrlRegs.GPDPUD.bit.GPIO100 = 0;    // Enable pull-up on GPIO100 (SPISIMOC)
+    GpioCtrlRegs.GPDPUD.bit.GPIO101 = 0;    // Enable pull-up on GPIO101 (SPISOMIC)
+    GpioCtrlRegs.GPDPUD.bit.GPIO102 = 0;    // Enable pull-up on GPIO101 (SPICLKC)
+
+    //
+    // Set qualification for selected pins to asynch only
+    //
+    // This will select asynch (no qualification) for the selected pins.
+    //
+    GpioCtrlRegs.GPDQSEL1.bit.GPIO100 = 3;  //Asynch input GPIO100 (SPISIMOC)
+    GpioCtrlRegs.GPDQSEL1.bit.GPIO101 = 3;  //Asynch input GPIO101 (SPISOMIC)
+    GpioCtrlRegs.GPDQSEL1.bit.GPIO102 = 3;  //Asynch input GPIO101 (SPICLKC)
+
+    //
+    //Configure SPI-A pins using GPIO regs
+    //
+    // This specifies which of the possible GPIO pins will be SPI functional pins.
+    //
+    GpioCtrlRegs.GPDMUX1.bit.GPIO100 = 1;   //Configure GPIO100 as SPISIMOC
+    GpioCtrlRegs.GPDMUX1.bit.GPIO101 = 1;   //Configure GPIO101 as SPISOMIC
+    GpioCtrlRegs.GPDMUX1.bit.GPIO102 = 1;   //Configure GPIO102 as SPICLKC
+
+    EDIS;
+}
+#endif
+
+
+void ew_disable()
+{
+
+}
+void ew_enable()
+{
+
+}
+void is_ew_enabled()
+{
+
+}
+void erase_all()
+{
+
+}
+void write_all()
+{
+
+}
+void write()
+{
+
+}
+void erase()
+{
+
+}
+void read()
+{
+
+}
 
Common_Resource/CommonLibrary/source/EpwmLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/EpwmLib.cpp
@@ -0,0 +1,1019 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : Epwm.cpp
+//          Created on : 2019. 06. 07
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date : 
+//-------------------------------------------------------//
+
+#include <CommonLib.h>
+
+
+
+void InitEPwm1(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0.;
+
+
+    EALLOW;
+
+	//EPwm1Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm1Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm1Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm1Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
+	EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // load on CTR=Zero
+	EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // load on CTR=Zero
+
+
+    EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_PRD;
+	EPwm1Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+    EPwm1Regs.ETPS.bit.INTPRD = ET_2ND;
+
+	EPwm1Regs.ETPS.bit.SOCPSSEL = 0;
+	EPwm1Regs.ETPS.bit.SOCAPRD = ET_2ND;
+    EPwm1Regs.ETPS.bit.SOCBPRD = ET_2ND;
+//	EPwm1Regs.ETSOCPS.bit.SOCAPRD2 = 1;
+
+    EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_PRD;
+    EPwm1Regs.ETSEL.bit.SOCAEN = 1;
+
+    EPwm1Regs.ETSEL.bit.SOCBSEL = ET_CTR_ZERO;
+    EPwm1Regs.ETSEL.bit.SOCBEN = 1;
+
+    // Set actions
+    EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+    EPwm1Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm1Regs.CMPA.bit.CMPA = 0;
+	EPwm1Regs.CMPB.bit.CMPB = 0;
+
+	EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm1Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm1Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm1Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm1Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm1Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	EPwm1Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm1Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm2(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm2Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm2Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm2Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm2Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	EPwm2Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // load on CTR=Zero
+	EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // load on CTR=Zero
+
+//  EPwm2Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm2Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm2Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm2Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm2Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm2Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm2Regs.CMPA.bit.CMPA = 0;
+	EPwm2Regs.CMPB.bit.CMPB = 0;
+
+	EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm2Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm2Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm2Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm2Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count : 1 Up-Down : 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm2Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	EPwm2Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm2Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm3(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm3Regs.TBPRD = Pwm_prd;                    // Set timer period
+	EPwm3Regs.TBPHS.bit.TBPHS = Tbphs;              // Phase is 0
+	EPwm3Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm3Regs.TBCTL.bit.CTRMODE = CTR_Mode;         // Count up
+	EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE;          // Disable phase loading
+	EPwm3Regs.TBCTL.bit.PHSDIR = TB_UP;
+
+	EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm3Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;      // Clock ratio to SYSCLKOUT
+	EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;        // Clock ratio to SYSCLKOUT
+	EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;           // Slow so we can observe on the scope
+
+	EPwm3Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm3Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD;    // load on CTR=Zero
+	EPwm3Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD;    // load on CTR=Zero
+
+//  EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm3Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm3Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;              // set actions for EPWM1A
+	EPwm3Regs.AQCTLA.bit.CAD = AQ_CLEAR;
+
+//  EPwm3Regs.AQCTLB.bit.CBU = AQ_CLEAR;            // set actions for EPWM1B
+//  EPwm3Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm3Regs.CMPA.bit.CMPA = 0;
+	EPwm3Regs.CMPB.bit.CMPB = 0;
+
+	EPwm3Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm3Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm3Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm3Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm3Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm3Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm3Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm3Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm3Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm3Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm3Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm3Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm3Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm3Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm4(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm4Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm4Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm4Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm4Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm4Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm4Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm4Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm4Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm4Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm4Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm4Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm4Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // load on CTR=Zero
+	EPwm4Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // load on CTR=Zero
+
+//  EPwm4Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm4Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm4Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm4Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm4Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm4Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm4Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm4Regs.CMPA.bit.CMPA = 0;
+	EPwm4Regs.CMPB.bit.CMPB = 0;
+
+	EPwm4Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm4Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm4Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm4Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm4Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm4Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm4Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm4Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm4Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm4Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm4Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm4Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm4Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm5(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm5Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm5Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm5Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm5Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm5Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm5Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm5Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm5Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm5Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm5Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // load on CTR=Zero
+	EPwm5Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // load on CTR=Zero
+
+//  EPwm5Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm5Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm5Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm5Regs.AQCTLA.bit.CAU = AQ_SET; // set actions for EPWM1A
+	EPwm5Regs.AQCTLA.bit.CAD = AQ_CLEAR;
+
+//  EPwm5Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm5Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm5Regs.CMPA.bit.CMPA = 0;
+	EPwm5Regs.CMPB.bit.CMPB = 0;
+
+	EPwm5Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm5Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm5Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm5Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm5Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm5Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm5Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm5Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm5Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm5Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm5Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm5Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm5Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm5Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm6(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm6Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm6Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm6Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm6Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm6Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm6Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm6Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm6Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm6Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm6Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm6Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // load on CTR=Zero
+	EPwm6Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // load on CTR=Zero
+
+//  EPwm6Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm6Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm6Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm6Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm6Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm6Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm6Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm6Regs.CMPA.bit.CMPA = 0;
+	EPwm6Regs.CMPB.bit.CMPB = 0;
+
+	EPwm6Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm6Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm6Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm6Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm6Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm6Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm6Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm6Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm6Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm6Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm6Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm6Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm6Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm6Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm7(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm7Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm7Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm7Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm7Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm7Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm7Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm7Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm7Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm7Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm7Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm7Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm7Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm7Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm7Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm7Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm7Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm7Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm7Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm7Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm7Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm7Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm7Regs.CMPA.bit.CMPA = 0;
+	EPwm7Regs.CMPB.bit.CMPB = 0;
+
+	EPwm7Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm7Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm7Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm7Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm7Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm7Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm7Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm7Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm7Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm7Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm7Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm7Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm7Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm7Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm8(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm8Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm8Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm8Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm8Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm8Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm8Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm8Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm8Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm8Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm8Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm8Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm8Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm8Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm8Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm8Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm8Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm8Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm8Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm8Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm8Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm8Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm8Regs.CMPA.bit.CMPA = 0;
+	EPwm8Regs.CMPB.bit.CMPB = 0;
+
+	EPwm8Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm8Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm8Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm8Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm8Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm8Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm8Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm8Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm8Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm8Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm8Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm8Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm8Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm8Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+}
+
+void InitEPwm9(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm9Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm9Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm9Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm9Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm9Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm9Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm9Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm9Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm9Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm9Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm9Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm9Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm9Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm9Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm9Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm9Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm9Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm9Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm9Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm9Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm9Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm9Regs.CMPA.bit.CMPA = 0;
+	EPwm9Regs.CMPB.bit.CMPB = 0;
+
+	EPwm9Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm9Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm9Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm9Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm9Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm9Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm9Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm9Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm9Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm9Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm9Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm9Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm9Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm9Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm10(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm10Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm10Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm10Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm10Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm10Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm10Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm10Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm10Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm10Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm10Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm10Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm10Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm10Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm10Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm10Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm10Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm10Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm10Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm10Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm10Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm10Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm10Regs.CMPA.bit.CMPA = 0;
+	EPwm10Regs.CMPB.bit.CMPB = 0;
+
+	EPwm10Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm10Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm10Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm10Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm10Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm10Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm10Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm10Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm10Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm10Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm10Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm10Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm10Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm10Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm11(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm11Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm11Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm11Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm11Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm11Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm11Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm11Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm11Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm11Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm11Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm11Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm11Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm11Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm11Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm11Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm11Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm11Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm11Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm11Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm11Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm11Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm11Regs.CMPA.bit.CMPA = 0;
+	EPwm11Regs.CMPB.bit.CMPB = 0;
+
+	EPwm11Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm11Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm11Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm11Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm11Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+//  EPwm11Regs.DBRED = Inv_Deadtime_prd;
+//  EPwm11Regs.DBFED = Inv_Deadtime_prd;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm11Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm11Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm11Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count���� 1 Up-Down�ϴ� 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm11Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	//EPwm11Regs.TBPHS.bit.TBPHS = PWMPrdCal(Pwm_Freq, Tbclk, CTRDIV) / 2;
+	EPwm11Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm11Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+
+}
+
+void InitEPwm12(float Pwm_Freq, float Pwm_Deadtime, unsigned int CTR_Mode, unsigned int Tbphs)
+{
+	float Tbclk = 0;
+
+    EALLOW;
+
+	//EPwm12Regs.TBPRD = Pwm_prd;  // Set timer period
+	EPwm12Regs.TBPHS.bit.TBPHS = Tbphs;           // Phase is 0
+	EPwm12Regs.TBCTR = 0x0000;                       // Clear counter
+
+	// Setup Tbclk
+	EPwm12Regs.TBCTL.bit.CTRMODE = CTR_Mode; // Count up
+	EPwm12Regs.TBCTL.bit.PHSEN = TB_ENABLE;        // Disable phase loading
+	//EPwm4Regs.TBCTL.bit.PHSDIR = TB_DOWN;
+
+	EPwm12Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;
+	EPwm12Regs.TBCTL.bit.PRDLD = TB_SHADOW;
+	//EPwm12Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;       // Clock ratio to SYSCLKOUT
+	EPwm12Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;       // Clock ratio to SYSCLKOUT
+	EPwm12Regs.TBCTL.bit.CLKDIV = TB_DIV1;          // Slow so we can observe on the scope
+
+	EPwm12Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
+	EPwm12Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
+	EPwm12Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+	EPwm12Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO_PRD; // load on CTR=Zero
+
+//  EPwm12Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
+//  EPwm12Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;
+//  EPwm12Regs.ETPS.bit.INTPRD = ET_1ST;
+
+	// Set actions
+	EPwm12Regs.AQCTLA.bit.CAU = AQ_CLEAR; // set actions for EPWM1A
+	EPwm12Regs.AQCTLA.bit.CAD = AQ_SET;
+
+//  EPwm12Regs.AQCTLB.bit.CBU = AQ_CLEAR; // set actions for EPWM1B
+//  EPwm12Regs.AQCTLB.bit.CBD = AQ_SET;
+
+	// Setup compare
+	EPwm12Regs.CMPA.bit.CMPA = 0;
+	EPwm12Regs.CMPB.bit.CMPB = 0;
+
+	EPwm12Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
+	EPwm12Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
+
+	// Active high complementary PWMs - Setup the deadband
+	EPwm12Regs.DBCTL.bit.IN_MODE = DBA_ALL;
+	EPwm12Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;
+	EPwm12Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;
+
+	//------------------TBPRD 및 Deadtime 자동계산 ---------------------//
+	unsigned int HSPCLKDIV = 0, CLKDIV = 0, CTRMODE = 0, CTRDIV = 0;
+
+	HSPCLKDIV = EPwm12Regs.TBCTL.bit.HSPCLKDIV;
+	CLKDIV = EPwm12Regs.TBCTL.bit.CLKDIV;
+	CTRMODE = EPwm12Regs.TBCTL.bit.CTRMODE;
+
+	if (CTRMODE == 0 || CTRMODE == 1) CTRDIV = 1; // Up or Down count : 1,  Up-Down : 2
+	else if (CTRMODE == 2) CTRDIV = 2;
+
+	Tbclk = (SystemClock / ((HSPCLKDIV + 1) * (CLKDIV + 1)));    //Tbclk = SYSCLKOUT / (HSPCLKDIV �� CLKDIV)
+
+	EPwm12Regs.TBPRD = PwmPrdCal(Pwm_Freq, Tbclk, CTRDIV);
+	EPwm12Regs.DBRED.bit.DBRED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+	EPwm12Regs.DBFED.bit.DBFED = PwmDeadtimeCal(Pwm_Deadtime, Tbclk);
+
+	EDIS;
+}
+
+unsigned int PwmPrdCal(float PWM_FREQ, float Tbclk, unsigned int CTRDIV)
+{
+	unsigned int Prd = 0;
+
+//  Prd = (unsigned int) ((1/PWM_FREQ) * (Tbclk / CTRDIV ) + 1);
+	Prd = (unsigned int) ((1 / PWM_FREQ) * (Tbclk / CTRDIV));
+
+	return Prd;
+}
+
+unsigned int PwmDeadtimeCal(float PWM_DEADTIME, float Tbclk)
+{
+	unsigned Prd = 0;
+
+	//Prd = (unsigned int) (PWM_DEADTIME * Tbclk + 1);
+	Prd = (unsigned int) (PWM_DEADTIME * Tbclk);
+
+	return Prd;
+}
+
+
+
+void InitEPwm1Gpio()
+{
+	GPIO_setPadConfig(145, GPIO_PIN_TYPE_PULLUP); //EPMW1A
+	GPIO_setPadConfig(146, GPIO_PIN_TYPE_PULLUP); //EPWM1B
+
+	GPIO_setPinConfig(GPIO_145_EPWM1A);	//EPMW1A
+	GPIO_setPinConfig(GPIO_146_EPWM1B); //EPWM1B
+}
+
+void InitEPwm2Gpio()
+{
+	GPIO_setPadConfig(147, GPIO_PIN_TYPE_PULLUP); //EPMW2A
+	GPIO_setPadConfig(148, GPIO_PIN_TYPE_PULLUP); //EPWM2B
+
+	GPIO_setPinConfig(GPIO_147_EPWM2A);	//EPMW2A
+	GPIO_setPinConfig(GPIO_148_EPWM2B); //EPWM2B
+}
+
+void InitEPwm3Gpio()
+{
+	GPIO_setPadConfig(149, GPIO_PIN_TYPE_PULLUP); //EPMW3A
+	GPIO_setPadConfig(150, GPIO_PIN_TYPE_PULLUP); //EPWM3B
+
+	GPIO_setPinConfig(GPIO_149_EPWM3A);	//EPMW3A
+	GPIO_setPinConfig(GPIO_150_EPWM3B); //EPWM3B
+}
+
+void InitEPwm4Gpio()
+{
+	GPIO_setPadConfig(151, GPIO_PIN_TYPE_PULLUP); //EPMW4A
+	GPIO_setPadConfig(152, GPIO_PIN_TYPE_PULLUP); //EPWM4B
+
+	GPIO_setPinConfig(GPIO_151_EPWM4A);	//EPMW4A
+	GPIO_setPinConfig(GPIO_152_EPWM4B); //EPWM4B
+}
+
+void InitEPwm5Gpio()
+{
+	GPIO_setPadConfig(153, GPIO_PIN_TYPE_PULLUP); //EPMW5A
+	GPIO_setPadConfig(154, GPIO_PIN_TYPE_PULLUP); //EPWM5B
+
+	GPIO_setPinConfig(GPIO_153_EPWM5A);	//EPMW5A
+	GPIO_setPinConfig(GPIO_154_EPWM5B); //EPWM5B
+}
+
+void InitEPwm6Gpio()
+{
+	GPIO_setPadConfig(155, GPIO_PIN_TYPE_PULLUP); //EPMW6A
+	GPIO_setPadConfig(156, GPIO_PIN_TYPE_PULLUP); //EPWM6B
+
+	GPIO_setPinConfig(GPIO_155_EPWM6A);	//EPMW6A
+	GPIO_setPinConfig(GPIO_156_EPWM6B); //EPWM6B
+}
+
+void InitEPwm7Gpio()
+{
+	GPIO_setPadConfig(157, GPIO_PIN_TYPE_PULLUP); 	//EPMW7A
+	GPIO_setPadConfig(158, GPIO_PIN_TYPE_PULLUP); 	//EPWM7B
+
+	GPIO_setPinConfig(GPIO_157_EPWM7A);				//EPMW7A
+	GPIO_setPinConfig(GPIO_158_EPWM7B); 			//EPWM7B
+}
+
+void InitEPwm8Gpio()
+{
+	GPIO_setPadConfig(159, GPIO_PIN_TYPE_PULLUP); 	//EPMW8A
+	GPIO_setPadConfig(160, GPIO_PIN_TYPE_PULLUP); 	//EPWM8B
+
+	GPIO_setPinConfig(GPIO_159_EPWM8A);				//EPMW8A
+	GPIO_setPinConfig(GPIO_160_EPWM8B); 			//EPWM8B
+}
+
+void InitEPwm9Gpio()
+{
+	GPIO_setPadConfig(161, GPIO_PIN_TYPE_PULLUP); 	//EPMW9A
+	GPIO_setPadConfig(162, GPIO_PIN_TYPE_PULLUP); 	//EPWM9B
+
+	GPIO_setPinConfig(GPIO_161_EPWM9A);				//EPMW9A
+	GPIO_setPinConfig(GPIO_162_EPWM9B); 			//EPWM9B
+}
+
+void InitEPwm10Gpio()
+{
+	GPIO_setPadConfig(163, GPIO_PIN_TYPE_PULLUP); 	//EPMW10A
+	GPIO_setPadConfig(164, GPIO_PIN_TYPE_PULLUP); 	//EPWM10B
+
+	GPIO_setPinConfig(GPIO_163_EPWM10A);			//EPMW10A
+	GPIO_setPinConfig(GPIO_164_EPWM10B); 			//EPWM10B
+}
+
+void InitEPwm11Gpio()
+{
+	GPIO_setPadConfig(165, GPIO_PIN_TYPE_PULLUP); 	//EPMW11A
+	GPIO_setPadConfig(166, GPIO_PIN_TYPE_PULLUP); 	//EPWM11B
+
+	GPIO_setPinConfig(GPIO_165_EPWM11A);			//EPMW11A
+	GPIO_setPinConfig(GPIO_166_EPWM11B); 			//EPWM11B
+}
+
+void InitEPwm12Gpio()
+{
+	GPIO_setPadConfig(167, GPIO_PIN_TYPE_PULLUP); 	//EPMW12A
+	GPIO_setPadConfig(168, GPIO_PIN_TYPE_PULLUP); 	//EPWM12B
+
+	GPIO_setPinConfig(GPIO_167_EPWM12A);			//EPMW12A
+	GPIO_setPinConfig(GPIO_168_EPWM12B); 			//EPWM12B
+}
+
 
Common_Resource/CommonLibrary/source/F28377D_TempSensor.cpp (added)
+++ Common_Resource/CommonLibrary/source/F28377D_TempSensor.cpp
@@ -0,0 +1,68 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU2
+//           File Name : F28377D_TempSensor.cpp
+//          Created on : 2022. 12. 16.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "CommonLib.h"
+
+#define FP_SCALE 32768     		//Scale factor for Q15 fixed point numbers (2^15)
+#define FP_ROUND FP_SCALE/2		//Added to Q15 numbers before converting to
+                            	//integer to round the number.
+#define KELVIN 273         		// Amount to add to Q15 fixed point numbers
+                            	// to shift from Celsius to Kelvin
+                            	// (Converting guarantees number is
+                            	//  positive, which makes rounding more
+								//  efficient)
+#define KELVIN_OFF FP_SCALE*KELVIN
+#define getTempSlope() (*(int (*)(void))0x7036E)()		//Slope of temperature sensor
+														//(deg. C / ADC code).
+                                                   	   	//Stored in fixed point Q15
+                                                   	    //format.
+#define getTempOffset() (*(int (*)(void))0x70372)() 	//ADC code corresponding to
+                                                    	//temperature sensor output
+                                                    	//at 0 deg. C
+
+float32 tempSensor_tempSlope;
+float32 tempSensor_tempOffset;
+float32 tempSensor_scaleFactor;
+
+
+void InitDspTempSensor()
+{
+
+#ifdef CPU1
+	EALLOW;
+	AnalogSubsysRegs.TSNSCTL.bit.ENABLE = 1;
+
+	DEVICE_DELAY_US(1000);
+
+	EDIS;
+
+
+	tempSensor_scaleFactor = 3.0;
+
+    tempSensor_tempSlope = (int32)getTempSlope();
+    tempSensor_tempOffset = getTempOffset();
+#endif
+
+}
+
+int16 GetTemperatureC(int16 sensorSample)
+{
+	sensorSample = (int16) ((tempSensor_scaleFactor / 2.5) * (sensorSample));
+
+	return (((sensorSample - tempSensor_tempOffset) * tempSensor_tempSlope + FP_ROUND + KELVIN_OFF) / FP_SCALE - KELVIN);
+}
+
+int16 GetTemperatureK(int16 sensorSample)
+{
+	sensorSample = (int16) ((tempSensor_scaleFactor / 2.5) * (sensorSample));
+
+	return (((sensorSample - tempSensor_tempOffset) * tempSensor_tempSlope + FP_ROUND + KELVIN_OFF) / FP_SCALE);
+}
+
 
Common_Resource/CommonLibrary/source/FaultDefine.cpp (added)
+++ Common_Resource/CommonLibrary/source/FaultDefine.cpp
@@ -0,0 +1,28 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : FaultDefine.cpp
+//          Created on : 2022. 11. 12.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "CommonLib.h"
+
+struct sFault Fault;
+
+struct sFaultSet FT_UV_OV;
+struct sFaultSet FT_VIS_OV;
+struct sFaultSet FT_IR_OV;
+
+struct sFaultSet FT_Combo_1;
+struct sFaultSet FT_Combo_2;
+struct sFaultSet FT_Combo_3;
+
+struct sFaultSet OtNtc5;
+struct sFaultSet OtNtc6;
+
+struct sMesureList FaultLatch;
+
+
 
Common_Resource/CommonLibrary/source/Modbus.cpp (added)
+++ Common_Resource/CommonLibrary/source/Modbus.cpp
@@ -0,0 +1,870 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : Modbus.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+
+//
+// 1. SCIRXBUF레지스터는 EasyDSP나 에뮬레이터에서 절대 보지 말것.
+//    FIFO 카운터를 감소시켜 처리 시퀀스에 오류를 발생함.
+//    이는 모든 FIFO를 사용하는 UART의 경우 문제 발생의 여지가 있음.
+//    꼭 모니터링이 필요 한 경우는 SCIRXEMU 레지스터를 이용하여 볼것.
+//
+// 2. FIFO를 사용하는 경유 SCIRXBUF.all 대신 SCIRXBUF.RXDT를 사용 하여야 함
+//
+// 3. RX FIFO가 Overflow가 되는 경우 먼저 들어온 순서대로 삭제됨 (FIFO)
+
+#define	CPUCLK				200000000L							// CPU Main Clock
+
+
+#if(MODBUSA_ENB)
+
+#define		MODBUSA_RX_RDY		ScicRegs.SCIRXST.bit.RXRDY
+#define		MODBUSA_RX_FIFO		ScicRegs.SCIFFRX.bit.RXFFST
+#define		MODBUSA_RX_FIFO_RST	ScicRegs.SCIFFRX.bit.RXFIFORESET
+#define		MODBUSA_RX_OVF		ScicRegs.SCIFFRX.bit.RXFFOVF
+#define		MODBUSA_RX_OVFCLR	ScicRegs.SCIFFRX.bit.RXFFOVRCLR
+
+#define		MODBUSA_RX_BUF		ScicRegs.SCIRXBUF.bit.SAR
+#define		MODBUSA_RX_ERROR	ScicRegs.SCIRXST.bit.RXERROR
+
+#define		MODBUSA_TX_RDY		ScicRegs.SCICTL2.bit.TXRDY
+#define		MODBUSA_TX_FIFO		ScicRegs.SCIFFTX.bit.TXFFST
+#define		MODBUSA_TX_BUF		ScicRegs.SCITXBUF.bit.TXDT
+#define		MODBUSA_TX_EMTPY	ScicRegs.SCICTL2.bit.TXEMPTY
+#define		MODBUSA_SWRESET		ScicRegs.SCICTL1.bit.SWRESET = 0,\
+								ScicRegs.SCICTL1.all = 0x0023
+#define 	MODBUSA_FIFO_RST	ScicRegs.SCIFFTX.bit.SCIRST = 1
+
+//---------------------------- Serial Modbus A set parameter RS485----------------------------------//
+
+#define	MODBUSA_LSPCLK		(CPUCLK/4)							// Peripheral Low Speed Clock for SCI-
+#define	MODBUSA_BAUDRATE	9600L
+#define	MODBUSA_BRR_VAL		(MODBUSA_LSPCLK/(8*MODBUSA_BAUDRATE)-1)	// MODBUSA BaudRate ���� Register ��
+
+//16번 funccode로 123개 동시 write 명령시 231 바이트
+//
+#define MODBUSA_RECEIVE_MAX_BYTE	250
+#define MODBUSA_RECEIVE_MIN_BYTE	2
+#define MODBUSA_TRANS_MAX_BYTE		250
+
+#define MODBUSA_START_ADDR 	0
+#define MODBUSA_MAX_ADDR 	1500
+
+
+#pragma SET_DATA_SECTION(".Modbus")
+unsigned int ModbusASlaveID = 1;
+unsigned int ModbusARxCnt = 0, ModbusARxOk = 0, ModbusARxErr = 0, ModbusATxReady = 0, ModbusATxCnt = 0, ModbusATxDataLength = 0;
+unsigned int ModbusACharTime = 0, ModbusACnt = 0, ModbusAStop = 0, ModbusACharTimeset = 8;
+unsigned int ModbusAExceptionCode = 0;
+unsigned char ModbusARxBuf[MODBUSA_RECEIVE_MAX_BYTE];
+unsigned char ModbusATxBuf[MODBUSA_TRANS_MAX_BYTE];
+unsigned int ModbusA_Connection_Check = 0;
+unsigned int Flag_ModbusA_Data_reset = 0;
+
+volatile void *ModbusAPtr[MODBUSAPTRMAX];
+
+unsigned int ModbusATxWaitCnt = 0;
+unsigned int ModbusAFrmStartFlag = 0;
+unsigned int ModbusARxMaxFlag = 0;
+
+unsigned int ModbusARxStop = 0;
+#pragma SET_DATA_SECTION()
+
+#endif
+
+//--------------------------------------------------------------------------------------------------//
+
+#if (MODBUSA_ENB)
+void ModbusACheckBuffer()
+{
+	int kk = 0;
+
+	if (MODBUSA_RX_OVF == 0)
+	{
+		if (MODBUSA_RX_FIFO != 0)
+		{
+			if (ModbusAFrmStartFlag == 0)
+			{
+				ModbusARxBuf[0] = MODBUSA_RX_BUF;
+				if (ModbusARxBuf[0] == ModbusASlaveID)
+				{
+					ModbusAFrmStartFlag = 1;
+					ModbusARxCnt = 1;
+				}
+			}
+			else if (ModbusAFrmStartFlag == 1)
+			{
+				if (ModbusARxCnt <= MODBUSA_RECEIVE_MAX_BYTE)
+				{
+					ModbusARxBuf[ModbusARxCnt++] = MODBUSA_RX_BUF;
+				}
+				else
+				{
+					ModbusAFrmStartFlag = 0;
+					ModbusARxCnt = 0;
+				}
+			}
+
+			ModbusACharTime = 0;
+			ModbusAStop = 0;
+		} //
+		else if (MODBUSA_RX_FIFO == 0)
+		{
+			if (ModbusACharTime <= ModbusACharTimeset) ModbusACharTime++;
+			else if (ModbusACharTime > ModbusACharTimeset)
+			{
+
+				ModbusACharTime = 0;
+				kk = ModbusARxCnt;
+				ModbusARxCnt = 0;
+
+				if (ModbusAFrmStartFlag == 1)
+				{
+					ModbusACnt = kk;
+					if ((ModbusARxBuf[0] == ModbusASlaveID) && (ModbusACnt >= 4))
+					{
+						if (ModbusACRC16(ModbusACnt - 2, 1))	// CRC check
+						{
+							 //CRC
+							memcpy(&ModbusATxBuf, &ModbusARxBuf, ModbusACnt);
+							ModbusARxOk = 1;
+						}
+					}
+				}
+				ModbusAFrmStartFlag = 0;
+			}
+		}
+	}
+	else
+	{
+		MODBUSA_RX_OVFCLR = 1;
+		MODBUSA_RX_FIFO_RST = 0;
+		MODBUSA_RX_FIFO_RST = 1;
+	}
+
+	if (ModbusATxReady == 1)
+	{
+		if (MODBUSA_TX_FIFO < 16)
+		{
+			if (ModbusATxCnt < (ModbusATxDataLength))
+			{
+				MODBUSA_TX_BUF = ModbusATxBuf[ModbusATxCnt];
+				ModbusATxCnt++;
+				ModbusATxWaitCnt = 0;
+			}
+			else
+			{
+				if (MODBUSA_TX_EMTPY == 1)
+				{
+					if (ModbusATxWaitCnt++ > (ModbusACharTimeset - 1))
+					{
+						ModbusATxReady = 0;
+						ModbusATxCnt = 0;
+						ModbusATxWaitCnt = 0;
+					}
+
+				}
+				else
+				{
+
+				}
+			}
+		}
+	}
+	if (MODBUSA_RX_ERROR != 0) MODBUSA_SWRESET;
+}
+
+void ModbusAResponse()		// 10msec routine
+{
+
+	if (ModbusARxOk == 1)
+	{
+		if (ModbusACnt > MODBUSA_RECEIVE_MAX_BYTE)
+		{
+			ModbusAExceptionCode = 2;
+			ModbusABadResponse(); 					//to many bytes in frame */
+		}
+		else if (ModbusACnt < MODBUSA_RECEIVE_MIN_BYTE)
+		{
+			ModbusAExceptionCode = 2;
+			ModbusABadResponse(); 					//to few bytes frame*/
+		}
+		else
+		{
+			if (ModbusATxBuf[1] == 3) ModbusA3rdResponse();
+			else if (ModbusATxBuf[1] == 4) ModbusA4thResponse();
+			else if (ModbusATxBuf[1] == 6) ModbusA6thResponse();
+			else if (ModbusATxBuf[1] == 16) ModbusA16thResponse();
+			else ModbusABadResponse();
+		}
+
+		ModbusARxOk = 0;
+	}
+}
+
+int ModbusACRC16(int dataLength, int RXTXset) //CRC 16 for SERIAL checksum
+{
+	//RXTXset : 0 TX CRC, 1 RX CRC
+
+	Uint16 lowCRC;
+	Uint16 highCRC;
+	Uint16 CRC;
+	Uint16 CRC_OK;
+
+	if (RXTXset == 1)
+	{
+		CRC = CRC16(ModbusARxBuf, dataLength);
+		highCRC = (CRC >> 8) & 0x00FF;
+		lowCRC = (CRC & 0x00FF);
+
+		if (ModbusARxBuf[dataLength + 1] == highCRC)
+		{
+			if (ModbusARxBuf[dataLength] == lowCRC) CRC_OK = 1;
+			else CRC_OK = 0;
+			//for test
+		}
+		else CRC_OK = 0;
+	}
+	else if (RXTXset == 0)
+	{
+		CRC = CRC16(ModbusATxBuf, dataLength);
+		highCRC = (CRC >> 8) & 0x00FF;
+		lowCRC = (CRC & 0x00FF);
+
+		ModbusATxBuf[dataLength] = lowCRC;
+		ModbusATxBuf[dataLength + 1] = highCRC;
+
+		CRC_OK = 1;
+	}
+
+	return CRC_OK;
+}
+
+void ModbusA3rdResponse() //response for ipos 03 function (read registers)
+{
+	int j, temp_address, temp_length, *temp_data;
+	temp_address = ((ModbusATxBuf[2] << 8) & 0x0ff00) + (ModbusATxBuf[3] & 0x00ff);
+	temp_length = ModbusATxBuf[5] & 0x00ff;
+
+	ModbusATxBuf[2] = temp_length * 2;
+
+	for (j = 0; j < temp_length; j++)
+	{
+		temp_data = (int*) (ModbusAPtr[MODBUSA_START_ADDR + temp_address + j]);
+
+		ModbusATxBuf[j * 2 + 3] = ((*temp_data & 0x0ff00) >> 8) & 0x00ff;
+		ModbusATxBuf[j * 2 + 4] = (*temp_data & 0x00ff);
+	}
+
+	ModbusATxReady = ModbusACRC16(temp_length * 2 + 3, 0);  						//ADD+FUNC(2)+DATA
+	ModbusATxDataLength = temp_length * 2 + 5;
+}
+
+void ModbusA4thResponse() //response for MODBUS 4 function read registers
+{
+	int temp_address, temp_length, *temp_data, j;
+	temp_address = ((ModbusATxBuf[2] << 8) & 0x0ff00) + (ModbusATxBuf[3] & 0x0ff);
+	temp_length = ModbusATxBuf[5] & 0xff;
+
+	ModbusATxBuf[2] = temp_length * 2;
+
+	for (j = 0; j < temp_length; j++)
+	{
+		temp_data = (int*) (ModbusAPtr[MODBUSA_START_ADDR + temp_address + j]);
+		ModbusATxBuf[j * 2 + 3] = ((*temp_data & 0x0ff00) >> 8) & 0xff;
+		ModbusATxBuf[j * 2 + 4] = (*temp_data & 0xff);
+	}
+
+	ModbusATxReady = ModbusACRC16(temp_length * 2 + 3, 0);  						//ADD+FUNC(2)+DATA
+	ModbusATxDataLength = temp_length * 2 + 5;
+//	ModbusTxDataLength=temp_length*2+7;
+
+}
+
+void ModbusA6thResponse() //response for MODBUS 3 function write single registers
+{
+	int temp_address;
+	int temp_data;
+	int *ari1;
+	temp_address = (short) ((ModbusATxBuf[2] << 8) & 0x0ff00) + (ModbusATxBuf[3] & 0x0ff);
+	if (ModbusASerialRange(temp_address) == 1) ModbusAExceptionCode = 2;
+	else
+	{
+		temp_data = (((ModbusATxBuf[4] & 0xff) << 8) & 0xff00) + (ModbusATxBuf[5] & 0xff);
+		ari1 = (int*) ModbusAPtr[MODBUSA_START_ADDR + temp_address];
+		if (temp_data > 32767) *ari1 = (temp_data | 0xffff0000);
+		else *ari1 = temp_data;
+
+		ModbusATxReady = ModbusACRC16(6, 0);
+		ModbusATxDataLength = 8;
+	}
+}
+
+void ModbusA16thResponse() //response for MODBUS 16 function write multiple registers
+{
+	int temp_address, temp_length, j;
+	register int temp_data;
+	int *ari1;
+	temp_address = ((ModbusATxBuf[2] << 8) & 0x0ff00) + (ModbusATxBuf[3] & 0x0ff);
+	temp_length = ModbusATxBuf[5] & 0xff;
+	if (ModbusASerialRange(temp_address + temp_length) == 1) ModbusAExceptionCode = 2;
+	else
+	{
+		for (j = 0; j < temp_length; j++)
+		{
+			temp_data = (((ModbusATxBuf[7 + 2 * j] & 0xff) << 8) & 0xff00) + (ModbusATxBuf[8 + 2 * j] & 0xff);
+			ari1 = (int*) ModbusAPtr[MODBUSA_START_ADDR + temp_address + j];
+			if (temp_data > 32767) *ari1 = (temp_data | 0xffff0000);
+			else *ari1 = temp_data;
+		}
+	}
+	ModbusATxReady = ModbusACRC16(6, 0);
+	ModbusATxDataLength = 8;
+}
+
+void ModbusABadResponse()
+{
+	ModbusATxBuf[0] = ModbusASlaveID;
+	ModbusATxBuf[1] = ModbusATxBuf[1] + 0x00000080;
+	ModbusATxBuf[2] = ModbusAExceptionCode;
+
+	ModbusATxReady = ModbusACRC16(3, 0);
+	ModbusATxDataLength = 5;
+}
+
+int ModbusASerialRange(int address)
+{
+	if ((address >= 0) && (address < MODBUSA_MAX_ADDR)) return 0; 	//read write enable
+	else return 1;									//read only
+}
+
+void Init_ModbusA_Buffer()
+{
+	memset(&ModbusARxBuf, 0, sizeof(ModbusARxBuf) / sizeof(int));
+	memset(&ModbusATxBuf, 0, sizeof(ModbusATxBuf) / sizeof(int));
+
+}
+#endif
+
+//-------------------------ModbusB------------------------------------------------------//
+
+#if (MODBUSB_ENB)
+
+#define     MODBUSB_RX_RDY      ScibRegs.SCIRXST.bit.RXRDY
+#define     MODBUSB_RX_FIFO     ScibRegs.SCIFFRX.bit.RXFFST
+#define     MODBUSB_RX_FIFO_RST ScibRegs.SCIFFRX.bit.RXFIFORESET
+#define     MODBUSB_RX_OVF      ScibRegs.SCIFFRX.bit.RXFFOVF
+#define     MODBUSB_RX_OVFCLR   ScibRegs.SCIFFRX.bit.RXFFOVRCLR
+
+#define     MODBUSB_RX_BUF      ScibRegs.SCIRXBUF.bit.SAR
+#define     MODBUSB_RX_ERROR    ScibRegs.SCIRXST.bit.RXERROR
+
+#define     MODBUSB_TX_RDY      ScibRegs.SCICTL2.bit.TXRDY
+#define     MODBUSB_TX_FIFO     ScibRegs.SCIFFTX.bit.TXFFST
+#define     MODBUSB_TX_BUF      ScibRegs.SCITXBUF.bit.TXDT
+#define     MODBUSB_TX_EMTPY    ScibRegs.SCICTL2.bit.TXEMPTY
+#define     MODBUSB_SWRESET     ScibRegs.SCICTL1.bit.SWRESET = 0,\
+                                ScibRegs.SCICTL1.all = 0x0023
+#define     MODBUSB_FIFO_RST    ScibRegs.SCIFFTX.bit.SCIRST = 1;
+
+//#define     MODBUSB_RX_RDY      ScidRegs.SCIRXST.bit.RXRDY
+//#define     MODBUSB_RX_FIFO     ScidRegs.SCIFFRX.bit.RXFFST
+//#define     MODBUSB_RX_FIFO_RST ScidRegs.SCIFFRX.bit.RXFIFORESET
+//#define     MODBUSB_RX_OVF      ScidRegs.SCIFFRX.bit.RXFFOVF
+//#define     MODBUSB_RX_OVFCLR   ScidRegs.SCIFFRX.bit.RXFFOVRCLR
+//
+//#define     MODBUSB_RX_BUF      ScidRegs.SCIRXBUF.bit.SAR
+//#define     MODBUSB_RX_ERROR    ScidRegs.SCIRXST.bit.RXERROR
+//
+//#define     MODBUSB_TX_RDY      ScidRegs.SCICTL2.bit.TXRDY
+//#define     MODBUSB_TX_FIFO     ScidRegs.SCIFFTX.bit.TXFFST
+//#define     MODBUSB_TX_BUF      ScidRegs.SCITXBUF.bit.TXDT
+//#define     MODBUSB_TX_EMTPY    ScidRegs.SCICTL2.bit.TXEMPTY
+//#define     MODBUSB_SWRESET     ScidRegs.SCICTL1.bit.SWRESET = 0,\
+//                                ScidRegs.SCICTL1.all = 0x0023
+//#define     MODBUSB_FIFO_RST    ScidRegs.SCIFFTX.bit.SCIRST = 1;
+
+//---------------------------- Serial Modbus B set parameter RS485----------------------------------//
+
+#define MODBUSB_LSPCLK      (CPUCLK/4)                          // Peripheral Low Speed Clock for SCI-
+#define MODBUSB_BAUDRATE    38400L
+#define MODBUSB_BRR_VAL     (MODBUSB_LSPCLK/(8*MODBUSB_BAUDRATE)-1) // MODBUSB BaudRate ���� Register ��
+
+//16�� funccode�� 123�� ���� write ��ɽ� 231 ����Ʈ
+#define MODBUSB_RECEIVE_MAX_BYTE    400
+#define MODBUSB_RECEIVE_MIN_BYTE    2
+#define MODBUSB_TRANS_MAX_BYTE      400
+
+#define MODBUSB_START_ADDR  0
+#define MODBUSB_MAX_ADDR    1500
+
+unsigned int ModbusBSlaveID = 2;
+
+unsigned int ModbusBRxCnt = 0, ModbusBRxOk = 0, ModbusBRxErr = 0, ModbusBTxReady = 0, ModbusBTxCnt = 0, ModbusBTxDataLength = 0;
+
+unsigned int ModbusBCharTime = 0, ModbusBCnt = 0, ModbusBStop = 0, ModbusBCharTimeset = 8;
+unsigned int ModbusBExceptionCode = 0;
+unsigned char ModbusBRxBuf[MODBUSB_RECEIVE_MAX_BYTE];
+unsigned char ModbusBTxBuf[MODBUSB_TRANS_MAX_BYTE];
+unsigned int ModbusB_Connection_Check = 0;
+unsigned int Flag_ModbusB_Data_reset = 0;
+
+volatile void *ModbusBPtr[MODBUSBPTRMAX];
+
+unsigned int ModbusBTxWaitCnt = 0;
+unsigned int ModbusBFrmStartFlag = 0;
+unsigned int ModbusBRxMaxFlag = 0;
+
+unsigned int ModbusBRxStop = 0;
+
+#endif
+//--------------------------------------------------------------------------------------------------//
+#if (MODBUSB_ENB)
+
+void ModbusBCheckBuffer()
+{
+	int kk = 0;
+
+	if (MODBUSB_RX_OVF == 0)
+	{
+		if (MODBUSB_RX_FIFO != 0)
+		{
+			if (ModbusBFrmStartFlag == 0)
+			{
+				ModbusBRxBuf[0] = MODBUSB_RX_BUF;
+				if (ModbusBRxBuf[0] == ModbusBSlaveID)
+				{
+					ModbusBFrmStartFlag = 1;
+					ModbusBRxCnt = 1;
+				}
+			}
+			else if (ModbusBFrmStartFlag == 1)
+			{
+				if (ModbusBRxCnt <= MODBUSB_RECEIVE_MAX_BYTE)
+				{
+					ModbusBRxBuf[ModbusBRxCnt++] = MODBUSB_RX_BUF;
+				}
+				else
+				{
+					ModbusBFrmStartFlag = 0;
+					ModbusBRxCnt = 0;
+				}
+			}
+
+			ModbusBCharTime = 0;
+			ModbusBStop = 0;
+		} //
+		else if (MODBUSB_RX_FIFO == 0)
+		{
+			if (ModbusBCharTime <= ModbusBCharTimeset) ModbusBCharTime++;
+			else if (ModbusBCharTime > ModbusBCharTimeset)
+			{
+
+				ModbusBCharTime = 0;
+				kk = ModbusBRxCnt;
+				ModbusBRxCnt = 0;
+
+				if (ModbusBFrmStartFlag == 1)
+				{
+					ModbusBCnt = kk;
+					if ((ModbusBRxBuf[0] == ModbusBSlaveID) && (ModbusBCnt >= 4))
+					{
+						if (ModbusBCRC16(ModbusBCnt - 2, 1)) // ���ŵ� ������ CRC check
+						{
+							//CRC ����
+							memcpy(&ModbusBTxBuf, &ModbusBRxBuf, ModbusBCnt);
+							ModbusBRxOk = 1;
+						}
+					}
+				}
+				ModbusBFrmStartFlag = 0;
+			}
+		}
+	}
+	else
+	{
+		MODBUSB_RX_OVFCLR = 1;
+		MODBUSB_RX_FIFO_RST = 0;
+		MODBUSB_RX_FIFO_RST = 1;
+	}
+
+	if (ModbusBTxReady == 1)
+	{
+		if (MODBUSB_TX_FIFO < 16)
+		{
+			if (ModbusBTxCnt < (ModbusBTxDataLength))
+			{
+				MODBUSB_TX_BUF = ModbusBTxBuf[ModbusBTxCnt];
+				ModbusBTxCnt++;
+				ModbusBTxWaitCnt = 0;
+			}
+			else
+			{
+				if (MODBUSB_TX_EMTPY == 1)
+				{
+					if (ModbusBTxWaitCnt++ > (ModbusBCharTimeset - 1))
+					{
+						ModbusBTxReady = 0;
+						ModbusBTxCnt = 0;
+						ModbusBTxWaitCnt = 0;
+					}
+
+				}
+				else
+				{
+
+				}
+			}
+		}
+	}
+	if (MODBUSB_RX_ERROR != 0) MODBUSB_SWRESET;
+}
+
+void ModbusBResponse()      // 10msec routine�� ����
+{
+
+	if (ModbusBRxOk == 1)
+	{
+		if (ModbusBCnt > MODBUSB_RECEIVE_MAX_BYTE)
+		{
+			ModbusBExceptionCode = 2;
+			ModbusBBadResponse();                   //to many bytes in frame */
+		}
+		else if (ModbusBCnt < MODBUSB_RECEIVE_MIN_BYTE)
+		{
+			ModbusBExceptionCode = 2;
+			ModbusBBadResponse();                   //to few bytes frame*/
+		}
+		else
+		{
+			if (ModbusBTxBuf[1] == 3) ModbusB3rdResponse();
+			else if (ModbusBTxBuf[1] == 4) ModbusB4thResponse();
+			else if (ModbusBTxBuf[1] == 6) ModbusB6thResponse();
+			else if (ModbusBTxBuf[1] == 16) ModbusB16thResponse();
+			else ModbusBBadResponse();
+		}
+
+		ModbusBRxOk = 0;
+	}
+}
+
+int ModbusBCRC16(int dataLength, int RXTXset) //CRC 16 for SERIAL checksum
+{
+	//RXTXset : 0 TX CRC, 1 RX CRC
+
+	Uint16 lowCRC;
+	Uint16 highCRC;
+	Uint16 CRC;
+	Uint16 CRC_OK;
+
+	if (RXTXset == 1)
+	{
+		CRC = CRC16(ModbusBRxBuf, dataLength);
+		highCRC = (CRC >> 8) & 0x00FF;
+		lowCRC = (CRC & 0x00FF);
+
+		if (ModbusBRxBuf[dataLength + 1] == highCRC)
+		{
+			if (ModbusBRxBuf[dataLength] == lowCRC) CRC_OK = 1;
+			else CRC_OK = 0;
+			//for test
+			dInverter_Status++;
+		}
+		else CRC_OK = 0;
+	}
+	else if (RXTXset == 0)
+	{
+		CRC = CRC16(ModbusBTxBuf, dataLength);
+		highCRC = (CRC >> 8) & 0x00FF;
+		lowCRC = (CRC & 0x00FF);
+
+		ModbusBTxBuf[dataLength] = lowCRC;
+		ModbusBTxBuf[dataLength + 1] = highCRC;
+
+		CRC_OK = 1;
+	}
+
+	return CRC_OK;
+}
+
+void ModbusB3rdResponse() //response for ipos 03 function (read registers)
+{
+	int j, temp_address, temp_length, *temp_data;
+	temp_address = ((ModbusBTxBuf[2] << 8) & 0x0ff00) + (ModbusBTxBuf[3] & 0x00ff);
+	temp_length = ModbusBTxBuf[5] & 0x00ff;
+
+	ModbusBTxBuf[2] = temp_length * 2;
+
+	for (j = 0; j < temp_length; j++)
+	{
+		temp_data = (int*) (ModbusBPtr[MODBUSB_START_ADDR + temp_address + j]);    // ����address���� temp_length ��ŭ
+
+		ModbusBTxBuf[j * 2 + 3] = ((*temp_data & 0x0ff00) >> 8) & 0x00ff;
+		ModbusBTxBuf[j * 2 + 4] = (*temp_data & 0x00ff);
+	}
+
+	ModbusBTxReady = ModbusBCRC16(temp_length * 2 + 3, 0);                          //ADD+FUNC(2)+DATA
+	ModbusBTxDataLength = temp_length * 2 + 5;
+}
+
+void ModbusB4thResponse() //response for MODBUS 4 function read registers
+{
+	int temp_address, temp_length, *temp_data, j;
+	temp_address = ((ModbusBTxBuf[2] << 8) & 0x0ff00) + (ModbusBTxBuf[3] & 0x0ff);
+	temp_length = ModbusBTxBuf[5] & 0xff;
+
+	ModbusBTxBuf[2] = temp_length * 2;
+
+	for (j = 0; j < temp_length; j++)
+	{
+		temp_data = (int*) (ModbusBPtr[MODBUSB_START_ADDR + temp_address + j]);
+		ModbusBTxBuf[j * 2 + 3] = ((*temp_data & 0x0ff00) >> 8) & 0xff;
+		ModbusBTxBuf[j * 2 + 4] = (*temp_data & 0xff);
+	}
+
+	ModbusBTxReady = ModbusBCRC16(temp_length * 2 + 3, 0);                          //ADD+FUNC(2)+DATA
+	ModbusBTxDataLength = temp_length * 2 + 5;
+//  ModbusTxDataLength=temp_length*2+7;
+
+}
+
+void ModbusB6thResponse() //response for MODBUS 3 function write single registers
+{
+	int temp_address;
+	int temp_data;
+	int *ari1;
+	temp_address = (short) ((ModbusBTxBuf[2] << 8) & 0x0ff00) + (ModbusBTxBuf[3] & 0x0ff);
+	if (ModbusBSerialRange(temp_address) == 1) ModbusBExceptionCode = 2;
+	else
+	{
+		temp_data = (((ModbusBTxBuf[4] & 0xff) << 8) & 0xff00) + (ModbusBTxBuf[5] & 0xff);
+		ari1 = (int*) ModbusBPtr[MODBUSB_START_ADDR + temp_address];
+		if (temp_data > 32767) *ari1 = (temp_data | 0xffff0000);
+		else *ari1 = temp_data;
+
+		ModbusBTxReady = ModbusBCRC16(6, 0);
+		ModbusBTxDataLength = 8;
+	}
+}
+
+void ModbusB16thResponse() //response for MODBUS 16 function write multiple registers
+{
+	int temp_address, temp_length, j;
+	register int temp_data;
+	int *ari1;
+	temp_address = ((ModbusBTxBuf[2] << 8) & 0x0ff00) + (ModbusBTxBuf[3] & 0x0ff);
+	temp_length = ModbusBTxBuf[5] & 0xff;
+	if (ModbusBSerialRange(temp_address + temp_length) == 1) ModbusBExceptionCode = 2;
+	else
+	{
+		for (j = 0; j < temp_length; j++)
+		{
+			temp_data = (((ModbusBTxBuf[7 + 2 * j] & 0xff) << 8) & 0xff00) + (ModbusBTxBuf[8 + 2 * j] & 0xff);
+			ari1 = (int*) ModbusBPtr[MODBUSB_START_ADDR + temp_address + j];
+			if (temp_data > 32767) *ari1 = (temp_data | 0xffff0000);
+			else *ari1 = temp_data;
+		}
+	}
+	ModbusBTxReady = ModbusBCRC16(6, 0);
+	ModbusBTxDataLength = 8;
+}
+
+void ModbusBBadResponse()
+{
+	ModbusBTxBuf[0] = ModbusBSlaveID;
+	ModbusBTxBuf[1] = ModbusBTxBuf[1] + 0x00000080;
+	ModbusBTxBuf[2] = ModbusBExceptionCode;
+
+	ModbusBTxReady = ModbusBCRC16(3, 0);
+	ModbusBTxDataLength = 5;
+}
+
+int ModbusBSerialRange(int address)
+{
+	if ((address >= 0) && (address < MODBUSB_MAX_ADDR)) return 0;    //read write enable
+	else return 1;                                  //read only
+}
+
+void Init_ModbusB_Buffer()
+{
+	memset(&ModbusBRxBuf, 0, sizeof(ModbusBRxBuf) / sizeof(int));
+	memset(&ModbusBTxBuf, 0, sizeof(ModbusBTxBuf) / sizeof(int));
+
+}
+
+#endif
+
+
+float Char3_5Time = 0.;
+
+
+void InitModbusSci()
+{
+
+#if (MODBUSA_ENB)
+
+	ScicRegs.SCIFFTX.bit.SCIFFENA = 1; 	//FIFO Enable
+
+	ScicRegs.SCIFFTX.bit.TXFFIENA = 0;	//FIFO Tx-Interrupt Disable
+	ScicRegs.SCIFFRX.bit.RXFFIENA = 0;	//FIFO Rx-Interrupt Disable
+	ScicRegs.SCIFFTX.bit.TXFIFORESET = 1;
+	ScicRegs.SCIFFRX.bit.RXFIFORESET = 1;
+	ScicRegs.SCIFFCT.bit.FFTXDLY = 0;
+	//
+	ScicRegs.SCIFFTX.bit.SCIRST = 1;
+
+	ScicRegs.SCIFFCT.bit.ABDCLR = 1;			// Clear ABD(Auto baud bit)
+
+	ScicRegs.SCICCR.all = 0x0007;  			// 1 stop bit,  No loopback
+											// No parity,8 char bits,
+											// async mode, idle-line protocol
+	ScicRegs.SCICTL1.all = 0x0003; 			// enable TX, RX, internal SCICLK,
+	// Disable RX ERR, SLEEP, TXWAKE
+	// ScicRegs.SCICTL2.all = 0x0003;
+	// ScicRegs.SCICTL2.bit.RXBKINTENA = 1;	// RX/BK INT ENA=1,
+	// ScicRegs.SCICTL2.bit.TXINTENA = 1;		// TX INT ENA=1,
+
+	ScicRegs.SCIHBAUD.bit.BAUD = (MODBUSA_BRR_VAL >> 8);
+	ScicRegs.SCILBAUD.bit.BAUD = (MODBUSA_BRR_VAL & 0xFF);
+
+	ScicRegs.SCICTL1.all = 0x0023;			// Relinquish SCI from Reset
+
+
+	Init_ModbusA_Buffer();
+
+
+	// 11bit per char
+	Char3_5Time = 1.0 / MODBUSA_BAUDRATE * 11 * 3.5;
+	if(Char3_5Time <= 1.75e-3 ) Char3_5Time = 1.75e-3;
+	//1.75ms 이하인 경우 1.75ms
+	ModbusACharTimeset = (unsigned int)(Char3_5Time / Tsamp);
+
+#endif
+
+#if(MODBUSB_ENB)
+//-------------------------------------SCI-B----------------------------------------------------//
+
+	ScibRegs.SCIFFTX.bit.SCIFFENA = 1;  //FIFO Enable
+
+	ScibRegs.SCIFFTX.bit.TXFFIENA = 0;  //FIFO Tx-Interrupt Disable
+	ScibRegs.SCIFFRX.bit.RXFFIENA = 0;  //FIFO Rx-Interrupt Disable
+	ScibRegs.SCIFFTX.bit.TXFIFORESET = 1;
+	ScibRegs.SCIFFRX.bit.RXFIFORESET = 1;
+	ScibRegs.SCIFFCT.bit.FFTXDLY = 0;
+
+	ScibRegs.SCIFFTX.bit.SCIRST = 1;
+
+	ScibRegs.SCIFFCT.bit.ABDCLR = 1;            // Clear ABD(Auto baud bit)
+
+	ScibRegs.SCICCR.all = 0x0007;           // 1 stop bit,  No loopback
+	                                        // No parity,8 char bits,
+	                                        // async mode, idle-line protocol
+	ScibRegs.SCICTL1.all = 0x0003;          // enable TX, RX, internal SCICLK,
+
+	ScibRegs.SCIHBAUD.bit.BAUD = (MODBUSB_BRR_VAL >> 8);
+	ScibRegs.SCILBAUD.bit.BAUD = (MODBUSB_BRR_VAL & 0xFF);
+
+    ScibRegs.SCICTL1.all = 0x0023;          // Relinquish SCI from Reset
+//-------------------------------------SCI-D----------------------------------------------------//
+//	ScidRegs.SCIFFTX.bit.SCIFFENA = 1; 	//FIFO Enable
+//
+//	ScidRegs.SCIFFTX.bit.TXFFIENA = 0;	//FIFO Tx-Interrupt Disable
+//	ScidRegs.SCIFFRX.bit.RXFFIENA = 0;	//FIFO Rx-Interrupt Disable
+//	ScidRegs.SCIFFTX.bit.TXFIFORESET = 1;
+//	ScidRegs.SCIFFRX.bit.RXFIFORESET = 1;
+//	ScidRegs.SCIFFCT.bit.FFTXDLY = 0;
+//	//
+//	ScidRegs.SCIFFTX.bit.SCIRST = 1;
+//
+//	ScidRegs.SCIFFCT.bit.ABDCLR = 1;			// Clear ABD(Auto baud bit)
+//
+//	ScidRegs.SCICCR.all = 0x0007;  			// 1 stop bit,  No loopback
+//											// No parity,8 char bits,
+//											// async mode, idle-line protocol
+//	ScidRegs.SCICTL1.all = 0x0003; 			// enable TX, RX, internal SCICLK,
+//
+//	ScidRegs.SCIHBAUD.bit.BAUD = (MODBUSB_BRR_VAL >> 8);
+//	ScidRegs.SCILBAUD.bit.BAUD = (MODBUSB_BRR_VAL & 0xFF);
+//
+//	ScidRegs.SCICTL1.all = 0x0023;			// Relinquish SCI from Reset
+
+    Init_ModbusB_Buffer();
+
+	Char3_5Time = 1.0 / MODBUSB_BAUDRATE * 11 * 3.5;
+	if(Char3_5Time <= 1.75e-3 ) Char3_5Time = 1.75e-3;
+	//char 타임자동계산
+	ModbusBCharTimeset = (unsigned int)(Char3_5Time / Tsamp);
+
+#endif
+
+
+	InitModbusPtr();
+
+}
+
+//-------------------------ModbusA/B ���� �Լ�--------------------------------------//
+void ModbusALLCheckBuffer()
+{
+#if(MODBUSA_ENB)
+	ModbusACheckBuffer();
+#endif
+
+#if(MODBUSB_ENB)
+	ModbusBCheckBuffer();
+#endif
+}
+
+void ModbusALLResponse()
+{
+#if(MODBUSA_ENB)
+	ModbusAResponse();
+#endif
+
+#if(MODBUSB_ENB)
+	ModbusBResponse();
+#endif
+}
+ void InitSci()
+ {
+//    SCI_setConfig(SCID_BASE, DEVICE_LSPCLK_FREQ, 9600, (SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE));
+//    SCI_resetChannels(SCID_BASE);
+//    SCI_resetRxFIFO(SCID_BASE);
+//    SCI_resetTxFIFO(SCID_BASE);
+//    SCI_clearInterruptStatus(SCID_BASE, SCI_INT_TXFF | SCI_INT_RXFF);
+//    SCI_enableFIFO(SCID_BASE);
+//    SCI_enableModule(SCID_BASE);
+//    SCI_performSoftwareReset(SCID_BASE);
+
+    ScidRegs.SCIFFTX.bit.SCIFFENA = 1;  //FIFO Enable
+
+    ScidRegs.SCIFFTX.bit.TXFFIENA = 0;  //FIFO Tx-Interrupt Disable
+    ScidRegs.SCIFFRX.bit.RXFFIENA = 0;  //FIFO Rx-Interrupt Disable
+    ScidRegs.SCIFFTX.bit.TXFIFORESET = 1;
+    ScidRegs.SCIFFRX.bit.RXFIFORESET = 1;
+    ScidRegs.SCIFFCT.bit.FFTXDLY = 0;
+    //
+    ScidRegs.SCIFFTX.bit.SCIRST = 1;
+
+    ScidRegs.SCIFFCT.bit.ABDCLR = 1;            // Clear ABD(Auto baud bit)
+
+    ScidRegs.SCICCR.all = 0x0007;           // 1 stop bit,  No loopback
+                                            // No parity,8 char bits,
+                                            // async mode, idle-line protocol
+    ScidRegs.SCICTL1.all = 0x0003;          // enable TX, RX, internal SCICLK,
+    // Disable RX ERR, SLEEP, TXWAKE
+    // ScicRegs.SCICTL2.all = 0x0003;
+    // ScicRegs.SCICTL2.bit.RXBKINTENA = 1; // RX/BK INT ENA=1,
+    // ScicRegs.SCICTL2.bit.TXINTENA = 1;       // TX INT ENA=1,
+
+    ScidRegs.SCIHBAUD.bit.BAUD = (MODBUSA_BRR_VAL >> 8);
+    ScidRegs.SCILBAUD.bit.BAUD = (MODBUSA_BRR_VAL & 0xFF);
+
+    ScidRegs.SCICTL1.all = 0x0023;          // Relinquish SCI from Reset
+ }
 
Common_Resource/CommonLibrary/source/ModbusMap.cpp (added)
+++ Common_Resource/CommonLibrary/source/ModbusMap.cpp
@@ -0,0 +1,517 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : ModbusMap.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include "CommonLib.h"
+
+
+#pragma SET_DATA_SECTION(".ModbusData")
+// Packet1
+unsigned char COMM_Operation_Status = 0; // Add : 0 // ON = 0x30 // OFF = 0x31 // Set/Get //*
+unsigned char COMM_Installation_location = 1; // Add : 1 // See “2.2 ‘Installation location’ property.” // Set/Get //*
+unsigned char COMM_Standard_version_information = 2; // Add : 10 // Get //*
+unsigned char COMM_Identification_number = 3; // Add : 12 // Get
+unsigned short COMM_Measured_instantaneous_power_consumption = 4; // Add : 21 // Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Measured_cumulative_power_consumption_H = 5; // Add : 22 // Get
+unsigned char COMM_Measured_cumulative_power_consumption_L = 5; // Add : 23 // Get
+// Packet2
+unsigned char COMM_Manufacturer_fault_code = 1; // Add : 24 // Get
+unsigned char COMM_Current_limit_setting = 2; // Add : 137 // Set/Get
+unsigned char COMM_Fault_status = 3; // Add : 138 // Fault = 0x41, No fault = 0x42// Get //*
+unsigned short COMM_Fault_description = 4; // Add : 139 // Get
+unsigned char COMM_Manufacturer_code = 5; // Add : 140 // Get //*
+unsigned char COMM_Business_facility_code = 6; // Add : 142 // Get
+unsigned char COMM_Product_code = 7; // Add : 143 // Get
+// Packet3
+unsigned char COMM_Production_number = 1; // Add : 149 // Get
+unsigned char COMM_Production_date = 2; // Add : 155 // Get
+unsigned char COMM_Power_saving_operation_setting = 3;// Add : 157 // Set/Get
+unsigned char COMM_Remote_control_setting = 4; // Add : 158 // Set/Get
+unsigned char COMM_Current_time_setting = 5; // Add : 159 // Set/Get
+unsigned char COMM_Current_date_setting = 6; // Add : 161 // Set/Get
+unsigned char COMM_Power_limit_setting = 7; // Add : 163 // Set/Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 3개로 분리
+unsigned char COMM_Cumulative_operating_time_1 = 8; // Add : 164 // Get
+unsigned char COMM_Cumulative_operating_time_H = 9; // Add : 165 // Get
+unsigned char COMM_Cumulative_operating_time_L = 9; // Add : 166 // Get
+unsigned char COMM_SetM_property_map = 10; // Add : 167 // Get //*
+unsigned char COMM_GetM_property_map = 11; // Add : 176 // Get //*
+unsigned char COMM_Status_change_announcement_property_map = 12;// Add : 185 // Get //*
+unsigned char COMM_Set_property_map = 13; // Add : 194 // Get //*
+unsigned char COMM_Get_property_map = 14; // Add : 203 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Dischargeable_capacity_of_vehicle_mounted_battery_1_H = 15; // Add : 212 // Get //*
+unsigned char COMM_Dischargeable_capacity_of_vehicle_mounted_battery_1_L = 15; // Add : 213 // Get //*
+unsigned short COMM_Dischargeable_capacity_of_vehicle_mounted_battery_2 = 16; // Add : 214 // Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_1_H = 17; // Add : 215 // Get //*
+unsigned char COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_1_L = 17; // Add : 216 // Get //*
+unsigned short COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_2 = 18; // Add : 217 // Get
+unsigned char COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_3 = 19;// Add : 218 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Rated_charge_capacity_H = 20;// Add : 219 // Get //*
+unsigned char COMM_Rated_charge_capacity_L = 20;// Add : 220 // Get //*
+unsigned char COMM_Rated_discharge_capacity_H = 21;// Add : 222 // Get //*
+unsigned char COMM_Rated_discharge_capacity_L = 21;// Add : 223 // Get //*
+unsigned char COMM_Vehicle_connection_and_charge_able_discharge_able_status = 22; // Add : 224 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Minimum_maximum_charging_electric_energy_H = 23;// Add : 225 // Get //*
+unsigned char COMM_Minimum_maximum_charging_electric_energy_L = 23;// Add : 226 // Get //*
+unsigned char COMM_Minimum_maximum_discharging_electric_energy_H = 24;// Add : 229 // Get //*
+unsigned char COMM_Minimum_maximum_discharging_electric_energy_L = 24;// Add : 230 // Get //*
+unsigned short COMM_Minimum_maximum_charging_current = 25;// Add : 233 // Get //*
+unsigned short COMM_Minimum_maximum_discharging_current = 26;// Add : 235 // Get //*
+unsigned char COMM_Charger_discharger_type = 27;// Add : 237 // Get //*
+unsigned char COMM_Vehicle_connection_confirmation = 28; // Add : 238 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Chargeable_capacity_of_vehicle_mounted_battery_H = 29;// Add : 239 // Get //*
+unsigned char COMM_Chargeable_capacity_of_vehicle_mounted_battery_L = 29;// Add : 240 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Remaining_charg_eable_capacity_of_vehicle_mounted_battery_H = 30;// Add : 241 // Get //*
+unsigned char COMM_Remaining_charg_eable_capacity_of_vehicle_mounted_battery_L = 30;// Add : 242 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Used_capacity_of_vehicle_mounted_battery_1_H = 31; // Add : 243 // Get //*
+unsigned char COMM_Used_capacity_of_vehicle_mounted_battery_1_L = 31; // Add : 244 // Get //*
+unsigned short COMM_Used_capacity_of_vehicle_mounted_battery_2 = 32; // Add : 245 // Get
+unsigned short COMM_Rated_voltage = 33; // Add : 246 // Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+signed char COMM_Measured_instantaneous_charging_discharging_electric_energy_H = 34; // Add : 247 // Get
+signed char COMM_Measured_instantaneous_charging_discharging_electric_energy_L = 34; // Add : 248 // Get
+signed short COMM_Measured_instantaneous_charging_discharging_current = 35; // Add : 249 // Get
+signed short COMM_Measured_instantaneous_charging_discharging_voltage = 36; // Add : 250 // Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Measured_cumulative_amount_of_discharging_electric_energy_H = 37; // Add : 251 // Get
+unsigned char COMM_Measured_cumulative_amount_of_discharging_electric_energy_L = 37; // Add : 252 // Get
+unsigned short COMM_Cumulative_amount_of_discharging_electric_energy_reset_setting = 38; // Add : 253 // Set
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Measured_cumulative_amount_of_charging_electric_energy_H = 39; // Add : 254 // Get
+unsigned char COMM_Measured_cumulative_amount_of_charging_electric_energy_L = 39; // Add : 255 // Get
+unsigned char COMM_Cumulative_amount_of_charging_electric_energy_reset_setting = 40; // Add : 256 // Get
+unsigned char COMM_Operation_mode_setting = 41; // Add : 257 // Set/Get //*
+unsigned char COMM_System_interconnected_type = 42; // Add : 258 // Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Remaining_stored_electricity_of_vehicle_mounted_battery_1_H = 43; // Add : 259 // Get //* // Wh
+unsigned char COMM_Remaining_stored_electricity_of_vehicle_mounted_battery_1_L = 43; // Add : 260 // Get //* // Wh
+unsigned short COMM__Remaining_stored_electricity_of_vehicle_mounted_battery_2 = 44; // Add : 261 // Get // Ah
+unsigned char COMM__Remaining_stored_electricity_of_vehicle_mounted_battery_3 = 45; // Add : 262 // Get //* // %
+// Packet4
+unsigned char COMM_Vehicle_ID = 1; // Add : 263 // Get //*
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Charging_amount_setting_1_H = 2; // Add : 275 // Set/Get
+unsigned char COMM_Charging_amount_setting_1_L = 2; // Add : 276 // Set/Get
+unsigned short COMM_Charging_amount_setting_2 = 3; // Add : 277 // Set/Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Discharging_amount_setting_H = 4; // Add : 278 // Set/Get
+unsigned char COMM_Discharging_amount_setting_L = 4; // Add : 279 // Set/Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Charging_electric_energy_setting_H = 5; // Add : 280 // Set/Get
+unsigned char COMM_Charging_electric_energy_setting_L = 5; // Add : 281 // Set/Get
+//long 사이즈 char 사이즈로 변경하기 위해 변수를 2개로 분리
+unsigned char COMM_Discharging_electric_energy_setting_H = 6; // Add : 282 // Set/Get
+unsigned char COMM_Discharging_electric_energy_setting_L = 6; // Add : 283 // Set/Get
+unsigned short COMM_Charging_current_setting = 7; // Add : 284 // Set/Get
+unsigned short COMM_Discharging_current_setting = 8; // Add : 285 // Set/Get
+unsigned short COMM_Rated_voltage_Independent = 9; // Add : 286 // Get
+
+unsigned char COMM_Operation_status = 1;//Add : 1000//bit0(Stop),bit1(Charge),bit2(Discharge)
+unsigned char COMM_Connectrion_state = 1;//Add : 1001//bit0(Disconnect),bit1(Connect)
+unsigned char COMM_SOC;//Add : 1002//0x00-0x64 (0 - 100%)
+unsigned char COMM_Instantaneous_power;//Add : 1003//0x00-0x63 (0 - 99)  (ex> 8.9kW = 89)
+
+
+//todo 테스트용
+int idummy = 0;
+
+#pragma SET_DATA_SECTION()
+
+
+void InitModbusPtr()
+{
+	unsigned int i = 0;
+
+	for (i = 0; i < MODBUSAPTRMAX; i++) ModbusAPtr[i] = &idummy;
+
+#if(MODBUSA_ENB)
+	InitModbusAPtr();
+#endif
+
+#if(MODBUSB_ENB)
+	InitModbusBPtr();
+#endif
+
+}
+
+void ModbusATxDataUpdate()
+{
+
+}
+
+void ModbusARxDataUpdate()
+{
+	COMM_Instantaneous_power = PbatAvg;
+
+}
+
+void InitModbusAPtr()
+{
+
+    // Packet1
+    ModbusAPtr[0] = &COMM_Operation_Status;
+    ModbusAPtr[1] = &COMM_Installation_location;
+//    ModbusAPtr[2] = &idummy;
+//    ModbusAPtr[3] = &idummy;
+//    ModbusAPtr[4] = &idummy;
+//    ModbusAPtr[5] = &idummy;
+//    ModbusAPtr[6] = &idummy;
+//    ModbusAPtr[7] = &idummy;
+//    ModbusAPtr[8] = &idummy;
+//    ModbusAPtr[9] = &idummy;
+
+    ModbusAPtr[10] = &COMM_Standard_version_information;
+//    ModbusAPtr[11] = &idummy;
+    ModbusAPtr[12] = &COMM_Identification_number;
+//    ModbusAPtr[13] = &idummy;
+//    ModbusAPtr[14] = &idummy;
+//    ModbusAPtr[15] = &idummy;
+//    ModbusAPtr[16] = &idummy;
+//    ModbusAPtr[17] = &idummy;
+//    ModbusAPtr[18] = &idummy;
+//    ModbusAPtr[19] = &idummy;
+
+//    ModbusAPtr[20] = &idummy;
+    ModbusAPtr[21] = &COMM_Measured_instantaneous_power_consumption;
+    ModbusAPtr[22] = &COMM_Measured_cumulative_power_consumption_H;
+    ModbusAPtr[23] = &COMM_Measured_cumulative_power_consumption_L;
+
+    // Packet2
+    ModbusAPtr[24] = &COMM_Manufacturer_fault_code;
+//    ModbusAPtr[25] = &idummy;
+//    ModbusAPtr[26] = &idummy;
+//    ModbusAPtr[27] = &idummy;
+//    ModbusAPtr[28] = &idummy;
+//    ModbusAPtr[29] = &idummy;
+//
+//    ModbusAPtr[30] = &idummy;
+//    ModbusAPtr[31] = &idummy;
+//    ModbusAPtr[32] = &idummy;
+//    ModbusAPtr[33] = &idummy;
+//    ModbusAPtr[34] = &idummy;
+//    ModbusAPtr[35] = &idummy;
+//    ModbusAPtr[36] = &idummy;
+//    ModbusAPtr[37] = &idummy;
+//    ModbusAPtr[38] = &idummy;
+//    ModbusAPtr[39] = &idummy;
+//
+//    ModbusAPtr[40] = &idummy;
+//    ModbusAPtr[41] = &idummy;
+//    ModbusAPtr[42] = &idummy;
+//    ModbusAPtr[43] = &idummy;
+//    ModbusAPtr[44] = &idummy;
+//    ModbusAPtr[45] = &idummy;
+//    ModbusAPtr[46] = &idummy;
+//    ModbusAPtr[47] = &idummy;
+//    ModbusAPtr[48] = &idummy;
+//    ModbusAPtr[49] = &idummy;
+//
+//    ModbusAPtr[50] = &idummy;
+//    ModbusAPtr[51] = &idummy;
+//    ModbusAPtr[52] = &idummy;
+//    ModbusAPtr[53] = &idummy;
+//    ModbusAPtr[54] = &idummy;
+//    ModbusAPtr[55] = &idummy;
+//    ModbusAPtr[56] = &idummy;
+//    ModbusAPtr[57] = &idummy;
+//    ModbusAPtr[58] = &idummy;
+//    ModbusAPtr[59] = &idummy;
+//
+//    ModbusAPtr[60] = &idummy;
+//    ModbusAPtr[61] = &idummy;
+//    ModbusAPtr[62] = &idummy;
+//    ModbusAPtr[63] = &idummy;
+//    ModbusAPtr[64] = &idummy;
+//    ModbusAPtr[65] = &idummy;
+//    ModbusAPtr[66] = &idummy;
+//    ModbusAPtr[67] = &idummy;
+//    ModbusAPtr[68] = &idummy;
+//    ModbusAPtr[69] = &idummy;
+//
+//    ModbusAPtr[70] = &idummy;
+//    ModbusAPtr[71] = &idummy;
+//    ModbusAPtr[72] = &idummy;
+//    ModbusAPtr[73] = &idummy;
+//    ModbusAPtr[74] = &idummy;
+//    ModbusAPtr[75] = &idummy;
+//    ModbusAPtr[76] = &idummy;
+//    ModbusAPtr[77] = &idummy;
+//    ModbusAPtr[78] = &idummy;
+//    ModbusAPtr[79] = &idummy;
+//
+//    ModbusAPtr[80] = &idummy;
+//    ModbusAPtr[81] = &idummy;
+//    ModbusAPtr[82] = &idummy;
+//    ModbusAPtr[83] = &idummy;
+//    ModbusAPtr[84] = &idummy;
+//    ModbusAPtr[85] = &idummy;
+//    ModbusAPtr[86] = &idummy;
+//    ModbusAPtr[87] = &idummy;
+//    ModbusAPtr[88] = &idummy;
+//    ModbusAPtr[89] = &idummy;
+//
+//    ModbusAPtr[90] = &idummy;
+//    ModbusAPtr[91] = &idummy;
+//    ModbusAPtr[92] = &idummy;
+//    ModbusAPtr[93] = &idummy;
+//    ModbusAPtr[94] = &idummy;
+//    ModbusAPtr[95] = &idummy;
+//    ModbusAPtr[96] = &idummy;
+//    ModbusAPtr[97] = &idummy;
+//    ModbusAPtr[98] = &idummy;
+//    ModbusAPtr[99] = &idummy;
+//
+//    ModbusAPtr[100] = &idummy;
+//    ModbusAPtr[101] = &idummy;
+//    ModbusAPtr[102] = &idummy;
+//    ModbusAPtr[103] = &idummy;
+//    ModbusAPtr[104] = &idummy;
+//    ModbusAPtr[105] = &idummy;
+//    ModbusAPtr[106] = &idummy;
+//    ModbusAPtr[107] = &idummy;
+//    ModbusAPtr[108] = &idummy;
+//    ModbusAPtr[109] = &idummy;
+//
+//    ModbusAPtr[110] = &idummy;
+//    ModbusAPtr[111] = &idummy;
+//    ModbusAPtr[112] = &idummy;
+//    ModbusAPtr[113] = &idummy;
+//    ModbusAPtr[114] = &idummy;
+//    ModbusAPtr[115] = &idummy;
+//    ModbusAPtr[116] = &idummy;
+//    ModbusAPtr[117] = &idummy;
+//    ModbusAPtr[118] = &idummy;
+//    ModbusAPtr[119] = &idummy;
+//
+//    ModbusAPtr[120] = &idummy;
+//    ModbusAPtr[121] = &idummy;
+//    ModbusAPtr[122] = &idummy;
+//    ModbusAPtr[123] = &idummy;
+//    ModbusAPtr[124] = &idummy;
+//    ModbusAPtr[125] = &idummy;
+//    ModbusAPtr[126] = &idummy;
+//    ModbusAPtr[127] = &idummy;
+//    ModbusAPtr[128] = &idummy;
+//    ModbusAPtr[129] = &idummy;
+//
+//    ModbusAPtr[130] = &idummy;
+//    ModbusAPtr[131] = &idummy;
+//    ModbusAPtr[132] = &idummy;
+//    ModbusAPtr[133] = &idummy;
+//    ModbusAPtr[134] = &idummy;
+//    ModbusAPtr[135] = &idummy;
+//    ModbusAPtr[136] = &idummy;
+    ModbusAPtr[137] = &COMM_Current_limit_setting;
+    ModbusAPtr[138] = &COMM_Fault_status;
+    ModbusAPtr[139] = &COMM_Fault_description;
+
+    ModbusAPtr[140] = &COMM_Manufacturer_code;
+//    ModbusAPtr[141] = &idummy;
+    ModbusAPtr[142] = &COMM_Business_facility_code;
+    ModbusAPtr[143] = &COMM_Product_code;
+//    ModbusAPtr[144] = &idummy;
+//    ModbusAPtr[145] = &idummy;
+//    ModbusAPtr[146] = &idummy;
+//    ModbusAPtr[147] = &idummy;
+//    ModbusAPtr[148] = &idummy;
+
+    // Packet3
+    ModbusAPtr[149] = &COMM_Production_number;
+
+//    ModbusAPtr[150] = &idummy;
+//    ModbusAPtr[151] = &idummy;
+//    ModbusAPtr[152] = &idummy;
+//    ModbusAPtr[153] = &idummy;
+//    ModbusAPtr[154] = &idummy;
+    ModbusAPtr[155] = &COMM_Production_date;
+//    ModbusAPtr[156] = &idummy;
+    ModbusAPtr[157] = &COMM_Power_saving_operation_setting;
+    ModbusAPtr[158] = &COMM_Remote_control_setting;
+    ModbusAPtr[159] = &COMM_Current_time_setting;
+
+    ModbusAPtr[160] = &COMM_Current_date_setting;
+    ModbusAPtr[161] = &COMM_Current_date_setting;
+    ModbusAPtr[162] = &COMM_Power_limit_setting;
+    ModbusAPtr[163] = &COMM_Cumulative_operating_time_1;
+    ModbusAPtr[164] = &COMM_Cumulative_operating_time_H;
+    ModbusAPtr[165] = &COMM_Cumulative_operating_time_L;
+    ModbusAPtr[166] = &COMM_SetM_property_map;
+//    ModbusAPtr[167] = &idummy;
+//    ModbusAPtr[168] = &idummy;
+//    ModbusAPtr[169] = &idummy;
+//
+//    ModbusAPtr[170] = &idummy;
+//    ModbusAPtr[171] = &idummy;
+//    ModbusAPtr[172] = &idummy;
+//    ModbusAPtr[173] = &idummy;
+//    ModbusAPtr[174] = &idummy;
+    ModbusAPtr[175] = &COMM_GetM_property_map;
+//    ModbusAPtr[176] = &idummy;
+//    ModbusAPtr[177] = &idummy;
+//    ModbusAPtr[178] = &idummy;
+//    ModbusAPtr[179] = &idummy;
+
+//    ModbusAPtr[180] = &idummy;
+//    ModbusAPtr[181] = &idummy;
+//    ModbusAPtr[182] = &idummy;
+//    ModbusAPtr[183] = &idummy;
+    ModbusAPtr[184] = &COMM_Status_change_announcement_property_map;
+//    ModbusAPtr[185] = &idummy;
+//    ModbusAPtr[186] = &idummy;
+//    ModbusAPtr[187] = &idummy;
+//    ModbusAPtr[188] = &idummy;
+//    ModbusAPtr[189] = &idummy;
+
+//    ModbusAPtr[190] = &idummy;
+//    ModbusAPtr[191] = &idummy;
+//    ModbusAPtr[192] = &idummy;
+    ModbusAPtr[193] = &COMM_Set_property_map;
+//    ModbusAPtr[194] = &idummy;
+//    ModbusAPtr[195] = &idummy;
+//    ModbusAPtr[196] = &idummy;
+//    ModbusAPtr[197] = &idummy;
+//    ModbusAPtr[198] = &idummy;
+//    ModbusAPtr[199] = &idummy;
+
+//    ModbusAPtr[200] = &idummy;
+//    ModbusAPtr[201] = &idummy;
+    ModbusAPtr[202] = &COMM_Get_property_map;
+//    ModbusAPtr[203] = &idummy;
+//    ModbusAPtr[204] = &idummy;
+//    ModbusAPtr[205] = &idummy;
+//    ModbusAPtr[206] = &idummy;
+//    ModbusAPtr[207] = &idummy;
+//    ModbusAPtr[208] = &idummy;
+//    ModbusAPtr[209] = &idummy;
+
+//    ModbusAPtr[210] = &idummy;
+    ModbusAPtr[211] = &COMM_Dischargeable_capacity_of_vehicle_mounted_battery_1_H;
+    ModbusAPtr[212] = &COMM_Dischargeable_capacity_of_vehicle_mounted_battery_1_L;
+    ModbusAPtr[213] = &COMM_Dischargeable_capacity_of_vehicle_mounted_battery_2;
+    ModbusAPtr[214] = &COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_1_H;
+    ModbusAPtr[215] = &COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_1_L;
+    ModbusAPtr[216] = &COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_2;
+    ModbusAPtr[217] = &COMM_Remaining_dischargeable_capacity_of_vehicle_mounted_battery_3;
+    ModbusAPtr[218] = &COMM_Rated_charge_capacity_H;
+    ModbusAPtr[219] = &COMM_Rated_charge_capacity_L;
+
+    ModbusAPtr[220] = &COMM_Rated_discharge_capacity_H;
+    ModbusAPtr[221] = &COMM_Rated_discharge_capacity_L;
+    ModbusAPtr[222] = &COMM_Vehicle_connection_and_charge_able_discharge_able_status;
+    ModbusAPtr[223] = &COMM_Minimum_maximum_charging_electric_energy_H;
+    ModbusAPtr[224] = &COMM_Minimum_maximum_charging_electric_energy_L;
+//    ModbusAPtr[225] = &idummy;
+//    ModbusAPtr[226] = &idummy;
+    ModbusAPtr[227] = &COMM_Minimum_maximum_discharging_electric_energy_H;
+    ModbusAPtr[228] = &COMM_Minimum_maximum_discharging_electric_energy_L;
+//    ModbusAPtr[229] = &idummy;
+
+//    ModbusAPtr[230] = &idummy;
+    ModbusAPtr[231] = &COMM_Minimum_maximum_charging_current;
+//    ModbusAPtr[232] = &idummy;
+    ModbusAPtr[233] = &COMM_Minimum_maximum_discharging_current;
+//    ModbusAPtr[234] = &idummy;
+    ModbusAPtr[235] = &COMM_Charger_discharger_type;
+    ModbusAPtr[236] = &COMM_Vehicle_connection_confirmation;
+    ModbusAPtr[237] = &COMM_Chargeable_capacity_of_vehicle_mounted_battery_H;
+    ModbusAPtr[238] = &COMM_Chargeable_capacity_of_vehicle_mounted_battery_L;
+    ModbusAPtr[239] = &COMM_Remaining_charg_eable_capacity_of_vehicle_mounted_battery_H;
+
+    ModbusAPtr[240] = &COMM_Remaining_charg_eable_capacity_of_vehicle_mounted_battery_L;
+    ModbusAPtr[241] = &COMM_Used_capacity_of_vehicle_mounted_battery_1_H;
+    ModbusAPtr[242] = &COMM_Used_capacity_of_vehicle_mounted_battery_1_L;
+    ModbusAPtr[243] = &COMM_Used_capacity_of_vehicle_mounted_battery_2;
+    ModbusAPtr[244] = &COMM_Rated_voltage;
+    ModbusAPtr[245] = &COMM_Measured_instantaneous_charging_discharging_electric_energy_H;
+    ModbusAPtr[246] = &COMM_Measured_instantaneous_charging_discharging_electric_energy_L;
+    ModbusAPtr[247] = &COMM_Measured_instantaneous_charging_discharging_current;
+    ModbusAPtr[248] = &COMM_Measured_instantaneous_charging_discharging_voltage;
+    ModbusAPtr[249] = &COMM_Measured_cumulative_amount_of_discharging_electric_energy_H;
+
+    ModbusAPtr[250] = &COMM_Measured_cumulative_amount_of_discharging_electric_energy_L;
+    ModbusAPtr[251] = &COMM_Cumulative_amount_of_discharging_electric_energy_reset_setting;
+    ModbusAPtr[252] = &COMM_Measured_cumulative_amount_of_charging_electric_energy_H;
+    ModbusAPtr[253] = &COMM_Measured_cumulative_amount_of_charging_electric_energy_L;
+    ModbusAPtr[254] = &COMM_Cumulative_amount_of_charging_electric_energy_reset_setting;
+    ModbusAPtr[255] = &COMM_Operation_mode_setting;
+    ModbusAPtr[256] = &COMM_System_interconnected_type;
+    ModbusAPtr[257] = &COMM_Remaining_stored_electricity_of_vehicle_mounted_battery_1_H;
+    ModbusAPtr[258] = &COMM_Remaining_stored_electricity_of_vehicle_mounted_battery_1_L;
+    ModbusAPtr[259] = &COMM__Remaining_stored_electricity_of_vehicle_mounted_battery_2;
+
+    ModbusAPtr[260] = &COMM__Remaining_stored_electricity_of_vehicle_mounted_battery_3;
+    ModbusAPtr[261] = &COMM_Vehicle_ID;
+//    ModbusAPtr[262] = &idummy;
+
+    // Packet4
+//    ModbusAPtr[263] = &idummy;
+//    ModbusAPtr[264] = &idummy;
+//    ModbusAPtr[265] = &idummy;
+//    ModbusAPtr[266] = &idummy;
+//    ModbusAPtr[267] = &idummy;
+//    ModbusAPtr[268] = &idummy;
+//    ModbusAPtr[269] = &idummy;
+
+//    ModbusAPtr[270] = &idummy;
+//    ModbusAPtr[271] = &idummy;
+//    ModbusAPtr[272] = &idummy;
+    ModbusAPtr[273] = &COMM_Charging_amount_setting_1_H;
+    ModbusAPtr[274] = &COMM_Charging_amount_setting_1_L;
+    ModbusAPtr[275] = &COMM_Charging_amount_setting_2;
+    ModbusAPtr[276] = &COMM_Discharging_amount_setting_H;
+    ModbusAPtr[277] = &COMM_Discharging_amount_setting_L;
+    ModbusAPtr[278] = &COMM_Charging_electric_energy_setting_H;
+    ModbusAPtr[279] = &COMM_Charging_electric_energy_setting_L;
+
+    ModbusAPtr[280] = &COMM_Discharging_electric_energy_setting_H;
+    ModbusAPtr[281] = &COMM_Discharging_electric_energy_setting_L;
+    ModbusAPtr[282] = &COMM_Charging_current_setting;
+    ModbusAPtr[283] = &COMM_Discharging_current_setting;
+    ModbusAPtr[284] = &COMM_Rated_voltage_Independent;
+//    ModbusAPtr[285] = &idummy;
+//    ModbusAPtr[286] = &idummy;
+
+//---------------------------------------------//
+
+//    ModbusAPtr[287] = &idummy;
+//    ModbusAPtr[288] = &idummy;
+//    ModbusAPtr[289] = &idummy;
+
+    ModbusAPtr[1000] = &COMM_Operation_status;
+    ModbusAPtr[1001] = &COMM_Connectrion_state;
+    ModbusAPtr[1002] = &COMM_SOC;
+    ModbusAPtr[1003] = &COMM_Instantaneous_power;
+}
+
+void ModbusBTxDataUpdate()
+{
+
+}
+
+void ModbusBRxDataUpdate()
+{
+
+}
+
+void InitModbusBPtr()
+{
+
+
+}
+
+
+
 
Common_Resource/CommonLibrary/source/NtcLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/NtcLib.cpp
@@ -0,0 +1,48 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-ME-CPU1
+//           File Name : Ntc.cpp
+//          Created on : 2022. 10. 17.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+
+#include <CommonLib.h>
+
+sNTCTABLE NtcHeatSink;
+
+
+sTEMP_LIST Temp;
+
+void InitNtcTable()
+{
+    memset(&NtcHeatSink, 0, (sizeof(NtcHeatSink) / sizeof(int)));
+
+    //내기온도 측정용 : NTCALUG02A103G
+    //Beta(25/85) = 3984
+    //Tolerance R +-2%
+    NtcHeatSink.R25 = 10000.;
+    NtcHeatSink.Rset = 20000.;
+    NtcHeatSink.Vset = 3.;
+    NtcHeatSink.Beta = 3984.;
+    NtcHeatSink.TempStep = 1;
+    NtcHeatSink.Size = 200;
+
+    NtcTableGen(&NtcHeatSink);
+
+}
+
+
+
+void NtcRead()
+{
+	NtcTableReadTemp(&Temp.DcSwHeatSink1,	&Adc.Data[15],	&NtcHeatSink);
+	NtcTableReadTemp(&Temp.DcSwHeatSink2,	&Adc.Data[16],	&NtcHeatSink);
+//	NtcTableReadTemp(&Temp.AcSwHeatSink1,	&Adc.Data[24],	&NtcHeatSink);
+//	NtcTableReadTemp(&Temp.AcSwHeatSink2,	&Adc.Data[25],	&NtcHeatSink);
+//	NtcTableReadTemp(&Temp.Spare1,			&Adc.Data[26],	&NtcHeatSink);
+//	NtcTableReadTemp(&Temp.Spare2,			&Adc.Data[27],	&NtcHeatSink);
+
+	Temp.MCU = (float)GetTemperatureC(AdcaResultRegs.ADCRESULT8);
+}
 
Common_Resource/CommonLibrary/source/RTC.c (added)
+++ Common_Resource/CommonLibrary/source/RTC.c
@@ -0,0 +1,329 @@
+/*
+* RTC.c
+*
+*  Created on: 2017. 1. 25.
+*      Author: kdkor
+*/
+
+#include "Cpu1DeviceDefine.h"
+
+struct sDS3234_REGS RTCRegs;
+struct sDS3234_REGS RTCWrBuf;
+
+//----------------------RTC---------------------------------------//
+unsigned int Flag_write_time = 0;
+unsigned int Flag_write_date = 0;
+unsigned long RTCDate = 0;
+unsigned long RTCTime = 0;
+
+#define CS_LOW                      GPIO_writePin(61, 0)
+#define CS_HIGH                     GPIO_writePin(61, 1)
+
+//TODO 임시 코드 이므로 나중에 리뷰 할 것
+
+void InitRTC()
+{
+//    SPI GPIO핀 설정
+//    InitSpidGpio();
+
+    GPIO_setMasterCore(58, GPIO_CORE_CPU1);
+       GPIO_setPinConfig(GPIO_58_SPISIMOA);
+       GPIO_setDirectionMode(58, GPIO_DIR_MODE_OUT);
+       GPIO_setPadConfig(58, GPIO_PIN_TYPE_STD);
+       GPIO_setQualificationMode(58, GPIO_QUAL_ASYNC);
+
+       GPIO_setMasterCore(59, GPIO_CORE_CPU1);
+       GPIO_setPinConfig(GPIO_59_SPISOMIA);
+       GPIO_setDirectionMode(59, GPIO_DIR_MODE_IN);
+       GPIO_setPadConfig(59, GPIO_PIN_TYPE_PULLUP);
+       GPIO_setQualificationMode(59, GPIO_QUAL_ASYNC);
+
+       GPIO_setMasterCore(60, GPIO_CORE_CPU1);
+       GPIO_setPinConfig(GPIO_60_SPICLKA);
+       GPIO_setDirectionMode(60, GPIO_DIR_MODE_OUT);
+       GPIO_setPadConfig(60, GPIO_PIN_TYPE_STD);
+       GPIO_setQualificationMode(60, GPIO_QUAL_ASYNC);
+
+       GPIO_setMasterCore(61, GPIO_CORE_CPU1);
+       GPIO_setPinConfig(GPIO_61_GPIO61);
+       GPIO_setDirectionMode(61, GPIO_DIR_MODE_OUT);
+       GPIO_setPadConfig(61, GPIO_PIN_TYPE_STD);
+       GPIO_setQualificationMode(61, GPIO_QUAL_ASYNC);
+
+       SPI_disableModule(SPIA_BASE);
+       SPI_setConfig(SPIA_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA0, SPI_MODE_MASTER_OD, 400000, 8);
+       SPI_enableTalk(SPIA_BASE);
+
+       SPI_enableModule(SPIA_BASE);
+
+//    // SPI FIFO 초기화
+//    SpiaRegs.SPIFFTX.all = 0xE040;
+//    SpiaRegs.SPIFFRX.all = 0x204f;
+//    SpiaRegs.SPIFFCT.all = 0x0;
+//
+//    //SPI 초기화
+//    SpiaRegs.SPICCR.all = 0x000F;                // Relinquish SPI from Reset
+//    SpiaRegs.SPICTL.all = 0x0006;                // Enable master mode, normal phase,
+//                                                 // enable talk, and SPI interrupt disabled.
+//
+//    SpiaRegs.SPIBRR.bit.SPI_BIT_RATE = 0x0012;   // 4Mbps Baud
+//    SpiaRegs.SPICCR.all = 0x008F;                // Relinquish SPI from Reset
+//    SpiaRegs.SPIPRI.bit.FREE = 1;                // Set so breakpoints don't disturb xmission
+
+    memset(&RTCRegs, 0, (sizeof(RTCRegs) / sizeof(int)));
+    memset(&RTCWrBuf, 0, (sizeof(RTCWrBuf) / sizeof(int)));
+}
+
+unsigned int Flag_RTC_request = 0;
+
+unsigned int Spid_TxErr_Cnt = 0;
+unsigned int Spid_RxErr_Cnt = 0;
+unsigned int Spid_Rx_Data = 0;
+unsigned int Spid_Tx_Data = 0;
+unsigned int Spi_RTC_Flag_Rx = 0;
+unsigned int Spi_RTC_Flag_Tx = 0;
+
+unsigned int Flag_Wr_RTC= 0;
+unsigned int RTC_rAddr = 0;
+unsigned int RTC_wAddr = 0;
+
+
+void Spid_Tx(unsigned int Tx_Data)
+{
+
+//    if (SpiaRegs.SPIFFTX.bit.TXFFST == 0 && SpiaRegs.SPIFFRX.bit.RXFIFORESET == 1)
+//    {
+//        SpiaRegs.SPITXBUF = Tx_Data;
+//    }
+//    else if (SpiaRegs.SPIFFTX.bit.TXFFST > 1)
+//    {
+//        Spid_TxErr_Cnt = Spid_TxErr_Cnt + SpiaRegs.SPIFFTX.bit.TXFFST;
+//    }
+
+        int temp=0;
+
+        CS_LOW;
+
+        SPI_writeDataBlockingNonFIFO(SPIA_BASE, Tx_Data);
+        SPI_readDataBlockingNonFIFO(SPIA_BASE);
+
+        CS_HIGH;
+
+}
+
+//unsigned int Spid_Rx(void)
+unsigned int Spid_Rx(unsigned int Read_addr)
+{
+//    if (Spi_RTC_Flag_Rx == 0)
+//    {
+//        if (SpiaRegs.SPIFFRX.bit.RXFFST == 1)
+//        {
+//            Spid_Rx_Data = (0x00ff) & (SpiaRegs.SPIRXBUF);
+//            Spi_RTC_Flag_Rx = 1;
+//            return 1;
+//        }
+//        else if (SpiaRegs.SPIFFRX.bit.RXFFST > 1)
+//        {
+//            Spid_RxErr_Cnt = Spid_RxErr_Cnt + SpiaRegs.SPIFFRX.bit.RXFFST;
+//            SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0;
+//            delay_us(1);
+//            SpiaRegs.SPIFFRX.bit.RXFIFORESET = 1;
+//        }
+//
+//    }
+//
+//    return 0;
+
+        int temp=0;
+
+        CS_LOW;
+
+        SPI_writeDataBlockingNonFIFO(SPIA_BASE, Read_addr);
+        temp = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+        SPI_writeDataBlockingNonFIFO(SPIA_BASE, Read_addr);
+        temp = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+
+//        delay_us(3);
+        CS_HIGH;
+
+        return(temp);
+}
+
+void RtcRun()
+{
+    if (Flag_Wr_RTC == 0) RtcReadTime();
+    else RtcWriteTime();
+
+}
+
+int wAddr = 0, wData = 0;
+
+
+void RtcWriteTime()
+{
+
+    if (Spi_RTC_Flag_Rx == 0)
+    {
+        switch (RTC_wAddr)
+        {
+            case RTC_SEC:
+                RTCWrBuf.SecDAT.bit.Tens = RTCWrBuf.Sec / 10;
+                RTCWrBuf.SecDAT.bit.Unit = RTCWrBuf.Sec % 10;
+                wData = RTCWrBuf.SecDAT.all;
+                wAddr = (RTC_SEC | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_MIN;
+
+                break;
+
+            case RTC_MIN:
+                RTCWrBuf.MinDAT.bit.Tens = RTCWrBuf.Min / 10;
+                RTCWrBuf.MinDAT.bit.Unit = RTCWrBuf.Min % 10;
+                wData = RTCWrBuf.MinDAT.all;
+                wAddr = (RTC_MIN | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_HOUR;
+                break;
+
+            case RTC_HOUR:
+                RTCWrBuf.HourDAT.bit.Tens = RTCWrBuf.Hour / 10;
+                RTCWrBuf.HourDAT.bit.Unit = RTCWrBuf.Hour % 10;
+                wData = RTCWrBuf.HourDAT.all;
+                wAddr = (RTC_HOUR | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_DAY;
+                break;
+
+            case RTC_DAY:
+                RTCWrBuf.DayDAT.bit.Day = RTCWrBuf.Day;
+                wData = RTCWrBuf.DayDAT.all;
+                wAddr = (RTC_DAY | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_DATE;
+                break;
+
+            case RTC_DATE:
+                RTCWrBuf.DateDAT.bit.Tens = RTCWrBuf.Date / 10;
+                RTCWrBuf.DateDAT.bit.Unit = RTCWrBuf.Date % 10;
+                wData = RTCWrBuf.DateDAT.all;
+                wAddr = (RTC_DATE | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_MONTH;
+                break;
+
+            case RTC_MONTH:
+                RTCWrBuf.MonthDAT.bit.Tens = RTCWrBuf.Month / 10;
+                RTCWrBuf.MonthDAT.bit.Unit = RTCWrBuf.Month % 10;
+                wData = RTCWrBuf.MonthDAT.all;
+                wAddr = (RTC_MONTH | RTC_WR | wData);
+                Spid_Tx(wAddr);
+                RTC_wAddr = RTC_YEAR;
+                break;
+
+            case RTC_YEAR:
+                if(RTCWrBuf.Year > 2000) RTCWrBuf.Year = RTCWrBuf.Year - 2000;
+
+                RTCWrBuf.YearDAT.bit.Tens = (RTCWrBuf.Year / 10);
+                RTCWrBuf.YearDAT.bit.Unit = RTCWrBuf.Year % 10;
+                wData = RTCWrBuf.YearDAT.all;
+                wAddr = (RTC_YEAR | RTC_WR | wData);
+                Spid_Tx(wAddr);
+
+                RTC_wAddr = RTC_SEC;
+                Flag_Wr_RTC = 0;
+                break;
+
+            default:
+                RTC_wAddr = RTC_SEC;
+                Flag_Wr_RTC = 0;
+                break;
+        }
+    }
+
+}
+
+void RtcReadTime()
+{
+    int rAddr = 0;
+
+    if (Flag_Wr_RTC == 0) Spid_Rx_Data = Spid_Rx(RTC_rAddr);
+
+//    if (Spi_RTC_Flag_Rx == 1 && Flag_Wr_RTC == 0)
+    if (Flag_Wr_RTC == 0)
+    {
+
+        switch (RTC_rAddr)
+        {
+            case RTC_SEC:
+                RTCRegs.SecDAT.all = Spid_Rx_Data;
+                RTCRegs.Sec = (RTCRegs.SecDAT.bit.Tens * 10 + RTCRegs.SecDAT.bit.Unit);
+                RTC_rAddr = RTC_MIN;
+                Spi_RTC_Flag_Rx = 0;
+
+                break;
+
+            case RTC_MIN:
+                RTCRegs.MinDAT.all = Spid_Rx_Data;
+                RTCRegs.Min = (RTCRegs.MinDAT.bit.Tens * 10 + RTCRegs.MinDAT.bit.Unit);
+                RTC_rAddr = RTC_HOUR;
+                Spi_RTC_Flag_Rx = 0;
+
+                break;
+
+            case RTC_HOUR:
+                RTCRegs.HourDAT.all = Spid_Rx_Data;
+                RTCRegs.Hour = (RTCRegs.HourDAT.bit.Tens * 10 + RTCRegs.HourDAT.bit.Unit);
+                RTC_rAddr = RTC_DAY;
+                Spi_RTC_Flag_Rx = 0;
+
+                break;
+
+            case RTC_DAY:
+                RTCRegs.DayDAT.all = Spid_Rx_Data;
+                RTCRegs.Day = (RTCRegs.DayDAT.bit.Day);
+                RTC_rAddr = RTC_DATE;
+                Spi_RTC_Flag_Rx = 0;
+                break;
+
+            case RTC_DATE:
+                RTCRegs.DateDAT.all = Spid_Rx_Data;
+                RTCRegs.Date = (RTCRegs.DateDAT.bit.Tens * 10 + RTCRegs.DateDAT.bit.Unit);
+                RTC_rAddr = RTC_MONTH;
+                Spi_RTC_Flag_Rx = 0;
+                break;
+
+            case RTC_MONTH:
+                RTCRegs.MonthDAT.all = Spid_Rx_Data;
+                RTCRegs.Month = (RTCRegs.MonthDAT.bit.Tens * 10 + RTCRegs.MonthDAT.bit.Unit);
+                RTC_rAddr = RTC_YEAR;
+                Spi_RTC_Flag_Rx = 0;
+                break;
+
+            case RTC_YEAR:
+                RTCRegs.YearDAT.all = Spid_Rx_Data;
+                RTCRegs.Year = (RTCRegs.YearDAT.bit.Tens * 10 + RTCRegs.YearDAT.bit.Unit);
+                RTC_rAddr = RTC_SEC;
+                Spi_RTC_Flag_Rx = 0;
+                break;
+
+            default:
+                RTC_rAddr = RTC_SEC;
+                Spi_RTC_Flag_Rx = 0;
+                break;
+        }
+    }
+    else
+    {
+        RTC_rAddr = RTC_SEC;
+    }
+
+    RTCDate = (unsigned long)RTCRegs.Year * 10000 + RTCRegs.Month * 100 + RTCRegs.Date;
+    RTCTime = (unsigned long)RTCRegs.Hour * 10000 + RTCRegs.Min * 100 + RTCRegs.Sec;
+
+    if (Flag_Wr_RTC == 0)
+    {
+        rAddr = ((RTC_rAddr | RTC_RD) << 8);
+        Spid_Tx(rAddr);
+    }
+
+}
 
Common_Resource/CommonLibrary/source/RTC_SPI.c (added)
+++ Common_Resource/CommonLibrary/source/RTC_SPI.c
@@ -0,0 +1,261 @@
+/***************************************************************
+    RTC_SPI.c
+    copyright (c) 2017 by Sang-Yong Kim
+    Next Square Co. Ltd.
+    All Rights Reserved.
+****************************************************************/
+#include "CommonLib.h"
+
+#define RTC_sec         0x0000
+#define RTC_min         0x0100
+#define RTC_hour        0x0200
+#define RTC_day         0x0300
+#define RTC_date        0x0400
+#define RTC_month       0x0500
+#define RTC_year        0x0600
+#define RTC_write       0x8000
+
+#define RTC_Status      0x0E00
+
+// Defines for Chip Select toggle.
+//
+#define CS_LOW_A                      GPIO_writePin(61, 0)
+#define CS_HIGH_A                     GPIO_writePin(61, 1)
+
+int RTC_Read_seq=0;
+int RTC_Write_seq=0;
+int Time_sec=0, Time_min=0, Time_hour=0;
+int Day_date=0, Day_month=0, Day_year=0;
+int Write_sec=0,Write_min=0,Write_hour=0;
+int Write_date=0,Write_month=0,Write_year=0;
+int Time_1224=0, Time_AMPM=0;
+int State_RTC_Write_complete=0;
+//int Flag_RTC_Write=0;
+int Read_addr=0;
+
+//unsigned int Spid_TxErr_Cnt = 0;
+//unsigned int Spid_RxErr_Cnt = 0;
+//unsigned int Spid_Rx_Data = 0;
+//unsigned int Spid_Tx_Data = 0;
+unsigned int Spid_Flag_Rx = 1;
+//unsigned int Spid_Flag_Tx = 0;
+
+//int Testpcs4 = 0;
+
+unsigned int  BCDtoDEC(int bcd)
+{
+//    int dec_num = 0;
+//    int weight = 1;
+//
+//    while (bcd_num > 0) {
+//        int nibble = bcd_num & 0xF; // 마지막 4비트(한 니블) 추출
+//        dec_num += nibble * weight;
+//        weight *= 10;
+//        bcd_num >>= 4; // 다음 니블로 이동
+//    }
+
+    // 0~3비트에서 1초 자리 추출
+    int onesPlace = bcd & 0xF; // 0b1111과 AND 연산하여 0~3비트 값 추출
+
+    // 4~6비트에서 10초 자리 추출
+    int tensPlace = (bcd >> 4) & 0x7; // 0b0111과 AND 연산하여 4~6비트 값 추출
+
+    // 십진수로 변환
+    int dec = tensPlace * 10 + onesPlace;
+
+    return dec;
+}
+
+unsigned int decToBcd(int dec) {
+    unsigned int bcd = 0;
+    int shift = 0;
+
+    while (dec != 0) {
+        // 각 10진수 자리를 BCD로 변환
+        bcd |= (dec % 10) << (shift * 4);
+        dec /= 10;
+        shift++;
+    }
+
+    return bcd;
+}
+
+//int Spid_Tx(unsigned int Tx_Data)
+//{
+//    int temp=0;
+//    CS_LOW_A;
+//    SPI_writeDataBlockingNonFIFO(SPIA_BASE, Tx_Data);
+//    temp = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+//
+//    delay_us(2);
+//    CS_HIGH_A;
+//
+//}
+//
+//unsigned int Spid_Rx(unsigned int Read_addr)
+//{
+//    int a=0,b=0,temp=0;
+//
+//    CS_LOW_A;
+//
+//    SPI_writeDataBlockingNonFIFO(SPIA_BASE, Read_addr);
+//    temp = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+//    SPI_writeDataBlockingNonFIFO(SPIA_BASE, Read_addr);
+//    temp = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+////    SPI_writeDataBlockingNonFIFO(SPIA_BASE, 0000);
+////    Testpcs4 = SPI_readDataBlockingNonFIFO(SPIA_BASE);
+//
+//    delay_us(2);
+//    CS_HIGH_A;
+//
+//    return(temp);
+//}
+
+void SPI_RTC_Read_Sequence()
+{
+    int a=0, b=0, c=0, d=0, temp=0;
+    int Spid_Rx_Data = 0;
+
+    if(State_RTC_Write_complete==0)
+    {
+        switch(RTC_Read_seq)
+        {
+
+            //-----------Read second from DS1390 -----------//
+            case RTC_sec:
+
+                Spid_Rx_Data = Spid_Rx(RTC_sec);
+
+                RTCRegs.SecDAT.all = Spid_Rx_Data;
+                RTCRegs.Sec = (RTCRegs.SecDAT.bit.Tens * 10 + RTCRegs.SecDAT.bit.Unit);
+                RTC_Read_seq = RTC_min;
+
+            break;
+            //-----------Read minute from DS1390 -----------//
+            case RTC_min:
+
+                Spid_Rx_Data = Spid_Rx(RTC_min);
+
+                RTCRegs.MinDAT.all = Spid_Rx_Data;
+                RTCRegs.Min = (RTCRegs.MinDAT.bit.Tens * 10 + RTCRegs.MinDAT.bit.Unit);
+                RTC_Read_seq = RTC_hour;
+
+            break;
+            //-----------Read hour from DS1390 -----------//
+            case RTC_hour:
+
+                Spid_Rx_Data = Spid_Rx(RTC_hour);
+
+                RTCRegs.HourDAT.all = Spid_Rx_Data;
+                RTCRegs.Hour = (RTCRegs.HourDAT.bit.Tens * 10 + RTCRegs.HourDAT.bit.Unit);
+                RTC_Read_seq = RTC_day;
+
+            break;
+            //-----------Read date from DS1390 -----------//
+            case RTC_day:
+
+                Spid_Rx_Data = Spid_Rx(RTC_day);
+
+                RTCRegs.DayDAT.all = Spid_Rx_Data;
+                RTCRegs.Day = (RTCRegs.DayDAT.bit.Day);
+                RTC_Read_seq = RTC_date;
+
+            break;
+            //-----------Read month from DS1390 -----------//
+            case RTC_date:
+
+                Spid_Rx_Data = Spid_Rx(RTC_date);
+
+                RTCRegs.DateDAT.all = Spid_Rx_Data;
+                RTCRegs.Date = (RTCRegs.DateDAT.bit.Tens * 10 + RTCRegs.DateDAT.bit.Unit);
+                RTC_Read_seq = RTC_month;
+
+            break;
+            //-----------Read year from DS1390 -----------//
+            case RTC_month:
+
+                Spid_Rx_Data = Spid_Rx(RTC_month);
+
+                RTCRegs.MonthDAT.all = Spid_Rx_Data;
+                RTCRegs.Month = (RTCRegs.MonthDAT.bit.Tens * 10 + RTCRegs.MonthDAT.bit.Unit);
+                RTC_Read_seq = RTC_year;
+
+            break;
+            //-----------Read year from DS1390 -----------//
+            case RTC_year:
+
+                Spid_Rx_Data = Spid_Rx(RTC_year);
+
+                RTCRegs.MonthDAT.all = Spid_Rx_Data;
+                RTCRegs.Month = (RTCRegs.MonthDAT.bit.Tens * 10 + RTCRegs.MonthDAT.bit.Unit);
+                RTC_Read_seq = RTC_sec;
+
+            break;
+
+            default:
+                RTC_Read_seq=0;
+                Spid_Flag_Rx=0;
+            break;
+        }
+    }
+}
+
+void SPI_RTC_Write_Sequence()
+{
+    if(State_RTC_Write_complete)
+    {
+        switch(RTC_Write_seq)
+        {
+            unsigned int temp;
+
+            default: break;
+            //-----------Read second from DS1390 -----------//
+            case 0:
+                   temp = RTC_write|RTC_sec|(decToBcd(Write_sec)&0x7F);
+                Spid_Tx(temp);
+                RTC_Write_seq=1;
+            break;
+            //-----------Read minute from DS1390 -----------//
+            case 1:
+
+                Spid_Tx(RTC_write|RTC_min|(decToBcd(Write_min)&0x7F));
+                RTC_Write_seq=2;
+            break;
+            //-----------Read hour from DS1390 -----------//
+            case 2:
+
+                Spid_Tx(RTC_write|RTC_hour|(decToBcd(Write_hour)&0x3F));
+                RTC_Write_seq=3;
+            break;
+            //-----------Read date from DS1390 -----------//
+            case 3:
+
+                Spid_Tx(RTC_write|RTC_date|(decToBcd(Write_date)&0x3F));
+                RTC_Write_seq=4;
+            break;
+            //-----------Read month from DS1390 -----------//
+            case 4:
+
+                Spid_Tx(RTC_write|RTC_month|(decToBcd(Write_month)&0x1F));
+                RTC_Write_seq=5;
+            break;
+            //-----------Read year from DS1390 -----------//
+            case 5:
+
+                Spid_Tx(RTC_write|RTC_year|(decToBcd(Write_year)&0xFF));
+                RTC_Write_seq=0;
+                State_RTC_Write_complete=0;
+            break;
+        }
+    }
+
+}
+
+void InitSpi_RTC()
+{
+
+
+}
+
+
+
 
Common_Resource/CommonLibrary/source/RmsAvgCal.cpp (added)
+++ Common_Resource/CommonLibrary/source/RmsAvgCal.cpp
@@ -0,0 +1,208 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : RmsAvgCal.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+float VbatSum = 0.;
+float VbatAvg = 0.;
+
+float IbatSum = 0.;
+float IbatAvg = 0.;
+
+float VboostSum = 0.;
+float VboostAvg = 0.;
+
+float VdabSum = 0.;
+float VdabAvg = 0.;
+
+float VdcHSum = 0.;
+float VdcHAvg = 0.;
+
+float VdcLSum = 0.;
+float VdcLAvg = 0.;
+
+float VdcSum = 0.;
+float VdcAvg = 0.;
+
+float VunInvRms = 0.;
+float VunInvRmsSum = 0.;
+
+float VnwInvRms = 0.;
+float VnwInvRmsSum = 0.;
+
+float VacInvRms = 0.;
+float VacInvRmsSum = 0.;
+
+float VunGridRms = 0.;
+float VunGridRmsSum = 0.;
+
+float VnwGridRms = 0.;
+float VnwGridRmsSum = 0.;
+
+float VacGridRms = 0.;
+float VacGridRmsSum = 0.;
+
+float IacInvRms = 0.;
+float IacInvRmsSum = 0.;
+
+float IuInvRms = 0.;
+float IuInvRmsSum = 0.;
+
+float IwInvRms = 0.;
+float IwInvRmsSum = 0.;
+
+float InInvRms = 0.;
+float InInvRmsSum = 0.;
+
+float IacGridRms = 0.;
+float IacGridRmsSum = 0.;
+
+float IuGridRms = 0.;
+float IuGridRmsSum = 0.;
+
+float IwGridRms = 0.;
+float IwGridRmsSum = 0.;
+
+float InGridRms = 0.;
+float InGridRmsSum = 0.;
+
+float IzctRms = 0.;
+float IzctRmsSum = 0.;
+
+
+float PinvReactive = 0.;
+float PinvReactiveSum = 0.;
+float PinvReactiveAvg = 0.;
+
+float PinvActive = 0.;
+float PinvActiveSum = 0.;
+float PinvActiveAvg = 0.;
+
+float PinvApparentAvg = 0;
+
+float Pbat = 0.;
+float PbatAvg = 0.;
+float PbatSum = 0.;
+
+float IdeSum = 0.;
+float IdeAvg = 0.;
+
+float IqeSum = 0.;
+float IqeAvg = 0.;
+
+float VdeSum = 0.;
+float VdeAvg = 0.;
+
+float VqeSum = 0.;
+float VqeAvg = 0.;
+
+float PfAvg = 0.;
+
+void RmsAvgCal()
+{
+	VbatAvg = AVG(&VbatSum, INV_RMS_T500ms);
+	IbatAvg = AVG(&IbatSum, INV_RMS_T500ms);
+	VboostAvg = AVG(&VboostSum, INV_RMS_T500ms);
+	VdabAvg = AVG(&VdabSum, INV_RMS_T500ms);
+	VdcLAvg = AVG(&VdcLSum, INV_RMS_T500ms);
+	VdcHAvg = AVG(&VdcHSum, INV_RMS_T500ms);
+	VdcAvg = AVG(&VdcSum, INV_RMS_T500ms);
+
+	VunInvRms = RMS(&VunInvRmsSum, INV_RMS_T500ms);
+	VnwInvRms = RMS(&VnwInvRmsSum, INV_RMS_T500ms);
+	VacInvRms = RMS(&VacInvRmsSum, INV_RMS_T500ms);
+
+	VunGridRms = RMS(&VunGridRmsSum, INV_RMS_T500ms);
+	VnwGridRms = RMS(&VnwGridRmsSum, INV_RMS_T500ms);
+	VacGridRms = RMS(&VacGridRmsSum, INV_RMS_T500ms);
+
+	IuInvRms = RMS(&IuInvRmsSum, INV_RMS_T500ms);
+	IwInvRms = RMS(&IwInvRmsSum, INV_RMS_T500ms);
+	InInvRms = RMS(&InInvRmsSum, INV_RMS_T500ms);
+	IacInvRms = RMS(&IacInvRmsSum, INV_RMS_T500ms);
+
+	IuGridRms = RMS(&IuGridRmsSum, INV_RMS_T500ms);
+	IwGridRms = RMS(&IwGridRmsSum, INV_RMS_T500ms);
+	InGridRms = RMS(&InGridRmsSum, INV_RMS_T500ms);
+	IacGridRms = RMS(&IacGridRmsSum, INV_RMS_T500ms);
+
+	IzctRms = RMS(&IzctRmsSum, INV_RMS_T500ms);
+
+	PinvActiveAvg = AVG(&PinvActiveSum, INV_RMS_T500ms);
+	PinvReactiveAvg = AVG(&PinvReactiveSum, INV_RMS_T500ms);
+	PinvReactive = AVG(&PinvReactiveSum, INV_RMS_T500ms);
+
+	Pbat = AVG(&VbatSum, INV_RMS_T500ms);
+
+}
+
+void RmsAvgSum()
+{
+//	VbatSum += Vbat;
+//	IbatSum += Ibat;
+//	VboostSum += Vboost;
+//	VdabSum += Vdab;
+//	VdcLSum += VdcL;
+//	VdcHSum += VdcH;
+//	VdcSum += Vdc;
+//
+//	VunInvRmsSum += VunInv * VunInv;
+//	VnwInvRmsSum += VnwInv * VnwInv;
+//	VacInvRmsSum += VacInv * VacInv;
+//
+//	VunGridRmsSum += VunGrid * VunGrid;
+//	VnwGridRmsSum += VnwGrid * VnwGrid;
+//	VacGridRmsSum += VacGrid * VacGrid;
+//
+//	IuInvRmsSum += IuInv * IuInv;
+//	IwInvRmsSum += IwInv * IwInv;
+//	InInvRmsSum += InInv * InInv;
+//	IacInvRmsSum += IacInv * IacInv;
+//
+//	IuGridRmsSum += IuGrid * IuGrid;
+//	IwGridRmsSum += IwGrid * IwGrid;
+//	InGridRmsSum += InGrid * InGrid;
+//	IacGridRmsSum += IacGrid * IacGrid;
+//
+//	IzctRmsSum += Izct * Izct;
+//
+//	PinvActive = -1.5 * (VdsGrid * IdsGrid + VqsGrid * IqsGrid);
+//	PinvActiveSum += PinvActive;
+//
+//	PinvReactive = -1.5 * (VqsGrid * IdsGrid - VdsGrid * IqsGrid);
+//	PinvReactiveSum += PinvReactive;
+//
+//	PinvApparentAvg = sqrt(PinvActiveAvg * PinvActiveAvg + PinvReactiveAvg * PinvReactiveAvg);
+//
+//	PfAvg = PinvActiveAvg / PinvApparentAvg;
+//	Pbat = Vbat * Ibat;
+//	PbatSum += Pbat;
+
+}
+
+float RMS(float *RMSSum, float InversTime)
+{
+	float Rms_Value = 0;
+
+	Rms_Value = sqrt((*RMSSum) * InversTime);
+	(*RMSSum) = 0;
+
+	return Rms_Value;
+}
+
+float AVG(float *Sum, float InversTime)
+{
+	float Avg_Value = 0;
+
+	Avg_Value = (*Sum) * InversTime;
+	(*Sum) = 0;
+
+	return Avg_Value;
+}
+
 
Common_Resource/CommonLibrary/source/SensingScale.cpp (added)
+++ Common_Resource/CommonLibrary/source/SensingScale.cpp
@@ -0,0 +1,280 @@
+//-------------------------------------------------------//
+//        Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1
+//           File Name : SensingScale.cpp
+//          Created on : 2022. 11. 8.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+unsigned int MuxSel = 0;
+
+struct sMesureList Scale;
+struct sMesureList ScaleDefault;
+struct sMesureList ScaleDelt;
+
+//struct sMesureList Offset;
+//struct sMesureList OffsetDefault;
+//struct sMesureList OffsetSum;
+//struct sMesureList OffsetDelt;
+
+//------------------------------------------------------------------------//
+float CH1_UV = 0, CH1_VIS = 0, CH1_IR = 0;
+float CH2_UV = 0, CH2_VIS = 0, CH2_IR = 0;
+float CH3_UV = 0, CH3_VIS = 0, CH3_IR = 0;
+float CH4_UV = 0, CH4_VIS = 0, CH4_IR = 0;
+
+float DAC_1 = 0, DAC_2 = 0, DAC_3 = 0;
+
+void InitScale()
+{
+//	memset(&Offset, 0, (sizeof(Offset) / sizeof(int)));
+//	memset(&OffsetDefault, 0, (sizeof(OffsetDefault) / sizeof(int)));
+//	memset(&OffsetSum, 0, (sizeof(OffsetSum) / sizeof(int)));
+//	memset(&OffsetDelt, 0, (sizeof(OffsetDelt) / sizeof(int)));
+
+	memset(&Scale, 0, (sizeof(Scale) / sizeof(int)));
+	memset(&ScaleDefault, 0, (sizeof(ScaleDefault) / sizeof(int)));
+	memset(&ScaleDelt, 0, (sizeof(ScaleDelt) / sizeof(int)));
+
+
+	ScaleDefaultCal();
+	ReadScaleDelt();
+	ScaleUpdate();
+
+	OffsetDefaultCal();
+	ReadOffsetDelt();
+	OffsetUpdate();
+
+}
+
+void OffsetDefaultCal()
+{
+	Adc.OffsetDefault[0] 	= ADC_OFFSET1V5; 	//Vbat
+	Adc.OffsetDefault[1] 	= ADC_OFFSET1V5; 	//Ibat
+	Adc.OffsetDefault[2] 	= ADC_OFFSET1V5; 	//Vboost
+	Adc.OffsetDefault[3] 	= ADC_OFFSET1V5; 	//Vdab
+	Adc.OffsetDefault[4]	= ADC_OFFSET1V5; 				//GFD
+	Adc.OffsetDefault[5] 	= ADC_OFFSET1V5; 	//VdcH
+	Adc.OffsetDefault[6] 	= ADC_OFFSET1V5; 	//IuGrid
+	Adc.OffsetDefault[7] 	= ADC_OFFSET1V5; 	//IwGrid
+	Adc.OffsetDefault[8] 	= ADC_OFFSET1V5; 	//VdcL
+	Adc.OffsetDefault[9] 	= ADC_OFFSET1V5; 	//VunGrid
+	Adc.OffsetDefault[10] 	= ADC_OFFSET1V5; 	//VnwGrid
+	Adc.OffsetDefault[11] 	= ADC_OFFSET1V5; 	//IuInv
+	Adc.OffsetDefault[12] 	= ADC_OFFSET1V5; 	//IwInv
+//	Adc.OffsetDefault[13] 	= ADC_OFFSET1V5;		//Izct
+//    Adc.OffsetDefault[14] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[15] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[16] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[17] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[18] 	= ADC_OFFSET1V5;	//IuGridExt
+//	Adc.OffsetDefault[19] 	= ADC_OFFSET1V5;	//IuGridExt
+//	Adc.OffsetDefault[20] 	= ADC_OFFSET1V5; 				//VntcBoost
+//    Adc.OffsetDefault[21] 	= ADC_OFFSET1V5; 				//VntcLvDab
+//	Adc.OffsetDefault[22] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[23] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[24] 	= ADC_OFFSET1V5; 				//VntcHvDab
+//	Adc.OffsetDefault[25] 	= ADC_OFFSET1V5; 				//VntcInv
+//	Adc.OffsetDefault[26] 	= ADC_OFFSET1V5; 				//Vntc5
+//	Adc.OffsetDefault[27] 	= ADC_OFFSET1V5; 				//Vntc6
+//	Adc.OffsetDefault[28] 	= ADC_OFFSET1V5; 	//VunInv
+//	Adc.OffsetDefault[29] 	= ADC_OFFSET1V5; 	//VnwInv
+//	Adc.OffsetDefault[30] 	= ADC_OFFSET1V5; 				//reserved
+//	Adc.OffsetDefault[31] 	= ADC_OFFSET1V5; 				//reserved
+
+
+	//임시 EEPROM 올때까지만
+	Adc.OffsetDelt[0] = 0.;               //Vbat
+	Adc.OffsetDelt[1] = 0.;               //Ibat
+	Adc.OffsetDelt[2] = 0.;              //Vboost
+	Adc.OffsetDelt[3] = 0.;             //Vdab
+	Adc.OffsetDelt[4] = 0.;                              //GFD
+	Adc.OffsetDelt[5] = 0.;             //VdcH
+	Adc.OffsetDelt[6] = 0.;             //IuGrid
+	Adc.OffsetDelt[7] = 0.;             //IwGrid
+	Adc.OffsetDelt[8] = 0.;              //VdcL
+	Adc.OffsetDelt[9] = 0.;              //VunGrid
+	Adc.OffsetDelt[10] = 0.;             //VnwGrid
+	Adc.OffsetDelt[11] = 0.;            //IuInv
+	Adc.OffsetDelt[12] = 0.;            //IwInv
+//	Adc.OffsetDelt[13] = 0.;                             //Izct
+//	Adc.OffsetDelt[14] = 0.;                        //reserved
+//	Adc.OffsetDelt[15] = 0.;                        //reserved
+//	Adc.OffsetDelt[16] = 0.;                        //reserved
+//	Adc.OffsetDelt[17] = 0.;                        //reserved
+//	Adc.OffsetDelt[18] = 0.;                        //IuGridExt
+//	Adc.OffsetDelt[19] = 0.;                        //IuGridExt
+//	Adc.OffsetDelt[20] = 0.;                        //VntcBoost
+//	Adc.OffsetDelt[21] = 0.;                        //VntcLvDab
+//	Adc.OffsetDelt[22] = 0.;                        //reserved
+//	Adc.OffsetDelt[23] = 0.;                        //reserved
+//	Adc.OffsetDelt[24] = 0.;                        //VntcHvDab
+//	Adc.OffsetDelt[25] = 0.;                        //VntcInv
+//	Adc.OffsetDelt[26] = 0.;                        //Vntc5
+//	Adc.OffsetDelt[27] = 0.;                        //Vntc6
+//	Adc.OffsetDelt[28] = 0.;              //VunInv
+//	Adc.OffsetDelt[29] = 0.;               //VnwInv
+//	Adc.OffsetDelt[30] = 0.;                        //reserved
+//	Adc.OffsetDelt[31] = 0.;                        //reserved
+
+}
+
+void OffsetUpdate()
+{
+	Adc.Offset[0] = Adc.OffsetDefault[0] + Adc.OffsetDelt[0];         //Vbat
+	Adc.Offset[1] = Adc.OffsetDefault[1] + Adc.OffsetDelt[1];         //Ibat
+	Adc.Offset[2] = Adc.OffsetDefault[2] + Adc.OffsetDelt[2];         //Vboost
+	Adc.Offset[3] = Adc.OffsetDefault[3] + Adc.OffsetDelt[3];         //Vdab
+	Adc.Offset[4] = Adc.OffsetDefault[4] + Adc.OffsetDelt[4];         //GFD
+	Adc.Offset[5] = Adc.OffsetDefault[5] + Adc.OffsetDelt[5];         //VdcH
+	Adc.Offset[6] = Adc.OffsetDefault[6] + Adc.OffsetDelt[6];         //IuGrid
+	Adc.Offset[7] = Adc.OffsetDefault[7] + Adc.OffsetDelt[7];         //IwGrid
+	Adc.Offset[8] = Adc.OffsetDefault[8] + Adc.OffsetDelt[8];         //VdcL
+	Adc.Offset[9] = Adc.OffsetDefault[9] + Adc.OffsetDelt[9];         //VunGrid
+	Adc.Offset[10] = Adc.OffsetDefault[10] + Adc.OffsetDelt[10];      //VnwGrid
+	Adc.Offset[11] = Adc.OffsetDefault[11] + Adc.OffsetDelt[11];      //IuInv
+	Adc.Offset[12] = Adc.OffsetDefault[12] + Adc.OffsetDelt[12];      //IwInv
+//	Adc.Offset[13] = Adc.OffsetDefault[13] + Adc.OffsetDelt[13];      //Izct
+//	Adc.Offset[14] = Adc.OffsetDefault[14] + Adc.OffsetDelt[14];      //reserved
+//	Adc.Offset[15] = Adc.OffsetDefault[15] + Adc.OffsetDelt[15];      //reserved
+//	Adc.Offset[16] = Adc.OffsetDefault[16] + Adc.OffsetDelt[16];      //reserved
+//	Adc.Offset[17] = Adc.OffsetDefault[17] + Adc.OffsetDelt[17];      //reserved
+//	Adc.Offset[18] = Adc.OffsetDefault[18] + Adc.OffsetDelt[18];      //IuGridExt
+//	Adc.Offset[19] = Adc.OffsetDefault[19] + Adc.OffsetDelt[19];      //IuGridExt
+//	Adc.Offset[20] = Adc.OffsetDefault[20] + Adc.OffsetDelt[20];      //VntcBoost
+//	Adc.Offset[21] = Adc.OffsetDefault[21] + Adc.OffsetDelt[21];      //VntcLvDab
+//	Adc.Offset[22] = Adc.OffsetDefault[22] + Adc.OffsetDelt[22];      //reserved
+//	Adc.Offset[23] = Adc.OffsetDefault[23] + Adc.OffsetDelt[23];      //reserved
+//	Adc.Offset[24] = Adc.OffsetDefault[24] + Adc.OffsetDelt[24];      //VntcHvDab
+//	Adc.Offset[25] = Adc.OffsetDefault[25] + Adc.OffsetDelt[25];      //VntcInv
+//	Adc.Offset[26] = Adc.OffsetDefault[26] + Adc.OffsetDelt[26];      //Vntc5
+//	Adc.Offset[27] = Adc.OffsetDefault[27] + Adc.OffsetDelt[27];      //Vntc6
+//	Adc.Offset[28] = Adc.OffsetDefault[28] + Adc.OffsetDelt[28];      //VunInv
+//	Adc.Offset[29] = Adc.OffsetDefault[29] + Adc.OffsetDelt[29];      //VnwInv
+//	Adc.Offset[30] = Adc.OffsetDefault[30] + Adc.OffsetDelt[30];      //reserved
+//	Adc.Offset[31] = Adc.OffsetDefault[31] + Adc.OffsetDelt[31];      //reserved
+
+}
+
+void ScaleDefaultCal()
+{
+
+//	ScaleDefault.VunInv 	= INV_AC_PT_GAIN;		//Adc21 인버터 출력 전압 UN
+//	ScaleDefault.VnwInv 	= INV_AC_PT_GAIN;		//Adc22 인버터 출력 전압 UN
+//	ScaleDefault.IuGrid 	= -INV_AC_CT_GAIN;		//Adc23 계통 전류 U
+//	ScaleDefault.IwGrid 	= -INV_AC_CT_GAIN;		//Adc24 계통 전류 W
+
+	//임시 EEPROM 올때까지만
+	ScaleDelt.ADC_CH1_UV = 1.;
+	ScaleDelt.ADC_CH1_VIS = 1.;
+	ScaleDelt.ADC_CH1_IR = 1.;
+	ScaleDelt.ADC_CH2_UV = 1.;
+	ScaleDelt.ADC_CH2_VIS = 1.;
+	ScaleDelt.ADC_CH2_IR = 1.;
+	ScaleDelt.ADC_CH3_UV = 1.;
+	ScaleDelt.ADC_CH3_VIS = 1.;
+	ScaleDelt.ADC_CH3_IR = 1.;
+	ScaleDelt.ADC_CH4_UV = 1.;
+	ScaleDelt.ADC_CH4_VIS = 1.;
+	ScaleDelt.ADC_CH4_IR = 1.;
+
+}
+
+//AMC3330
+// Input Offset Current -10nA, 0.8nA, 10nA(Min, Typ, Max)
+// Input Bias Current -10nA, 2.5nA, 10nA(Min, Typ, Max)
+// 계산 다시 할것
+
+void ScaleUpdate()
+{
+
+	Scale.ADC_CH1_UV 		    = ScaleDefault.ADC_CH1_UV 		+ ScaleDelt.ADC_CH1_UV;
+    Scale.ADC_CH1_VIS            = ScaleDefault.ADC_CH1_VIS       + ScaleDelt.ADC_CH1_VIS;
+    Scale.ADC_CH1_IR            = ScaleDefault.ADC_CH1_IR       + ScaleDelt.ADC_CH1_IR;
+
+    Scale.ADC_CH2_UV            = ScaleDefault.ADC_CH2_UV       + ScaleDelt.ADC_CH2_UV;
+    Scale.ADC_CH2_VIS            = ScaleDefault.ADC_CH2_VIS       + ScaleDelt.ADC_CH2_VIS;
+    Scale.ADC_CH2_IR            = ScaleDefault.ADC_CH2_IR       + ScaleDelt.ADC_CH2_IR;
+
+    Scale.ADC_CH3_UV            = ScaleDefault.ADC_CH3_UV       + ScaleDelt.ADC_CH3_UV;
+    Scale.ADC_CH3_VIS            = ScaleDefault.ADC_CH3_VIS       + ScaleDelt.ADC_CH3_VIS;
+    Scale.ADC_CH3_IR            = ScaleDefault.ADC_CH3_IR       + ScaleDelt.ADC_CH3_IR;
+
+    Scale.ADC_CH4_UV            = ScaleDefault.ADC_CH4_UV       + ScaleDelt.ADC_CH4_UV;
+    Scale.ADC_CH4_VIS            = ScaleDefault.ADC_CH4_VIS       + ScaleDelt.ADC_CH4_VIS;
+    Scale.ADC_CH4_IR            = ScaleDefault.ADC_CH4_IR       + ScaleDelt.ADC_CH4_IR;
+}
+
+unsigned int TestAdcData = 4029;
+float AdcOffset = 4095./2. ;
+float VbatTestVar = 0.;
+
+void AdcResult(void)
+{
+	int AdcCnt = 0;
+	for (AdcCnt = 0; AdcCnt < 32; AdcCnt++)
+	{
+		Adc.Data[AdcCnt] = (float)Adc.RawData[AdcCnt] - Adc.Offset[AdcCnt];
+	}
+
+	CH1_UV		= Adc.Data[2]	* Scale.ADC_CH1_UV;
+	CH1_VIS		= Adc.Data[3]	* Scale.ADC_CH1_VIS;
+	CH1_IR 		= Adc.Data[4]	* Scale.ADC_CH1_IR;
+
+    CH2_UV      = Adc.Data[5]   * Scale.ADC_CH2_UV;
+    CH2_VIS     = Adc.Data[8]   * Scale.ADC_CH2_VIS;
+    CH2_IR      = Adc.Data[10]   * Scale.ADC_CH2_IR;
+
+    CH3_UV      = Adc.Data[11]   * Scale.ADC_CH3_UV;
+    CH3_VIS     = Adc.Data[12]   * Scale.ADC_CH3_VIS;
+    CH3_IR      = Adc.Data[13]   * Scale.ADC_CH3_IR;
+
+    CH4_UV      = Adc.Data[20]   * Scale.ADC_CH4_UV;
+    CH4_VIS     = Adc.Data[19]   * Scale.ADC_CH4_VIS;
+    CH4_IR      = Adc.Data[18]   * Scale.ADC_CH4_IR;
+
+    DAC_1       = Adc.Data[0];
+    DAC_2       = Adc.Data[1];
+    DAC_3       = Adc.Data[9];
+
+}
+
+void ReadScaleDelt(void)
+{
+
+
+}
+
+void WriteScaleDelt(void)
+{
+//	NV.Adc.ScaleDelt.AdcExtBUTTON = ScaleDelt.AdcExtBUTTON;
+
+}
+
+void ResetScaleDelt(void)
+{
+	memset(&ScaleDelt, 0, (sizeof(ScaleDelt) / sizeof(int)));
+}
+
+
+void ReadOffsetDelt(void)
+{
+
+
+}
+
+void WriteOffsetDelt(void)
+{
+//	NV.Adc.ScaleDelt.AdcExtBUTTON = ScaleDelt.AdcExtBUTTON;
+
+}
+
+void ResetOffsetDelt(void)
+{
+	memset(&ScaleDelt, 0, (sizeof(ScaleDelt) / sizeof(int)));
+}
+
+
 
Common_Resource/CommonLibrary/source/SpiEepromLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/SpiEepromLib.cpp
@@ -0,0 +1,315 @@
+//-------------------------------------------------------//
+//        Project Code : V2H6K01-23-ENEMAN
+//           File Name : EepromLib.cpp
+//          Created on : 2023. 10. 31.
+//         Description : EEPROM Library for CAT25512VI-GT3
+//              Author : "Kim JeongWoo"
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+
+unsigned int EepromAddr = 0x0000;
+unsigned int EepromNumofBytes = 100;
+
+//나중에 DMA로 처리 할 것!!!!
+//FIFO 적용할 것!!!!!!!!
+//지금은 임시!!!!!!!!!!
+//코드 컨벤션 및 변수 네이밍 나중에 수정 할 것!!!!!!!!
+
+
+
+// SPI EEPROM status
+#define MSG_STATUS_READY_M          0x0000 // EEPROM is ready (not busy)
+#define MSG_STATUS_WRITE_READY_M    0x0002 // EEPROM
+#define MSG_STATUS_BUSY             0xFFFF // EEPROM is busy (internal write)
+
+// Opcodes for the EEPROM (8-bit)
+//#define RDSR                        0x0500
+//#define READ                        0x0300
+//#define WRITE                       0x0200
+//#define WREN                        0x0600
+//#define WRDI                        0x0400
+//#define WRSR                        0x0100
+
+#define RDSR                        0x0500      //Read status
+#define READ                        0x0300      //Read from Memory Array
+#define WRITE                       0x0200      //Write from Memory Array
+#define WREN                        0x0600      //Write enable
+#define WRDI                        0x0400      //Write Disable
+#define WRSR                        0x0100      //Write status
+
+//
+// Defines for Chip Select toggle.
+//
+#define CS_LOW                      GPIO_writePin(103, 0)
+#define CS_HIGH                     GPIO_writePin(103, 1)
+
+
+int FlagReadEeprom = 0;
+int FlagWriteEeprom = 0;
+
+
+//
+// Function Prototypes
+//
+uint16_t ReadEepromStatusReg(void);
+void writeData(uint16_t address, uint16_t * data, uint16_t length);
+void readData(uint16_t address, uint16_t * data, uint16_t length);
+void enableWrite(void);
+
+union FLOAT32_BYTE
+{
+	float wd32;
+	struct
+	{
+		unsigned byte0 :8;
+		unsigned byte1 :8;
+		unsigned byte2 :8;
+		unsigned byte3 :8;
+	}wdcode;
+};
+
+union INT16_BYTE
+{
+	unsigned int wd16;
+	struct
+	{
+		unsigned byte0 :8;
+		unsigned byte1 :8;
+	}wdcode;
+};
+
+
+union FLOAT32_BYTE FloatWrBuf;
+union FLOAT32_BYTE FloatRdBuf;
+
+union INT16_BYTE IntWrBuf;
+union INT16_BYTE IntRdBuf;
+
+
+
+uint16_t EepromWrBuf[4] = {0,};
+uint16_t EepromRdBuf[4] = {0,};
+
+
+void InitSpi()
+{
+
+	GPIO_setMasterCore(100, GPIO_CORE_CPU1);
+	GPIO_setPinConfig(GPIO_100_SPISIMOC);
+	GPIO_setDirectionMode(100, GPIO_DIR_MODE_OUT);
+	GPIO_setPadConfig(100, GPIO_PIN_TYPE_STD);
+	GPIO_setQualificationMode(100, GPIO_QUAL_ASYNC);
+
+	GPIO_setMasterCore(101, GPIO_CORE_CPU1);
+	GPIO_setPinConfig(GPIO_101_SPISOMIC);
+	GPIO_setDirectionMode(101, GPIO_DIR_MODE_IN);
+	GPIO_setPadConfig(101, GPIO_PIN_TYPE_PULLUP);
+	GPIO_setQualificationMode(101, GPIO_QUAL_ASYNC);
+
+	GPIO_setMasterCore(102, GPIO_CORE_CPU1);
+	GPIO_setPinConfig(GPIO_102_SPICLKC);
+	GPIO_setDirectionMode(102, GPIO_DIR_MODE_OUT);
+	GPIO_setPadConfig(102, GPIO_PIN_TYPE_STD);
+	GPIO_setQualificationMode(102, GPIO_QUAL_ASYNC);
+
+	GPIO_setMasterCore(103, GPIO_CORE_CPU1);
+	GPIO_setPinConfig(GPIO_103_GPIO103);
+	GPIO_setDirectionMode(103, GPIO_DIR_MODE_OUT);
+	GPIO_setPadConfig(103, GPIO_PIN_TYPE_STD);
+	GPIO_setQualificationMode(103, GPIO_QUAL_ASYNC);
+
+    SPI_disableModule(SPIC_BASE);
+    SPI_setConfig(SPIC_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA1, SPI_MODE_MASTER_OD, 1500000, 8);
+    SPI_enableTalk(SPIC_BASE);
+
+    SPI_enableModule(SPIC_BASE);
+
+}
+
+
+void ReadEeprom(uint16_t address, uint16_t *data, uint16_t length)
+{
+    while(ReadEepromStatusReg() & MSG_STATUS_READY_M == MSG_STATUS_READY_M);
+
+    readData(address, data, length);
+}
+
+float ReadEepromFloat(uint16_t address, float *Val)
+{
+	ReadEeprom(address * 4, EepromRdBuf, 4);
+
+	FloatRdBuf.wdcode.byte0 = EepromRdBuf[0];
+	FloatRdBuf.wdcode.byte1 = EepromRdBuf[1];
+	FloatRdBuf.wdcode.byte2 = EepromRdBuf[2];
+	FloatRdBuf.wdcode.byte3 = EepromRdBuf[3];
+
+	*(float *)Val = FloatRdBuf.wd32;
+
+	return FloatRdBuf.wd32;
+}
+
+int ReadEepromInt(uint16_t address, void *Val)
+{
+	ReadEeprom(address * 4, EepromRdBuf, 4);
+
+	IntRdBuf.wdcode.byte0 = EepromRdBuf[0];
+	IntRdBuf.wdcode.byte1 = EepromRdBuf[1];
+	//FloatRdBuf.wdcode.byte2 = EEPROM_RdBuf[2];
+	//FloatRdBuf.wdcode.byte3 = EEPROM_RdBuf[3];
+
+	*(int *)Val = IntRdBuf.wd16;
+
+	return IntRdBuf.wd16;
+}
+
+
+void WriteEepromFloat(uint16_t Address, float *Val)
+{
+	FloatWrBuf.wd32 = *(float *)Val;
+
+	EepromWrBuf[0] = FloatWrBuf.wdcode.byte0;
+	EepromWrBuf[1] = FloatWrBuf.wdcode.byte1;
+	EepromWrBuf[2] = FloatWrBuf.wdcode.byte2;
+	EepromWrBuf[3] = FloatWrBuf.wdcode.byte3;
+
+	WriteEeprom(Address * 4, EepromWrBuf, 4);
+}
+
+void WriteEepromInt(uint16_t Address, void *Val)
+{
+	IntWrBuf.wd16 = *(int *)Val;
+
+	EepromWrBuf[0] = IntWrBuf.wdcode.byte0;
+	EepromWrBuf[1] = IntWrBuf.wdcode.byte1;
+	EepromWrBuf[2] = 0;
+	EepromWrBuf[3] = 0;
+
+	WriteEeprom(Address * 4, EepromWrBuf, 4);
+}
+
+
+void WriteEeprom(uint16_t address, uint16_t *data, uint16_t length)
+{
+	while (ReadEepromStatusReg() & MSG_STATUS_READY_M == MSG_STATUS_READY_M);
+
+	enableWrite();
+
+	while (ReadEepromStatusReg() & MSG_STATUS_WRITE_READY_M == MSG_STATUS_WRITE_READY_M);
+
+	writeData(address, data, length);
+
+}
+
+
+unsigned int EEPROM_Page_Buffer = 128;
+int EEPROM_Start_Addr = 0;
+
+
+void WriteEepromArray(uint16_t address, uint16_t *data, uint16_t length)
+{
+    int NUM_BYTES_Quotient = 0;
+    int NUM_BYTES_Remain = 0;
+    int EEPROM_ADDR_Offset = 0;
+    int i = 0;
+
+    NUM_BYTES_Quotient = length / EEPROM_Page_Buffer;
+    NUM_BYTES_Remain   = length % EEPROM_Page_Buffer;
+
+    for(i = 0; i < NUM_BYTES_Quotient; i++)
+    {
+    	EEPROM_ADDR_Offset = i * EEPROM_Page_Buffer;
+    	EEPROM_Start_Addr = address + EEPROM_ADDR_Offset;
+
+    	WriteEeprom(EEPROM_Start_Addr, data, EEPROM_Page_Buffer);
+
+    	EEPROM_ADDR_Offset = EEPROM_ADDR_Offset + EEPROM_Page_Buffer;
+    }
+
+    if(NUM_BYTES_Remain != 0 )
+    {
+        EEPROM_ADDR_Offset = EEPROM_ADDR_Offset;
+        EEPROM_Start_Addr = address + EEPROM_ADDR_Offset;
+        WriteEeprom(EEPROM_Start_Addr, data, NUM_BYTES_Remain);
+    }
+
+}
+
+uint16_t ReadEepromStatusReg(void)
+{
+    uint16_t temp;
+
+    //임시 나중에 STE 레지스터 찾아서 수정 할 것
+    CS_LOW;
+
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, RDSR);
+    temp = SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, 0x0000);
+    temp = SPI_readDataBlockingNonFIFO(SPIC_BASE);
+
+    CS_HIGH;
+
+    return(temp);
+}
+
+
+void enableWrite(void)
+{
+    CS_LOW;
+
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, WREN);
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+
+    CS_HIGH;
+}
+
+
+void writeData(uint16_t address, uint16_t * data, uint16_t length)
+{
+    uint16_t i;
+
+    CS_LOW;
+
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, WRITE);
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, (address & 0xFF00));
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, address << 8);
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    for(i = 0; i < length; i++)
+    {
+        SPI_writeDataBlockingNonFIFO(SPIC_BASE, data[i] << 8);
+        SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    }
+
+    CS_HIGH;
+}
+
+
+void readData(uint16_t address, uint16_t * data, uint16_t length)
+{
+    uint16_t i;
+
+    CS_LOW;
+
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, READ);
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, (address & 0xFF00));
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    SPI_writeDataBlockingNonFIFO(SPIC_BASE, (address << 8));
+    SPI_readDataBlockingNonFIFO(SPIC_BASE);
+
+    for(i = 0; i < length; i++)
+    {
+        SPI_writeDataBlockingNonFIFO(SPIC_BASE, 0x0000);
+        data[i] = SPI_readDataBlockingNonFIFO(SPIC_BASE);
+    }
+
+    CS_HIGH;
+}
+
+
+
+
 
Common_Resource/CommonLibrary/source/Status.cpp (added)
+++ Common_Resource/CommonLibrary/source/Status.cpp
@@ -0,0 +1,15 @@
+//-------------------------------------------------------//
+//        Project Code : ESS100K3L-01-19
+//           File Name : Status.cpp
+//          Created on : 2019. 06. 07.
+//         Description :
+//              Author : KimJeongWoo
+//  Last modified Date :
+//-------------------------------------------------------//
+
+#include "CommonLib.h"
+
+union uSTATUS Status = {0};
+unsigned int FlagCanBeMasSlvChange = 0;
+unsigned int FlagParaInvBuilup = 0;  //병렬운전시 Mas,Slv Inv 빌드업 확인 변수
+
 
Common_Resource/CommonLibrary/source/SystemVar.cpp (added)
+++ Common_Resource/CommonLibrary/source/SystemVar.cpp
This diff is skipped because there are too many other diffs.
 
Common_Resource/CommonLibrary/source/TimerLib.cpp (added)
+++ Common_Resource/CommonLibrary/source/TimerLib.cpp
This diff is skipped because there are too many other diffs.
 
Common_Resource/EasyDSP_Resource/EasyDSP_Resource.zip (Binary) (added)
+++ Common_Resource/EasyDSP_Resource/EasyDSP_Resource.zip
Binary file is not shown
 
Common_Resource/EasyDSP_Resource/easy28x_driverlib_v10.8.c (added)
+++ Common_Resource/EasyDSP_Resource/easy28x_driverlib_v10.8.c
This diff is skipped because there are too many other diffs.
 
Common_Resource/EasyDSP_Resource/easy28x_driverlib_v10.8.h (added)
+++ Common_Resource/EasyDSP_Resource/easy28x_driverlib_v10.8.h
This diff is skipped because there are too many other diffs.
 
EZDSP/ArcCtrl-23-NEXTSQ-CPU1.ez.bin (Binary) (added)
+++ EZDSP/ArcCtrl-23-NEXTSQ-CPU1.ez.bin
Binary file is not shown
 
EZDSP/ArcCtrl-23-NEXTSQ-CPU1.out (Binary) (added)
+++ EZDSP/ArcCtrl-23-NEXTSQ-CPU1.out
Binary file is not shown
 
EZDSP/ArcCtrl-23-NEXTSQ-CPU2.ez.bin (Binary) (added)
+++ EZDSP/ArcCtrl-23-NEXTSQ-CPU2.ez.bin
Binary file is not shown
 
EZDSP/ArcCtrl-23-NEXTSQ-CPU2.out (Binary) (added)
+++ EZDSP/ArcCtrl-23-NEXTSQ-CPU2.out
Binary file is not shown
 
EZDSP/ArcCtrl_CPU1.cfg (added)
+++ EZDSP/ArcCtrl_CPU1.cfg
This diff is skipped because there are too many other diffs.
 
EZDSP/ArcCtrl_CPU1.ezd (added)
+++ EZDSP/ArcCtrl_CPU1.ezd
This diff is skipped because there are too many other diffs.
 
EZDSP/ArcCtrl_CPU1.vars (added)
+++ EZDSP/ArcCtrl_CPU1.vars
This diff is skipped because there are too many other diffs.
 
EZDSP/Preset/Sensing.sym (added)
+++ EZDSP/Preset/Sensing.sym
This diff is skipped because there are too many other diffs.
 
EZDSP/easyDSP_FlashApiWrapper_CPU1.ez.bin (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU1.ez.bin
Binary file is not shown
 
EZDSP/easyDSP_FlashApiWrapper_CPU1.out (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU1.out
Binary file is not shown
 
EZDSP/easyDSP_FlashApiWrapper_CPU1.ou~ (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU1.ou~
Binary file is not shown
 
EZDSP/easyDSP_FlashApiWrapper_CPU2.ez.bin (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU2.ez.bin
Binary file is not shown
 
EZDSP/easyDSP_FlashApiWrapper_CPU2.out (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU2.out
Binary file is not shown
 
EZDSP/easyDSP_FlashApiWrapper_CPU2.ou~ (Binary) (added)
+++ EZDSP/easyDSP_FlashApiWrapper_CPU2.ou~
Binary file is not shown
 
TI_Lib/FPU/include/dsp.h (added)
+++ TI_Lib/FPU/include/dsp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/f2837xd_filter/fpu_filter.h (added)
+++ TI_Lib/FPU/include/fpu32/f2837xd_filter/fpu_filter.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_cfft.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_cfft.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_barthann.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_barthann.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_bartlett.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_bartlett.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_blackman.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_blackman.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_blackmanharris.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_blackmanharris.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_bohman.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_bohman.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_cheb.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_cheb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_flattop.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_flattop.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_gauss.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_gauss.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_hamming.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_hamming.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_hann.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_hann.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_kaiser.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_kaiser.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_nuttall.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_nuttall.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_parzen.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_parzen.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_rect.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_rect.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_taylor.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_taylor.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_triang.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_triang.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_fft_tukey.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_fft_tukey.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_filter.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_filter.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_math.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_math.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_rfft.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_rfft.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_types.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_types.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/include/fpu32/fpu_vector.h (added)
+++ TI_Lib/FPU/include/fpu32/fpu_vector.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/FPU/lib/c28x_fpu_dsp_library.lib (Binary) (added)
+++ TI_Lib/FPU/lib/c28x_fpu_dsp_library.lib
Binary file is not shown
 
TI_Lib/FPU/lib/c28x_fpu_dsp_library_coff.lib (Binary) (added)
+++ TI_Lib/FPU/lib/c28x_fpu_dsp_library_coff.lib
Binary file is not shown
 
TI_Lib/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement.lib (Binary) (added)
+++ TI_Lib/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement.lib
Binary file is not shown
 
TI_Lib/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement_coff.lib (Binary) (added)
+++ TI_Lib/FPUfastRTS/c28/lib/rts2800_fpu32_fast_supplement_coff.lib
Binary file is not shown
 
TI_Lib/device/F2837xD_CodeStartBranch.asm (added)
+++ TI_Lib/device/F2837xD_CodeStartBranch.asm
This diff is skipped because there are too many other diffs.
 
TI_Lib/device/F2837xD_DBGIER.asm (added)
+++ TI_Lib/device/F2837xD_DBGIER.asm
This diff is skipped because there are too many other diffs.
 
TI_Lib/device/F2837xD_usDelay.asm (added)
+++ TI_Lib/device/F2837xD_usDelay.asm
This diff is skipped because there are too many other diffs.
 
TI_Lib/device/device.c (added)
+++ TI_Lib/device/device.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/device/device.h (added)
+++ TI_Lib/device/device.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/device/driverlib.h (added)
+++ TI_Lib/device/driverlib.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/adc.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/adc.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/adc.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/adc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/asysctl.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/asysctl.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/asysctl.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/asysctl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/can.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/can.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/can.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/can.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib_coff.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib_coff.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib_eabi.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Debug/driverlib_eabi.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib_coff.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib_coff.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib_eabi.lib (Binary) (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/Release/driverlib_eabi.lib
Binary file is not shown
 
TI_Lib/driverlib/f2837xd/driverlib/ccs/driverlib.projectspec (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ccs/driverlib.projectspec
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cla.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cla.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cla.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cla.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/clb.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/clb.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/clb.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/clb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cmpss.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cmpss.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cmpss.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cmpss.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cpu.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cpu.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cputimer.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cputimer.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/cputimer.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/cputimer.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dac.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dac.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dac.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dac.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dcsm.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dcsm.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dcsm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dcsm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/debug.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/debug.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dma.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dma.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/dma.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/dma.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/ecap.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ecap.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/ecap.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ecap.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/emif.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/emif.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/emif.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/emif.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/epwm.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/epwm.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/epwm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/epwm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/eqep.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/eqep.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/eqep.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/eqep.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/flash.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/flash.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/flash.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/flash.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/gpio.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/gpio.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/gpio.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/gpio.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/hrpwm.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/hrpwm.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/hrpwm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/hrpwm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/i2c.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/i2c.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/i2c.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/i2c.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_adc.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_adc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_asysctl.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_asysctl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_can.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_can.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cla.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cla.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_clb.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_clb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_clbxbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_clbxbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cmpss.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cmpss.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cputimer.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_cputimer.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dac.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dac.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dcsm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dcsm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dma.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_dma.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ecap.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ecap.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_emif.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_emif.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_epwm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_epwm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_epwmxbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_epwmxbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_eqep.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_eqep.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_flash.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_flash.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_gpio.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_gpio.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_hrpwm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_hrpwm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_i2c.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_i2c.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_inputxbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_inputxbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ints.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ints.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ipc.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_ipc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_mcbsp.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_mcbsp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_memcfg.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_memcfg.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_memmap.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_memmap.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_nmi.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_nmi.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_outputxbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_outputxbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_pie.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_pie.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sci.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sci.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sdfm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sdfm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_spi.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_spi.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sysctl.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_sysctl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_types.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_types.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_upp.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_upp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_usb.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_usb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_xbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/inc/hw_xint.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/inc/hw_xint.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/interrupt.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/interrupt.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/interrupt.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/interrupt.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/ipc.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ipc.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/ipc.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/ipc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/mcbsp.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/mcbsp.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/mcbsp.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/mcbsp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/memcfg.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/memcfg.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/memcfg.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/memcfg.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/pin_map.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/pin_map.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/pin_map_legacy.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/pin_map_legacy.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sci.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sci.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sci.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sci.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sdfm.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sdfm.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sdfm.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sdfm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/spi.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/spi.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/spi.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/spi.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sysctl.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sysctl.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/sysctl.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/sysctl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/upp.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/upp.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/upp.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/upp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/usb.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/usb.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/usb.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/usb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/version.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/version.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/version.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/version.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/xbar.c (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/xbar.c
This diff is skipped because there are too many other diffs.
 
TI_Lib/driverlib/f2837xd/driverlib/xbar.h (added)
+++ TI_Lib/driverlib/f2837xd/driverlib/xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Adc_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Adc_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Can_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Can_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Cla_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Cla_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Cla_typedefs.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Cla_typedefs.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Dma_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Dma_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_EPwm_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_EPwm_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Emif_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Emif_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Examples.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Examples.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_GlobalPrototypes.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_GlobalPrototypes.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Gpio_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Gpio_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_I2c_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_I2c_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Ipc_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Ipc_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Ipc_drivers.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Ipc_drivers.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Pie_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Pie_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_SWPrioritizedIsrLevels.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_SWPrioritizedIsrLevels.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_SysCtrl_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_SysCtrl_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Systick_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Systick_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_Upp_defines.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_Upp_defines.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_cputimervars.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_cputimervars.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_defaultisr.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_defaultisr.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_sci_io.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_sci_io.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_sdfm_drivers.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_sdfm_drivers.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F2837xD_struct.h (added)
+++ TI_Lib/f2837xd/common/include/F2837xD_struct.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/F28x_Project.h (added)
+++ TI_Lib/f2837xd/common/include/F28x_Project.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/include/include.zip (Binary) (added)
+++ TI_Lib/f2837xd/common/include/include.zip
Binary file is not shown
 
TI_Lib/f2837xd/common/include/sw_interrupt_prioritization_logic.h (added)
+++ TI_Lib/f2837xd/common/include/sw_interrupt_prioritization_logic.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/common/source/source.zip (Binary) (added)
+++ TI_Lib/f2837xd/common/source/source.zip
Binary file is not shown
 
TI_Lib/f2837xd/headers/include/F2837xD_adc.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_adc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_analogsubsys.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_analogsubsys.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_can.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_can.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_cla.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_cla.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_clb.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_clb.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_clbxbar.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_clbxbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_cmpss.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_cmpss.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_cputimer.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_cputimer.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_dac.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_dac.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_dcsm.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_dcsm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_device.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_device.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_dma.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_dma.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_ecap.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_ecap.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_emif.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_emif.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_epwm.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_epwm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_epwm_xbar.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_epwm_xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_eqep.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_eqep.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_flash.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_flash.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_gpio.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_gpio.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_i2c.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_i2c.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_input_xbar.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_input_xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_ipc.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_ipc.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_mcbsp.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_mcbsp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_memconfig.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_memconfig.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_nmiintrupt.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_nmiintrupt.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_output_xbar.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_output_xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_piectrl.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_piectrl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_pievect.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_pievect.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_sci.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_sci.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_sdfm.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_sdfm.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_spi.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_spi.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_sysctrl.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_sysctrl.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_upp.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_upp.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_xbar.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_xbar.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/include/F2837xD_xint.h (added)
+++ TI_Lib/f2837xd/headers/include/F2837xD_xint.h
This diff is skipped because there are too many other diffs.
 
TI_Lib/f2837xd/headers/source/F2837xD_GlobalVariableDefs.c (added)
+++ TI_Lib/f2837xd/headers/source/F2837xD_GlobalVariableDefs.c
This diff is skipped because there are too many other diffs.
 
sci/CCS/baud_tune_via_uart.projectspec (added)
+++ sci/CCS/baud_tune_via_uart.projectspec
This diff is skipped because there are too many other diffs.
 
sci/CCS/sci_ex1_loopback.projectspec (added)
+++ sci/CCS/sci_ex1_loopback.projectspec
This diff is skipped because there are too many other diffs.
 
sci/CCS/sci_ex2_loopback_interrupts.projectspec (added)
+++ sci/CCS/sci_ex2_loopback_interrupts.projectspec
This diff is skipped because there are too many other diffs.
 
sci/CCS/sci_ex3_echoback.projectspec (added)
+++ sci/CCS/sci_ex3_echoback.projectspec
This diff is skipped because there are too many other diffs.
 
sci/baud_tune_via_uart.c (added)
+++ sci/baud_tune_via_uart.c
This diff is skipped because there are too many other diffs.
 
sci/baud_tune_via_uart.syscfg (added)
+++ sci/baud_tune_via_uart.syscfg
This diff is skipped because there are too many other diffs.
 
sci/sci_ex1_loopback.c (added)
+++ sci/sci_ex1_loopback.c
This diff is skipped because there are too many other diffs.
 
sci/sci_ex1_loopback.syscfg (added)
+++ sci/sci_ex1_loopback.syscfg
This diff is skipped because there are too many other diffs.
 
sci/sci_ex2_loopback_interrupts.c (added)
+++ sci/sci_ex2_loopback_interrupts.c
This diff is skipped because there are too many other diffs.
 
sci/sci_ex3_echoback.c (added)
+++ sci/sci_ex3_echoback.c
This diff is skipped because there are too many other diffs.
Add a comment
List