Browse Source

MCU and ADC communication with pins PB3 and PB2

namrota ghosh 10 tháng trước cách đây
commit
cc011ef7f9
44 tập tin đã thay đổi với 5227 bổ sung0 xóa
  1. 17 0
      charge_controller_v7/.ccsproject
  2. 11 0
      charge_controller_v7/.clangd
  3. 99 0
      charge_controller_v7/.cproject
  4. 20 0
      charge_controller_v7/.project
  5. 3 0
      charge_controller_v7/.settings/org.eclipse.cdt.codan.core.prefs
  6. 8 0
      charge_controller_v7/.settings/org.eclipse.core.resources.prefs
  7. BIN
      charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_comm_controller.c.203F8B33309E2B48.idx
  8. BIN
      charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_comm_controller.h.8DD4C36B9014EBE6.idx
  9. BIN
      charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_controller.c.D084D0AF1C0F98F4.idx
  10. BIN
      charge_controller_v7/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.c.CD2F9AD1B4C264FA.idx
  11. BIN
      charge_controller_v7/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.h.6C46FDF13D1C9C02.idx
  12. 17 0
      charge_controller_v7/Debug/.clangd/compile_commands.json
  13. 7 0
      charge_controller_v7/Debug/ccsObjs.opt
  14. 371 0
      charge_controller_v7/Debug/charge_controller_v7.map
  15. BIN
      charge_controller_v7/Debug/charge_controller_v7.out
  16. 2487 0
      charge_controller_v7/Debug/charge_controller_v7_linkInfo.xml
  17. 53 0
      charge_controller_v7/Debug/device.cmd.genlibs
  18. 1 0
      charge_controller_v7/Debug/device.opt
  19. 68 0
      charge_controller_v7/Debug/device_linker.cmd
  20. 153 0
      charge_controller_v7/Debug/i2c_controller.d
  21. BIN
      charge_controller_v7/Debug/i2c_controller.o
  22. 156 0
      charge_controller_v7/Debug/makefile
  23. 8 0
      charge_controller_v7/Debug/objects.mk
  24. 129 0
      charge_controller_v7/Debug/sources.mk
  25. 64 0
      charge_controller_v7/Debug/startup_mspm0g350x_ticlang.d
  26. BIN
      charge_controller_v7/Debug/startup_mspm0g350x_ticlang.o
  27. 40 0
      charge_controller_v7/Debug/subdir_rules.mk
  28. 66 0
      charge_controller_v7/Debug/subdir_vars.mk
  29. 154 0
      charge_controller_v7/Debug/ti/comm_modules/i2c/controller/i2c_comm_controller.d
  30. BIN
      charge_controller_v7/Debug/ti/comm_modules/i2c/controller/i2c_comm_controller.o
  31. 13 0
      charge_controller_v7/Debug/ti/comm_modules/i2c/controller/subdir_rules.mk
  32. 24 0
      charge_controller_v7/Debug/ti/comm_modules/i2c/controller/subdir_vars.mk
  33. 146 0
      charge_controller_v7/Debug/ti_msp_dl_config.c
  34. 150 0
      charge_controller_v7/Debug/ti_msp_dl_config.d
  35. 114 0
      charge_controller_v7/Debug/ti_msp_dl_config.h
  36. BIN
      charge_controller_v7/Debug/ti_msp_dl_config.o
  37. 8 0
      charge_controller_v7/README.html
  38. 46 0
      charge_controller_v7/README.md
  39. 135 0
      charge_controller_v7/i2c_controller.c
  40. 56 0
      charge_controller_v7/i2c_controller.syscfg
  41. 22 0
      charge_controller_v7/targetConfigs/MSPM0G3507.ccxml
  42. 9 0
      charge_controller_v7/targetConfigs/readme.txt
  43. 321 0
      charge_controller_v7/ti/comm_modules/i2c/controller/i2c_comm_controller.c
  44. 251 0
      charge_controller_v7/ti/comm_modules/i2c/controller/i2c_comm_controller.h

+ 17 - 0
charge_controller_v7/.ccsproject

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+	<ccsVariant value="50:Theia-based"/>
+	<ccsVersion value="51.5.0"/>
+	<deviceFamily value="TMS470"/>
+	<connection value="common/targetdb/connections/TIXDS110_Connection.xml"/>
+	<createSlaveProjects value=""/>
+	<ignoreDefaultDeviceSettings value="true"/>
+	<ignoreDefaultCCSSettings value="true"/>
+	<templateProperties value="id=i2c_controller_LP_MSPM0G3507_nortos_ticlang.projectspec.charge_controller_v7,buildProfile=release,isHybrid=true"/>
+	<activeTargetConfiguration value="targetConfigs/MSPM0G3507.ccxml"/>
+	<isTargetConfigurationManual value="false"/>
+	<sourceLookupPath value="${COM_TI_MSPM0_SDK_INSTALL_DIR}/source/ti/driverlib"/>
+	<origin value="/home/ngosh/ti/mspm0_sdk_2_03_00_07/examples/nortos/LP_MSPM0G3507/comm_modules/i2c_controller/ticlang/i2c_controller_LP_MSPM0G3507_nortos_ticlang.projectspec"/>
+	<filesToOpen value="i2c_controller.syscfg,README.md"/>
+</projectOptions>

+ 11 - 0
charge_controller_v7/.clangd

@@ -0,0 +1,11 @@
+# This is an auto-generated file - do not add it to source-control
+
+CompileFlags:
+   CompilationDatabase: Debug/.clangd
+
+Diagnostics:
+   Suppress: '*'
+
+InlayHints:
+   Enabled: No
+

+ 99 - 0
charge_controller_v7/.cproject

@@ -0,0 +1,99 @@
+<?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.TMS470.Debug.1330295774">
+            <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1330295774" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                <externalSettings/>
+                <extensions>
+                    <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="com.ti.ccs.project.ErrorParser"/>
+                    <extension id="org.eclipse.cdt.core.GASErrorParser" point="com.ti.ccs.project.ErrorParser"/>
+                    <extension id="com.ti.ccs.errorparser.SysConfigErrorParser" point="com.ti.ccs.project.ErrorParser"/>
+                    <extension id="org.eclipse.cdt.core.GCCErrorParser" point="com.ti.ccs.project.ErrorParser"/>
+                    <extension id="com.ti.ccs.errorparser.CompilerErrorParser_TI" point="com.ti.ccs.project.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.TMS470.Debug.1330295774" name="Debug" parent="com.ti.ccstudio.buildDefinitions.TMS470.Debug">
+                    <folderInfo id="com.ti.ccstudio.buildDefinitions.TMS470.Debug.1330295774." name="/" resourcePath="">
+                        <toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain.1637705598" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.1016184618">
+                            <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1571723819" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+                                <listOptionValue value="DEVICE_CONFIGURATION_ID=Cortex M.MSPM0G3507"/>
+                                <listOptionValue value="DEVICE_CORE_ID="/>
+                                <listOptionValue value="DEVICE_ENDIANNESS=little"/>
+                                <listOptionValue value="OUTPUT_FORMAT=ELF"/>
+                                <listOptionValue value="CCS_MBS_VERSION=51.0.0"/>
+                                <listOptionValue value="RUNTIME_SUPPORT_LIBRARY="/>
+                                <listOptionValue value="OUTPUT_TYPE=executable"/>
+                                <listOptionValue value="PRODUCTS=MSPM0-SDK:2.3.0.07;sysconfig:1.22.0;"/>
+                                <listOptionValue value="PRODUCT_MACRO_IMPORTS={&quot;MSPM0-SDK&quot;:[&quot;${COM_TI_MSPM0_SDK_INCLUDE_PATH}&quot;,&quot;${COM_TI_MSPM0_SDK_LIBRARY_PATH}&quot;,&quot;${COM_TI_MSPM0_SDK_LIBRARIES}&quot;,&quot;${COM_TI_MSPM0_SDK_SYMBOLS}&quot;,&quot;${COM_TI_MSPM0_SDK_SYSCONFIG_MANIFEST}&quot;],&quot;sysconfig&quot;:[&quot;${SYSCONFIG_TOOL_INCLUDE_PATH}&quot;,&quot;${SYSCONFIG_TOOL_LIBRARY_PATH}&quot;,&quot;${SYSCONFIG_TOOL_LIBRARIES}&quot;,&quot;${SYSCONFIG_TOOL_SYMBOLS}&quot;,&quot;${SYSCONFIG_TOOL_SYSCONFIG_MANIFEST}&quot;]}"/>
+                            </option>
+                            <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1664574353" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="TICLANG_4.0.0.LTS" valueType="string"/>
+                            <targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.targetPlatformDebug.1064616742" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.targetPlatformDebug"/>
+                            <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.builderDebug.629463878" name="GNU Make.Debug" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.builderDebug"/>
+                            <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.compilerDebug.1210514165" name="Arm Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.compilerDebug">
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.GENERATE_DWARF_DEBUG.2076963267" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.GENERATE_DWARF_DEBUG" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.GENERATE_DWARF_DEBUG.GDWARF_3" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.ENDIAN_NESS__BIG_LITTLE.1270557865" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.ENDIAN_NESS__BIG_LITTLE" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.ENDIAN_NESS__BIG_LITTLE.MLITTLE_ENDIAN" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.INCLUDE_PATH.182970579" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.INCLUDE_PATH" valueType="includePath">
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_INCLUDE_PATH}"/>
+                                    <listOptionValue value="${SYSCONFIG_TOOL_INCLUDE_PATH}"/>
+                                    <listOptionValue value="${PROJECT_ROOT}"/>
+                                    <listOptionValue value="${PROJECT_ROOT}/${ConfigName}"/>
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_INSTALL_DIR}/source/third_party/CMSIS/Core/Include"/>
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_INSTALL_DIR}/source"/>
+                                </option>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.DEFINE.496609682" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.DEFINE" valueType="definedSymbols">
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_SYMBOLS}"/>
+                                    <listOptionValue value="${SYSCONFIG_TOOL_SYMBOLS}"/>
+                                </option>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.OPT_LEVEL.1723830578" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.OPT_LEVEL" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.OPT_LEVEL.2" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.CMD_FILE.808039626" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.CMD_FILE" valueType="stringList">
+                                    <listOptionValue value="device.opt"/>
+                                </option>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MCPU.1005915743" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MCPU" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MCPU.cortex-m0plus" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MARCH.159831634" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MARCH" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MARCH.thumbv6m" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MFLOAT_ABI.819878009" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MFLOAT_ABI" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.MFLOAT_ABI.soft" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.SELECT_PROCESSOR_MODE__ARM_THUMB.1942285759" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.SELECT_PROCESSOR_MODE__ARM_THUMB" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.SELECT_PROCESSOR_MODE__ARM_THUMB.MTHUMB" valueType="enumerated"/>
+                            </tool>
+                            <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.1016184618" name="Arm Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug">
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.OUTPUT_FILE.492385865" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.OUTPUT_FILE" value="${ProjName}.out" valueType="string"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.MAP_FILE.2004353664" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.MAP_FILE" value="${ProjName}.map" valueType="string"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.XML_LINK_INFO.1404399280" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.XML_LINK_INFO" value="${ProjName}_linkInfo.xml" valueType="string"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.DISPLAY_ERROR_NUMBER.1843336219" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.DIAG_WRAP.689832737" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.DIAG_WRAP.off" valueType="enumerated"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.REREAD_LIBS.672659646" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.REREAD_LIBS" value="false" valueType="boolean"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.SEARCH_PATH.1973937298" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.SEARCH_PATH" valueType="libPaths">
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_LIBRARY_PATH}"/>
+                                    <listOptionValue value="${SYSCONFIG_TOOL_LIBRARY_PATH}"/>
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_INSTALL_DIR}/source"/>
+                                    <listOptionValue value="${PROJECT_ROOT}"/>
+                                    <listOptionValue value="${PROJECT_BUILD_DIR}/syscfg"/>
+                                    <listOptionValue value="${CG_TOOL_ROOT}/lib"/>
+                                </option>
+                                <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.LIBRARY.518550382" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.linkerID.LIBRARY" valueType="libs">
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_LIBRARIES}"/>
+                                    <listOptionValue value="${SYSCONFIG_TOOL_LIBRARIES}"/>
+                                    <listOptionValue value="device.cmd.genlibs"/>
+                                    <listOptionValue value="libc.a"/>
+                                </option>
+                            </tool>
+                            <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.hex.1965667293" name="Arm Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.hex"/>
+                            <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.objcopy.757224353" name="Arm Objcopy Utility" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.objcopy"/>
+                            <tool id="com.ti.ccstudio.buildDefinitions.sysConfig.12016991" name="SysConfig" superClass="com.ti.ccstudio.buildDefinitions.sysConfig">
+                                <option id="com.ti.ccstudio.buildDefinitions.sysConfig.PRODUCTS.32951251" superClass="com.ti.ccstudio.buildDefinitions.sysConfig.PRODUCTS" valueType="stringList">
+                                    <listOptionValue value="${COM_TI_MSPM0_SDK_SYSCONFIG_MANIFEST}"/>
+                                    <listOptionValue value="${SYSCONFIG_TOOL_SYSCONFIG_MANIFEST}"/>
+                                </option>
+                                <option id="com.ti.ccstudio.buildDefinitions.sysConfig.OUTPUT_DIR__MANUAL.1482622122" superClass="com.ti.ccstudio.buildDefinitions.sysConfig.OUTPUT_DIR__MANUAL" value="." valueType="string"/>
+                                <option id="com.ti.ccstudio.buildDefinitions.sysConfig.DIRECTORY_MODE.2021565672" superClass="com.ti.ccstudio.buildDefinitions.sysConfig.DIRECTORY_MODE" value="com.ti.ccstudio.buildDefinitions.sysConfig.DIRECTORY_MODE.manual" valueType="enumerated"/>
+                            </tool>
+                        </toolChain>
+                    </folderInfo>
+                </configuration>
+            </storageModule>
+            <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+        </cconfiguration>
+    </storageModule>
+    <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+        <project id="charge_controller_v7.com.ti.ccstudio.buildDefinitions.TMS470.ProjectType.429570678" name="TMS470" projectType="com.ti.ccstudio.buildDefinitions.TMS470.ProjectType"/>
+    </storageModule>
+</cproject>

+ 20 - 0
charge_controller_v7/.project

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>charge_controller_v7</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+			<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>
+	</natures>
+</projectDescription>

+ 3 - 0
charge_controller_v7/.settings/org.eclipse.cdt.codan.core.prefs

@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+inEditor=false
+onBuild=false

+ 8 - 0
charge_controller_v7/.settings/org.eclipse.core.resources.prefs

@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+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//Debug/ti/comm_modules/i2c/controller/subdir_rules.mk=UTF-8
+encoding//Debug/ti/comm_modules/i2c/controller/subdir_vars.mk=UTF-8

BIN
charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_comm_controller.c.203F8B33309E2B48.idx


BIN
charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_comm_controller.h.8DD4C36B9014EBE6.idx


BIN
charge_controller_v7/Debug/.clangd/.cache/clangd/index/i2c_controller.c.D084D0AF1C0F98F4.idx


BIN
charge_controller_v7/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.c.CD2F9AD1B4C264FA.idx


BIN
charge_controller_v7/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.h.6C46FDF13D1C9C02.idx


+ 17 - 0
charge_controller_v7/Debug/.clangd/compile_commands.json

@@ -0,0 +1,17 @@
+[
+   {
+      "directory" : "/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug",
+      "command"   : "clang++ -D__MSPM0G3507__ -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7\" -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
+      "file"      : "/home/ngosh/workspace_ccstheia/charge_controller_v7/i2c_controller.c"
+   },
+   {
+      "directory" : "/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug",
+      "command"   : "clang++ -D__MSPM0G3507__ -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7\" -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
+      "file"      : "/home/ngosh/workspace_ccstheia/charge_controller_v7/ti/comm_modules/i2c/controller/i2c_comm_controller.c"
+   },
+   {
+      "directory" : "/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug",
+      "command"   : "clang++ -D__MSPM0G3507__ -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7\" -I\"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include\" -I\"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
+      "file"      : "/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/ti_msp_dl_config.c"
+   }
+]

+ 7 - 0
charge_controller_v7/Debug/ccsObjs.opt

@@ -0,0 +1,7 @@
+"./i2c_controller.o"
+"./ti_msp_dl_config.o"
+"./startup_mspm0g350x_ticlang.o"
+"./ti/comm_modules/i2c/controller/i2c_comm_controller.o"
+-l"./device_linker.cmd"
+-ldevice.cmd.genlibs
+-llibc.a

+ 371 - 0
charge_controller_v7/Debug/charge_controller_v7.map

@@ -0,0 +1,371 @@
+******************************************************************************
+            TI ARM Clang Linker Unix v4.0.0                    
+******************************************************************************
+>> Linked Fri Feb 14 09:18:04 2025
+
+OUTPUT FILE NAME:   <charge_controller_v7.out>
+ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 0000070d
+
+
+MEMORY CONFIGURATION
+
+         name            origin    length      used     unused   attr    fill
+----------------------  --------  ---------  --------  --------  ----  --------
+  FLASH                 00000000   00020000  00000870  0001f790  R  X
+  SRAM                  20200000   00008000  000002f1  00007d0f  RW X
+  BCR_CONFIG            41c00000   00000080  00000000  00000080  R   
+  BSL_CONFIG            41c00100   00000080  00000000  00000080  R   
+
+
+SEGMENT ALLOCATION MAP
+
+run origin  load origin   length   init length attrs members
+----------  ----------- ---------- ----------- ----- -------
+00000000    00000000    00000870   00000870    r-x
+  00000000    00000000    000000c0   000000c0    r-- .intvecs
+  000000c0    000000c0    00000760   00000760    r-x .text
+  00000820    00000820    00000008   00000008    r-- .rodata
+  00000828    00000828    00000048   00000048    r-- .cinit
+20200000    20200000    000000f1   00000000    rw-
+  20200000    20200000    000000b0   00000000    rw- .bss
+  202000b0    202000b0    00000041   00000000    rw- .data
+20207e00    20207e00    00000200   00000000    rw-
+  20207e00    20207e00    00000200   00000000    rw- .stack
+
+
+SECTION ALLOCATION MAP
+
+ output                                  attributes/
+section   page    origin      length       input sections
+--------  ----  ----------  ----------   ----------------
+.intvecs   0    00000000    000000c0     
+                  00000000    000000c0     startup_mspm0g350x_ticlang.o (.intvecs)
+
+.text      0    000000c0    00000760     
+                  000000c0    000001b4     i2c_comm_controller.o (.text.I2C_sendCommand)
+                  00000274    000000a0     i2c_controller.o (.text.main)
+                  00000314    0000009a     libc.a : memcpy16.S.obj (.text:memcpy)
+                  000003ae    00000002     startup_mspm0g350x_ticlang.o (.text.Default_Handler)
+                  000003b0    00000098     driverlib.a : dl_crc.o (.text.DL_CRC_calculateBlock16)
+                  00000448    00000090     i2c_comm_controller.o (.text.I2C_getResponse)
+                  000004d8    0000007c     libc.a : copy_decompress_lzss.c.obj (.text:decompress:lzss)
+                  00000554    0000006c     ti_msp_dl_config.o (.text.SYSCFG_DL_I2C_controller_init)
+                  000005c0    0000005e     driverlib.a : dl_i2c.o (.text.DL_I2C_fillControllerTXFIFO)
+                  0000061e    00000002     libclang_rt.builtins.a : aeabi_div0.c.obj (.text.__aeabi_idiv0)
+                  00000620    00000040     ti_msp_dl_config.o (.text.SYSCFG_DL_initPower)
+                  00000660    00000040     libclang_rt.builtins.a : aeabi_uidivmod.S.obj (.text.__aeabi_uidivmod)
+                  000006a0    0000003c     libc.a : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
+                  000006dc    00000030     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_init)
+                  0000070c    00000028     libc.a : boot_cortex_m.c.obj (.text:_c_int00_noargs)
+                  00000734    00000026     driverlib.a : dl_i2c.o (.text.DL_I2C_setClockConfig)
+                  0000075a    00000002     --HOLE-- [fill = 0]
+                  0000075c    00000024     ti_msp_dl_config.o (.text.SYSCFG_DL_GPIO_init)
+                  00000780    00000020     ti_msp_dl_config.o (.text.SYSCFG_DL_CRC_init)
+                  000007a0    0000001e     i2c_comm_controller.o (.text.I2C_init)
+                  000007be    00000018     ti_msp_dl_config.o (.text.SYSCFG_DL_init)
+                  000007d6    00000016     libc.a : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
+                  000007ec    00000012            : copy_decompress_none.c.obj (.text:decompress:none)
+                  000007fe    0000000a     driverlib.a : dl_common.o (.text.DL_Common_delayCycles)
+                  00000808    00000008     libclang_rt.builtins.a : aeabi_memcpy.S.obj (.text.__aeabi_memcpy)
+                  00000810    00000004     startup_mspm0g350x_ticlang.o (.text.Reset_Handler)
+                  00000814    00000004     libc.a : pre_init.c.obj (.text._system_pre_init)
+                  00000818    00000004            : exit.c.obj (.text:abort)
+                  0000081c    00000004     --HOLE-- [fill = 0]
+
+.cinit     0    00000828    00000048     
+                  00000828    00000023     (.cinit..data.load) [load image, compression = lzss]
+                  0000084b    00000001     --HOLE-- [fill = 0]
+                  0000084c    0000000c     (__TI_handler_table)
+                  00000858    00000008     (.cinit..bss.load) [load image, compression = zero_init]
+                  00000860    00000010     (__TI_cinit_table)
+
+.rodata    0    00000820    00000008     
+                  00000820    00000002     ti_msp_dl_config.o (.rodata.gI2C_controllerClockConfig)
+                  00000822    00000006     --HOLE-- [fill = 0]
+
+.init_array 
+*          0    00000000    00000000     UNINITIALIZED
+
+.binit     0    00000000    00000000     
+
+.bss       0    20200000    000000b0     UNINITIALIZED
+                  20200000    0000009c     (.common:gI2C)
+                  2020009c    00000014     (.common:gCommand)
+
+.data      0    202000b0    00000041     UNINITIALIZED
+                  202000b0    00000040     i2c_controller.o (.data.gTxData)
+                  202000f0    00000001     i2c_controller.o (.data.gSendCommand)
+
+.stack     0    20207e00    00000200     UNINITIALIZED
+                  20207e00    00000004     libc.a : boot_cortex_m.c.obj (.stack)
+                  20207e04    000001fc     --HOLE--
+
+__llvm_prf_cnts 
+*          0    20200000    00000000     UNINITIALIZED
+
+__llvm_prf_bits 
+*          0    20200000    00000000     UNINITIALIZED
+
+MODULE SUMMARY
+
+       Module                         code   ro data   rw data
+       ------                         ----   -------   -------
+    ./
+       i2c_controller.o               160    0         241    
+       ti_msp_dl_config.o             312    2         0      
+       startup_mspm0g350x_ticlang.o   6      192       0      
+    +--+------------------------------+------+---------+---------+
+       Total:                         478    194       241    
+                                                              
+    ./ti/comm_modules/i2c/controller/
+       i2c_comm_controller.o          610    0         0      
+    +--+------------------------------+------+---------+---------+
+       Total:                         610    0         0      
+                                                              
+    /home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/libc.a
+       memcpy16.S.obj                 154    0         0      
+       copy_decompress_lzss.c.obj     124    0         0      
+       autoinit.c.obj                 60     0         0      
+       boot_cortex_m.c.obj            40     0         0      
+       copy_zero_init.c.obj           22     0         0      
+       copy_decompress_none.c.obj     18     0         0      
+       exit.c.obj                     4      0         0      
+       pre_init.c.obj                 4      0         0      
+    +--+------------------------------+------+---------+---------+
+       Total:                         426    0         0      
+                                                              
+    /home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/libclang_rt.builtins.a
+       aeabi_uidivmod.S.obj           64     0         0      
+       aeabi_memcpy.S.obj             8      0         0      
+       aeabi_div0.c.obj               2      0         0      
+    +--+------------------------------+------+---------+---------+
+       Total:                         74     0         0      
+                                                              
+    /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/driverlib.a
+       dl_crc.o                       152    0         0      
+       dl_i2c.o                       132    0         0      
+       dl_common.o                    10     0         0      
+    +--+------------------------------+------+---------+---------+
+       Total:                         294    0         0      
+                                                              
+       Stack:                         0      0         512    
+       Linker Generated:              0      71        0      
+    +--+------------------------------+------+---------+---------+
+       Grand Total:                   1882   265       753    
+
+
+LINKER GENERATED COPY TABLES
+
+__TI_cinit_table @ 00000860 records: 2, size/record: 8, table size: 16
+	.data: load addr=00000828, load size=00000023 bytes, run addr=202000b0, run size=00000041 bytes, compression=lzss
+	.bss: load addr=00000858, load size=00000008 bytes, run addr=20200000, run size=000000b0 bytes, compression=zero_init
+
+
+LINKER GENERATED HANDLER TABLE
+
+__TI_handler_table @ 0000084c records: 3, size/record: 4, table size: 12
+	index: 0, handler: __TI_decompress_lzss
+	index: 1, handler: __TI_decompress_none
+	index: 2, handler: __TI_zero_init
+
+
+GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
+
+address   name                          
+-------   ----                          
+000003af  ADC0_IRQHandler               
+000003af  ADC1_IRQHandler               
+000003af  AES_IRQHandler                
+00000818  C$$EXIT                       
+000003af  CANFD0_IRQHandler             
+000003af  DAC0_IRQHandler               
+000003b1  DL_CRC_calculateBlock16       
+000007ff  DL_Common_delayCycles         
+000005c1  DL_I2C_fillControllerTXFIFO   
+00000735  DL_I2C_setClockConfig         
+000003af  DMA_IRQHandler                
+000003af  Default_Handler               
+000003af  GROUP0_IRQHandler             
+000003af  GROUP1_IRQHandler             
+000003af  HardFault_Handler             
+000003af  I2C0_IRQHandler               
+000003af  I2C1_IRQHandler               
+00000449  I2C_getResponse               
+000007a1  I2C_init                      
+000000c1  I2C_sendCommand               
+000003af  NMI_Handler                   
+000003af  PendSV_Handler                
+000003af  RTC_IRQHandler                
+00000811  Reset_Handler                 
+000003af  SPI0_IRQHandler               
+000003af  SPI1_IRQHandler               
+000003af  SVC_Handler                   
+00000781  SYSCFG_DL_CRC_init            
+0000075d  SYSCFG_DL_GPIO_init           
+00000555  SYSCFG_DL_I2C_controller_init 
+000006dd  SYSCFG_DL_SYSCTL_init         
+000007bf  SYSCFG_DL_init                
+00000621  SYSCFG_DL_initPower           
+000003af  SysTick_Handler               
+000003af  TIMA0_IRQHandler              
+000003af  TIMA1_IRQHandler              
+000003af  TIMG0_IRQHandler              
+000003af  TIMG12_IRQHandler             
+000003af  TIMG6_IRQHandler              
+000003af  TIMG7_IRQHandler              
+000003af  TIMG8_IRQHandler              
+000003af  UART0_IRQHandler              
+000003af  UART1_IRQHandler              
+000003af  UART2_IRQHandler              
+000003af  UART3_IRQHandler              
+20208000  __STACK_END                   
+00000200  __STACK_SIZE                  
+00000000  __TI_ATRegion0_region_sz      
+00000000  __TI_ATRegion0_src_addr       
+00000000  __TI_ATRegion0_trg_addr       
+00000000  __TI_ATRegion1_region_sz      
+00000000  __TI_ATRegion1_src_addr       
+00000000  __TI_ATRegion1_trg_addr       
+00000000  __TI_ATRegion2_region_sz      
+00000000  __TI_ATRegion2_src_addr       
+00000000  __TI_ATRegion2_trg_addr       
+00000860  __TI_CINIT_Base               
+00000870  __TI_CINIT_Limit              
+00000870  __TI_CINIT_Warm               
+0000084c  __TI_Handler_Table_Base       
+00000858  __TI_Handler_Table_Limit      
+000006a1  __TI_auto_init_nobinit_nopinit
+000004d9  __TI_decompress_lzss          
+000007ed  __TI_decompress_none          
+ffffffff  __TI_pprof_out_hndl           
+ffffffff  __TI_prof_data_size           
+ffffffff  __TI_prof_data_start          
+00000000  __TI_static_base__            
+000007d7  __TI_zero_init_nomemset       
+0000061f  __aeabi_idiv0                 
+00000809  __aeabi_memcpy                
+00000809  __aeabi_memcpy4               
+00000809  __aeabi_memcpy8               
+00000661  __aeabi_uidiv                 
+00000661  __aeabi_uidivmod              
+ffffffff  __binit__                     
+UNDEFED   __mpu_init                    
+20207e00  __stack                       
+20200000  __start___llvm_prf_bits       
+20200000  __start___llvm_prf_cnts       
+20200000  __stop___llvm_prf_bits        
+20200000  __stop___llvm_prf_cnts        
+0000070d  _c_int00_noargs               
+UNDEFED   _system_post_cinit            
+00000815  _system_pre_init              
+00000819  abort                         
+ffffffff  binit                         
+2020009c  gCommand                      
+20200000  gI2C                          
+202000f0  gSendCommand                  
+202000b0  gTxData                       
+00000000  interruptVectors              
+00000275  main                          
+00000315  memcpy                        
+
+
+GLOBAL SYMBOLS: SORTED BY Symbol Address 
+
+address   name                          
+-------   ----                          
+00000000  __TI_ATRegion0_region_sz      
+00000000  __TI_ATRegion0_src_addr       
+00000000  __TI_ATRegion0_trg_addr       
+00000000  __TI_ATRegion1_region_sz      
+00000000  __TI_ATRegion1_src_addr       
+00000000  __TI_ATRegion1_trg_addr       
+00000000  __TI_ATRegion2_region_sz      
+00000000  __TI_ATRegion2_src_addr       
+00000000  __TI_ATRegion2_trg_addr       
+00000000  __TI_static_base__            
+00000000  interruptVectors              
+000000c1  I2C_sendCommand               
+00000200  __STACK_SIZE                  
+00000275  main                          
+00000315  memcpy                        
+000003af  ADC0_IRQHandler               
+000003af  ADC1_IRQHandler               
+000003af  AES_IRQHandler                
+000003af  CANFD0_IRQHandler             
+000003af  DAC0_IRQHandler               
+000003af  DMA_IRQHandler                
+000003af  Default_Handler               
+000003af  GROUP0_IRQHandler             
+000003af  GROUP1_IRQHandler             
+000003af  HardFault_Handler             
+000003af  I2C0_IRQHandler               
+000003af  I2C1_IRQHandler               
+000003af  NMI_Handler                   
+000003af  PendSV_Handler                
+000003af  RTC_IRQHandler                
+000003af  SPI0_IRQHandler               
+000003af  SPI1_IRQHandler               
+000003af  SVC_Handler                   
+000003af  SysTick_Handler               
+000003af  TIMA0_IRQHandler              
+000003af  TIMA1_IRQHandler              
+000003af  TIMG0_IRQHandler              
+000003af  TIMG12_IRQHandler             
+000003af  TIMG6_IRQHandler              
+000003af  TIMG7_IRQHandler              
+000003af  TIMG8_IRQHandler              
+000003af  UART0_IRQHandler              
+000003af  UART1_IRQHandler              
+000003af  UART2_IRQHandler              
+000003af  UART3_IRQHandler              
+000003b1  DL_CRC_calculateBlock16       
+00000449  I2C_getResponse               
+000004d9  __TI_decompress_lzss          
+00000555  SYSCFG_DL_I2C_controller_init 
+000005c1  DL_I2C_fillControllerTXFIFO   
+0000061f  __aeabi_idiv0                 
+00000621  SYSCFG_DL_initPower           
+00000661  __aeabi_uidiv                 
+00000661  __aeabi_uidivmod              
+000006a1  __TI_auto_init_nobinit_nopinit
+000006dd  SYSCFG_DL_SYSCTL_init         
+0000070d  _c_int00_noargs               
+00000735  DL_I2C_setClockConfig         
+0000075d  SYSCFG_DL_GPIO_init           
+00000781  SYSCFG_DL_CRC_init            
+000007a1  I2C_init                      
+000007bf  SYSCFG_DL_init                
+000007d7  __TI_zero_init_nomemset       
+000007ed  __TI_decompress_none          
+000007ff  DL_Common_delayCycles         
+00000809  __aeabi_memcpy                
+00000809  __aeabi_memcpy4               
+00000809  __aeabi_memcpy8               
+00000811  Reset_Handler                 
+00000815  _system_pre_init              
+00000818  C$$EXIT                       
+00000819  abort                         
+0000084c  __TI_Handler_Table_Base       
+00000858  __TI_Handler_Table_Limit      
+00000860  __TI_CINIT_Base               
+00000870  __TI_CINIT_Limit              
+00000870  __TI_CINIT_Warm               
+20200000  __start___llvm_prf_bits       
+20200000  __start___llvm_prf_cnts       
+20200000  __stop___llvm_prf_bits        
+20200000  __stop___llvm_prf_cnts        
+20200000  gI2C                          
+2020009c  gCommand                      
+202000b0  gTxData                       
+202000f0  gSendCommand                  
+20207e00  __stack                       
+20208000  __STACK_END                   
+ffffffff  __TI_pprof_out_hndl           
+ffffffff  __TI_prof_data_size           
+ffffffff  __TI_prof_data_start          
+ffffffff  __binit__                     
+ffffffff  binit                         
+UNDEFED   __mpu_init                    
+UNDEFED   _system_post_cinit            
+
+[94 symbols]

BIN
charge_controller_v7/Debug/charge_controller_v7.out


+ 2487 - 0
charge_controller_v7/Debug/charge_controller_v7_linkInfo.xml

@@ -0,0 +1,2487 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<link_info>
+   <banner>TI ARM Clang Linker Unix v4.0.0.LTS</banner>
+   <copyright>Copyright (c) 1996-2018 Texas Instruments Incorporated</copyright>
+   <command_line>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmlnk -I/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib -o charge_controller_v7.out -mcharge_controller_v7.map -i/home/ngosh/ti/mspm0_sdk_2_03_00_07/source -i/home/ngosh/workspace_ccstheia/charge_controller_v7 -i/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/syscfg -i/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib --diag_wrap=off --display_error_number --warn_sections --xml_link_info=charge_controller_v7_linkInfo.xml --rom_model ./i2c_controller.o ./ti_msp_dl_config.o ./startup_mspm0g350x_ticlang.o ./ti/comm_modules/i2c/controller/i2c_comm_controller.o -l./device_linker.cmd -ldevice.cmd.genlibs -llibc.a --start-group -llibc++.a -llibc++abi.a -llibc.a -llibsys.a -llibsysbm.a -llibclang_rt.builtins.a -llibclang_rt.profile.a --end-group --cg_opt_level=2</command_line>
+   <link_time>0x67aefc3c</link_time>
+   <link_errors>0x0</link_errors>
+   <output_file>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/charge_controller_v7.out</output_file>
+   <entry_point>
+      <name>_c_int00_noargs</name>
+      <address>0x70d</address>
+   </entry_point>
+   <input_file_list>
+      <input_file id="fl-1">
+         <path>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/./</path>
+         <kind>object</kind>
+         <file>i2c_controller.o</file>
+         <name>i2c_controller.o</name>
+      </input_file>
+      <input_file id="fl-2">
+         <path>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/./</path>
+         <kind>object</kind>
+         <file>ti_msp_dl_config.o</file>
+         <name>ti_msp_dl_config.o</name>
+      </input_file>
+      <input_file id="fl-3">
+         <path>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/./</path>
+         <kind>object</kind>
+         <file>startup_mspm0g350x_ticlang.o</file>
+         <name>startup_mspm0g350x_ticlang.o</name>
+      </input_file>
+      <input_file id="fl-4">
+         <path>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/./ti/comm_modules/i2c/controller/</path>
+         <kind>object</kind>
+         <file>i2c_comm_controller.o</file>
+         <name>i2c_comm_controller.o</name>
+      </input_file>
+      <input_file id="fl-11">
+         <path>/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/</path>
+         <kind>object</kind>
+         <file>&lt;internal&gt;</file>
+         <name>&lt;internal&gt;</name>
+      </input_file>
+      <input_file id="fl-12">
+         <path>/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/</path>
+         <kind>archive</kind>
+         <file>driverlib.a</file>
+         <name>dl_common.o</name>
+      </input_file>
+      <input_file id="fl-13">
+         <path>/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/</path>
+         <kind>archive</kind>
+         <file>driverlib.a</file>
+         <name>dl_crc.o</name>
+      </input_file>
+      <input_file id="fl-14">
+         <path>/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/</path>
+         <kind>archive</kind>
+         <file>driverlib.a</file>
+         <name>dl_i2c.o</name>
+      </input_file>
+      <input_file id="fl-29">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>copy_zero_init.c.obj</name>
+      </input_file>
+      <input_file id="fl-2a">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>copy_decompress_none.c.obj</name>
+      </input_file>
+      <input_file id="fl-2b">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>copy_decompress_lzss.c.obj</name>
+      </input_file>
+      <input_file id="fl-2c">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>boot_cortex_m.c.obj</name>
+      </input_file>
+      <input_file id="fl-2d">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>mathacl_init.c.obj</name>
+      </input_file>
+      <input_file id="fl-2e">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>exit.c.obj</name>
+      </input_file>
+      <input_file id="fl-2f">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>_lock.c.obj</name>
+      </input_file>
+      <input_file id="fl-30">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>args_main.c.obj</name>
+      </input_file>
+      <input_file id="fl-31">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>autoinit.c.obj</name>
+      </input_file>
+      <input_file id="fl-32">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>pre_init.c.obj</name>
+      </input_file>
+      <input_file id="fl-33">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>cpy_tbl.c.obj</name>
+      </input_file>
+      <input_file id="fl-c9">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/</path>
+         <kind>archive</kind>
+         <file>libclang_rt.builtins.a</file>
+         <name>aeabi_memcpy.S.obj</name>
+      </input_file>
+      <input_file id="fl-ca">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/</path>
+         <kind>archive</kind>
+         <file>libclang_rt.builtins.a</file>
+         <name>aeabi_memset.S.obj</name>
+      </input_file>
+      <input_file id="fl-cb">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/</path>
+         <kind>archive</kind>
+         <file>libclang_rt.builtins.a</file>
+         <name>aeabi_uidivmod.S.obj</name>
+      </input_file>
+      <input_file id="fl-cc">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/</path>
+         <kind>archive</kind>
+         <file>libclang_rt.builtins.a</file>
+         <name>aeabi_div0.c.obj</name>
+      </input_file>
+      <input_file id="fl-cd">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>memcpy16.S.obj</name>
+      </input_file>
+      <input_file id="fl-ce">
+         <path>/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/armv6m-ti-none-eabi/c/</path>
+         <kind>archive</kind>
+         <file>libc.a</file>
+         <name>memset16.S.obj</name>
+      </input_file>
+   </input_file_list>
+   <object_component_list>
+      <object_component id="oc-18">
+         <name>.intvecs</name>
+         <load_address>0x0</load_address>
+         <readonly>true</readonly>
+         <run_address>0x0</run_address>
+         <size>0xc0</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-87">
+         <name>.text.I2C_sendCommand</name>
+         <load_address>0xc0</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0xc0</run_address>
+         <size>0x1b4</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-63">
+         <name>.text.main</name>
+         <load_address>0x274</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x274</run_address>
+         <size>0xa0</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-78">
+         <name>.text:memcpy</name>
+         <load_address>0x314</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x314</run_address>
+         <size>0x9a</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+      <object_component id="oc-33">
+         <name>.text.Default_Handler</name>
+         <load_address>0x3ae</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x3ae</run_address>
+         <size>0x2</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-ba">
+         <name>.text.DL_CRC_calculateBlock16</name>
+         <load_address>0x3b0</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x3b0</run_address>
+         <size>0x98</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-89">
+         <name>.text.I2C_getResponse</name>
+         <load_address>0x448</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x448</run_address>
+         <size>0x90</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-1c">
+         <name>.text:decompress:lzss</name>
+         <load_address>0x4d8</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x4d8</run_address>
+         <size>0x7c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-b4">
+         <name>.text.SYSCFG_DL_I2C_controller_init</name>
+         <load_address>0x554</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x554</run_address>
+         <size>0x6c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-c0">
+         <name>.text.DL_I2C_fillControllerTXFIFO</name>
+         <load_address>0x5c0</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x5c0</run_address>
+         <size>0x5e</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-ed">
+         <name>.text.__aeabi_idiv0</name>
+         <load_address>0x61e</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x61e</run_address>
+         <size>0x2</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-b0">
+         <name>.text.SYSCFG_DL_initPower</name>
+         <load_address>0x620</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x620</run_address>
+         <size>0x40</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-d9">
+         <name>.text.__aeabi_uidivmod</name>
+         <load_address>0x660</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x660</run_address>
+         <size>0x40</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-cb"/>
+      </object_component>
+      <object_component id="oc-97">
+         <name>.text:__TI_auto_init_nobinit_nopinit</name>
+         <load_address>0x6a0</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x6a0</run_address>
+         <size>0x3c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-b2">
+         <name>.text.SYSCFG_DL_SYSCTL_init</name>
+         <load_address>0x6dc</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x6dc</run_address>
+         <size>0x30</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-4f">
+         <name>.text:_c_int00_noargs</name>
+         <load_address>0x70c</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x70c</run_address>
+         <size>0x28</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-d7">
+         <name>.text.DL_I2C_setClockConfig</name>
+         <load_address>0x734</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x734</run_address>
+         <size>0x26</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-b1">
+         <name>.text.SYSCFG_DL_GPIO_init</name>
+         <load_address>0x75c</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x75c</run_address>
+         <size>0x24</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-b5">
+         <name>.text.SYSCFG_DL_CRC_init</name>
+         <load_address>0x780</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x780</run_address>
+         <size>0x20</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-82">
+         <name>.text.I2C_init</name>
+         <load_address>0x7a0</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x7a0</run_address>
+         <size>0x1e</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-7d">
+         <name>.text.SYSCFG_DL_init</name>
+         <load_address>0x7be</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x7be</run_address>
+         <size>0x18</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-46">
+         <name>.text:decompress:ZI:__TI_zero_init_nomemset</name>
+         <load_address>0x7d6</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x7d6</run_address>
+         <size>0x16</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-20">
+         <name>.text:decompress:none</name>
+         <load_address>0x7ec</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x7ec</run_address>
+         <size>0x12</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-c6">
+         <name>.text.DL_Common_delayCycles</name>
+         <load_address>0x7fe</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x7fe</run_address>
+         <size>0xa</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-3f">
+         <name>.text.__aeabi_memcpy</name>
+         <load_address>0x808</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x808</run_address>
+         <size>0x8</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-c9"/>
+      </object_component>
+      <object_component id="oc-2f">
+         <name>.text.Reset_Handler</name>
+         <load_address>0x810</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x810</run_address>
+         <size>0x4</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-5f">
+         <name>.text._system_pre_init</name>
+         <load_address>0x814</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x814</run_address>
+         <size>0x4</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-90">
+         <name>.text:abort</name>
+         <load_address>0x818</load_address>
+         <readonly>true</readonly>
+         <executable>true</executable>
+         <run_address>0x818</run_address>
+         <size>0x4</size>
+         <alignment>0x2</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-137">
+         <name>.cinit..data.load</name>
+         <load_address>0x828</load_address>
+         <readonly>true</readonly>
+         <run_address>0x828</run_address>
+         <size>0x23</size>
+         <alignment>0x1</alignment>
+      </object_component>
+      <object_component id="oc-135">
+         <name>__TI_handler_table</name>
+         <load_address>0x84c</load_address>
+         <readonly>true</readonly>
+         <run_address>0x84c</run_address>
+         <size>0xc</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-138">
+         <name>.cinit..bss.load</name>
+         <load_address>0x858</load_address>
+         <readonly>true</readonly>
+         <run_address>0x858</run_address>
+         <size>0x8</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-136">
+         <name>__TI_cinit_table</name>
+         <load_address>0x860</load_address>
+         <readonly>true</readonly>
+         <run_address>0x860</run_address>
+         <size>0x10</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-d8">
+         <name>.rodata.gI2C_controllerClockConfig</name>
+         <load_address>0x820</load_address>
+         <readonly>true</readonly>
+         <run_address>0x820</run_address>
+         <size>0x2</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-ff">
+         <name>.binit</name>
+         <load_address>0x0</load_address>
+         <readonly>true</readonly>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-8d">
+         <name>.data.gSendCommand</name>
+         <load_address>0x202000f0</load_address>
+         <readwrite>true</readwrite>
+         <run_address>0x202000f0</run_address>
+         <size>0x1</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-8b">
+         <name>.data.gTxData</name>
+         <load_address>0x202000b0</load_address>
+         <readwrite>true</readwrite>
+         <run_address>0x202000b0</run_address>
+         <size>0x40</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-8a">
+         <name>.common:gI2C</name>
+         <uninitialized>true</uninitialized>
+         <readwrite>true</readwrite>
+         <run_address>0x20200000</run_address>
+         <size>0x9c</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-8c">
+         <name>.common:gCommand</name>
+         <uninitialized>true</uninitialized>
+         <readwrite>true</readwrite>
+         <run_address>0x2020009c</run_address>
+         <size>0x14</size>
+         <alignment>0x4</alignment>
+      </object_component>
+      <object_component id="oc-1a">
+         <name>.stack</name>
+         <uninitialized>true</uninitialized>
+         <readwrite>true</readwrite>
+         <run_address>0x20207e00</run_address>
+         <size>0x4</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-13a">
+         <name>.stack</name>
+         <uninitialized>true</uninitialized>
+         <readwrite>true</readwrite>
+         <run_address>0x20207e00</run_address>
+         <size>0x0</size>
+         <alignment>0x8</alignment>
+      </object_component>
+      <object_component id="oc-64">
+         <name>.debug_loc</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x6a</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-b3">
+         <name>.debug_loc</name>
+         <load_address>0x6a</load_address>
+         <run_address>0x6a</run_address>
+         <size>0x6c</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-88">
+         <name>.debug_loc</name>
+         <load_address>0xd6</load_address>
+         <run_address>0xd6</run_address>
+         <size>0x344</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-e3">
+         <name>.debug_loc</name>
+         <load_address>0x41a</load_address>
+         <run_address>0x41a</run_address>
+         <size>0x13</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-bb">
+         <name>.debug_loc</name>
+         <load_address>0x42d</load_address>
+         <run_address>0x42d</run_address>
+         <size>0x526</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-c1">
+         <name>.debug_loc</name>
+         <load_address>0x953</load_address>
+         <run_address>0x953</run_address>
+         <size>0x352</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-47">
+         <name>.debug_loc</name>
+         <load_address>0xca5</load_address>
+         <run_address>0xca5</run_address>
+         <size>0x16c</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-45">
+         <name>.debug_loc</name>
+         <load_address>0xe11</load_address>
+         <run_address>0xe11</run_address>
+         <size>0x6f</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-3d">
+         <name>.debug_loc</name>
+         <load_address>0xe80</load_address>
+         <run_address>0xe80</run_address>
+         <size>0x167</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-3a">
+         <name>.debug_loc</name>
+         <load_address>0xfe7</load_address>
+         <run_address>0xfe7</run_address>
+         <size>0xd8</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-96">
+         <name>.debug_loc</name>
+         <load_address>0x10bf</load_address>
+         <run_address>0x10bf</run_address>
+         <size>0x26</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-98">
+         <name>.debug_loc</name>
+         <load_address>0x10e5</load_address>
+         <run_address>0x10e5</run_address>
+         <size>0x424</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-f5">
+         <name>.debug_loc</name>
+         <load_address>0x1509</load_address>
+         <run_address>0x1509</run_address>
+         <size>0x20</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-8e">
+         <name>.debug_abbrev</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x1e2</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-b6">
+         <name>.debug_abbrev</name>
+         <load_address>0x1e2</load_address>
+         <run_address>0x1e2</run_address>
+         <size>0x1c7</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-34">
+         <name>.debug_abbrev</name>
+         <load_address>0x3a9</load_address>
+         <run_address>0x3a9</run_address>
+         <size>0x6d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-b8">
+         <name>.debug_abbrev</name>
+         <load_address>0x416</load_address>
+         <run_address>0x416</run_address>
+         <size>0x253</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-e1">
+         <name>.debug_abbrev</name>
+         <load_address>0x669</load_address>
+         <run_address>0x669</run_address>
+         <size>0x62</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-dd">
+         <name>.debug_abbrev</name>
+         <load_address>0x6cb</load_address>
+         <run_address>0x6cb</run_address>
+         <size>0x189</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-df">
+         <name>.debug_abbrev</name>
+         <load_address>0x854</load_address>
+         <run_address>0x854</run_address>
+         <size>0x1e7</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-58">
+         <name>.debug_abbrev</name>
+         <load_address>0xa3b</load_address>
+         <run_address>0xa3b</run_address>
+         <size>0xc2</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-43">
+         <name>.debug_abbrev</name>
+         <load_address>0xafd</load_address>
+         <run_address>0xafd</run_address>
+         <size>0x70</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-3b">
+         <name>.debug_abbrev</name>
+         <load_address>0xb6d</load_address>
+         <run_address>0xb6d</run_address>
+         <size>0x8d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-36">
+         <name>.debug_abbrev</name>
+         <load_address>0xbfa</load_address>
+         <run_address>0xbfa</run_address>
+         <size>0xaf</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-ca">
+         <name>.debug_abbrev</name>
+         <load_address>0xca9</load_address>
+         <run_address>0xca9</run_address>
+         <size>0xb3</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-d0">
+         <name>.debug_abbrev</name>
+         <load_address>0xd5c</load_address>
+         <run_address>0xd5c</run_address>
+         <size>0x170</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-7b">
+         <name>.debug_abbrev</name>
+         <load_address>0xecc</load_address>
+         <run_address>0xecc</run_address>
+         <size>0x39</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-57">
+         <name>.debug_abbrev</name>
+         <load_address>0xf05</load_address>
+         <run_address>0xf05</run_address>
+         <size>0x27</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-c9"/>
+      </object_component>
+      <object_component id="oc-f2">
+         <name>.debug_abbrev</name>
+         <load_address>0xf2c</load_address>
+         <run_address>0xf2c</run_address>
+         <size>0x27</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cb"/>
+      </object_component>
+      <object_component id="oc-f3">
+         <name>.debug_abbrev</name>
+         <load_address>0xf53</load_address>
+         <run_address>0xf53</run_address>
+         <size>0x59</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-a9">
+         <name>.debug_abbrev</name>
+         <load_address>0xfac</load_address>
+         <run_address>0xfac</run_address>
+         <size>0x25</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+      <object_component id="oc-13c">
+         <name>.debug_abbrev</name>
+         <load_address>0xfd1</load_address>
+         <run_address>0xfd1</run_address>
+         <size>0xf</size>
+         <alignment>0x0</alignment>
+      </object_component>
+      <object_component id="oc-65">
+         <name>.debug_info</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0xc54</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-7e">
+         <name>.debug_info</name>
+         <load_address>0xc54</load_address>
+         <run_address>0xc54</run_address>
+         <size>0x1d53</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-19">
+         <name>.debug_info</name>
+         <load_address>0x29a7</load_address>
+         <run_address>0x29a7</run_address>
+         <size>0x80</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-83">
+         <name>.debug_info</name>
+         <load_address>0x2a27</load_address>
+         <run_address>0x2a27</run_address>
+         <size>0xf60</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-c7">
+         <name>.debug_info</name>
+         <load_address>0x3987</load_address>
+         <run_address>0x3987</run_address>
+         <size>0x75</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-bc">
+         <name>.debug_info</name>
+         <load_address>0x39fc</load_address>
+         <run_address>0x39fc</run_address>
+         <size>0x5cb</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-c2">
+         <name>.debug_info</name>
+         <load_address>0x3fc7</load_address>
+         <run_address>0x3fc7</run_address>
+         <size>0xca4</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-48">
+         <name>.debug_info</name>
+         <load_address>0x4c6b</load_address>
+         <run_address>0x4c6b</run_address>
+         <size>0x192</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-21">
+         <name>.debug_info</name>
+         <load_address>0x4dfd</load_address>
+         <run_address>0x4dfd</run_address>
+         <size>0xc6</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-1d">
+         <name>.debug_info</name>
+         <load_address>0x4ec3</load_address>
+         <run_address>0x4ec3</run_address>
+         <size>0x17c</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-1b">
+         <name>.debug_info</name>
+         <load_address>0x503f</load_address>
+         <run_address>0x503f</run_address>
+         <size>0x423</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-91">
+         <name>.debug_info</name>
+         <load_address>0x5462</load_address>
+         <run_address>0x5462</run_address>
+         <size>0xed</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-99">
+         <name>.debug_info</name>
+         <load_address>0x554f</load_address>
+         <run_address>0x554f</run_address>
+         <size>0x744</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-60">
+         <name>.debug_info</name>
+         <load_address>0x5c93</load_address>
+         <run_address>0x5c93</run_address>
+         <size>0x46</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-40">
+         <name>.debug_info</name>
+         <load_address>0x5cd9</load_address>
+         <run_address>0x5cd9</run_address>
+         <size>0x1a9</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-c9"/>
+      </object_component>
+      <object_component id="oc-dc">
+         <name>.debug_info</name>
+         <load_address>0x5e82</load_address>
+         <run_address>0x5e82</run_address>
+         <size>0x1cc</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cb"/>
+      </object_component>
+      <object_component id="oc-ee">
+         <name>.debug_info</name>
+         <load_address>0x604e</load_address>
+         <run_address>0x604e</run_address>
+         <size>0x85</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-74">
+         <name>.debug_info</name>
+         <load_address>0x60d3</load_address>
+         <run_address>0x60d3</run_address>
+         <size>0x302</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+      <object_component id="oc-13b">
+         <name>.debug_info</name>
+         <load_address>0x63d5</load_address>
+         <run_address>0x63d5</run_address>
+         <size>0xaf</size>
+         <alignment>0x0</alignment>
+      </object_component>
+      <object_component id="oc-66">
+         <name>.debug_ranges</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x30</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-7f">
+         <name>.debug_ranges</name>
+         <load_address>0x30</load_address>
+         <run_address>0x30</run_address>
+         <size>0x38</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-30">
+         <name>.debug_ranges</name>
+         <load_address>0x68</load_address>
+         <run_address>0x68</run_address>
+         <size>0x18</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-84">
+         <name>.debug_ranges</name>
+         <load_address>0x80</load_address>
+         <run_address>0x80</run_address>
+         <size>0xa8</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-bd">
+         <name>.debug_ranges</name>
+         <load_address>0x128</load_address>
+         <run_address>0x128</run_address>
+         <size>0xc8</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-c3">
+         <name>.debug_ranges</name>
+         <load_address>0x1f0</load_address>
+         <run_address>0x1f0</run_address>
+         <size>0x1d8</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-49">
+         <name>.debug_ranges</name>
+         <load_address>0x3c8</load_address>
+         <run_address>0x3c8</run_address>
+         <size>0x18</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-3e">
+         <name>.debug_ranges</name>
+         <load_address>0x3e0</load_address>
+         <run_address>0x3e0</run_address>
+         <size>0x50</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-39">
+         <name>.debug_ranges</name>
+         <load_address>0x430</load_address>
+         <run_address>0x430</run_address>
+         <size>0x48</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-92">
+         <name>.debug_ranges</name>
+         <load_address>0x478</load_address>
+         <run_address>0x478</run_address>
+         <size>0x18</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-9a">
+         <name>.debug_ranges</name>
+         <load_address>0x490</load_address>
+         <run_address>0x490</run_address>
+         <size>0x48</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-ef">
+         <name>.debug_ranges</name>
+         <load_address>0x4d8</load_address>
+         <run_address>0x4d8</run_address>
+         <size>0x18</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-77">
+         <name>.debug_ranges</name>
+         <load_address>0x4f0</load_address>
+         <run_address>0x4f0</run_address>
+         <size>0x28</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+      <object_component id="oc-8f">
+         <name>.debug_str</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0xd5c</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-b7">
+         <name>.debug_str</name>
+         <load_address>0xd5c</load_address>
+         <run_address>0xd5c</run_address>
+         <size>0x15f7</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-35">
+         <name>.debug_str</name>
+         <load_address>0x2353</load_address>
+         <run_address>0x2353</run_address>
+         <size>0x16d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-b9">
+         <name>.debug_str</name>
+         <load_address>0x24c0</load_address>
+         <run_address>0x24c0</run_address>
+         <size>0x809</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-e2">
+         <name>.debug_str</name>
+         <load_address>0x2cc9</load_address>
+         <run_address>0x2cc9</run_address>
+         <size>0x16d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-de">
+         <name>.debug_str</name>
+         <load_address>0x2e36</load_address>
+         <run_address>0x2e36</run_address>
+         <size>0x329</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-e0">
+         <name>.debug_str</name>
+         <load_address>0x315f</load_address>
+         <run_address>0x315f</run_address>
+         <size>0x8ae</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-59">
+         <name>.debug_str</name>
+         <load_address>0x3a0d</load_address>
+         <run_address>0x3a0d</run_address>
+         <size>0x1a3</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-44">
+         <name>.debug_str</name>
+         <load_address>0x3bb0</load_address>
+         <run_address>0x3bb0</run_address>
+         <size>0x170</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-3c">
+         <name>.debug_str</name>
+         <load_address>0x3d20</load_address>
+         <run_address>0x3d20</run_address>
+         <size>0x1dd</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-37">
+         <name>.debug_str</name>
+         <load_address>0x3efd</load_address>
+         <run_address>0x3efd</run_address>
+         <size>0x22d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-cb">
+         <name>.debug_str</name>
+         <load_address>0x412a</load_address>
+         <run_address>0x412a</run_address>
+         <size>0x147</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-d1">
+         <name>.debug_str</name>
+         <load_address>0x4271</load_address>
+         <run_address>0x4271</run_address>
+         <size>0x337</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-7c">
+         <name>.debug_str</name>
+         <load_address>0x45a8</load_address>
+         <run_address>0x45a8</run_address>
+         <size>0xfd</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-f4">
+         <name>.debug_str</name>
+         <load_address>0x46a5</load_address>
+         <run_address>0x46a5</run_address>
+         <size>0x1a3</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-67">
+         <name>.debug_frame</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x40</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-80">
+         <name>.debug_frame</name>
+         <load_address>0x40</load_address>
+         <run_address>0x40</run_address>
+         <size>0x8c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-31">
+         <name>.debug_frame</name>
+         <load_address>0xcc</load_address>
+         <run_address>0xcc</run_address>
+         <size>0x30</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-85">
+         <name>.debug_frame</name>
+         <load_address>0xfc</load_address>
+         <run_address>0xfc</run_address>
+         <size>0x88</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-c8">
+         <name>.debug_frame</name>
+         <load_address>0x184</load_address>
+         <run_address>0x184</run_address>
+         <size>0x20</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-be">
+         <name>.debug_frame</name>
+         <load_address>0x1a4</load_address>
+         <run_address>0x1a4</run_address>
+         <size>0x8c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-c4">
+         <name>.debug_frame</name>
+         <load_address>0x230</load_address>
+         <run_address>0x230</run_address>
+         <size>0x12c</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-4a">
+         <name>.debug_frame</name>
+         <load_address>0x35c</load_address>
+         <run_address>0x35c</run_address>
+         <size>0x38</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-22">
+         <name>.debug_frame</name>
+         <load_address>0x394</load_address>
+         <run_address>0x394</run_address>
+         <size>0x28</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-1e">
+         <name>.debug_frame</name>
+         <load_address>0x3bc</load_address>
+         <run_address>0x3bc</run_address>
+         <size>0x30</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-4e">
+         <name>.debug_frame</name>
+         <load_address>0x3ec</load_address>
+         <run_address>0x3ec</run_address>
+         <size>0x90</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-93">
+         <name>.debug_frame</name>
+         <load_address>0x47c</load_address>
+         <run_address>0x47c</run_address>
+         <size>0x30</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-9b">
+         <name>.debug_frame</name>
+         <load_address>0x4ac</load_address>
+         <run_address>0x4ac</run_address>
+         <size>0x100</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-61">
+         <name>.debug_frame</name>
+         <load_address>0x5ac</load_address>
+         <run_address>0x5ac</run_address>
+         <size>0x20</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-f0">
+         <name>.debug_frame</name>
+         <load_address>0x5cc</load_address>
+         <run_address>0x5cc</run_address>
+         <size>0x30</size>
+         <alignment>0x4</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-68">
+         <name>.debug_line</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x38d</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-1"/>
+      </object_component>
+      <object_component id="oc-81">
+         <name>.debug_line</name>
+         <load_address>0x38d</load_address>
+         <run_address>0x38d</run_address>
+         <size>0x58f</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2"/>
+      </object_component>
+      <object_component id="oc-32">
+         <name>.debug_line</name>
+         <load_address>0x91c</load_address>
+         <run_address>0x91c</run_address>
+         <size>0xc1</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-3"/>
+      </object_component>
+      <object_component id="oc-86">
+         <name>.debug_line</name>
+         <load_address>0x9dd</load_address>
+         <run_address>0x9dd</run_address>
+         <size>0x847</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-4"/>
+      </object_component>
+      <object_component id="oc-c9">
+         <name>.debug_line</name>
+         <load_address>0x1224</load_address>
+         <run_address>0x1224</run_address>
+         <size>0x178</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-12"/>
+      </object_component>
+      <object_component id="oc-bf">
+         <name>.debug_line</name>
+         <load_address>0x139c</load_address>
+         <run_address>0x139c</run_address>
+         <size>0x45e</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-13"/>
+      </object_component>
+      <object_component id="oc-c5">
+         <name>.debug_line</name>
+         <load_address>0x17fa</load_address>
+         <run_address>0x17fa</run_address>
+         <size>0x682</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-14"/>
+      </object_component>
+      <object_component id="oc-4b">
+         <name>.debug_line</name>
+         <load_address>0x1e7c</load_address>
+         <run_address>0x1e7c</run_address>
+         <size>0x106</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-29"/>
+      </object_component>
+      <object_component id="oc-23">
+         <name>.debug_line</name>
+         <load_address>0x1f82</load_address>
+         <run_address>0x1f82</run_address>
+         <size>0x63</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2a"/>
+      </object_component>
+      <object_component id="oc-1f">
+         <name>.debug_line</name>
+         <load_address>0x1fe5</load_address>
+         <run_address>0x1fe5</run_address>
+         <size>0x10e</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2b"/>
+      </object_component>
+      <object_component id="oc-38">
+         <name>.debug_line</name>
+         <load_address>0x20f3</load_address>
+         <run_address>0x20f3</run_address>
+         <size>0x1dc</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2c"/>
+      </object_component>
+      <object_component id="oc-94">
+         <name>.debug_line</name>
+         <load_address>0x22cf</load_address>
+         <run_address>0x22cf</run_address>
+         <size>0x69</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-2e"/>
+      </object_component>
+      <object_component id="oc-9c">
+         <name>.debug_line</name>
+         <load_address>0x2338</load_address>
+         <run_address>0x2338</run_address>
+         <size>0x403</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-31"/>
+      </object_component>
+      <object_component id="oc-62">
+         <name>.debug_line</name>
+         <load_address>0x273b</load_address>
+         <run_address>0x273b</run_address>
+         <size>0x3e</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-32"/>
+      </object_component>
+      <object_component id="oc-42">
+         <name>.debug_line</name>
+         <load_address>0x2779</load_address>
+         <run_address>0x2779</run_address>
+         <size>0xac</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-c9"/>
+      </object_component>
+      <object_component id="oc-db">
+         <name>.debug_line</name>
+         <load_address>0x2825</load_address>
+         <run_address>0x2825</run_address>
+         <size>0xca</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cb"/>
+      </object_component>
+      <object_component id="oc-f1">
+         <name>.debug_line</name>
+         <load_address>0x28ef</load_address>
+         <run_address>0x28ef</run_address>
+         <size>0xbd</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cc"/>
+      </object_component>
+      <object_component id="oc-76">
+         <name>.debug_line</name>
+         <load_address>0x29ac</load_address>
+         <run_address>0x29ac</run_address>
+         <size>0xa0</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+      <object_component id="oc-41">
+         <name>.debug_aranges</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x20</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-c9"/>
+      </object_component>
+      <object_component id="oc-da">
+         <name>.debug_aranges</name>
+         <load_address>0x20</load_address>
+         <run_address>0x20</run_address>
+         <size>0x20</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cb"/>
+      </object_component>
+      <object_component id="oc-75">
+         <name>.debug_aranges</name>
+         <load_address>0x40</load_address>
+         <run_address>0x40</run_address>
+         <size>0x28</size>
+         <alignment>0x1</alignment>
+         <input_file_ref idref="fl-cd"/>
+      </object_component>
+   </object_component_list>
+   <logical_group_list>
+      <logical_group id="lg-2" display="no" color="cyan">
+         <name>.intvecs</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0xc0</size>
+         <contents>
+            <object_component_ref idref="oc-18"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-3" display="no" color="cyan">
+         <name>.text</name>
+         <load_address>0xc0</load_address>
+         <run_address>0xc0</run_address>
+         <size>0x760</size>
+         <contents>
+            <object_component_ref idref="oc-87"/>
+            <object_component_ref idref="oc-63"/>
+            <object_component_ref idref="oc-78"/>
+            <object_component_ref idref="oc-33"/>
+            <object_component_ref idref="oc-ba"/>
+            <object_component_ref idref="oc-89"/>
+            <object_component_ref idref="oc-1c"/>
+            <object_component_ref idref="oc-b4"/>
+            <object_component_ref idref="oc-c0"/>
+            <object_component_ref idref="oc-ed"/>
+            <object_component_ref idref="oc-b0"/>
+            <object_component_ref idref="oc-d9"/>
+            <object_component_ref idref="oc-97"/>
+            <object_component_ref idref="oc-b2"/>
+            <object_component_ref idref="oc-4f"/>
+            <object_component_ref idref="oc-d7"/>
+            <object_component_ref idref="oc-b1"/>
+            <object_component_ref idref="oc-b5"/>
+            <object_component_ref idref="oc-82"/>
+            <object_component_ref idref="oc-7d"/>
+            <object_component_ref idref="oc-46"/>
+            <object_component_ref idref="oc-20"/>
+            <object_component_ref idref="oc-c6"/>
+            <object_component_ref idref="oc-3f"/>
+            <object_component_ref idref="oc-2f"/>
+            <object_component_ref idref="oc-5f"/>
+            <object_component_ref idref="oc-90"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-4" display="no" color="cyan">
+         <name>.const</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-5" display="no" color="cyan">
+         <name>.cinit</name>
+         <load_address>0x828</load_address>
+         <run_address>0x828</run_address>
+         <size>0x48</size>
+         <contents>
+            <object_component_ref idref="oc-137"/>
+            <object_component_ref idref="oc-135"/>
+            <object_component_ref idref="oc-138"/>
+            <object_component_ref idref="oc-136"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-6" display="no" color="cyan">
+         <name>.pinit</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-7" display="no" color="cyan">
+         <name>.rodata</name>
+         <load_address>0x820</load_address>
+         <run_address>0x820</run_address>
+         <size>0x8</size>
+         <contents>
+            <object_component_ref idref="oc-d8"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-8" display="no" color="cyan">
+         <name>.ARM.exidx</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-9" display="no" color="cyan">
+         <name>.init_array</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-a" display="no" color="cyan">
+         <name>.binit</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+            <object_component_ref idref="oc-ff"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-b" display="no" color="cyan">
+         <name>.TI.ramfunc</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-c" display="no" color="cyan">
+         <name>.vtable</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-d" display="no" color="cyan">
+         <name>.args</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-e" display="no" color="cyan">
+         <name>.data</name>
+         <run_address>0x202000b0</run_address>
+         <size>0x41</size>
+         <contents>
+            <object_component_ref idref="oc-8d"/>
+            <object_component_ref idref="oc-8b"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-f" display="no" color="cyan">
+         <name>.bss</name>
+         <run_address>0x20200000</run_address>
+         <size>0xb0</size>
+         <contents>
+            <object_component_ref idref="oc-8a"/>
+            <object_component_ref idref="oc-8c"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-10" display="no" color="cyan">
+         <name>.sysmem</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-11" display="no" color="cyan">
+         <name>.stack</name>
+         <run_address>0x20207e00</run_address>
+         <size>0x200</size>
+         <contents>
+            <object_component_ref idref="oc-1a"/>
+            <object_component_ref idref="oc-13a"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-12" display="no" color="cyan">
+         <name>.BCRConfig</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-13" display="no" color="cyan">
+         <name>.BSLConfig</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-f6" display="no" color="cyan">
+         <name>.TI.noinit</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-f7" display="no" color="cyan">
+         <name>.TI.persistent</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-f8" display="no" color="cyan">
+         <name>.TI.local</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-f9" display="no" color="cyan">
+         <name>.TI.onchip</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-fa" display="no" color="cyan">
+         <name>.TI.offchip</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-fb" display="no" color="cyan">
+         <name>__llvm_prf_cnts</name>
+         <run_address>0x20200000</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-fd" display="no" color="cyan">
+         <name>__llvm_prf_bits</name>
+         <run_address>0x20200000</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-119" display="never" color="cyan">
+         <name>.debug_loc</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x1529</size>
+         <contents>
+            <object_component_ref idref="oc-64"/>
+            <object_component_ref idref="oc-b3"/>
+            <object_component_ref idref="oc-88"/>
+            <object_component_ref idref="oc-e3"/>
+            <object_component_ref idref="oc-bb"/>
+            <object_component_ref idref="oc-c1"/>
+            <object_component_ref idref="oc-47"/>
+            <object_component_ref idref="oc-45"/>
+            <object_component_ref idref="oc-3d"/>
+            <object_component_ref idref="oc-3a"/>
+            <object_component_ref idref="oc-96"/>
+            <object_component_ref idref="oc-98"/>
+            <object_component_ref idref="oc-f5"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-11b" display="never" color="cyan">
+         <name>.debug_abbrev</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0xfe0</size>
+         <contents>
+            <object_component_ref idref="oc-8e"/>
+            <object_component_ref idref="oc-b6"/>
+            <object_component_ref idref="oc-34"/>
+            <object_component_ref idref="oc-b8"/>
+            <object_component_ref idref="oc-e1"/>
+            <object_component_ref idref="oc-dd"/>
+            <object_component_ref idref="oc-df"/>
+            <object_component_ref idref="oc-58"/>
+            <object_component_ref idref="oc-43"/>
+            <object_component_ref idref="oc-3b"/>
+            <object_component_ref idref="oc-36"/>
+            <object_component_ref idref="oc-ca"/>
+            <object_component_ref idref="oc-d0"/>
+            <object_component_ref idref="oc-7b"/>
+            <object_component_ref idref="oc-57"/>
+            <object_component_ref idref="oc-f2"/>
+            <object_component_ref idref="oc-f3"/>
+            <object_component_ref idref="oc-a9"/>
+            <object_component_ref idref="oc-13c"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-11d" display="never" color="cyan">
+         <name>.debug_info</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x6484</size>
+         <contents>
+            <object_component_ref idref="oc-65"/>
+            <object_component_ref idref="oc-7e"/>
+            <object_component_ref idref="oc-19"/>
+            <object_component_ref idref="oc-83"/>
+            <object_component_ref idref="oc-c7"/>
+            <object_component_ref idref="oc-bc"/>
+            <object_component_ref idref="oc-c2"/>
+            <object_component_ref idref="oc-48"/>
+            <object_component_ref idref="oc-21"/>
+            <object_component_ref idref="oc-1d"/>
+            <object_component_ref idref="oc-1b"/>
+            <object_component_ref idref="oc-91"/>
+            <object_component_ref idref="oc-99"/>
+            <object_component_ref idref="oc-60"/>
+            <object_component_ref idref="oc-40"/>
+            <object_component_ref idref="oc-dc"/>
+            <object_component_ref idref="oc-ee"/>
+            <object_component_ref idref="oc-74"/>
+            <object_component_ref idref="oc-13b"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-11f" display="never" color="cyan">
+         <name>.debug_ranges</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x518</size>
+         <contents>
+            <object_component_ref idref="oc-66"/>
+            <object_component_ref idref="oc-7f"/>
+            <object_component_ref idref="oc-30"/>
+            <object_component_ref idref="oc-84"/>
+            <object_component_ref idref="oc-bd"/>
+            <object_component_ref idref="oc-c3"/>
+            <object_component_ref idref="oc-49"/>
+            <object_component_ref idref="oc-3e"/>
+            <object_component_ref idref="oc-39"/>
+            <object_component_ref idref="oc-92"/>
+            <object_component_ref idref="oc-9a"/>
+            <object_component_ref idref="oc-ef"/>
+            <object_component_ref idref="oc-77"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-121" display="never" color="cyan">
+         <name>.debug_str</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x4848</size>
+         <contents>
+            <object_component_ref idref="oc-8f"/>
+            <object_component_ref idref="oc-b7"/>
+            <object_component_ref idref="oc-35"/>
+            <object_component_ref idref="oc-b9"/>
+            <object_component_ref idref="oc-e2"/>
+            <object_component_ref idref="oc-de"/>
+            <object_component_ref idref="oc-e0"/>
+            <object_component_ref idref="oc-59"/>
+            <object_component_ref idref="oc-44"/>
+            <object_component_ref idref="oc-3c"/>
+            <object_component_ref idref="oc-37"/>
+            <object_component_ref idref="oc-cb"/>
+            <object_component_ref idref="oc-d1"/>
+            <object_component_ref idref="oc-7c"/>
+            <object_component_ref idref="oc-f4"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-123" display="never" color="cyan">
+         <name>.debug_frame</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x5fc</size>
+         <contents>
+            <object_component_ref idref="oc-67"/>
+            <object_component_ref idref="oc-80"/>
+            <object_component_ref idref="oc-31"/>
+            <object_component_ref idref="oc-85"/>
+            <object_component_ref idref="oc-c8"/>
+            <object_component_ref idref="oc-be"/>
+            <object_component_ref idref="oc-c4"/>
+            <object_component_ref idref="oc-4a"/>
+            <object_component_ref idref="oc-22"/>
+            <object_component_ref idref="oc-1e"/>
+            <object_component_ref idref="oc-4e"/>
+            <object_component_ref idref="oc-93"/>
+            <object_component_ref idref="oc-9b"/>
+            <object_component_ref idref="oc-61"/>
+            <object_component_ref idref="oc-f0"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-125" display="never" color="cyan">
+         <name>.debug_line</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x2a4c</size>
+         <contents>
+            <object_component_ref idref="oc-68"/>
+            <object_component_ref idref="oc-81"/>
+            <object_component_ref idref="oc-32"/>
+            <object_component_ref idref="oc-86"/>
+            <object_component_ref idref="oc-c9"/>
+            <object_component_ref idref="oc-bf"/>
+            <object_component_ref idref="oc-c5"/>
+            <object_component_ref idref="oc-4b"/>
+            <object_component_ref idref="oc-23"/>
+            <object_component_ref idref="oc-1f"/>
+            <object_component_ref idref="oc-38"/>
+            <object_component_ref idref="oc-94"/>
+            <object_component_ref idref="oc-9c"/>
+            <object_component_ref idref="oc-62"/>
+            <object_component_ref idref="oc-42"/>
+            <object_component_ref idref="oc-db"/>
+            <object_component_ref idref="oc-f1"/>
+            <object_component_ref idref="oc-76"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-12f" display="never" color="cyan">
+         <name>.debug_aranges</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x68</size>
+         <contents>
+            <object_component_ref idref="oc-41"/>
+            <object_component_ref idref="oc-da"/>
+            <object_component_ref idref="oc-75"/>
+         </contents>
+      </logical_group>
+      <logical_group id="lg-139" display="no" color="cyan">
+         <name>Veneer$$CMSE</name>
+         <run_address>0x0</run_address>
+         <size>0x0</size>
+         <contents>
+         </contents>
+      </logical_group>
+      <load_segment id="lg-141" display="no" color="cyan">
+         <name>SEGMENT_0</name>
+         <load_address>0x0</load_address>
+         <run_address>0x0</run_address>
+         <size>0x870</size>
+         <flags>0x5</flags>
+         <contents>
+            <logical_group_ref idref="lg-2"/>
+            <logical_group_ref idref="lg-3"/>
+            <logical_group_ref idref="lg-7"/>
+            <logical_group_ref idref="lg-5"/>
+         </contents>
+      </load_segment>
+      <load_segment id="lg-142" display="no" color="cyan">
+         <name>SEGMENT_1</name>
+         <run_address>0x20200000</run_address>
+         <size>0xf1</size>
+         <flags>0x6</flags>
+         <contents>
+            <logical_group_ref idref="lg-f"/>
+            <logical_group_ref idref="lg-e"/>
+         </contents>
+      </load_segment>
+      <load_segment id="lg-143" display="no" color="cyan">
+         <name>SEGMENT_2</name>
+         <run_address>0x20207e00</run_address>
+         <size>0x200</size>
+         <flags>0x6</flags>
+         <contents>
+            <logical_group_ref idref="lg-11"/>
+         </contents>
+      </load_segment>
+   </logical_group_list>
+   <placement_map>
+      <memory_area display="yes" color="green">
+         <name>FLASH</name>
+         <page_id>0x0</page_id>
+         <origin>0x0</origin>
+         <length>0x20000</length>
+         <used_space>0x870</used_space>
+         <unused_space>0x1f790</unused_space>
+         <attributes>RX</attributes>
+         <usage_details>
+            <allocated_space>
+               <start_address>0x0</start_address>
+               <size>0x0</size>
+               <logical_group_ref idref="lg-a"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x0</start_address>
+               <size>0xc0</size>
+               <logical_group_ref idref="lg-2"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0xc0</start_address>
+               <size>0x760</size>
+               <logical_group_ref idref="lg-3"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x820</start_address>
+               <size>0x8</size>
+               <logical_group_ref idref="lg-7"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x828</start_address>
+               <size>0x48</size>
+               <logical_group_ref idref="lg-5"/>
+            </allocated_space>
+            <available_space>
+               <start_address>0x870</start_address>
+               <size>0x1f790</size>
+            </available_space>
+         </usage_details>
+      </memory_area>
+      <memory_area display="yes" color="green">
+         <name>SRAM</name>
+         <page_id>0x0</page_id>
+         <origin>0x20200000</origin>
+         <length>0x8000</length>
+         <used_space>0x2f1</used_space>
+         <unused_space>0x7d0f</unused_space>
+         <attributes>RWX</attributes>
+         <usage_details>
+            <allocated_space>
+               <start_address>0x20200000</start_address>
+               <size>0x0</size>
+               <logical_group_ref idref="lg-fb"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x20200000</start_address>
+               <size>0x0</size>
+               <logical_group_ref idref="lg-fd"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x20200000</start_address>
+               <size>0xb0</size>
+               <logical_group_ref idref="lg-f"/>
+            </allocated_space>
+            <allocated_space>
+               <start_address>0x202000b0</start_address>
+               <size>0x41</size>
+               <logical_group_ref idref="lg-e"/>
+            </allocated_space>
+            <available_space>
+               <start_address>0x202000f1</start_address>
+               <size>0x7d0f</size>
+            </available_space>
+            <allocated_space>
+               <start_address>0x20207e00</start_address>
+               <size>0x200</size>
+               <logical_group_ref idref="lg-11"/>
+            </allocated_space>
+         </usage_details>
+      </memory_area>
+      <memory_area display="yes" color="green">
+         <name>BCR_CONFIG</name>
+         <page_id>0x0</page_id>
+         <origin>0x41c00000</origin>
+         <length>0x80</length>
+         <used_space>0x0</used_space>
+         <unused_space>0x80</unused_space>
+         <attributes>R</attributes>
+         <usage_details>
+         </usage_details>
+      </memory_area>
+      <memory_area display="yes" color="green">
+         <name>BSL_CONFIG</name>
+         <page_id>0x0</page_id>
+         <origin>0x41c00100</origin>
+         <length>0x80</length>
+         <used_space>0x0</used_space>
+         <unused_space>0x80</unused_space>
+         <attributes>R</attributes>
+         <usage_details>
+         </usage_details>
+      </memory_area>
+   </placement_map>
+   <cptbl_list>
+      <cptbl>
+         <name>__TI_cinit_table</name>
+         <cprec>
+            <name>.data</name>
+            <load_address>0x828</load_address>
+            <load_size>0x23</load_size>
+            <run_address>0x202000b0</run_address>
+            <run_size>0x41</run_size>
+            <compression>lzss</compression>
+         </cprec>
+         <cprec>
+            <name>.bss</name>
+            <load_address>0x858</load_address>
+            <load_size>0x8</load_size>
+            <run_address>0x20200000</run_address>
+            <run_size>0xb0</run_size>
+            <compression>zero_init</compression>
+         </cprec>
+      </cptbl>
+   </cptbl_list>
+   <handler_table>
+      <handler_table_name>__TI_handler_table</handler_table_name>
+      <handler>
+         <index>0x0</index>
+         <name>__TI_decompress_lzss</name>
+      </handler>
+      <handler>
+         <index>0x1</index>
+         <name>__TI_decompress_none</name>
+      </handler>
+      <handler>
+         <index>0x2</index>
+         <name>__TI_zero_init</name>
+      </handler>
+   </handler_table>
+   <symbol_table>
+      <symbol id="sm-1">
+         <name>__start___llvm_prf_cnts</name>
+         <value>0x20200000</value>
+      </symbol>
+      <symbol id="sm-2">
+         <name>__stop___llvm_prf_cnts</name>
+         <value>0x20200000</value>
+      </symbol>
+      <symbol id="sm-3">
+         <name>__start___llvm_prf_bits</name>
+         <value>0x20200000</value>
+      </symbol>
+      <symbol id="sm-4">
+         <name>__stop___llvm_prf_bits</name>
+         <value>0x20200000</value>
+      </symbol>
+      <symbol id="sm-5">
+         <name>__TI_CINIT_Base</name>
+         <value>0x860</value>
+      </symbol>
+      <symbol id="sm-6">
+         <name>__TI_CINIT_Limit</name>
+         <value>0x870</value>
+      </symbol>
+      <symbol id="sm-7">
+         <name>__TI_CINIT_Warm</name>
+         <value>0x870</value>
+      </symbol>
+      <symbol id="sm-8">
+         <name>__TI_Handler_Table_Base</name>
+         <value>0x84c</value>
+      </symbol>
+      <symbol id="sm-9">
+         <name>__TI_Handler_Table_Limit</name>
+         <value>0x858</value>
+      </symbol>
+      <symbol id="sm-a">
+         <name>binit</name>
+         <value>0xffffffff</value>
+      </symbol>
+      <symbol id="sm-b">
+         <name>__binit__</name>
+         <value>0xffffffff</value>
+      </symbol>
+      <symbol id="sm-c">
+         <name>__STACK_SIZE</name>
+         <value>0x200</value>
+      </symbol>
+      <symbol id="sm-d">
+         <name>__STACK_END</name>
+         <value>0x20208000</value>
+      </symbol>
+      <symbol id="sm-e">
+         <name>__TI_pprof_out_hndl</name>
+         <value>0xffffffff</value>
+      </symbol>
+      <symbol id="sm-f">
+         <name>__TI_prof_data_start</name>
+         <value>0xffffffff</value>
+      </symbol>
+      <symbol id="sm-10">
+         <name>__TI_prof_data_size</name>
+         <value>0xffffffff</value>
+      </symbol>
+      <symbol id="sm-3d">
+         <name>main</name>
+         <value>0x275</value>
+         <object_component_ref idref="oc-63"/>
+      </symbol>
+      <symbol id="sm-3e">
+         <name>gI2C</name>
+         <value>0x20200000</value>
+      </symbol>
+      <symbol id="sm-3f">
+         <name>gTxData</name>
+         <value>0x202000b0</value>
+         <object_component_ref idref="oc-8b"/>
+      </symbol>
+      <symbol id="sm-40">
+         <name>gCommand</name>
+         <value>0x2020009c</value>
+      </symbol>
+      <symbol id="sm-41">
+         <name>gSendCommand</name>
+         <value>0x202000f0</value>
+         <object_component_ref idref="oc-8d"/>
+      </symbol>
+      <symbol id="sm-5c">
+         <name>SYSCFG_DL_init</name>
+         <value>0x7bf</value>
+         <object_component_ref idref="oc-7d"/>
+      </symbol>
+      <symbol id="sm-5d">
+         <name>SYSCFG_DL_initPower</name>
+         <value>0x621</value>
+         <object_component_ref idref="oc-b0"/>
+      </symbol>
+      <symbol id="sm-5e">
+         <name>SYSCFG_DL_GPIO_init</name>
+         <value>0x75d</value>
+         <object_component_ref idref="oc-b1"/>
+      </symbol>
+      <symbol id="sm-5f">
+         <name>SYSCFG_DL_SYSCTL_init</name>
+         <value>0x6dd</value>
+         <object_component_ref idref="oc-b2"/>
+      </symbol>
+      <symbol id="sm-60">
+         <name>SYSCFG_DL_I2C_controller_init</name>
+         <value>0x555</value>
+         <object_component_ref idref="oc-b4"/>
+      </symbol>
+      <symbol id="sm-61">
+         <name>SYSCFG_DL_CRC_init</name>
+         <value>0x781</value>
+         <object_component_ref idref="oc-b5"/>
+      </symbol>
+      <symbol id="sm-6c">
+         <name>Default_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-6d">
+         <name>Reset_Handler</name>
+         <value>0x811</value>
+         <object_component_ref idref="oc-2f"/>
+      </symbol>
+      <symbol id="sm-6e">
+         <name>interruptVectors</name>
+         <value>0x0</value>
+         <object_component_ref idref="oc-18"/>
+      </symbol>
+      <symbol id="sm-6f">
+         <name>NMI_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-70">
+         <name>HardFault_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-71">
+         <name>SVC_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-72">
+         <name>PendSV_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-73">
+         <name>SysTick_Handler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-74">
+         <name>GROUP0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-75">
+         <name>GROUP1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-76">
+         <name>TIMG8_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-77">
+         <name>UART3_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-78">
+         <name>ADC0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-79">
+         <name>ADC1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7a">
+         <name>CANFD0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7b">
+         <name>DAC0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7c">
+         <name>SPI0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7d">
+         <name>SPI1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7e">
+         <name>UART1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-7f">
+         <name>UART2_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-80">
+         <name>UART0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-81">
+         <name>TIMG0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-82">
+         <name>TIMG6_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-83">
+         <name>TIMA0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-84">
+         <name>TIMA1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-85">
+         <name>TIMG7_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-86">
+         <name>TIMG12_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-87">
+         <name>I2C0_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-88">
+         <name>I2C1_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-89">
+         <name>AES_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-8a">
+         <name>RTC_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-8b">
+         <name>DMA_IRQHandler</name>
+         <value>0x3af</value>
+         <object_component_ref idref="oc-33"/>
+      </symbol>
+      <symbol id="sm-9b">
+         <name>I2C_init</name>
+         <value>0x7a1</value>
+         <object_component_ref idref="oc-82"/>
+      </symbol>
+      <symbol id="sm-9c">
+         <name>I2C_sendCommand</name>
+         <value>0xc1</value>
+         <object_component_ref idref="oc-87"/>
+      </symbol>
+      <symbol id="sm-9d">
+         <name>I2C_getResponse</name>
+         <value>0x449</value>
+         <object_component_ref idref="oc-89"/>
+      </symbol>
+      <symbol id="sm-9e">
+         <name>__TI_ATRegion0_src_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-9f">
+         <name>__TI_ATRegion0_trg_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a0">
+         <name>__TI_ATRegion0_region_sz</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a1">
+         <name>__TI_ATRegion1_src_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a2">
+         <name>__TI_ATRegion1_trg_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a3">
+         <name>__TI_ATRegion1_region_sz</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a4">
+         <name>__TI_ATRegion2_src_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a5">
+         <name>__TI_ATRegion2_trg_addr</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-a6">
+         <name>__TI_ATRegion2_region_sz</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-af">
+         <name>DL_Common_delayCycles</name>
+         <value>0x7ff</value>
+         <object_component_ref idref="oc-c6"/>
+      </symbol>
+      <symbol id="sm-ba">
+         <name>DL_CRC_calculateBlock16</name>
+         <value>0x3b1</value>
+         <object_component_ref idref="oc-ba"/>
+      </symbol>
+      <symbol id="sm-c6">
+         <name>DL_I2C_setClockConfig</name>
+         <value>0x735</value>
+         <object_component_ref idref="oc-d7"/>
+      </symbol>
+      <symbol id="sm-c7">
+         <name>DL_I2C_fillControllerTXFIFO</name>
+         <value>0x5c1</value>
+         <object_component_ref idref="oc-c0"/>
+      </symbol>
+      <symbol id="sm-d1">
+         <name>__TI_zero_init_nomemset</name>
+         <value>0x7d7</value>
+         <object_component_ref idref="oc-46"/>
+      </symbol>
+      <symbol id="sm-da">
+         <name>__TI_decompress_none</name>
+         <value>0x7ed</value>
+         <object_component_ref idref="oc-20"/>
+      </symbol>
+      <symbol id="sm-e5">
+         <name>__TI_decompress_lzss</name>
+         <value>0x4d9</value>
+         <object_component_ref idref="oc-1c"/>
+      </symbol>
+      <symbol id="sm-f0">
+         <name>_c_int00_noargs</name>
+         <value>0x70d</value>
+         <object_component_ref idref="oc-4f"/>
+      </symbol>
+      <symbol id="sm-f1">
+         <name>__stack</name>
+         <value>0x20207e00</value>
+         <object_component_ref idref="oc-1a"/>
+      </symbol>
+      <symbol id="sm-fc">
+         <name>abort</name>
+         <value>0x819</value>
+         <object_component_ref idref="oc-90"/>
+      </symbol>
+      <symbol id="sm-fd">
+         <name>C$$EXIT</name>
+         <value>0x818</value>
+         <object_component_ref idref="oc-90"/>
+      </symbol>
+      <symbol id="sm-10a">
+         <name>__TI_auto_init_nobinit_nopinit</name>
+         <value>0x6a1</value>
+         <object_component_ref idref="oc-97"/>
+      </symbol>
+      <symbol id="sm-112">
+         <name>_system_pre_init</name>
+         <value>0x815</value>
+         <object_component_ref idref="oc-5f"/>
+      </symbol>
+      <symbol id="sm-119">
+         <name>__aeabi_memcpy</name>
+         <value>0x809</value>
+         <object_component_ref idref="oc-3f"/>
+      </symbol>
+      <symbol id="sm-11a">
+         <name>__aeabi_memcpy4</name>
+         <value>0x809</value>
+         <object_component_ref idref="oc-3f"/>
+      </symbol>
+      <symbol id="sm-11b">
+         <name>__aeabi_memcpy8</name>
+         <value>0x809</value>
+         <object_component_ref idref="oc-3f"/>
+      </symbol>
+      <symbol id="sm-121">
+         <name>__aeabi_uidiv</name>
+         <value>0x661</value>
+         <object_component_ref idref="oc-d9"/>
+      </symbol>
+      <symbol id="sm-122">
+         <name>__aeabi_uidivmod</name>
+         <value>0x661</value>
+         <object_component_ref idref="oc-d9"/>
+      </symbol>
+      <symbol id="sm-12c">
+         <name>__aeabi_idiv0</name>
+         <value>0x61f</value>
+         <object_component_ref idref="oc-ed"/>
+      </symbol>
+      <symbol id="sm-145">
+         <name>memcpy</name>
+         <value>0x315</value>
+         <object_component_ref idref="oc-78"/>
+      </symbol>
+      <symbol id="sm-146">
+         <name>__TI_static_base__</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-149">
+         <name>__mpu_init</name>
+         <value>0x0</value>
+      </symbol>
+      <symbol id="sm-14a">
+         <name>_system_post_cinit</name>
+         <value>0x0</value>
+      </symbol>
+   </symbol_table>
+   <title>Link successful</title>
+</link_info>

+ 53 - 0
charge_controller_v7/Debug/device.cmd.genlibs

@@ -0,0 +1,53 @@
+/*****************************************************************************
+
+  Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the
+   distribution.
+
+   Neither the name of Texas Instruments Incorporated nor the names of
+   its contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*****************************************************************************/
+/*
+ *  ======== board.cmd.genlibs ========
+ *  Libraries needed to link this application's configuration
+ *
+ *  NOTE, this feature requires software components configured in your
+ *  system to correctly indicate their dependencies and report the
+ *  libraries needed for your specific configuration.  If you find
+ *  errors, please report them on TI's E2E forums
+ *  (https://e2e.ti.com/) so they can be addressed in a future
+ *  release.
+ *
+ *  This file allows one to portably link applications that use SysConfig
+ *  _without_ having to make changes to build rules when moving to a new
+ *  device OR when upgrading to a new version of a SysConfig enabled
+ *  product.
+ *
+ *  DO NOT EDIT - This file is generated by the SysConfig tool for the
+ *                TI C/C++ toolchain
+ */
+-l"ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/driverlib.a"

+ 1 - 0
charge_controller_v7/Debug/device.opt

@@ -0,0 +1 @@
+-D__MSPM0G3507__

+ 68 - 0
charge_controller_v7/Debug/device_linker.cmd

@@ -0,0 +1,68 @@
+/*****************************************************************************
+
+  Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+   Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+   Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the
+   distribution.
+
+   Neither the name of Texas Instruments Incorporated nor the names of
+   its contributors may be used to endorse or promote products derived
+   from this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*****************************************************************************/
+-uinterruptVectors
+--stack_size=512
+
+
+MEMORY
+{
+    FLASH           (RX)  : origin = 0x00000000, length = 0x00020000
+    SRAM            (RWX) : origin = 0x20200000, length = 0x00008000
+    BCR_CONFIG      (R)   : origin = 0x41C00000, length = 0x00000080
+    BSL_CONFIG      (R)   : origin = 0x41C00100, length = 0x00000080
+}
+
+SECTIONS
+{
+    .intvecs:   > 0x00000000
+    .text   : palign(8) {} > FLASH
+    .const  : palign(8) {} > FLASH
+    .cinit  : palign(8) {} > FLASH
+    .pinit  : palign(8) {} > FLASH
+    .rodata : palign(8) {} > FLASH
+    .ARM.exidx    : palign(8) {} > FLASH
+    .init_array   : palign(8) {} > FLASH
+    .binit        : palign(8) {} > FLASH
+    .TI.ramfunc   : load = FLASH, palign(8), run=SRAM, table(BINIT)
+
+    .vtable :   > SRAM
+    .args   :   > SRAM
+    .data   :   > SRAM
+    .bss    :   > SRAM
+    .sysmem :   > SRAM
+    .stack  :   > SRAM (HIGH)
+
+    .BCRConfig  : {} > BCR_CONFIG
+    .BSLConfig  : {} > BSL_CONFIG
+}

+ 153 - 0
charge_controller_v7/Debug/i2c_controller.d

@@ -0,0 +1,153 @@
+# FIXED
+
+i2c_controller.o: ../i2c_controller.c \
+ ti_msp_dl_config.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h \
+ ../ti/comm_modules/i2c/controller/i2c_comm_controller.h
+ti_msp_dl_config.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h:
+../ti/comm_modules/i2c/controller/i2c_comm_controller.h:

BIN
charge_controller_v7/Debug/i2c_controller.o


+ 156 - 0
charge_controller_v7/Debug/makefile

@@ -0,0 +1,156 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+CG_TOOL_ROOT := /home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS
+
+GEN_OPTS__FLAG := @"./device.opt" 
+GEN_CMDS__FLAG := -Wl,-l"./device_linker.cmd" 
+
+ORDERED_OBJS += \
+"./i2c_controller.o" \
+"./ti_msp_dl_config.o" \
+"./startup_mspm0g350x_ticlang.o" \
+"./ti/comm_modules/i2c/controller/i2c_comm_controller.o" \
+$(GEN_CMDS__FLAG) \
+-Wl,-ldevice.cmd.genlibs \
+-Wl,-llibc.a \
+
+-include ../makefile.init
+
+RM := rm -rf
+RMDIR := rm -rf
+
+# All of the sources participating in the build are defined here
+-include sources.mk
+-include subdir_vars.mk
+-include ti/comm_modules/i2c/controller/subdir_vars.mk
+-include subdir_rules.mk
+-include ti/comm_modules/i2c/controller/subdir_rules.mk
+-include objects.mk
+
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(strip $(C55_DEPS)),)
+-include $(C55_DEPS)
+endif
+ifneq ($(strip $(C_UPPER_DEPS)),)
+-include $(C_UPPER_DEPS)
+endif
+ifneq ($(strip $(S67_DEPS)),)
+-include $(S67_DEPS)
+endif
+ifneq ($(strip $(S62_DEPS)),)
+-include $(S62_DEPS)
+endif
+ifneq ($(strip $(S_DEPS)),)
+-include $(S_DEPS)
+endif
+ifneq ($(strip $(OPT_DEPS)),)
+-include $(OPT_DEPS)
+endif
+ifneq ($(strip $(C??_DEPS)),)
+-include $(C??_DEPS)
+endif
+ifneq ($(strip $(ASM_UPPER_DEPS)),)
+-include $(ASM_UPPER_DEPS)
+endif
+ifneq ($(strip $(S??_DEPS)),)
+-include $(S??_DEPS)
+endif
+ifneq ($(strip $(C64_DEPS)),)
+-include $(C64_DEPS)
+endif
+ifneq ($(strip $(CXX_DEPS)),)
+-include $(CXX_DEPS)
+endif
+ifneq ($(strip $(S64_DEPS)),)
+-include $(S64_DEPS)
+endif
+ifneq ($(strip $(INO_DEPS)),)
+-include $(INO_DEPS)
+endif
+ifneq ($(strip $(CLA_DEPS)),)
+-include $(CLA_DEPS)
+endif
+ifneq ($(strip $(S55_DEPS)),)
+-include $(S55_DEPS)
+endif
+ifneq ($(strip $(SV7A_DEPS)),)
+-include $(SV7A_DEPS)
+endif
+ifneq ($(strip $(C62_DEPS)),)
+-include $(C62_DEPS)
+endif
+ifneq ($(strip $(C67_DEPS)),)
+-include $(C67_DEPS)
+endif
+ifneq ($(strip $(PDE_DEPS)),)
+-include $(PDE_DEPS)
+endif
+ifneq ($(strip $(K_DEPS)),)
+-include $(K_DEPS)
+endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
+ifneq ($(strip $(CC_DEPS)),)
+-include $(CC_DEPS)
+endif
+ifneq ($(strip $(C++_DEPS)),)
+-include $(C++_DEPS)
+endif
+ifneq ($(strip $(C43_DEPS)),)
+-include $(C43_DEPS)
+endif
+ifneq ($(strip $(S43_DEPS)),)
+-include $(S43_DEPS)
+endif
+ifneq ($(strip $(ASM_DEPS)),)
+-include $(ASM_DEPS)
+endif
+ifneq ($(strip $(S_UPPER_DEPS)),)
+-include $(S_UPPER_DEPS)
+endif
+ifneq ($(strip $(CPP_DEPS)),)
+-include $(CPP_DEPS)
+endif
+ifneq ($(strip $(SA_DEPS)),)
+-include $(SA_DEPS)
+endif
+endif
+
+-include ../makefile.defs
+
+# Add inputs and outputs from these tool invocations to the build variables 
+EXE_OUTPUTS += \
+charge_controller_v7.out 
+
+EXE_OUTPUTS__QUOTED += \
+"charge_controller_v7.out" 
+
+
+# All Target
+all: $(OBJS) $(GEN_CMDS)
+	@$(MAKE) --no-print-directory -Onone "charge_controller_v7.out"
+
+# Tool invocations
+charge_controller_v7.out: $(OBJS) $(GEN_CMDS)
+	@echo 'Building target: "$@"'
+	@echo 'Invoking: Arm Linker'
+	"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang" @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -gdwarf-3 -Wl,-m"charge_controller_v7.map" -Wl,-i"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source" -Wl,-i"/home/ngosh/workspace_ccstheia/charge_controller_v7" -Wl,-i"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug/syscfg" -Wl,-i"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib" -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--xml_link_info="charge_controller_v7_linkInfo.xml" -Wl,--rom_model -o "charge_controller_v7.out" $(ORDERED_OBJS)
+	@echo 'Finished building target: "$@"'
+	@echo ' '
+
+# Other Targets
+clean:
+	-$(RM) $(GEN_MISC_FILES__QUOTED)$(GEN_FILES__QUOTED)$(EXE_OUTPUTS__QUOTED)
+	-$(RM) "i2c_controller.o" "ti_msp_dl_config.o" "startup_mspm0g350x_ticlang.o" "ti/comm_modules/i2c/controller/i2c_comm_controller.o" 
+	-$(RM) "i2c_controller.d" "ti_msp_dl_config.d" "startup_mspm0g350x_ticlang.d" "ti/comm_modules/i2c/controller/i2c_comm_controller.d" 
+	-@echo 'Finished clean'
+	-@echo ' '
+
+.PHONY: all clean dependents
+.SECONDARY:
+
+-include ../makefile.targets
+

+ 8 - 0
charge_controller_v7/Debug/objects.mk

@@ -0,0 +1,8 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+USER_OBJS :=
+
+LIBS := -Wl,-ldevice.cmd.genlibs -Wl,-llibc.a
+

+ 129 - 0
charge_controller_v7/Debug/sources.mk

@@ -0,0 +1,129 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+C55_SRCS := 
+A_SRCS := 
+ASM_UPPER_SRCS := 
+PINMUX_SRCS := 
+EXE_SRCS := 
+LDS_UPPER_SRCS := 
+CPP_SRCS := 
+CMD_SRCS := 
+O_SRCS := 
+ELF_SRCS := 
+C??_SRCS := 
+C64_SRCS := 
+C67_SRCS := 
+SA_SRCS := 
+S64_SRCS := 
+OPT_SRCS := 
+CXX_SRCS := 
+S67_SRCS := 
+S??_SRCS := 
+PDE_SRCS := 
+SV7A_SRCS := 
+SYSCFG_SRCS := 
+K_SRCS := 
+CLA_SRCS := 
+S55_SRCS := 
+LD_UPPER_SRCS := 
+OUT_SRCS := 
+INO_SRCS := 
+LIB_SRCS := 
+ASM_SRCS := 
+S_UPPER_SRCS := 
+SYSCONFIG_SRCS := 
+S43_SRCS := 
+LD_SRCS := 
+CMD_UPPER_SRCS := 
+C_UPPER_SRCS := 
+C++_SRCS := 
+C43_SRCS := 
+OBJ_SRCS := 
+LDS_SRCS := 
+S_SRCS := 
+CC_SRCS := 
+S62_SRCS := 
+C62_SRCS := 
+C_SRCS := 
+C55_DEPS := 
+C_UPPER_DEPS := 
+S67_DEPS := 
+S62_DEPS := 
+S_DEPS := 
+OPT_DEPS := 
+C??_DEPS := 
+ASM_UPPER_DEPS := 
+S??_DEPS := 
+C64_DEPS := 
+CXX_DEPS := 
+S64_DEPS := 
+INO_DEPS := 
+GEN_CMDS := 
+GEN_FILES := 
+CLA_DEPS := 
+S55_DEPS := 
+SV7A_DEPS := 
+EXE_OUTPUTS := 
+C62_DEPS := 
+C67_DEPS := 
+PDE_DEPS := 
+GEN_MISC_DIRS := 
+K_DEPS := 
+C_DEPS := 
+CC_DEPS := 
+BIN_OUTPUTS := 
+GEN_OPTS := 
+C++_DEPS := 
+C43_DEPS := 
+S43_DEPS := 
+OBJS := 
+ASM_DEPS := 
+GEN_MISC_FILES := 
+S_UPPER_DEPS := 
+CPP_DEPS := 
+SA_DEPS := 
+C++_DEPS__QUOTED := 
+OPT_DEPS__QUOTED := 
+SA_DEPS__QUOTED := 
+S_UPPER_DEPS__QUOTED := 
+C??_DEPS__QUOTED := 
+S67_DEPS__QUOTED := 
+GEN_MISC_DIRS__QUOTED := 
+C55_DEPS__QUOTED := 
+CC_DEPS__QUOTED := 
+ASM_UPPER_DEPS__QUOTED := 
+SV7A_DEPS__QUOTED := 
+S??_DEPS__QUOTED := 
+OBJS__QUOTED := 
+C67_DEPS__QUOTED := 
+K_DEPS__QUOTED := 
+S55_DEPS__QUOTED := 
+GEN_CMDS__QUOTED := 
+GEN_MISC_FILES__QUOTED := 
+INO_DEPS__QUOTED := 
+C62_DEPS__QUOTED := 
+C_DEPS__QUOTED := 
+C_UPPER_DEPS__QUOTED := 
+C43_DEPS__QUOTED := 
+CPP_DEPS__QUOTED := 
+BIN_OUTPUTS__QUOTED := 
+GEN_FILES__QUOTED := 
+C64_DEPS__QUOTED := 
+CXX_DEPS__QUOTED := 
+CLA_DEPS__QUOTED := 
+S_DEPS__QUOTED := 
+ASM_DEPS__QUOTED := 
+S43_DEPS__QUOTED := 
+EXE_OUTPUTS__QUOTED := 
+S64_DEPS__QUOTED := 
+S62_DEPS__QUOTED := 
+PDE_DEPS__QUOTED := 
+GEN_OPTS__QUOTED := 
+
+# Every subdirectory with source files must be described here
+SUBDIRS := \
+. \
+ti/comm_modules/i2c/controller \
+

+ 64 - 0
charge_controller_v7/Debug/startup_mspm0g350x_ticlang.d

@@ -0,0 +1,64 @@
+# FIXED
+
+startup_mspm0g350x_ticlang.o: \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0g350x_ticlang.c \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h:

BIN
charge_controller_v7/Debug/startup_mspm0g350x_ticlang.o


+ 40 - 0
charge_controller_v7/Debug/subdir_rules.mk

@@ -0,0 +1,40 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Each subdirectory must supply rules for building sources it contributes
+%.o: ../%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: Arm Compiler'
+	"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"/home/ngosh/workspace_ccstheia/charge_controller_v7" -I"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source" -gdwarf-3 -MMD -MP -MF"$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$(shell echo $<)"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+build-1016228703: ../i2c_controller.syscfg
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: SysConfig'
+	"/home/ngosh/ti/sysconfig_1.22.0/sysconfig_cli.sh" --script "/home/ngosh/workspace_ccstheia/charge_controller_v7/i2c_controller.syscfg" -o "." -s "/home/ngosh/ti/mspm0_sdk_2_03_00_07/.metadata/product.json" --compiler ticlang
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+device_linker.cmd: build-1016228703 ../i2c_controller.syscfg
+device.opt: build-1016228703
+device.cmd.genlibs: build-1016228703
+ti_msp_dl_config.c: build-1016228703
+ti_msp_dl_config.h: build-1016228703
+
+%.o: ./%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: Arm Compiler'
+	"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"/home/ngosh/workspace_ccstheia/charge_controller_v7" -I"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source" -gdwarf-3 -MMD -MP -MF"$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$(shell echo $<)"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+startup_mspm0g350x_ticlang.o: /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0g350x_ticlang.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: Arm Compiler'
+	"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"/home/ngosh/workspace_ccstheia/charge_controller_v7" -I"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source" -gdwarf-3 -MMD -MP -MF"$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$(shell echo $<)"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+

+ 66 - 0
charge_controller_v7/Debug/subdir_vars.mk

@@ -0,0 +1,66 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+SYSCFG_SRCS += \
+../i2c_controller.syscfg 
+
+C_SRCS += \
+../i2c_controller.c \
+./ti_msp_dl_config.c \
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0g350x_ticlang.c 
+
+GEN_CMDS += \
+./device_linker.cmd 
+
+GEN_FILES += \
+./device_linker.cmd \
+./device.opt \
+./ti_msp_dl_config.c 
+
+C_DEPS += \
+./i2c_controller.d \
+./ti_msp_dl_config.d \
+./startup_mspm0g350x_ticlang.d 
+
+GEN_OPTS += \
+./device.opt 
+
+OBJS += \
+./i2c_controller.o \
+./ti_msp_dl_config.o \
+./startup_mspm0g350x_ticlang.o 
+
+GEN_MISC_FILES += \
+./device.cmd.genlibs \
+./ti_msp_dl_config.h 
+
+OBJS__QUOTED += \
+"i2c_controller.o" \
+"ti_msp_dl_config.o" \
+"startup_mspm0g350x_ticlang.o" 
+
+GEN_MISC_FILES__QUOTED += \
+"device.cmd.genlibs" \
+"ti_msp_dl_config.h" 
+
+C_DEPS__QUOTED += \
+"i2c_controller.d" \
+"ti_msp_dl_config.d" \
+"startup_mspm0g350x_ticlang.d" 
+
+GEN_FILES__QUOTED += \
+"device_linker.cmd" \
+"device.opt" \
+"ti_msp_dl_config.c" 
+
+C_SRCS__QUOTED += \
+"../i2c_controller.c" \
+"./ti_msp_dl_config.c" \
+"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/startup_system_files/ticlang/startup_mspm0g350x_ticlang.c" 
+
+SYSCFG_SRCS__QUOTED += \
+"../i2c_controller.syscfg" 
+
+

+ 154 - 0
charge_controller_v7/Debug/ti/comm_modules/i2c/controller/i2c_comm_controller.d

@@ -0,0 +1,154 @@
+# FIXED
+
+ti/comm_modules/i2c/controller/i2c_comm_controller.o: \
+ ../ti/comm_modules/i2c/controller/i2c_comm_controller.c \
+ ../ti/comm_modules/i2c/controller/i2c_comm_controller.h \
+ ti_msp_dl_config.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h
+../ti/comm_modules/i2c/controller/i2c_comm_controller.h:
+ti_msp_dl_config.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h:

BIN
charge_controller_v7/Debug/ti/comm_modules/i2c/controller/i2c_comm_controller.o


+ 13 - 0
charge_controller_v7/Debug/ti/comm_modules/i2c/controller/subdir_rules.mk

@@ -0,0 +1,13 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Each subdirectory must supply rules for building sources it contributes
+ti/comm_modules/i2c/controller/%.o: ../ti/comm_modules/i2c/controller/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: Arm Compiler'
+	"/home/ngosh/ti/ccstheia151/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"/home/ngosh/workspace_ccstheia/charge_controller_v7" -I"/home/ngosh/workspace_ccstheia/charge_controller_v7/Debug" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include" -I"/home/ngosh/ti/mspm0_sdk_2_03_00_07/source" -gdwarf-3 -MMD -MP -MF"ti/comm_modules/i2c/controller/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$(shell echo $<)"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+

+ 24 - 0
charge_controller_v7/Debug/ti/comm_modules/i2c/controller/subdir_vars.mk

@@ -0,0 +1,24 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+C_SRCS += \
+../ti/comm_modules/i2c/controller/i2c_comm_controller.c 
+
+C_DEPS += \
+./ti/comm_modules/i2c/controller/i2c_comm_controller.d 
+
+OBJS += \
+./ti/comm_modules/i2c/controller/i2c_comm_controller.o 
+
+OBJS__QUOTED += \
+"ti/comm_modules/i2c/controller/i2c_comm_controller.o" 
+
+C_DEPS__QUOTED += \
+"ti/comm_modules/i2c/controller/i2c_comm_controller.d" 
+
+C_SRCS__QUOTED += \
+"../ti/comm_modules/i2c/controller/i2c_comm_controller.c" 
+
+

+ 146 - 0
charge_controller_v7/Debug/ti_msp_dl_config.c

@@ -0,0 +1,146 @@
+/*
+ * Copyright (c) 2023, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ *  ============ ti_msp_dl_config.c =============
+ *  Configured MSPM0 DriverLib module definitions
+ *
+ *  DO NOT EDIT - This file is generated for the MSPM0G350X
+ *  by the SysConfig tool.
+ */
+
+#include "ti_msp_dl_config.h"
+
+/*
+ *  ======== SYSCFG_DL_init ========
+ *  Perform any initialization needed before using any board APIs
+ */
+SYSCONFIG_WEAK void SYSCFG_DL_init(void)
+{
+    SYSCFG_DL_initPower();
+    SYSCFG_DL_GPIO_init();
+    /* Module-Specific Initializations*/
+    SYSCFG_DL_SYSCTL_init();
+    SYSCFG_DL_I2C_controller_init();
+    SYSCFG_DL_CRC_init();
+}
+
+SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
+{
+    DL_GPIO_reset(GPIOA);
+    DL_GPIO_reset(GPIOB);
+    DL_I2C_reset(I2C_controller_INST);
+    DL_CRC_reset(CRC);
+
+    DL_GPIO_enablePower(GPIOA);
+    DL_GPIO_enablePower(GPIOB);
+    DL_I2C_enablePower(I2C_controller_INST);
+    DL_CRC_enablePower(CRC);
+    delay_cycles(POWER_STARTUP_DELAY);
+}
+
+SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
+{
+
+    
+	DL_GPIO_initPeripheralInputFunctionFeatures(
+		 GPIO_I2C_controller_IOMUX_SDA, GPIO_I2C_controller_IOMUX_SDA_FUNC,
+		 DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
+		 DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
+	DL_GPIO_initPeripheralInputFunctionFeatures(
+		 GPIO_I2C_controller_IOMUX_SCL, GPIO_I2C_controller_IOMUX_SCL_FUNC,
+		 DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
+		 DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
+    DL_GPIO_enableHiZ(GPIO_I2C_controller_IOMUX_SDA);
+    DL_GPIO_enableHiZ(GPIO_I2C_controller_IOMUX_SCL);
+
+}
+
+
+
+SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
+{
+
+	//Low Power Mode is configured to be SLEEP0
+    DL_SYSCTL_setBORThreshold(DL_SYSCTL_BOR_THRESHOLD_LEVEL_0);
+
+    
+	DL_SYSCTL_setSYSOSCFreq(DL_SYSCTL_SYSOSC_FREQ_BASE);
+	/* Set default configuration */
+	DL_SYSCTL_disableHFXT();
+	DL_SYSCTL_disableSYSPLL();
+
+}
+
+
+static const DL_I2C_ClockConfig gI2C_controllerClockConfig = {
+    .clockSel = DL_I2C_CLOCK_BUSCLK,
+    .divideRatio = DL_I2C_CLOCK_DIVIDE_1,
+};
+
+SYSCONFIG_WEAK void SYSCFG_DL_I2C_controller_init(void) {
+
+    DL_I2C_setClockConfig(I2C_controller_INST,
+        (DL_I2C_ClockConfig *) &gI2C_controllerClockConfig);
+    DL_I2C_disableAnalogGlitchFilter(I2C_controller_INST);
+
+    /* Configure Controller Mode */
+    DL_I2C_resetControllerTransfer(I2C_controller_INST);
+    /* Set frequency to 100000 Hz*/
+    DL_I2C_setTimerPeriod(I2C_controller_INST, 31);
+    DL_I2C_setControllerTXFIFOThreshold(I2C_controller_INST, DL_I2C_TX_FIFO_LEVEL_BYTES_1);
+    DL_I2C_setControllerRXFIFOThreshold(I2C_controller_INST, DL_I2C_RX_FIFO_LEVEL_BYTES_1);
+    DL_I2C_enableControllerClockStretching(I2C_controller_INST);
+
+    /* Configure Interrupts */
+    DL_I2C_enableInterrupt(I2C_controller_INST,
+                           DL_I2C_INTERRUPT_CONTROLLER_ARBITRATION_LOST |
+                           DL_I2C_INTERRUPT_CONTROLLER_NACK |
+                           DL_I2C_INTERRUPT_CONTROLLER_RXFIFO_TRIGGER |
+                           DL_I2C_INTERRUPT_CONTROLLER_RX_DONE |
+                           DL_I2C_INTERRUPT_CONTROLLER_TX_DONE);
+
+
+    /* Enable module */
+    DL_I2C_enableController(I2C_controller_INST);
+
+
+}
+
+SYSCONFIG_WEAK void SYSCFG_DL_CRC_init(void)
+{
+    DL_CRC_init(CRC, DL_CRC_16_POLYNOMIAL, DL_CRC_BIT_NOT_REVERSED,
+        DL_CRC_INPUT_ENDIANESS_LITTLE_ENDIAN, DL_CRC_OUTPUT_BYTESWAP_DISABLED);
+
+    DL_CRC_setSeed16(CRC, CRC_SEED);
+}
+

+ 150 - 0
charge_controller_v7/Debug/ti_msp_dl_config.d

@@ -0,0 +1,150 @@
+# FIXED
+
+ti_msp_dl_config.o: ti_msp_dl_config.c ti_msp_dl_config.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h \
+ /home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h
+ti_msp_dl_config.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/msp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/DeviceFamily.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/m0p/mspm0g350x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/third_party/CMSIS/Core/Include/core_cm0plus.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_gptimer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_iomux.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_oa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wuc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/hw_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_debugss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/driverlib.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_adc12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_factoryregion.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_core.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aes.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_aesadv.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_comp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_crcp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dac12.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_dma.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_flashctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_sysctl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpamp.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_gpio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_i2c.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_iwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lfss.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_keystorectl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_lcd.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mathacl.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_mcan.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_opa.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_common.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_a.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_rtc_b.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_scratchpad.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_spi.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_tamperio.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timera.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timer.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_timerg.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_trng.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_extend.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_uart_main.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_vref.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/dl_wwdt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_interrupt.h:
+/home/ngosh/ti/mspm0_sdk_2_03_00_07/source/ti/driverlib/m0p/dl_systick.h:

+ 114 - 0
charge_controller_v7/Debug/ti_msp_dl_config.h

@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2023, Texas Instruments Incorporated - http://www.ti.com
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ *  ============ ti_msp_dl_config.h =============
+ *  Configured MSPM0 DriverLib module declarations
+ *
+ *  DO NOT EDIT - This file is generated for the MSPM0G350X
+ *  by the SysConfig tool.
+ */
+#ifndef ti_msp_dl_config_h
+#define ti_msp_dl_config_h
+
+#define CONFIG_MSPM0G350X
+#define CONFIG_MSPM0G3507
+
+#if defined(__ti_version__) || defined(__TI_COMPILER_VERSION__)
+#define SYSCONFIG_WEAK __attribute__((weak))
+#elif defined(__IAR_SYSTEMS_ICC__)
+#define SYSCONFIG_WEAK __weak
+#elif defined(__GNUC__)
+#define SYSCONFIG_WEAK __attribute__((weak))
+#endif
+
+#include <ti/devices/msp/msp.h>
+#include <ti/driverlib/driverlib.h>
+#include <ti/driverlib/m0p/dl_core.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ======== SYSCFG_DL_init ========
+ *  Perform all required MSP DL initialization
+ *
+ *  This function should be called once at a point before any use of
+ *  MSP DL.
+ */
+
+
+/* clang-format off */
+
+#define POWER_STARTUP_DELAY                                                (16)
+
+
+
+#define CPUCLK_FREQ                                                     32000000
+
+
+
+
+/* Defines for I2C_controller */
+#define I2C_controller_INST                                                 I2C1
+#define I2C_controller_INST_IRQHandler                           I2C1_IRQHandler
+#define I2C_controller_INST_INT_IRQN                               I2C1_INT_IRQn
+#define I2C_controller_BUS_SPEED_HZ                                       100000
+#define GPIO_I2C_controller_SDA_PORT                                       GPIOA
+#define GPIO_I2C_controller_SDA_PIN                                DL_GPIO_PIN_3
+#define GPIO_I2C_controller_IOMUX_SDA                             (IOMUX_PINCM8)
+#define GPIO_I2C_controller_IOMUX_SDA_FUNC                IOMUX_PINCM8_PF_I2C1_SDA
+#define GPIO_I2C_controller_SCL_PORT                                       GPIOB
+#define GPIO_I2C_controller_SCL_PIN                                DL_GPIO_PIN_2
+#define GPIO_I2C_controller_IOMUX_SCL                            (IOMUX_PINCM15)
+#define GPIO_I2C_controller_IOMUX_SCL_FUNC               IOMUX_PINCM15_PF_I2C1_SCL
+
+
+/* Defines for CRC */
+#define CRC_SEED                                                        (0xFFFF)
+
+/* clang-format on */
+
+void SYSCFG_DL_init(void);
+void SYSCFG_DL_initPower(void);
+void SYSCFG_DL_GPIO_init(void);
+void SYSCFG_DL_SYSCTL_init(void);
+void SYSCFG_DL_I2C_controller_init(void);
+void SYSCFG_DL_CRC_init(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ti_msp_dl_config_h */

BIN
charge_controller_v7/Debug/ti_msp_dl_config.o


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 8 - 0
charge_controller_v7/README.html


+ 46 - 0
charge_controller_v7/README.md

@@ -0,0 +1,46 @@
+## Example Summary
+
+This example implements an I2C Controller using the MSP Communication modules - I2C. This example demonstrates sending commands to an I2C Target to read from or write to its memory address and shows the response.
+
+
+## Peripherals & Pin Assignments
+
+| Peripheral | Pin | Function |
+| --- | --- | --- |
+| SYSCTL |  |  |
+| I2C0 | PA0 | I2C Serial Data line (SDA) |
+| I2C0 | PA1 | I2C Serial Clock line (SCL) |
+| CRC |  |  |
+| DEBUGSS | PA20 | Debug Clock |
+| DEBUGSS | PA19 | Debug Data In Out |
+
+## BoosterPacks, Board Resources & Jumper Settings
+
+Visit [LP_MSPM0G3507](https://www.ti.com/tool/LP-MSPM0G3507) for LaunchPad information, including user guide and hardware files.
+
+| Pin | Peripheral | Function | LaunchPad Pin | LaunchPad Settings |
+| --- | --- | --- | --- | --- |
+| PA0 | I2C0 | SDA | J19_2 | <ul><li>PA0 can be connected to an on-board pull-up resistor<br><ul><li>`J19 1:2 ON` Connect to 3.3V Pullup<br></ul></ul> |
+| PA1 | I2C0 | SCL | J20_2 | <ul><li>PA1 can be connected to an on-board pull-up resistor<br><ul><li>`J20 1:2 ON` Connect to 3.3V Pullup<br></ul></ul> |
+| PA20 | DEBUGSS | SWCLK | N/A | <ul><li>PA20 is used by SWD during debugging<br><ul><li>`J101 15:16 ON` Connect to XDS-110 SWCLK while debugging<br><li>`J101 15:16 OFF` Disconnect from XDS-110 SWCLK if using pin in application</ul></ul> |
+| PA19 | DEBUGSS | SWDIO | N/A | <ul><li>PA19 is used by SWD during debugging<br><ul><li>`J101 13:14 ON` Connect to XDS-110 SWDIO while debugging<br><li>`J101 13:14 OFF` Disconnect from XDS-110 SWDIO if using pin in application</ul></ul> |
+
+### Device Migration Recommendations
+This project was developed for a superset device included in the LP_MSPM0G3507 LaunchPad. Please
+visit the [CCS User's Guide](https://software-dl.ti.com/msp430/esd/MSPM0-SDK/latest/docs/english/tools/ccs_ide_guide/doc_guide/doc_guide-srcs/ccs_ide_guide.html#sysconfig-project-migration)
+for information about migrating to other MSPM0 devices.
+
+### Low-Power Recommendations
+TI recommends to terminate unused pins by setting the corresponding functions to
+GPIO and configure the pins to output low or input with internal
+pullup/pulldown resistor.
+
+SysConfig allows developers to easily configure unused pins by selecting **Board**→**Configure Unused Pins**.
+
+For more information about jumper configuration to achieve low-power using the
+MSPM0 LaunchPad, please visit the [LP-MSPM0G3507 User's Guide](https://www.ti.com/lit/slau873).
+
+## Example Usage
+Connect SDA and SCL of I2C Controller to SDA and SCL of I2C Target respectively. Compile, load and run the example.
+
+Please refer to MSPM0 Communication Modules - I2C User Guide for more details.

+ 135 - 0
charge_controller_v7/i2c_controller.c

@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2024, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#include "ti_msp_dl_config.h"
+#include "ti/comm_modules/i2c/controller/i2c_comm_controller.h"
+
+I2C_Instance gI2C;
+
+volatile I2C_CommandInfo gCommand;
+
+I2C_ResponseInfo gResponse;
+
+volatile bool gSendCommand = false;
+
+/* Data to send to target */
+uint8_t gTxData[MAX_DATA_SIZE] = {0xAA,0xBB,0xCC,0xDD,0xEE,0xFF, \
+                                  0x00,0x11,0x22,0x33,0x44,0x55, \
+                                  0x66,0x77,0x88,0x99,0x12,0x23, \
+                                  0x34,0x45,0x56,0x67,0x78,0x89};
+
+int main(void)
+{
+    SYSCFG_DL_init();
+
+    NVIC_EnableIRQ(I2C_controller_INST_INT_IRQN);
+
+    I2C_init(&gI2C);
+
+    /* Default CommandInfo Object */
+    I2C_CommandInfo CommandInfo_Obj;
+
+    CommandInfo_Obj.targetAddr = DEF_TARGET_ADDR;
+    CommandInfo_Obj.commandType = READ_COMMAND;
+    CommandInfo_Obj.addr = 0x20207C00;
+    CommandInfo_Obj.dataArray = &gTxData[0];
+    CommandInfo_Obj.dataSize = 4;
+    CommandInfo_Obj.crcEnable = false;
+
+    gCommand = CommandInfo_Obj;
+
+    while(1)
+    {
+        if(gSendCommand == true)
+        {
+            /* Frames a command packet and sends it to Target through I2C Write Command */
+            I2C_sendCommand(&gI2C, (I2C_CommandInfo *) &gCommand);
+
+            gI2C.status = I2C_STATUS_RX_STARTED;
+            gI2C.rxMsg.ptr = 0;
+
+            /* Issues I2C Read Command to get the response from Target */
+            I2C_getResponse(&gI2C,gCommand.targetAddr);
+
+            gSendCommand = false;
+        }
+    }
+}
+
+void I2C_INST_IRQHandler(void)
+{
+    switch (DL_I2C_getPendingInterrupt(I2C_controller_INST)) 
+    {
+        case DL_I2C_IIDX_CONTROLLER_RX_DONE:
+            gI2C.rxMsg.len = gI2C.rxMsg.ptr;
+            I2C_decodeResponse(&gI2C,&gResponse);
+            gI2C.status = I2C_STATUS_RX_COMPLETE;
+            break;
+
+        case DL_I2C_IIDX_CONTROLLER_TX_DONE:
+            DL_I2C_disableInterrupt(
+                I2C_controller_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
+            gI2C.status = I2C_STATUS_TX_COMPLETE;
+            break;
+
+        case DL_I2C_IIDX_CONTROLLER_RXFIFO_TRIGGER:
+            gI2C.status = I2C_STATUS_RX_INPROGRESS;
+            /* Store bytes received from target in Rx Msg Buffer */
+            while (DL_I2C_isControllerRXFIFOEmpty(I2C_controller_INST) != true) {
+                if (gI2C.rxMsg.ptr < MAX_BUFFER_SIZE) {
+                    gI2C.rxMsg.buffer[gI2C.rxMsg.ptr++] =
+                        DL_I2C_receiveControllerData(I2C_controller_INST);
+                } else {
+                    /* Ignore and remove from FIFO if the buffer is full */
+                    DL_I2C_receiveControllerData(I2C_controller_INST);
+                }
+            }
+            break;
+
+        case DL_I2C_IIDX_CONTROLLER_TXFIFO_TRIGGER:
+            gI2C.status = I2C_STATUS_TX_INPROGRESS;
+            /* Fill TX FIFO with bytes to send */
+            if (gI2C.txMsg.ptr < gI2C.txMsg.len) {
+                gI2C.txMsg.ptr += DL_I2C_fillControllerTXFIFO(
+                    I2C_controller_INST, &gI2C.txMsg.buffer[gI2C.txMsg.ptr], gI2C.txMsg.len - gI2C.txMsg.ptr);
+            }
+            break;
+
+        case DL_I2C_IIDX_CONTROLLER_ARBITRATION_LOST:
+        case DL_I2C_IIDX_CONTROLLER_NACK:
+            gI2C.status = I2C_STATUS_ERROR;
+            break; 
+        default:
+            break;
+    }
+}

+ 56 - 0
charge_controller_v7/i2c_controller.syscfg

@@ -0,0 +1,56 @@
+/**
+ * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
+ * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
+ * @cliArgs --device "MSPM0G350X" --part "Default" --package "LQFP-64(PM)" --product "mspm0_sdk@2.03.00.08"
+ * @v2CliArgs --device "MSPM0G3507" --package "LQFP-64(PM)" --product "mspm0_sdk@2.03.00.08"
+ * @versions {"tool":"1.22.0+3893"}
+ */
+
+/**
+ * Import the modules used in this configuration.
+ */
+const Board = scripting.addModule("/ti/driverlib/Board");
+const CRC   = scripting.addModule("/ti/driverlib/CRC");
+const I2C   = scripting.addModule("/ti/driverlib/I2C", {}, false);
+const I2C1  = I2C.addInstance();
+
+/**
+ * Write custom configuration values to the imported modules.
+ */
+
+CRC.polynomial = "16_POLYNOMIAL";
+CRC.seed       = 0xFFFF;
+
+I2C1.basicEnableController             = true;
+I2C1.advControllerTXFIFOTRIG           = "BYTES_1";
+I2C1.advAnalogGlitchFilter             = "DISABLED";
+I2C1.intController                     = ["ARBITRATION_LOST","NACK","RXFIFO_TRIGGER","RX_DONE","TX_DONE"];
+I2C1.$name                             = "I2C_controller";
+I2C1.peripheral.sdaPin.$assign         = "PA3";
+I2C1.peripheral.sclPin.$assign         = "PB2";
+I2C1.sdaPinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric0";
+I2C1.sdaPinConfig.hideOutputInversion  = scripting.forceWrite(false);
+I2C1.sdaPinConfig.onlyInternalResistor = scripting.forceWrite(false);
+I2C1.sdaPinConfig.passedPeripheralType = scripting.forceWrite("Digital");
+I2C1.sdaPinConfig.enableConfig         = true;
+I2C1.sdaPinConfig.internalResistor     = "PULL_UP";
+I2C1.sclPinConfig.$name                = "ti_driverlib_gpio_GPIOPinGeneric1";
+I2C1.sclPinConfig.hideOutputInversion  = scripting.forceWrite(false);
+I2C1.sclPinConfig.onlyInternalResistor = scripting.forceWrite(false);
+I2C1.sclPinConfig.passedPeripheralType = scripting.forceWrite("Digital");
+I2C1.sclPinConfig.enableConfig         = true;
+I2C1.sclPinConfig.internalResistor     = "PULL_UP";
+
+const SYSCTL                 = scripting.addModule("/ti/driverlib/SYSCTL", {}, false);
+SYSCTL.forceDefaultClkConfig = true;
+SYSCTL.clockTreeEn           = true;
+
+/**
+ * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
+ * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
+ * re-solve from scratch.
+ */
+Board.peripheral.$suggestSolution          = "DEBUGSS";
+Board.peripheral.swclkPin.$suggestSolution = "PA20";
+Board.peripheral.swdioPin.$suggestSolution = "PA19";
+I2C1.peripheral.$suggestSolution           = "I2C1";

+ 22 - 0
charge_controller_v7/targetConfigs/MSPM0G3507.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="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
+            <instance XML_version="1.2" href="drivers/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds510cortexM0.xml" id="drivers" xml="tixds510cortexM0.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds510sec_ap.xml" id="drivers" xml="tixds510sec_ap.xml" xmlpath="drivers"/>
+            <property Type="choicelist" Value="1" id="The JTAG TCLK Frequency (MHz)">
+                <choice Name="Fixed with user specified value" value="SPECIFIC">
+                    <property Type="stringfield" Value="1MHz" id="-- Enter a value from 100.0kHz to 2.5MHz"/>
+                </choice>
+            </property>
+            <property Type="choicelist" Value="2" id="SWD Mode Settings">
+                <choice Name="SWD Mode - Aux COM port is target TDO pin" value="nothing"/>
+            </property>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="MSPM0G3507" href="devices/MSPM0G3507.xml" id="MSPM0G3507" xml="MSPM0G3507.xml" xmlpath="devices"/>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>

+ 9 - 0
charge_controller_v7/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.

+ 321 - 0
charge_controller_v7/ti/comm_modules/i2c/controller/i2c_comm_controller.c

@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 2024, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "i2c_comm_controller.h"
+
+#define LEFT_SHIFT_8(x)     ((x) << 8)
+#define RIGHT_SHIFT_8(x)    ((x) >> 8)
+
+
+/* Function Declarations */
+/**
+ * @brief     Calculates CRC 16 for an array of 8-bit data
+ * @param[in] ptr   Pointer to the data to compute CRC
+ * @param[in] size  size of the array of data in bytes
+ * @return    Returns the CRC value
+ */
+static uint16_t CRC_calc16(uint8_t* ptr,uint8_t size);
+
+/**
+ * @brief     Prepares I2C Tx FIFO and issues I2C write command
+ * @param[in] I2C_handle     Pointer to I2C_Instance
+ * @param[in] targetAddr     I2C Target Address
+ */
+static void I2C_sendBuffer(I2C_Instance *I2C_handle,uint8_t targetAddr);
+
+
+/* Helper Functions */
+/**
+ * @brief     32 bit to 8 bit
+ * @param[in] b  pointer to unsigned 8 bit output
+ * @param[in] u32  unsigned 32 bit input
+ */
+static void u8From32(uint8_t *b, uint32_t u32)
+{
+    b[0] = (uint8_t)u32;
+    b[1] = (uint8_t)(u32 = RIGHT_SHIFT_8(u32));
+    b[2] = (uint8_t)(u32 = RIGHT_SHIFT_8(u32));
+    b[3] = (uint8_t)(u32 = RIGHT_SHIFT_8(u32));
+}
+
+/**
+ * @brief     16 bit to 8 bit
+ * @param[in] b  pointer to unsigned 8 bit output
+ * @param[in] u16  unsigned 16 bit input
+ */
+static void u8From16(uint8_t *b, uint16_t u16)
+{
+    b[0] = (uint8_t)u16;
+    b[1] = (uint8_t)(u16 = RIGHT_SHIFT_8(u16));
+}
+
+/**
+ * @brief     8 bit to 32 bit
+ * @param[in] b  pointer to unsigned 8 bit output
+ * @return    32 bit result
+ */
+static uint32_t u32(uint8_t *b)
+{
+  uint32_t u;
+  u = b[3];
+  u = LEFT_SHIFT_8(u) + b[2];
+  u = LEFT_SHIFT_8(u) + b[1];
+  u = LEFT_SHIFT_8(u) + b[0];
+  return u;
+}
+
+/**
+ * @brief     8 bit to 16 bit
+ * @param[in] b  pointer to unsigned 8 bit output
+ * @return    16 bit result
+ */
+static uint16_t u16(uint8_t *b)
+{
+  uint16_t u;
+  u = b[1];
+  u = LEFT_SHIFT_8(u) + b[0];
+  return u;
+}
+
+#ifdef CONFIG_MSPM0G351X
+static uint16_t CRC_calc16(uint8_t* ptr,uint8_t size)
+{
+    uint8_t remainder = (size & 1);
+    uint16_t size16 = size>>1;
+
+    uint16_t checkSum = DL_CRCP_calculateBlock16(CRCP0,CRCP_SEED,
+                                                    (uint16_t*)ptr,size16);
+
+    if(remainder)
+    {
+        DL_CRCP_feedData8(CRCP0,ptr[size - 1]);
+        checkSum = ((uint16_t) DL_CRCP_getResult16(CRCP0));
+    }
+
+    return checkSum;
+}
+
+#else
+static uint16_t CRC_calc16(uint8_t* ptr,uint8_t size)
+{
+    uint8_t remainder = (size & 1);
+    uint16_t size16 = size>>1;
+
+    uint16_t checkSum = DL_CRC_calculateBlock16(CRC,CRC_SEED,
+                                                    (uint16_t*)ptr,size16);
+
+    if(remainder)
+    {
+        DL_CRC_feedData8(CRC,ptr[size - 1]);
+        checkSum = ((uint16_t) DL_CRC_getResult16(CRC));
+    }
+
+    return checkSum;
+}
+
+#endif
+
+/**
+ * @brief     Resets pointer and length of the buffer
+ * @param[in] frame  Pointer to BufferInfo (Rx,Tx)
+ */
+__STATIC_INLINE void I2C_clearBuffer(BufferInfo *frame)
+{
+    frame->ptr = 0;
+    frame->len = 0;
+}
+
+void I2C_init(I2C_Instance *I2C_handle)
+{
+    I2C_clearBuffer(&I2C_handle->rxMsg);
+    I2C_clearBuffer(&I2C_handle->txMsg);
+ 
+    I2C_handle->dataLen = 0;
+    I2C_handle->isCrc = false;
+    I2C_handle->status = I2C_STATUS_IDLE;
+    I2C_handle->error = ERROR_TYPE_NONE;
+}
+
+void I2C_sendCommand(I2C_Instance *I2C_handle,I2C_CommandInfo *command)
+{
+    /* Prepare TX Buffer */
+    I2C_handle->txMsg.ptr = 0;
+
+    /* Control Byte */
+    I2C_handle->txMsg.buffer[I2C_handle->txMsg.ptr++] = (command->commandType) | (command->crcEnable ? CRC_MASK : (0x00)) | ((command->dataSize - 1) & LEN_MASK) ;
+
+    u8From32(&I2C_handle->txMsg.buffer[I2C_handle->txMsg.ptr],command->addr);
+    I2C_handle->txMsg.ptr += 4;
+
+    /* For Read Command */
+    I2C_handle->dataLen = command->dataSize;
+    
+    /* For Write Command */
+    if(command->commandType == WRITE_COMMAND)
+    {
+        I2C_handle->dataLen = 1;
+        
+        for(int i = 0 ; i < command->dataSize ; i++)
+        {
+            I2C_handle->txMsg.buffer[I2C_handle->txMsg.ptr++] = command->dataArray[i];
+        }
+    }
+
+    /* CRC */
+    I2C_handle->isCrc = false;
+    if(command->crcEnable)
+    {
+        I2C_handle->isCrc = true;
+        uint16_t Crc = CRC_calc16((&I2C_handle->txMsg.buffer[0]),I2C_handle->txMsg.ptr);
+        u8From16(&I2C_handle->txMsg.buffer[I2C_handle->txMsg.ptr],Crc);
+        I2C_handle->txMsg.ptr += 2;
+    }
+
+
+    I2C_handle->txMsg.len = I2C_handle->txMsg.ptr;
+
+    I2C_sendBuffer(I2C_handle, command->targetAddr);
+
+    /* Wait until I2C Controller is idle */
+    while (!(
+        DL_I2C_getControllerStatus(I2C_controller_INST) & DL_I2C_CONTROLLER_STATUS_IDLE))
+        ;
+}
+
+static void I2C_sendBuffer(I2C_Instance *I2C_handle,uint8_t targetAddr)
+{
+    I2C_handle->txMsg.ptr = 0;
+
+    I2C_handle->txMsg.ptr = DL_I2C_fillControllerTXFIFO(I2C_controller_INST, &I2C_handle->txMsg.buffer[0], I2C_handle->txMsg.len);
+
+    /* Enable TXFIFO trigger interrupt if there are more bytes to send */
+    if (I2C_handle->txMsg.ptr < I2C_handle->txMsg.len) 
+    {
+        DL_I2C_enableInterrupt(
+            I2C_controller_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
+    } else
+    {
+        DL_I2C_disableInterrupt(
+            I2C_controller_INST, DL_I2C_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
+    }
+
+
+    I2C_handle->status = I2C_STATUS_TX_STARTED;
+
+    /* Wait until I2C Controller is idle */
+    while (!(
+        DL_I2C_getControllerStatus(I2C_controller_INST) & DL_I2C_CONTROLLER_STATUS_IDLE))
+        ;
+
+    DL_I2C_startControllerTransfer(
+        I2C_controller_INST, targetAddr, DL_I2C_CONTROLLER_DIRECTION_TX, I2C_handle->txMsg.len);
+
+    /* Wait until the Controller sends all bytes */
+    while ((I2C_handle->status != I2C_STATUS_TX_COMPLETE) &&
+            (I2C_handle->status != I2C_STATUS_ERROR)) {
+        __WFE();
+    }
+
+    /* Wait until I2C bus is Idle */
+    while (DL_I2C_getControllerStatus(I2C_controller_INST) &
+            DL_I2C_CONTROLLER_STATUS_BUSY_BUS)
+        ;
+
+    /* Trap if there was an error */
+    if (DL_I2C_getControllerStatus(I2C_controller_INST) &
+        DL_I2C_CONTROLLER_STATUS_ERROR) {
+        __BKPT(0);
+    }
+}
+
+
+void I2C_getResponse(I2C_Instance* I2C_handle,uint32_t targetAddr)
+{
+    uint32_t expectedLen = CTRL_SIZE + I2C_handle->dataLen + (I2C_handle->isCrc ? CRC_SIZE : 0);
+
+    DL_I2C_startControllerTransfer(
+        I2C_controller_INST, targetAddr, DL_I2C_CONTROLLER_DIRECTION_RX, expectedLen);
+
+    /* Wait for all bytes to be received in interrupt */
+    while (I2C_handle->status != I2C_STATUS_RX_COMPLETE) 
+    {
+        /* Resend the Read Command if it is N'ACKed */
+        if(I2C_handle->status == I2C_STATUS_ERROR)
+        {
+            I2C_handle->status = I2C_STATUS_RX_STARTED;
+            delay_cycles(10000);
+            DL_I2C_startControllerTransfer(
+                I2C_controller_INST, targetAddr, DL_I2C_CONTROLLER_DIRECTION_RX, expectedLen);
+        }
+    }
+
+    /* Wait until I2C bus is Idle */
+    while (DL_I2C_getControllerStatus(I2C_controller_INST) &
+            DL_I2C_CONTROLLER_STATUS_BUSY_BUS)
+        ;
+}
+
+void I2C_decodeResponse(I2C_Instance *I2C_handle,I2C_ResponseInfo *response)
+{
+    response->received = true;
+
+    /* Length stored in frame is 1 less than actual length */
+    response->dataSize = ( I2C_handle->rxMsg.buffer[CTRL_IDX] & LEN_MASK ) + 1;
+
+    response->status = ERROR_TYPE_NONE;
+
+    if(I2C_handle->rxMsg.buffer[CTRL_IDX] & ERROR_MASK)
+    {
+        /* Store error code sent by target */
+        response->status = (ErrorType) I2C_handle->rxMsg.buffer[RESP_DATA_IDX];
+    }
+
+    response->frame.ctrl = I2C_handle->rxMsg.buffer[CTRL_IDX];
+
+    for(int i = 0; i < MAX_DATA_SIZE; i++)
+    {
+        if(i < response->dataSize)
+        {
+            response->frame.data[i] = I2C_handle->rxMsg.buffer[RESP_DATA_IDX + i];
+        }
+        /* Resetting extra space to zero*/
+        else
+        {
+            response->frame.data[i] = 0;
+        }
+    }
+
+    if(I2C_handle->isCrc)
+    {
+        response->frame.crc = u16(&I2C_handle->rxMsg.buffer[I2C_handle->rxMsg.len - CRC_SIZE]);
+    }
+}

+ 251 - 0
charge_controller_v7/ti/comm_modules/i2c/controller/i2c_comm_controller.h

@@ -0,0 +1,251 @@
+/*
+ * Copyright (c) 2024, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*!****************************************************************************
+ *  @file       i2c_comm_controller.h
+ *  @brief      I2C communication Module
+ *
+ * 
+ *  @anchor i2c_comm_controller
+ *  # Overview
+ *
+ *  APIs for I2C communication module
+ *
+ *  <hr>
+ ******************************************************************************/
+
+#ifndef I2C_COMM_CONTROLLER_H_
+#define I2C_COMM_CONTROLLER_H_
+
+#include "ti_msp_dl_config.h"
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* FRAME STRUCTURE */
+
+/* Control Byte */
+/*! @brief Control index */
+#define CTRL_IDX                     (0)
+/*! @brief Control size */
+#define CTRL_SIZE                    (1)
+/*! @brief Control mask */
+#define CMD_MASK                     (0x80)
+/*! @brief CRC mask */
+#define CRC_MASK                     (0x40)
+/*! @brief Length mask */
+#define LEN_MASK                     (0x3F)
+/*! @brief Write command */
+#define WRITE_CMD                    (0x80)
+/*! @brief Read command */
+#define READ_CMD                     (0x00)
+/*! @brief Error Mask */
+#define ERROR_MASK                   (0x80)  
+
+/* Address  */
+/*! @brief Address index */
+#define ADDR_IDX                    (CTRL_IDX + CTRL_SIZE)
+/*! @brief Address size */
+#define ADDR_SIZE                   (4)
+/*! @brief Address range start */
+#define ADDR_RANGE_START            (0x20100000)
+/*! @brief Address range end */
+#define ADDR_RANGE_END              (0x20307FFF)
+
+/* Data */
+/*! @brief Command Data index */
+#define DATA_IDX                    (ADDR_IDX + ADDR_SIZE)
+/*! @brief Response Data index */
+#define RESP_DATA_IDX               (CTRL_IDX + CTRL_SIZE)
+/*! @brief Maximum data size */
+#define MAX_DATA_SIZE               (64)
+
+/* OFFSET is from the end of frame */
+/* CRC */
+/*! @brief CRC offset */
+#define CRC_OFFSET                  (0)
+/*! @brief CRC size */
+#define CRC_SIZE                    (2)
+
+/*! @brief Maximum buffer size */
+#define MAX_BUFFER_SIZE             (CTRL_SIZE + ADDR_SIZE + MAX_DATA_SIZE + CRC_SIZE)
+/*! @brief Maximum response size */
+#define MAX_RESP_SIZE               (CTRL_SIZE + MAX_DATA_SIZE + CRC_SIZE)
+
+/*! I2C Target Addr configured in the example */
+/*! @brief Default Target Address */
+#define DEF_TARGET_ADDR             (0x68)
+
+/*! @brief Buffer Info structure */
+typedef struct
+{
+    /*! Buffer array */
+    _Alignas(uint32_t) uint8_t buffer[MAX_BUFFER_SIZE];
+    /*! Pointer */
+    uint8_t ptr;
+    /*! Length */
+    uint8_t len;
+} BufferInfo;
+
+/*! @brief Frame Info structure*/
+typedef struct
+{
+    /*! CRC */
+    uint16_t crc;
+    /*! Control Byte */
+    uint8_t ctrl;
+    /*! Data */
+    uint8_t data[MAX_DATA_SIZE];
+} FrameInfo;
+
+/*! @brief I2C status */
+typedef enum
+{
+    /*! I2C IDLE state */
+    I2C_STATUS_IDLE = 0,
+    /*! I2C Tx Started state */
+    I2C_STATUS_TX_STARTED,
+    /*! I2C Tx in Progress state */
+    I2C_STATUS_TX_INPROGRESS,
+    /*! I2C Tx Complete state */
+    I2C_STATUS_TX_COMPLETE,
+    /*! I2C Rx Started state */
+    I2C_STATUS_RX_STARTED,
+    /*! I2C Rx in Progress state */
+    I2C_STATUS_RX_INPROGRESS,
+    /*! I2C Rx Complete state */
+    I2C_STATUS_RX_COMPLETE,
+    /*! I2C Error state */
+    I2C_STATUS_ERROR,
+} I2C_Status;
+
+typedef enum
+{
+    /*! No error */
+    ERROR_TYPE_NONE         = 0x00,
+    /*! Mismatch CRC error */
+    ERROR_TYPE_MISMATCH_CRC = 0xE1,
+    /*! Error in Address range */
+    ERROR_TYPE_ADDR_RANGE   = 0xE2,
+} ErrorType;
+
+/*! @brief I2C instance */
+typedef struct
+{
+    /*! Transmit message */
+    BufferInfo txMsg;
+    /*! Receive message */
+    BufferInfo rxMsg;
+
+    /*! Data length */
+    uint8_t dataLen;
+    /*! CRC enabled */
+    _Bool isCrc;
+
+    /*! I2C status */
+    I2C_Status status;
+    /*! I2C error type */
+    ErrorType error;
+} I2C_Instance;
+
+/*! @brief I2C Command types */
+typedef enum 
+{
+    /*! I2C Read Command */
+    READ_COMMAND = 0x00,
+    /*! I2C Write Command */
+    WRITE_COMMAND = 0x80,
+} CommandType;
+
+/*! @brief I2C Command Info */
+typedef struct
+{
+    /*! Target Address */
+    uint32_t targetAddr;
+    /*! I2C Command Type */
+    CommandType commandType;
+    /*! Address */
+    uint32_t addr;
+    /*! Pointer to array of Data */
+    uint8_t* dataArray;
+    /*! Data Size */
+    uint8_t dataSize;
+    /*! CRC Enable*/
+    bool crcEnable;
+} I2C_CommandInfo;
+
+/*! @brief I2C Response Info */
+typedef struct
+{
+    /*! Response Frame Info */
+    FrameInfo frame;
+    /*! Response data size */
+    uint8_t dataSize;
+    /*! Response error status */
+    ErrorType status;
+    /*! Response received */
+    bool received; 
+} I2C_ResponseInfo;
+
+/**
+ * @brief     Initializes I2C_Instance Handle
+ * @param[in] I2C_handle    Pointer to I2C_Instance
+ */
+void I2C_init(I2C_Instance *I2C_handle);
+
+/**
+ * @brief     Prepares I2C Command frame and stores in TX Buffer to transmit
+ * @param[in] I2C_handle     Pointer to I2C_Instance
+ * @param[in] command        Pointer to I2C_CommandInfo
+ */
+void I2C_sendCommand(I2C_Instance *I2C_handle,I2C_CommandInfo *command);
+
+/**
+ * @brief     Sends I2C Read command to get the response from target
+ * @param[in] I2C_handle     Pointer to I2C_Instance
+ * @param[in] targetAddr     I2C Target Address
+ */
+void I2C_getResponse(I2C_Instance* I2C_handle,uint32_t targetAddr);
+
+/**
+ * @brief     Decodes the received data in Rx Buffer for response
+ * @param[in] I2C_handle     Pointer to I2C_Instance
+ * @param[in] response       Pointer to I2C_ResponseInfo
+ */
+void I2C_decodeResponse(I2C_Instance *I2C_handle,I2C_ResponseInfo *response);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* I2C_COMM_CONTROLLER_H_ */

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác