Bläddra i källkod

Bugs resolutions, REQ implementation

titikluivert@yahoo.fr 1 år sedan
förälder
incheckning
b8b4111ab5
59 ändrade filer med 2951 tillägg och 802 borttagningar
  1. 1 3
      segment_main/.cproject
  2. 2 0
      segment_main/.settings/org.eclipse.core.resources.prefs
  3. 1 0
      segment_main/01_sw_components/01_sc/01_src/init_sc.c
  4. 1 2
      segment_main/01_sw_components/01_sc/01_src/main_sc.c
  5. 4 4
      segment_main/01_sw_components/02_sig/01_src/Com_tx_signal_sig.c
  6. 2 1
      segment_main/01_sw_components/03_hw/01_src/Hw_Interface.c
  7. 78 0
      segment_main/01_sw_components/04_frs/01_src/OverLowVoltage_Frs.c
  8. 3 1
      segment_main/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.c
  9. 38 0
      segment_main/01_sw_components/06_mem/01_src/Write_param_inEEPROM.c
  10. 371 0
      segment_main/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.c
  11. 306 0
      segment_main/01_sw_components/06_mem/02_headers/eeprom_emulation_type_a.h
  12. 6 0
      segment_main/01_sw_components/06_mem/02_headers/vardef_mem.h
  13. 10 10
      segment_main/04_config/segment_main.syscfg
  14. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Com_tx_signal_sig.c.1C87430846B5339E.idx
  15. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Hw_Interface.c.43483B0B0C4F24F8.idx
  16. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/IQmathLib.h.F69136388286AF73.idx
  17. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/OverLowVoltage_Frs.c.68A7B0EB7192E25F.idx
  18. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/OverheatingTemperature_Frs.c.8C7AC8FEC6C34CFA.idx
  19. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Segment_Monitoring_hw.c.4A9D8FAB774F2A61.idx
  20. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Segment_Monitoring_hw.c.9A398F63E5153946.idx
  21. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Write_param_inEEPROM.c.FAD697D21EF23F59.idx
  22. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/eeprom_emulation_type_a.c.03BA3794350BC137.idx
  23. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/eeprom_emulation_type_a.h.CB0E8781735DBAC2.idx
  24. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/init_sc.c.435F321C8C7F1849.idx
  25. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/main_sc.c.D8EB5CB0AEF3E502.idx
  26. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.c.B931F9EE02218759.idx
  27. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.h.C26D5E739004F756.idx
  28. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/vardef_mem.h.2B52F8B8D13D91D2.idx
  29. 12 2
      segment_main/Debug/.clangd/compile_commands.json
  30. 3 1
      segment_main/Debug/01_sw_components/01_sc/01_src/init_sc.d
  31. BIN
      segment_main/Debug/01_sw_components/01_sc/01_src/init_sc.o
  32. BIN
      segment_main/Debug/01_sw_components/01_sc/01_src/main_sc.o
  33. 1 1
      segment_main/Debug/01_sw_components/01_sc/01_src/subdir_rules.mk
  34. BIN
      segment_main/Debug/01_sw_components/02_sig/01_src/Com_tx_signal_sig.o
  35. 1 1
      segment_main/Debug/01_sw_components/02_sig/01_src/subdir_rules.mk
  36. 3 1
      segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.d
  37. BIN
      segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.o
  38. 1 1
      segment_main/Debug/01_sw_components/03_hw/01_src/subdir_rules.mk
  39. 169 1
      segment_main/Debug/01_sw_components/04_frs/01_src/OverLowVoltage_Frs.d
  40. 16 0
      segment_main/Debug/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.d
  41. BIN
      segment_main/Debug/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.o
  42. 1 1
      segment_main/Debug/01_sw_components/04_frs/01_src/subdir_rules.mk
  43. 15 0
      segment_main/Debug/01_sw_components/05_diag/01_src/subdir_rules.mk
  44. 26 0
      segment_main/Debug/01_sw_components/05_diag/01_src/subdir_vars.mk
  45. 154 0
      segment_main/Debug/01_sw_components/06_mem/01_src/Write_param_inEEPROM.d
  46. BIN
      segment_main/Debug/01_sw_components/06_mem/01_src/Write_param_inEEPROM.o
  47. 152 0
      segment_main/Debug/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.d
  48. BIN
      segment_main/Debug/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.o
  49. 1 1
      segment_main/Debug/01_sw_components/06_mem/01_src/subdir_rules.mk
  50. 12 0
      segment_main/Debug/01_sw_components/06_mem/01_src/subdir_vars.mk
  51. 1 1
      segment_main/Debug/01_sw_components/07_utils/01_src/subdir_rules.mk
  52. 2 0
      segment_main/Debug/ccsObjs.opt
  53. 4 2
      segment_main/Debug/makefile
  54. 625 373
      segment_main/Debug/segment_main.map
  55. BIN
      segment_main/Debug/segment_main.out
  56. 922 386
      segment_main/Debug/segment_main_linkInfo.xml
  57. 1 3
      segment_main/Debug/ti_msp_dl_config.c
  58. 6 6
      segment_main/Debug/ti_msp_dl_config.h
  59. BIN
      segment_main/Debug/ti_msp_dl_config.o

+ 1 - 3
segment_main/.cproject

@@ -98,6 +98,7 @@
                         <toolChain id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain.603073155" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.DebugToolchain" unusedChildren="">
                             <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.850667634.1621113988" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.850667634"/>
                             <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.798274808.1257019460" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.798274808"/>
+                            <targetPlatform id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.targetPlatformDebug" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.targetPlatformDebug"/>
                             <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.compilerDebug.365609633" name="Arm Compiler" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.compilerDebug.1842511993">
                                 <option id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.INCLUDE_PATH.1052449923" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.compilerID.INCLUDE_PATH" valueType="includePath">
                                     <listOptionValue value="${COM_TI_MSPM0_SDK_INCLUDE_PATH}"/>
@@ -106,9 +107,6 @@
                                     <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"/>
-                                    <listOptionValue value="C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers"/>
-                                    <listOptionValue value="C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers"/>
-                                    <listOptionValue value="C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers"/>
                                 </option>
                             </tool>
                             <tool id="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.2108867024" name="Arm Linker" superClass="com.ti.ccstudio.buildDefinitions.TMS470_TICLANG_4.0.exe.linkerDebug.1268114391"/>

+ 2 - 0
segment_main/.settings/org.eclipse.core.resources.prefs

@@ -7,6 +7,8 @@ encoding//Debug/01_sw_components/03_hw/01_src/subdir_rules.mk=UTF-8
 encoding//Debug/01_sw_components/03_hw/01_src/subdir_vars.mk=UTF-8
 encoding//Debug/01_sw_components/04_frs/01_src/subdir_rules.mk=UTF-8
 encoding//Debug/01_sw_components/04_frs/01_src/subdir_vars.mk=UTF-8
+encoding//Debug/01_sw_components/05_diag/01_src/subdir_rules.mk=UTF-8
+encoding//Debug/01_sw_components/05_diag/01_src/subdir_vars.mk=UTF-8
 encoding//Debug/01_sw_components/06_mem/01_src/subdir_rules.mk=UTF-8
 encoding//Debug/01_sw_components/06_mem/01_src/subdir_vars.mk=UTF-8
 encoding//Debug/01_sw_components/07_utils/01_src/subdir_rules.mk=UTF-8

+ 1 - 0
segment_main/01_sw_components/01_sc/01_src/init_sc.c

@@ -31,6 +31,7 @@
 #include "../../04_frs/02_headers/vardef_frs.h"
 #include "../../06_mem/02_headers/vardef_mem.h"
 #include "04_config/global_header.h"
+#include <ti/iqmath/include/IQmathLib.h>
 
 volatile  bool gCheckADC;
 DeviceID_Struct DeviceUID;

+ 1 - 2
segment_main/01_sw_components/01_sc/01_src/main_sc.c

@@ -41,12 +41,11 @@ OperationMode CurrentMode;
 
 int main(void)
 {
-    OperationMode currentMode = OPMODE_INIT;
     DL_MCAN_RxBufElement rxMsg; 
           
     while (1) {
 
-    switch(currentMode) {
+    switch(CurrentMode) {
 
         case OPMODE_INIT:
           

+ 4 - 4
segment_main/01_sw_components/02_sig/01_src/Com_tx_signal_sig.c

@@ -46,12 +46,12 @@ void AI_Com_TX_discovery_response(typUI8 order_id) {
     CAN_ID can_id;
     
     // activate the multiplexer for temperatur (set the Enable pin to setzen)
-    AI_digitalWrite(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_20, LOW);
+    AI_digitalWrite(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_0, LOW);
     
     // Wait for the discovery signal from the previous segment (on pin 19)
-    while (!readInputPin()) {
+   /* while (!readInputPin()) {
         // Wait until the input pin goes high (discovery signal received)
-    }
+    }*/
 
     // Unique ID of the segment (16 bytes)
     typUI8 segment_uid[16] = { /* Define the unique UID for each segment */ };
@@ -205,7 +205,7 @@ void AI_Com_TX_process_CAN_messages(DL_MCAN_TxBufElement txMsg)
 
    if (DISCOVERY)
     {
-     AI_digitalWrite(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_20, HIGH);
+     AI_digitalWrite(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_0, HIGH);
      DISCOVERY  = false;
     }
    

+ 2 - 1
segment_main/01_sw_components/03_hw/01_src/Hw_Interface.c

@@ -32,6 +32,7 @@
 #include "../../02_sig/02_headers/vardef_sig.h"
 #include "../../07_utils/02_headers/vardef_utils.h"
 #include "../../03_hw/02_headers/vardef_hw.h"
+#include <ti/iqmath/include/IQmathLib.h>
 
 
 void AI_GetUITempCell_Hw(typUI8 idx_cell, volatile bool gCheckADC)
@@ -198,5 +199,5 @@ void AI_Enable_Disable_Cell_Hw(typUI8 cell_index_combi) {
 
 // Function to check if the input pin is HIGH (discovery signal received)
 bool readInputPin(void) {
-    return DL_GPIO_readPins(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_19) == HIGH;
+    return DL_GPIO_readPins(GPIO_PIN_FOR_CAN_COMMUNICATION_PORT, DL_GPIO_PIN_1) == HIGH;
 }

+ 78 - 0
segment_main/01_sw_components/04_frs/01_src/OverLowVoltage_Frs.c

@@ -0,0 +1,78 @@
+
+/*
+ * Copyright (c) 2021, 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 "04_config/global_header.h"
+#include "../../04_frs/02_headers/vardef_frs.h"
+#include "../../02_sig/02_headers/vardef_sig.h"
+
+/*
+void AI_monitorCellStatus(typUI8 cellIndex, CurrentCellValue* CurrentValue_Cell) {
+
+
+    // Perform plausibility check for Voltage, Current, and Temperature
+    if (CurrentValue_Cell[cellIndex].cell_volt < Voltage_LowerLimit) {
+        CurrentValue_Cell[cellIndex].EUVOLT = 1;  // Set undervoltage error flag
+    } else if (CurrentValue_Cell[cellIndex].cell_volt > Voltage_UpperLimit) {
+        CurrentValue_Cell[cellIndex].EOVOLT = 1;  // Set overvoltage error flag
+    } else {
+        CurrentValue_Cell[cellIndex].EUVOLT = 0;  // Clear undervoltage error flag
+        CurrentValue_Cell[cellIndex].EOVOLT = 0;  // Clear overvoltage error flag
+    }
+
+    if (CurrentValue_Cell[cellIndex].cell_curr < Current_LowerLimit || 
+        CurrentValue_Cell[cellIndex].cell_curr > Current_UpperLimit) {
+        CurrentValue_Cell[cellIndex].EOCURR = 1;  // Set overcurrent error flag
+    } else {
+        CurrentValue_Cell[cellIndex].EOCURR = 0;  // Clear overcurrent error flag
+    }
+
+    if (CurrentValue_Cell[cellIndex].cell_temp < Temp_LowerLimit) {
+        CurrentValue_Cell[cellIndex].EUTEMP = 1;  // Set temperature sensor error flag
+    } else if (CurrentValue_Cell[cellIndex].cell_temp > Temp_UpperLimit) {
+        CurrentValue_Cell[cellIndex].EOTEMP = 1;  // Set overtemperature error flag
+        CurrentValue_Cell[cellIndex].ENABLE = 0; // Disable the Cell
+    } else {
+        CurrentValue_Cell[cellIndex].EUTEMP = 0;  // Clear temperature sensor error flag
+        CurrentValue_Cell[cellIndex].EOTEMP = 0;  // Clear overtemperature error flag
+    }
+
+    // Only send warning to the strang controller if an error is detected
+    if (CurrentValue_Cell[cellIndex].EOVOLT || CurrentValue_Cell[cellIndex].EUVOLT ||
+        CurrentValue_Cell[cellIndex].EOCURR || CurrentValue_Cell[cellIndex].EOTEMP ||
+        CurrentValue_Cell[cellIndex].EUTEMP) 
+    {
+        /* Send a CAN Message to Controller with warning 
+        AI_Com_TX_cell_status(CurrentValue_Cell, MYORDER_ID);
+    }
+}
+*/

+ 3 - 1
segment_main/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.c

@@ -32,6 +32,7 @@
 
 #include "04_config/global_header.h"
 #include "../../04_frs/02_headers/vardef_frs.h"
+#include "../../02_sig/02_headers/vardef_sig.h"
 /**
  * Updates the temperature of a specific cell and checks for overheating.
  *
@@ -45,11 +46,12 @@ void AI_handleOverheatingTemp(typUI8 cellIndex, typSI16 Temperature) {
     if (Temperature >= OverheatingThreshold) 
     {
         CurrentValue_Cell[cellIndex].EOTEMP = 1; // Set overtemperature error flag
-        CurrentValue_Cell[cellIndex].ENABLE = 0;
+        CurrentValue_Cell[cellIndex].ENABLE = 0; // Disable the Cell
 
         // Send message to the strang controller
         /*Send a CAN Message to Controller*/
 
+      AI_Com_TX_cell_status(CurrentValue_Cell,MYORDER_ID);
     } 
     else 
     {

+ 38 - 0
segment_main/01_sw_components/06_mem/01_src/Write_param_inEEPROM.c

@@ -0,0 +1,38 @@
+#include "../../06_mem/02_headers/eeprom_emulation_type_a.h"
+#include "ti_msp_dl_config.h"
+
+// Global variables
+uint32_t segmentIDBuffer;  // Buffer to hold the segment ID from EEPROM
+uint32_t EEPROMEmulationState;  // Stores the state of EEPROM emulation operations
+
+
+// Function to initialize EEPROM emulation (Type A)
+void eeprom_init(void) {
+    // Initialize the EEPROM emulation. Pass a pointer to the buffer where the data will be stored.
+    EEPROMEmulationState = EEPROM_TypeA_init(&segmentIDBuffer);
+
+    // Check if the initialization was successful
+    if (EEPROMEmulationState != EEPROM_EMULATION_INIT_OK) {
+        
+    }
+}
+
+// Function to save the segment ID to EEPROM
+void saveSegmentID(uint32_t segmentID) {
+    // Write the segment ID to EEPROM
+    EEPROMEmulationState = EEPROM_TypeA_writeData(&segmentID);
+
+    // Check if the write operation was successful
+    if (EEPROMEmulationState != EEPROM_EMULATION_WRITE_OK) {
+      
+    }
+}
+
+// Function to read the segment ID from EEPROM
+uint32_t readSegmentID(void) {
+    //  Read the segment ID from EEPROM
+    EEPROM_TypeA_readData(&segmentIDBuffer);
+
+    //  Return the value read from EEPROM
+    return segmentIDBuffer;
+}

+ 371 - 0
segment_main/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.c

@@ -0,0 +1,371 @@
+/*
+ * Copyright (c) 2021, 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 "../../06_mem/02_headers/eeprom_emulation_type_a.h"
+
+/* 4 global variables about active record  */
+uint32_t gActiveRecordAddress = EEPROM_EMULATION_ADDRESS;
+uint32_t gNextRecordAddress   = EEPROM_EMULATION_ADDRESS;
+uint16_t gActiveRecordNum     = 0;
+uint16_t gActiveSectorNum     = EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN;
+/* 3 global variables about format  */
+bool gEEPROMTypeASearchFlag      = 0;
+bool gEEPROMTypeAEraseFlag       = 0;
+bool gEEPROMTypeAFormatErrorFlag = 0;
+
+uint32_t EEPROM_TypeA_writeData(uint32_t *data)
+{
+    uint32_t *NextRecordPointer = (void *) gNextRecordAddress;
+    uint32_t HeaderArray64[]    = {0x0000ffff, 0xffffffff};
+    DL_FLASHCTL_COMMAND_STATUS FlashAPIState;
+
+    /* Check next address*/
+    if (*NextRecordPointer != 0xffffffff) {
+        return EEPROM_EMULATION_FORMAT_ERROR;
+    }
+
+    /* Set the new record's header to Recording */
+    DL_FlashCTL_executeClearStatus(FLASHCTL);
+    DL_FlashCTL_unprotectSector(
+        FLASHCTL, gNextRecordAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+#ifdef __MSPM0_HAS_ECC__
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64WithECCGenerated(
+        FLASHCTL, gNextRecordAddress, &HeaderArray64[0]);
+#else
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64(
+        FLASHCTL, gNextRecordAddress, &HeaderArray64[0]);
+#endif
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED)
+        return EEPROM_EMULATION_WRITE_ERROR;
+
+        /* Program data to the new record */
+#ifdef __MSPM0_HAS_ECC__
+    FlashAPIState = DL_FlashCTL_programMemoryBlockingFromRAM64WithECCGenerated(
+        FLASHCTL, (gNextRecordAddress + 8), data,
+        EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t),
+        DL_FLASHCTL_REGION_SELECT_MAIN);
+#else
+    FlashAPIState =
+        DL_FlashCTL_programMemoryFromRAM(FLASHCTL, (gNextRecordAddress + 8),
+            data, EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t),
+            DL_FLASHCTL_REGION_SELECT_MAIN);
+
+#endif
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED)
+        return EEPROM_EMULATION_WRITE_ERROR;
+
+    /* Set the new record's header to Active */
+    HeaderArray64[1] = 0x0000ffff;
+    DL_FlashCTL_executeClearStatus(FLASHCTL);
+    DL_FlashCTL_unprotectSector(
+        FLASHCTL, gNextRecordAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64(
+        FLASHCTL, gNextRecordAddress, &HeaderArray64[0]);
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED)
+        return EEPROM_EMULATION_WRITE_ERROR;
+
+    /* Update gActiveRecordNum, gActiveSectorNum*/
+    gActiveRecordNum++;
+    if (gActiveRecordNum > EEPROM_EMULATION_ACTIVE_RECORD_NUM_MAX) {
+        gActiveRecordNum      = EEPROM_EMULATION_ACTIVE_RECORD_NUM_MIN;
+        gEEPROMTypeAEraseFlag = 1;
+        gActiveSectorNum++;
+        if (gActiveSectorNum > EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX) {
+            gActiveSectorNum = EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN;
+        }
+    }
+
+    /* if last active record exists, set the last active record's header to Used */
+    if (gEEPROMTypeASearchFlag == 1) {
+        HeaderArray64[0] = 0x00000000;
+        DL_FlashCTL_executeClearStatus(FLASHCTL);
+        DL_FlashCTL_unprotectSector(
+            FLASHCTL, gActiveRecordAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+        FlashAPIState = DL_FlashCTL_programMemoryFromRAM64(
+            FLASHCTL, gActiveRecordAddress, &HeaderArray64[0]);
+        if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED)
+            return EEPROM_EMULATION_WRITE_ERROR;
+    } else {
+        gEEPROMTypeASearchFlag = 1;
+    }
+
+    /* Update gActiveRecordAddress, gNextRecordAddress*/
+    gActiveRecordAddress = gNextRecordAddress;
+    if (gActiveRecordNum >= EEPROM_EMULATION_ACTIVE_RECORD_NUM_MAX &&
+        gActiveSectorNum >= EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX) {
+        gNextRecordAddress = EEPROM_EMULATION_ADDRESS;
+    } else {
+        gNextRecordAddress =
+            gActiveRecordAddress + EEPROM_EMULATION_RECORD_SIZE;
+    }
+    return EEPROM_EMULATION_WRITE_OK;
+}
+
+uint32_t EEPROM_TypeA_init(uint32_t *data)
+{
+    bool FlashAPIState;
+    /* Search the active record and check the format*/
+    EEPROM_TypeA_searchCheck();
+
+    if (gEEPROMTypeASearchFlag == 1) {
+        /* If active record is found, copy the active record's data to buffer in RAM*/
+        EEPROM_TypeA_readData(data);
+        if (gEEPROMTypeAFormatErrorFlag == 1) {
+            /* If active record exists and format is not correct, repair the format*/
+            FlashAPIState = EEPROM_TypeA_repairFormat(data);
+            if (FlashAPIState == false) return EEPROM_EMULATION_INIT_ERROR;
+            gEEPROMTypeAFormatErrorFlag = 0;
+        } else {
+            /* If active record exists and format is correct, just erase other sectors*/
+            FlashAPIState = EEPROM_TypeA_eraseNonActiveSectors();
+            if (FlashAPIState == false) return EEPROM_EMULATION_INIT_ERROR;
+        }
+    } else {
+        /* If active record doesn't exist, erase all sectors, set global variables*/
+        FlashAPIState = EEPROM_TypeA_eraseAllSectors();
+        if (FlashAPIState == false) return EEPROM_EMULATION_INIT_ERROR;
+        gActiveRecordAddress = EEPROM_EMULATION_ADDRESS;
+        gNextRecordAddress   = EEPROM_EMULATION_ADDRESS;
+        gActiveRecordNum     = 0;
+        gActiveSectorNum     = EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN;
+    }
+    return EEPROM_EMULATION_INIT_OK;
+}
+
+void EEPROM_TypeA_readData(uint32_t *data)
+{
+    uint32_t *ReadRecordPointer;
+    uint32_t ReadRecordAddress;
+
+    ReadRecordAddress = gActiveRecordAddress + 8;
+    for (uint16_t num = 0; num < EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t);
+         num++) {
+        ReadRecordPointer = (void *) ReadRecordAddress;
+        data[num]         = *ReadRecordPointer;
+        ReadRecordAddress += 4;
+    }
+}
+
+bool EEPROM_TypeA_repairFormat(uint32_t *data)
+{
+    uint32_t FormatRepairAddress;
+    uint32_t EraseSectorAddress;
+    uint32_t HeaderArray64[] = {0x0000ffff, 0xffffffff};
+    DL_FLASHCTL_COMMAND_STATUS FlashAPIState;
+
+    /* Firstly erase other sectors*/
+    FlashAPIState = EEPROM_TypeA_eraseNonActiveSectors();
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+
+    /* Set pointer to next sector's beginning*/
+    if (gActiveSectorNum == EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX) {
+        FormatRepairAddress = EEPROM_EMULATION_ADDRESS;
+    } else {
+        FormatRepairAddress =
+            EEPROM_EMULATION_ADDRESS + gActiveSectorNum * 1024;
+    }
+
+    /* Set the new record's header to Recording */
+    DL_FlashCTL_executeClearStatus(FLASHCTL);
+    DL_FlashCTL_unprotectSector(
+        FLASHCTL, FormatRepairAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+#ifdef __MSPM0_HAS_ECC__
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64WithECCGenerated(
+        FLASHCTL, FormatRepairAddress, &HeaderArray64[0]);
+#else
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64(
+        FLASHCTL, FormatRepairAddress, &HeaderArray64[0]);
+#endif
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+
+        /* Copy the data in RAM to the new record*/
+#ifdef __MSPM0_HAS_ECC__
+    FlashAPIState = DL_FlashCTL_programMemoryBlockingFromRAM64WithECCGenerated(
+        FLASHCTL, (FormatRepairAddress + 8), data,
+        EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t),
+        DL_FLASHCTL_REGION_SELECT_MAIN);
+#else
+    FlashAPIState =
+        DL_FlashCTL_programMemoryFromRAM(FLASHCTL, (gNextRecordAddress + 8),
+            data, EEPROM_EMULATION_DATA_SIZE / sizeof(uint32_t),
+            DL_FLASHCTL_REGION_SELECT_MAIN);
+#endif
+
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+
+    /* Set the new record's header to Active */
+    HeaderArray64[1] = 0x0000ffff;
+    DL_FlashCTL_executeClearStatus(FLASHCTL);
+    DL_FlashCTL_unprotectSector(
+        FLASHCTL, FormatRepairAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+    FlashAPIState = DL_FlashCTL_programMemoryFromRAM64(
+        FLASHCTL, FormatRepairAddress, &HeaderArray64[0]);
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+
+    /* Update 4 global variables about active record */
+    gActiveRecordNum = EEPROM_EMULATION_ACTIVE_RECORD_NUM_MIN;
+    if (gActiveSectorNum == EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX) {
+        gActiveSectorNum = EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN;
+    } else {
+        gActiveSectorNum += 1;
+    }
+    gActiveRecordAddress = FormatRepairAddress;
+    gNextRecordAddress   = gActiveRecordAddress + EEPROM_EMULATION_RECORD_SIZE;
+
+    /* Erase the last sector */
+    FlashAPIState = EEPROM_TypeA_eraseLastSector();
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+    return true;
+}
+
+void EEPROM_TypeA_searchCheck(void)
+{
+    uint16_t SearchRecordNum, SearchSectorNum;
+    uint32_t Temp0, Temp1;
+    bool SectorState;
+    uint32_t SearchRecordAddress  = EEPROM_EMULATION_ADDRESS;
+    uint32_t *SearchRecordPointer = (void *) SearchRecordAddress;
+
+    /* Clear flag*/
+    gEEPROMTypeASearchFlag      = 0;
+    gEEPROMTypeAFormatErrorFlag = 0;
+
+    /* Traverse records header to search the active record and check the format*/
+    for (SearchSectorNum = EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN;
+         SearchSectorNum <= EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX;
+         SearchSectorNum++) {
+        SectorState = 0;
+        for (SearchRecordNum = EEPROM_EMULATION_ACTIVE_RECORD_NUM_MIN;
+             SearchRecordNum <= EEPROM_EMULATION_ACTIVE_RECORD_NUM_MAX;
+             SearchRecordNum++) {
+            /* Read the header*/
+            SearchRecordPointer = (void *) SearchRecordAddress;
+            Temp0               = *SearchRecordPointer;
+            SearchRecordPointer = (void *) (SearchRecordAddress + 4);
+            Temp1               = *SearchRecordPointer;
+
+            if (Temp0 == 0xffffffff && Temp1 == 0xffffffff)  //Erased
+            {
+                /* if Erased is followed by other states in a sector, the format is error.
+                 * SectorState is to find out this situation*/
+                SectorState = 1;
+            } else if (Temp0 == 0x00000000 && Temp1 == 0x0000ffff &&
+                       SectorState == 0)  //Used
+            {
+            } else if (Temp0 == 0x0000ffff && Temp1 == 0x0000ffff &&
+                       SectorState == 0)  //Active
+            {
+                /* If active record is found, 4 global variables are updated, and gEEPROMTypeASearchFlag is set*/
+                gActiveRecordAddress = SearchRecordAddress;
+                gActiveRecordNum     = SearchRecordNum;
+                gActiveSectorNum     = SearchSectorNum;
+                if (gActiveRecordNum >=
+                        EEPROM_EMULATION_ACTIVE_RECORD_NUM_MAX &&
+                    gActiveSectorNum >=
+                        EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX) {
+                    gNextRecordAddress = EEPROM_EMULATION_ADDRESS;
+                } else {
+                    gNextRecordAddress =
+                        gActiveRecordAddress + EEPROM_EMULATION_RECORD_SIZE;
+                }
+                gEEPROMTypeASearchFlag = 1;
+            } else if (Temp0 == 0x0000ffff && Temp1 == 0xffffffff &&
+                       SectorState == 0)  //Recording
+            {
+                gEEPROMTypeAFormatErrorFlag = 1;
+            } else {
+                gEEPROMTypeAFormatErrorFlag = 1;
+            }
+            /* Point to next record*/
+            SearchRecordAddress += (EEPROM_EMULATION_RECORD_SIZE);
+        }
+    }
+}
+
+bool EEPROM_TypeA_eraseLastSector(void)
+{
+    uint32_t EraseSectorAddress;
+    DL_FLASHCTL_COMMAND_STATUS FlashAPIState;
+    if (gActiveSectorNum > EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN) {
+        EraseSectorAddress =
+            EEPROM_EMULATION_ADDRESS + 1024 * (gActiveSectorNum - 2);
+    } else {
+        EraseSectorAddress =
+            EEPROM_EMULATION_ADDRESS +
+            1024 * (EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX - 1);
+    }
+
+    DL_FlashCTL_executeClearStatus(FLASHCTL);
+    DL_FlashCTL_unprotectSector(
+        FLASHCTL, EraseSectorAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+    FlashAPIState = DL_FlashCTL_eraseMemoryFromRAM(
+        FLASHCTL, EraseSectorAddress, DL_FLASHCTL_COMMAND_SIZE_SECTOR);
+    if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+
+    return true;
+}
+
+bool EEPROM_TypeA_eraseNonActiveSectors(void)
+{
+    uint32_t EraseSectorAddress;
+    DL_FLASHCTL_COMMAND_STATUS FlashAPIState;
+    uint16_t num;
+    for (num = 0; num < EEPROM_EMULATION_SECTOR_ACCOUNT; num++) {
+        if (num != (gActiveSectorNum - 1)) {
+            EraseSectorAddress = EEPROM_EMULATION_ADDRESS + 1024 * num;
+            DL_FlashCTL_executeClearStatus(FLASHCTL);
+            DL_FlashCTL_unprotectSector(
+                FLASHCTL, EraseSectorAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+            FlashAPIState = DL_FlashCTL_eraseMemoryFromRAM(
+                FLASHCTL, EraseSectorAddress, DL_FLASHCTL_COMMAND_SIZE_SECTOR);
+            if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED)
+                return false;
+        }
+    }
+    return true;
+}
+
+bool EEPROM_TypeA_eraseAllSectors(void)
+{
+    uint32_t EraseSectorAddress;
+    DL_FLASHCTL_COMMAND_STATUS FlashAPIState;
+    uint16_t num;
+    for (num = 0; num < EEPROM_EMULATION_SECTOR_ACCOUNT; num++) {
+        EraseSectorAddress = EEPROM_EMULATION_ADDRESS + 1024 * num;
+        DL_FlashCTL_executeClearStatus(FLASHCTL);
+        DL_FlashCTL_unprotectSector(
+            FLASHCTL, EraseSectorAddress, DL_FLASHCTL_REGION_SELECT_MAIN);
+        FlashAPIState = DL_FlashCTL_eraseMemoryFromRAM(
+            FLASHCTL, EraseSectorAddress, DL_FLASHCTL_COMMAND_SIZE_SECTOR);
+        if (FlashAPIState == DL_FLASHCTL_COMMAND_STATUS_FAILED) return false;
+    }
+    return true;
+}

+ 306 - 0
segment_main/01_sw_components/06_mem/02_headers/eeprom_emulation_type_a.h

@@ -0,0 +1,306 @@
+/*
+ * 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.
+ */
+/*!****************************************************************************
+ *  @file       eeprom_emulation_type_a.h
+ *  @brief      EEPROM Emulation Type A
+ *  @defgroup   EEPROM_TYPE_A EEPROM Emulation Type A
+ *
+ *  @anchor EEPROM_EMULATION_TYPE_A_H__Overview
+ *  # Overview
+ *
+ *  MSPM0 support EEPROM emulation through its internal Flash. Compared to using
+ *  an external serial EEPROM, EEPROM emulation using the internal Flash saves
+ *  pin usage and cost.
+ *  The EEPROM emulation Type A solution is suitable if the user application
+ *  needs to store large "blocks" of data.
+ *
+ *  <hr>
+ ******************************************************************************/
+/** @addtogroup EEPROM_TYPE_A
+ * @{
+ */
+#ifndef EEPROM_EMULATION_TYPE_A_H_
+#define EEPROM_EMULATION_TYPE_A_H_
+
+#include <stdbool.h>
+#include <stdint.h>
+
+#include <ti/devices/msp/msp.h>
+#include <ti/driverlib/driverlib.h>
+#include <ti/driverlib/m0p/dl_core.h>
+
+/* clang-format off */
+
+ /** @addtogroup EEPROM_TYPE_A_USER_CONFIGURABLE_PARAMETERS
+  *
+  * EEPROM Type A library user configurable parameters.
+ * @{
+ */
+/*!
+ * @brief The sector address to use
+ */
+#ifndef EEPROM_EMULATION_ADDRESS
+#define EEPROM_EMULATION_ADDRESS                                    (0x00001000)
+#endif
+/*!
+ * @brief The number of sectors to use
+ */
+#define EEPROM_EMULATION_SECTOR_ACCOUNT                                      (2)
+/*!
+ * @brief The record size. Valid values are 64 (64B), 128 (128B), or 256 (256B).
+ */
+#define EEPROM_EMULATION_RECORD_SIZE                                       (128)
+/** @}*/
+
+ /** @addtogroup EEPROM_TYPE_A_LIB_PARAMETERS
+  *
+  * These defines are used by the EEPROM Type A Library. It is not recommended
+  *  to modify the following parameters
+ * @{
+ */
+/*!
+ * @brief The size of the data
+ */
+#define EEPROM_EMULATION_DATA_SIZE            (EEPROM_EMULATION_RECORD_SIZE - 8)
+/*!
+ * @brief The number of records in a sector
+ */
+#define EEPROM_EMULATION_RECORD_ACCOUNT    (1024 / EEPROM_EMULATION_RECORD_SIZE)
+/*!
+ * @brief The minimum number of records in a sector
+ */
+#define EEPROM_EMULATION_ACTIVE_RECORD_NUM_MIN                               (1)
+/*!
+ * @brief The maximum number of records in a sector
+ */
+#define EEPROM_EMULATION_ACTIVE_RECORD_NUM_MAX                                 \
+                                               (EEPROM_EMULATION_RECORD_ACCOUNT)
+/*!
+ * @brief The minimum number of active sectors
+ */
+#define EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MIN                               (1)
+/*!
+ * @brief The maximum number of active sectors
+ */
+#define EEPROM_EMULATION_ACTIVE_SECTOR_NUM_MAX                                 \
+                                               (EEPROM_EMULATION_SECTOR_ACCOUNT)
+ /** @}*/
+
+ /** @addtogroup EEPROM_TYPE_A_STATUS
+  *
+  * These defines are used for the return status of some commands.
+ * @{
+ */
+/*!
+ * @brief Data write is successful
+ */
+#define EEPROM_EMULATION_WRITE_OK                       ((uint32_t) 0x00000000U)
+/*!
+ * @brief Data write failed
+ */
+#define EEPROM_EMULATION_WRITE_ERROR                    ((uint32_t) 0x00000001U)
+/*!
+ * @brief Formatting error
+ */
+#define EEPROM_EMULATION_FORMAT_ERROR                   ((uint32_t) 0x00000010U)
+/*!
+ * @brief Initialization is successful
+ */
+#define EEPROM_EMULATION_INIT_OK                        ((uint32_t) 0x00000000U)
+/*!
+ * @brief Initialization failed
+ */
+#define EEPROM_EMULATION_INIT_ERROR                     ((uint32_t) 0x00000002U)
+/** @}*/
+
+/* clang-format on */
+
+/** \brief Store the address of the current active record */
+extern uint32_t gActiveRecordAddress;
+/** \brief Store the address of the next active record */
+extern uint32_t gNextRecordAddress;
+/** \brief Store the number of active records */
+extern uint16_t gActiveRecordNum;
+/** \brief Store the number of active sectors */
+extern uint16_t gActiveSectorNum;
+
+/** \brief Indicate when the active record exists */
+extern bool gEEPROMTypeASearchFlag;
+/** \brief Indicate when the sector is full nad needs to be erased */
+extern bool gEEPROMTypeAEraseFlag;
+/** \brief Indicate when a format error is found */
+extern bool gEEPROMTypeAFormatErrorFlag;
+
+/**
+ *  @brief      Store provided data to the virtual EEPROM
+ *
+ *  The function will store the data to the flash to be a new record. It
+ *  will also add a header to the record to mark its state. When the flash
+ *  sector is full, it will set the gEEPROMTypeAEraseFlag.
+ *
+ *  @param[in]  data          Pointer to the buffer in RAM
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     EEPROM_EMULATION_WRITE_OK        Program was successful
+ *  @retval     EEPROM_EMULATION_FORMAT_ERROR    Next address was not erased
+ *
+ *  @pre         The user must ensure that the length of the buffer in RAM is
+ *               equal to the length of the data portion of the record.
+ *  @post        When the sector is full, the function only set the gEEPROMTypeAEraseFlag.
+ *               The user should erase the sector before all sectors are full.
+ *               Refer to @ref EEPROM_TypeA_eraseLastSector.
+ */
+uint32_t EEPROM_TypeA_writeData(uint32_t *data);
+
+/**
+ *  @brief      Initialize the specified area in flash
+ *
+ *  The function will first search the active record and check the format
+ *  at the specified area. If active record exists, it will copy the data of
+ *  active record to the buffer in RAM. If format is not correct, it will repair
+ *  the format.
+ *
+ *  @param[in]  data          Pointer to the buffer in RAM
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     EEPROM_EMULATION_INIT_OK        Program was successful
+ *  @retval     EEPROM_EMULATION_INIT_ERROR    Next address was not erased
+ *
+ *  @pre         The user must ensure that the length of the buffer in RAM is
+ *               equal to the length of the data portion of the record.
+ *  @post        After @ref EEPROM_TypeA_init, there will be a format-correct
+ *               area in flash, a buffer in RAM copied the active record,
+ *               and some global variables that have been written.
+ *
+ *               4 global variables about active record:
+ *                  gActiveRecordAddress
+ *                  gNextRecordAddress
+ *                  gActiveRecordNum
+ *                  gActiveSectorNum
+ *               3 global variables about format:
+ *                  gEEPROMTypeASearchFlag
+ *                  gEEPROMTypeAEraseFlag
+ *                  gEEPROMTypeAFormatErrorFlag
+ */
+uint32_t EEPROM_TypeA_init(uint32_t *data);
+
+/**
+ *  @brief      Read the data from active record to the buffer in RAM
+ *
+ *  @param[in]  data          Pointer to the buffer in RAM
+ *
+ *  @pre         The user must ensure that the length of the buffer in RAM
+ *               is equal to the length of the data portion of the record.
+ *
+ */
+void EEPROM_TypeA_readData(uint32_t *data);
+
+/**
+ *  @brief      Repair the format
+ *
+ *  The function will first erase sectors other than the active sector. Then
+ *  it will copy the data from the buffer in RAM to the beginning of next sector,
+ *  which is to be new active record. 4 global variables about active record are
+ *  updated too. Finally, the function erase the last sector
+ *
+ *  @param[in]  data          Pointer to the buffer in RAM
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     false   Program didn't succeed
+ *  @retval     true    Program was successful
+ *
+ *  @pre         The user must firstly prepare the data in RAM before call the
+ *               function. The user must ensure that the length of the buffer
+ *               in RAM is equal to the length of the data portion of the record.
+ *  @post        After EEPROM_TypeA_repairFormat, all sectors are erased
+ *               and the active record is at the beginning of next sector
+ *
+ *  NOTE: The user must firstly prepare the data in RAM before call the function.
+ *        It is recommended to read active record into RAM first, then call the
+ *        function to repair the format and write active record back.
+ */
+bool EEPROM_TypeA_repairFormat(uint32_t *data);
+
+/**
+ *  @brief      Search the active record and check the format
+ *
+ *  The function will traverse records� header. If the active record exists,
+ *  gEEPROMTypeASearchFlag will be set, and 4 global variables about active record are
+ *  updated. If the format is wrong, gEEPROMTypeAFormatErrorFlag is set
+ *
+ *  @post        If the active record exists, gEEPROMTypeASearchFlag will be set,
+ *               and 4 global variables about active record are updated.
+ *               If the format is wrong, gEEPROMTypeAFormatErrorFlag is set
+ */
+void EEPROM_TypeA_searchCheck(void);
+
+/**
+ *  @brief      Erase the previous sector of the active sector
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     false   Program didn't succeed
+ *  @retval     true    Program was successful
+ *
+ * According to gActiveSectorNum, the function can find the sector with active record.
+ * Then it will erase the previous sector
+ */
+bool EEPROM_TypeA_eraseLastSector(void);
+
+/**
+ *  @brief     Erases sectors other than the active sector
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     false   Program didn't succeed
+ *  @retval     true    Program was successful
+ *
+ * According to gActiveSectorNum, the function can find the sector with active record.
+ * Then it will erase sectors other than the active sector
+ */
+bool EEPROM_TypeA_eraseNonActiveSectors(void);
+
+/**
+ *  @brief      Erase all sectors used by EEPROM emulation
+ *
+ *  @return     Whether or not the program succeeded
+ *
+ *  @retval     false   Program didn't succeed
+ *  @retval     true    Program was successful
+ */
+bool EEPROM_TypeA_eraseAllSectors(void);
+
+#endif /* EEPROM_EMULATION_TYPE_A_H_ */
+/** @}*/

+ 6 - 0
segment_main/01_sw_components/06_mem/02_headers/vardef_mem.h

@@ -42,4 +42,10 @@
 extern  void GetDeviceUID (void);
 extern  void initializeDeviceID(void);
 
+
+extern void eeprom_init(void);
+extern void saveSegmentID(uint32_t segmentID);
+extern uint32_t readSegmentID(void);
+
+
 #endif

+ 10 - 10
segment_main/04_config/segment_main.syscfg

@@ -11,7 +11,6 @@
  */
 const ADC12   = scripting.addModule("/ti/driverlib/ADC12", {}, false);
 const ADC121  = ADC12.addInstance();
-const Board   = scripting.addModule("/ti/driverlib/Board");
 const GPIO    = scripting.addModule("/ti/driverlib/GPIO", {}, false);
 const GPIO1   = GPIO.addInstance();
 const GPIO2   = GPIO.addInstance();
@@ -55,9 +54,10 @@ ADC121.adcPin2Config.$name        = "ti_driverlib_gpio_GPIOPinGeneric0";
 ADC121.adcPin3Config.$name        = "ti_driverlib_gpio_GPIOPinGeneric2";
 ADC121.adcPin7Config.$name        = "ti_driverlib_gpio_GPIOPinGeneric1";
 
-Board.peripheral.$assign                        = "DEBUGSS";
-Board.peripheral.swclkPin.$assignAllowConflicts = "PA20";
-Board.peripheral.swdioPin.$assignAllowConflicts = "PA19";
+const Board                       = scripting.addModule("/ti/driverlib/Board", {}, false);
+Board.peripheral.$assign          = "DEBUGSS";
+Board.peripheral.swclkPin.$assign = "PA20";
+Board.peripheral.swdioPin.$assign = "PA19";
 
 GPIO1.$name                         = "GPIO_MULTIPLEXER_PIN_CONFIG";
 GPIO1.associatedPins.create(5);
@@ -89,13 +89,13 @@ GPIO3.$name                         = "GPIO_BRIDGE_SEGMENT";
 GPIO3.associatedPins[0].$name       = "PIN_BRIDGE_SEGMENT";
 GPIO3.associatedPins[0].pin.$assign = "PA10";
 
-GPIO4.$name                                       = "GPIO_PIN_FOR_CAN_COMMUNICATION";
+GPIO4.$name                         = "GPIO_PIN_FOR_CAN_COMMUNICATION";
 GPIO4.associatedPins.create(2);
-GPIO4.associatedPins[0].direction                 = "INPUT";
-GPIO4.associatedPins[0].$name                     = "PIN_DISCOVERY_IN";
-GPIO4.associatedPins[0].pin.$assignAllowConflicts = "PA19";
-GPIO4.associatedPins[1].$name                     = "PIN_DISCOVERY_OUT";
-GPIO4.associatedPins[1].pin.$assignAllowConflicts = "PA20";
+GPIO4.associatedPins[0].direction   = "INPUT";
+GPIO4.associatedPins[0].$name       = "PIN_DISCOVERY_IN";
+GPIO4.associatedPins[0].pin.$assign = "PA0";
+GPIO4.associatedPins[1].$name       = "PIN_DISCOVERY_OUT";
+GPIO4.associatedPins[1].pin.$assign = "PA1";
 
 MCAN1.$name                = "MCAN0";
 MCAN1.wkupReqEnable        = true;

BIN
segment_main/Debug/.clangd/.cache/clangd/index/Com_tx_signal_sig.c.1C87430846B5339E.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/Hw_Interface.c.43483B0B0C4F24F8.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/IQmathLib.h.F69136388286AF73.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/OverLowVoltage_Frs.c.68A7B0EB7192E25F.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/OverheatingTemperature_Frs.c.8C7AC8FEC6C34CFA.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/Segment_Monitoring_hw.c.4A9D8FAB774F2A61.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/Segment_Monitoring_hw.c.9A398F63E5153946.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/Write_param_inEEPROM.c.FAD697D21EF23F59.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/eeprom_emulation_type_a.c.03BA3794350BC137.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/eeprom_emulation_type_a.h.CB0E8781735DBAC2.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/init_sc.c.435F321C8C7F1849.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/main_sc.c.D8EB5CB0AEF3E502.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.c.B931F9EE02218759.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.h.C26D5E739004F756.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/vardef_mem.h.2B52F8B8D13D91D2.idx


+ 12 - 2
segment_main/Debug/.clangd/compile_commands.json

@@ -52,11 +52,21 @@
    {
       "directory" : "C:/Users/User/workspace_ccstheia/segment_main/Debug",
       "command"   : "clang++ -D__MSPM0G3507__ -I\"C:/Users/User/workspace_ccstheia/segment_main\" -I\"C:/Users/User/workspace_ccstheia/segment_main/Debug\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sc/02_headers\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
-      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/Debug/ti_msp_dl_config.c"
+      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/06_mem/01_src/initializeDeviceID.c"
    },
    {
       "directory" : "C:/Users/User/workspace_ccstheia/segment_main/Debug",
       "command"   : "clang++ -D__MSPM0G3507__ -I\"C:/Users/User/workspace_ccstheia/segment_main\" -I\"C:/Users/User/workspace_ccstheia/segment_main/Debug\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sc/02_headers\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
-      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/06_mem/01_src/initializeDeviceID.c"
+      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/06_mem/01_src/Write_param_inEEPROM.c"
+   },
+   {
+      "directory" : "C:/Users/User/workspace_ccstheia/segment_main/Debug",
+      "command"   : "clang++ -D__MSPM0G3507__ -I\"C:/Users/User/workspace_ccstheia/segment_main\" -I\"C:/Users/User/workspace_ccstheia/segment_main/Debug\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sc/02_headers\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
+      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.c"
+   },
+   {
+      "directory" : "C:/Users/User/workspace_ccstheia/segment_main/Debug",
+      "command"   : "clang++ -D__MSPM0G3507__ -I\"C:/Users/User/workspace_ccstheia/segment_main\" -I\"C:/Users/User/workspace_ccstheia/segment_main/Debug\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include\" -I\"C:/ti/mspm0_sdk_2_02_00_05/source\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers\" -I\"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sc/02_headers\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/armv7em-ti-none-eabihf/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c++/v1\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/lib/clang/18/include\" -isystem\"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/include/c\"",
+      "file"      : "C:/Users/User/workspace_ccstheia/segment_main/Debug/ti_msp_dl_config.c"
    }
 ]

+ 3 - 1
segment_main/Debug/01_sw_components/01_sc/01_src/init_sc.d

@@ -88,7 +88,8 @@
  ../01_sw_components/02_sig/02_headers/vardef_sig.h \
  ../01_sw_components/01_sc/02_headers/vardef_sc.h \
  ../01_sw_components/04_frs/02_headers/vardef_frs.h \
- ../01_sw_components/06_mem/02_headers/vardef_mem.h
+ ../01_sw_components/06_mem/02_headers/vardef_mem.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/iqmath/include/IQmathLib.h
 ../01_sw_components/03_hw/02_headers/vardef_hw.h:
 C:/Users/User/workspace_ccstheia/segment_main/04_config/global_header.h:
 ti_msp_dl_config.h:
@@ -176,3 +177,4 @@ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h:
 ../01_sw_components/01_sc/02_headers/vardef_sc.h:
 ../01_sw_components/04_frs/02_headers/vardef_frs.h:
 ../01_sw_components/06_mem/02_headers/vardef_mem.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/iqmath/include/IQmathLib.h:

BIN
segment_main/Debug/01_sw_components/01_sc/01_src/init_sc.o


BIN
segment_main/Debug/01_sw_components/01_sc/01_src/main_sc.o


+ 1 - 1
segment_main/Debug/01_sw_components/01_sc/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/01_sc/01_src/%.o: ../01_sw_components/01_sc/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/01_sc/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/01_sc/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

BIN
segment_main/Debug/01_sw_components/02_sig/01_src/Com_tx_signal_sig.o


+ 1 - 1
segment_main/Debug/01_sw_components/02_sig/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/02_sig/01_src/%.o: ../01_sw_components/02_sig/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/02_sig/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/02_sig/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

+ 3 - 1
segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.d

@@ -86,7 +86,8 @@
  ../01_sw_components/01_sc/02_headers/vardef_sc.h \
  ../01_sw_components/04_frs/02_headers/vardef_frs.h \
  ../01_sw_components/07_utils/02_headers/vardef_utils.h \
- ../01_sw_components/03_hw/02_headers/vardef_hw.h
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/iqmath/include/IQmathLib.h
 C:/Users/User/workspace_ccstheia/segment_main/04_config/global_header.h:
 ti_msp_dl_config.h:
 C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/msp.h:
@@ -172,3 +173,4 @@ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h:
 ../01_sw_components/04_frs/02_headers/vardef_frs.h:
 ../01_sw_components/07_utils/02_headers/vardef_utils.h:
 ../01_sw_components/03_hw/02_headers/vardef_hw.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/iqmath/include/IQmathLib.h:

BIN
segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.o


+ 1 - 1
segment_main/Debug/01_sw_components/03_hw/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/03_hw/01_src/%.o: ../01_sw_components/03_hw/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/03_hw/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/03_hw/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

+ 169 - 1
segment_main/Debug/01_sw_components/04_frs/01_src/OverLowVoltage_Frs.d

@@ -1,4 +1,172 @@
 # FIXED
 
 01_sw_components/04_frs/01_src/OverLowVoltage_Frs.o: \
- ../01_sw_components/04_frs/01_src/OverLowVoltage_Frs.c
+ ../01_sw_components/04_frs/01_src/OverLowVoltage_Frs.c \
+ C:/Users/User/workspace_ccstheia/segment_main/04_config/global_header.h \
+ ti_msp_dl_config.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/msp.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/DeviceFamily.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/m0p/mspm0g350x.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include/core_cm0plus.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_adc12.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_aes.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_comp.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_crc.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_dac12.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_dma.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_flashctl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_gpio.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_gptimer.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_i2c.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_iomux.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_mathacl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_mcan.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_oa.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_rtc.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_spi.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_trng.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_uart.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_vref.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_wuc.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_wwdt.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_debugss.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/driverlib.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_adc12.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_common.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_factoryregion.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_core.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_aes.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_aesadv.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_comp.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_crc.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_crcp.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_dac12.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_dma.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_flashctl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_sysctl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_gpamp.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_gpio.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_i2c.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_iwdt.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_lfss.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_keystorectl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_lcd.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_mathacl.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_mcan.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_opa.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_common.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_a.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_b.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_scratchpad.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_spi.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_tamperio.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timera.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timer.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timerg.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_trng.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart_extend.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart_main.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_vref.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_wwdt.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_interrupt.h \
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h \
+ ../01_sw_components/04_frs/02_headers/vardef_frs.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/01_sc/02_headers/vardef_sc.h \
+ ../01_sw_components/04_frs/02_headers/vardef_frs.h \
+ ../01_sw_components/01_sc/02_headers/vardef_sc.h \
+ ../01_sw_components/04_frs/02_headers/vardef_frs.h
+C:/Users/User/workspace_ccstheia/segment_main/04_config/global_header.h:
+ti_msp_dl_config.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/msp.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/DeviceFamily.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/m0p/mspm0g350x.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include/core_cm0plus.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_adc12.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_aes.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_comp.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_crc.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_dac12.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_dma.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_flashctl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_gpio.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_gptimer.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_i2c.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_iomux.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_mathacl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_mcan.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_oa.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_rtc.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_spi.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_trng.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_uart.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_vref.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_wuc.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/hw_wwdt.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_factoryregion.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_cpuss.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_debugss.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_sysctl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/driverlib.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_adc12.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_common.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_factoryregion.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_core.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_aes.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_aesadv.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_comp.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_crc.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_crcp.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_dac12.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_dma.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_flashctl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_sysctl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/sysctl/dl_sysctl_mspm0g1x0x_g3x0x.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_gpamp.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_gpio.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_i2c.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_iwdt.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_lfss.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_keystorectl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_lcd.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_mathacl.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_mcan.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_opa.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_common.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_a.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_rtc_b.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_scratchpad.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_spi.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_tamperio.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timera.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timer.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_timerg.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_trng.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart_extend.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_uart_main.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_vref.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_wwdt.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_interrupt.h:
+C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h:
+../01_sw_components/04_frs/02_headers/vardef_frs.h:
+../01_sw_components/02_sig/02_headers/vardef_sig.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:
+../01_sw_components/02_sig/02_headers/vardef_sig.h:
+../01_sw_components/01_sc/02_headers/vardef_sc.h:
+../01_sw_components/04_frs/02_headers/vardef_frs.h:
+../01_sw_components/01_sc/02_headers/vardef_sc.h:
+../01_sw_components/04_frs/02_headers/vardef_frs.h:

+ 16 - 0
segment_main/Debug/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.d

@@ -77,6 +77,14 @@
  C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_wwdt.h \
  C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_interrupt.h \
  C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h \
+ ../01_sw_components/04_frs/02_headers/vardef_frs.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/01_sc/02_headers/vardef_sc.h \
+ ../01_sw_components/04_frs/02_headers/vardef_frs.h \
+ ../01_sw_components/01_sc/02_headers/vardef_sc.h \
  ../01_sw_components/04_frs/02_headers/vardef_frs.h
 C:/Users/User/workspace_ccstheia/segment_main/04_config/global_header.h:
 ti_msp_dl_config.h:
@@ -154,3 +162,11 @@ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/dl_wwdt.h:
 C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_interrupt.h:
 C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h:
 ../01_sw_components/04_frs/02_headers/vardef_frs.h:
+../01_sw_components/02_sig/02_headers/vardef_sig.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:
+../01_sw_components/02_sig/02_headers/vardef_sig.h:
+../01_sw_components/01_sc/02_headers/vardef_sc.h:
+../01_sw_components/04_frs/02_headers/vardef_frs.h:
+../01_sw_components/01_sc/02_headers/vardef_sc.h:
+../01_sw_components/04_frs/02_headers/vardef_frs.h:

BIN
segment_main/Debug/01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.o


+ 1 - 1
segment_main/Debug/01_sw_components/04_frs/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/04_frs/01_src/%.o: ../01_sw_components/04_frs/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/04_frs/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/04_frs/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

+ 15 - 0
segment_main/Debug/01_sw_components/05_diag/01_src/subdir_rules.mk

@@ -0,0 +1,15 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+SHELL = cmd.exe
+
+# Each subdirectory must supply rules for building sources it contributes
+01_sw_components/05_diag/01_src/%.o: ../01_sw_components/05_diag/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
+	@echo 'Building file: "$<"'
+	@echo 'Invoking: Arm Compiler'
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/05_diag/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+

+ 26 - 0
segment_main/Debug/01_sw_components/05_diag/01_src/subdir_vars.mk

@@ -0,0 +1,26 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+SHELL = cmd.exe
+
+# Add inputs and outputs from these tool invocations to the build variables 
+C_SRCS += \
+../01_sw_components/05_diag/01_src/Segment_Monitoring_hw.c 
+
+C_DEPS += \
+./01_sw_components/05_diag/01_src/Segment_Monitoring_hw.d 
+
+OBJS += \
+./01_sw_components/05_diag/01_src/Segment_Monitoring_hw.o 
+
+OBJS__QUOTED += \
+"01_sw_components\05_diag\01_src\Segment_Monitoring_hw.o" 
+
+C_DEPS__QUOTED += \
+"01_sw_components\05_diag\01_src\Segment_Monitoring_hw.d" 
+
+C_SRCS__QUOTED += \
+"../01_sw_components/05_diag/01_src/Segment_Monitoring_hw.c" 
+
+

+ 154 - 0
segment_main/Debug/01_sw_components/06_mem/01_src/Write_param_inEEPROM.d

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

BIN
segment_main/Debug/01_sw_components/06_mem/01_src/Write_param_inEEPROM.o


+ 152 - 0
segment_main/Debug/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.d

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

BIN
segment_main/Debug/01_sw_components/06_mem/01_src/eeprom_emulation_type_a.o


+ 1 - 1
segment_main/Debug/01_sw_components/06_mem/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/06_mem/01_src/%.o: ../01_sw_components/06_mem/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/06_mem/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/06_mem/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

+ 12 - 0
segment_main/Debug/01_sw_components/06_mem/01_src/subdir_vars.mk

@@ -7,26 +7,38 @@ SHELL = cmd.exe
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
 ../01_sw_components/06_mem/01_src/GetDeviceID_Mem.c \
+../01_sw_components/06_mem/01_src/Write_param_inEEPROM.c \
+../01_sw_components/06_mem/01_src/eeprom_emulation_type_a.c \
 ../01_sw_components/06_mem/01_src/initializeDeviceID.c 
 
 C_DEPS += \
 ./01_sw_components/06_mem/01_src/GetDeviceID_Mem.d \
+./01_sw_components/06_mem/01_src/Write_param_inEEPROM.d \
+./01_sw_components/06_mem/01_src/eeprom_emulation_type_a.d \
 ./01_sw_components/06_mem/01_src/initializeDeviceID.d 
 
 OBJS += \
 ./01_sw_components/06_mem/01_src/GetDeviceID_Mem.o \
+./01_sw_components/06_mem/01_src/Write_param_inEEPROM.o \
+./01_sw_components/06_mem/01_src/eeprom_emulation_type_a.o \
 ./01_sw_components/06_mem/01_src/initializeDeviceID.o 
 
 OBJS__QUOTED += \
 "01_sw_components\06_mem\01_src\GetDeviceID_Mem.o" \
+"01_sw_components\06_mem\01_src\Write_param_inEEPROM.o" \
+"01_sw_components\06_mem\01_src\eeprom_emulation_type_a.o" \
 "01_sw_components\06_mem\01_src\initializeDeviceID.o" 
 
 C_DEPS__QUOTED += \
 "01_sw_components\06_mem\01_src\GetDeviceID_Mem.d" \
+"01_sw_components\06_mem\01_src\Write_param_inEEPROM.d" \
+"01_sw_components\06_mem\01_src\eeprom_emulation_type_a.d" \
 "01_sw_components\06_mem\01_src\initializeDeviceID.d" 
 
 C_SRCS__QUOTED += \
 "../01_sw_components/06_mem/01_src/GetDeviceID_Mem.c" \
+"../01_sw_components/06_mem/01_src/Write_param_inEEPROM.c" \
+"../01_sw_components/06_mem/01_src/eeprom_emulation_type_a.c" \
 "../01_sw_components/06_mem/01_src/initializeDeviceID.c" 
 
 

+ 1 - 1
segment_main/Debug/01_sw_components/07_utils/01_src/subdir_rules.mk

@@ -8,7 +8,7 @@ SHELL = cmd.exe
 01_sw_components/07_utils/01_src/%.o: ../01_sw_components/07_utils/01_src/%.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
 	@echo 'Building file: "$<"'
 	@echo 'Invoking: Arm Compiler'
-	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers" -I"C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers" -gdwarf-3 -MMD -MP -MF"01_sw_components/07_utils/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
+	"C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-armllvm_4.0.0.LTS/bin/tiarmclang.exe" -c @"device.opt"  -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/User/workspace_ccstheia/segment_main" -I"C:/Users/User/workspace_ccstheia/segment_main/Debug" -I"C:/ti/mspm0_sdk_2_02_00_05/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_02_00_05/source" -gdwarf-3 -MMD -MP -MF"01_sw_components/07_utils/01_src/$(basename $(<F)).d_raw" -MT"$(@)"  $(GEN_OPTS__FLAG) -o"$@" "$<"
 	@echo 'Finished building: "$<"'
 	@echo ' '
 

+ 2 - 0
segment_main/Debug/ccsObjs.opt

@@ -6,6 +6,8 @@
 "./01_sw_components/04_frs/01_src/OverLowVoltage_Frs.o"
 "./01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.o"
 "./01_sw_components/06_mem/01_src/GetDeviceID_Mem.o"
+"./01_sw_components/06_mem/01_src/Write_param_inEEPROM.o"
+"./01_sw_components/06_mem/01_src/eeprom_emulation_type_a.o"
 "./01_sw_components/06_mem/01_src/initializeDeviceID.o"
 "./01_sw_components/07_utils/01_src/Store_DeviceUID_Unit8_Array_Utils.o"
 "./01_sw_components/07_utils/01_src/parseCanID_utils.o"

+ 4 - 2
segment_main/Debug/makefile

@@ -18,6 +18,8 @@ ORDERED_OBJS += \
 "./01_sw_components/04_frs/01_src/OverLowVoltage_Frs.o" \
 "./01_sw_components/04_frs/01_src/OverheatingTemperature_Frs.o" \
 "./01_sw_components/06_mem/01_src/GetDeviceID_Mem.o" \
+"./01_sw_components/06_mem/01_src/Write_param_inEEPROM.o" \
+"./01_sw_components/06_mem/01_src/eeprom_emulation_type_a.o" \
 "./01_sw_components/06_mem/01_src/initializeDeviceID.o" \
 "./01_sw_components/07_utils/01_src/Store_DeviceUID_Unit8_Array_Utils.o" \
 "./01_sw_components/07_utils/01_src/parseCanID_utils.o" \
@@ -165,8 +167,8 @@ segment_main.out: $(OBJS) $(GEN_CMDS)
 # Other Targets
 clean:
 	-$(RM) $(GEN_MISC_FILES__QUOTED)$(GEN_FILES__QUOTED)$(EXE_OUTPUTS__QUOTED)
-	-$(RM) "01_sw_components\01_sc\01_src\init_sc.o" "01_sw_components\01_sc\01_src\main_sc.o" "01_sw_components\02_sig\01_src\Com_rx_signal_sig.o" "01_sw_components\02_sig\01_src\Com_tx_signal_sig.o" "01_sw_components\03_hw\01_src\Hw_Interface.o" "01_sw_components\04_frs\01_src\OverLowVoltage_Frs.o" "01_sw_components\04_frs\01_src\OverheatingTemperature_Frs.o" "01_sw_components\06_mem\01_src\GetDeviceID_Mem.o" "01_sw_components\06_mem\01_src\initializeDeviceID.o" "01_sw_components\07_utils\01_src\Store_DeviceUID_Unit8_Array_Utils.o" "01_sw_components\07_utils\01_src\parseCanID_utils.o" "ti_msp_dl_config.o" "04_config\startup_mspm0g350x_ticlang.o" 
-	-$(RM) "01_sw_components\01_sc\01_src\init_sc.d" "01_sw_components\01_sc\01_src\main_sc.d" "01_sw_components\02_sig\01_src\Com_rx_signal_sig.d" "01_sw_components\02_sig\01_src\Com_tx_signal_sig.d" "01_sw_components\03_hw\01_src\Hw_Interface.d" "01_sw_components\04_frs\01_src\OverLowVoltage_Frs.d" "01_sw_components\04_frs\01_src\OverheatingTemperature_Frs.d" "01_sw_components\06_mem\01_src\GetDeviceID_Mem.d" "01_sw_components\06_mem\01_src\initializeDeviceID.d" "01_sw_components\07_utils\01_src\Store_DeviceUID_Unit8_Array_Utils.d" "01_sw_components\07_utils\01_src\parseCanID_utils.d" "ti_msp_dl_config.d" "startup_mspm0g350x_ticlang.d" 
+	-$(RM) "01_sw_components\01_sc\01_src\init_sc.o" "01_sw_components\01_sc\01_src\main_sc.o" "01_sw_components\02_sig\01_src\Com_rx_signal_sig.o" "01_sw_components\02_sig\01_src\Com_tx_signal_sig.o" "01_sw_components\03_hw\01_src\Hw_Interface.o" "01_sw_components\04_frs\01_src\OverLowVoltage_Frs.o" "01_sw_components\04_frs\01_src\OverheatingTemperature_Frs.o" "01_sw_components\06_mem\01_src\GetDeviceID_Mem.o" "01_sw_components\06_mem\01_src\Write_param_inEEPROM.o" "01_sw_components\06_mem\01_src\eeprom_emulation_type_a.o" "01_sw_components\06_mem\01_src\initializeDeviceID.o" "01_sw_components\07_utils\01_src\Store_DeviceUID_Unit8_Array_Utils.o" "01_sw_components\07_utils\01_src\parseCanID_utils.o" "ti_msp_dl_config.o" "04_config\startup_mspm0g350x_ticlang.o" 
+	-$(RM) "01_sw_components\01_sc\01_src\init_sc.d" "01_sw_components\01_sc\01_src\main_sc.d" "01_sw_components\02_sig\01_src\Com_rx_signal_sig.d" "01_sw_components\02_sig\01_src\Com_tx_signal_sig.d" "01_sw_components\03_hw\01_src\Hw_Interface.d" "01_sw_components\04_frs\01_src\OverLowVoltage_Frs.d" "01_sw_components\04_frs\01_src\OverheatingTemperature_Frs.d" "01_sw_components\06_mem\01_src\GetDeviceID_Mem.d" "01_sw_components\06_mem\01_src\Write_param_inEEPROM.d" "01_sw_components\06_mem\01_src\eeprom_emulation_type_a.d" "01_sw_components\06_mem\01_src\initializeDeviceID.d" "01_sw_components\07_utils\01_src\Store_DeviceUID_Unit8_Array_Utils.d" "01_sw_components\07_utils\01_src\parseCanID_utils.d" "ti_msp_dl_config.d" "startup_mspm0g350x_ticlang.d" 
 	-@echo 'Finished clean'
 	-@echo ' '
 

+ 625 - 373
segment_main/Debug/segment_main.map

@@ -1,18 +1,18 @@
 ******************************************************************************
             TI ARM Clang Linker PC v4.0.0                      
 ******************************************************************************
->> Linked Sun Oct 13 00:35:33 2024
+>> Linked Tue Oct 15 17:20:08 2024
 
 OUTPUT FILE NAME:   <segment_main.out>
-ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 0000107d
+ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 00002bd9
 
 
 MEMORY CONFIGURATION
 
          name            origin    length      used     unused   attr    fill
 ----------------------  --------  ---------  --------  --------  ----  --------
-  FLASH                 00000000   00020000  000013f0  0001ec10  R  X
-  SRAM                  20200000   00008000  00000216  00007dea  RW X
+  FLASH                 00000000   00020000  00003088  0001cf78  R  X
+  SRAM                  20200000   00008000  0000025f  00007da1  RW X
   BCR_CONFIG            41c00000   00000080  00000000  00000080  R   
   BSL_CONFIG            41c00100   00000080  00000000  00000080  R   
 
@@ -21,14 +21,14 @@ SEGMENT ALLOCATION MAP
 
 run origin  load origin   length   init length attrs members
 ----------  ----------- ---------- ----------- ----- -------
-00000000    00000000    000013f0   000013f0    r-x
+00000000    00000000    00003088   00003088    r-x
   00000000    00000000    000000c0   000000c0    r-- .intvecs
-  000000c0    000000c0    000011d8   000011d8    r-x .text
-  00001298    00001298    00000128   00000128    r-- .rodata
-  000013c0    000013c0    00000030   00000030    r-- .cinit
-20200000    20200000    00000019   00000000    rw-
-  20200000    20200000    00000015   00000000    rw- .bss
-  20200018    20200018    00000001   00000000    rw- .data
+  000000c0    000000c0    00002e10   00002e10    r-x .text
+  00002ed0    00002ed0    00000188   00000188    r-- .rodata
+  00003058    00003058    00000030   00000030    r-- .cinit
+20200000    20200000    00000061   00000000    rw-
+  20200000    20200000    00000056   00000000    rw- .bss
+  20200058    20200058    00000009   00000000    rw- .data
 20207e00    20207e00    00000200   00000000    rw-
   20207e00    20207e00    00000200   00000000    rw- .stack
 
@@ -41,102 +41,164 @@ section   page    origin      length       input sections
 .intvecs   0    00000000    000000c0     
                   00000000    000000c0     startup_mspm0g350x_ticlang.o (.intvecs)
 
-.text      0    000000c0    000011d8     
-                  000000c0    000002a8     driverlib.a : dl_mcan.o (.text.DL_MCAN_msgRAMConfig)
-                  00000368    00000184                 : dl_mcan.o (.text.DL_MCAN_init)
-                  000004ec    00000144                 : dl_mcan.o (.text.DL_MCAN_setBitTime)
-                  00000630    0000012c                 : dl_mcan.o (.text.DL_MCAN_config)
-                  0000075c    0000011c     ti_msp_dl_config.o (.text.SYSCFG_DL_MCAN0_init)
-                  00000878    000000ec     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_configSYSPLL)
-                  00000964    0000009a     libc.a : memcpy16.S.obj (.text:memcpy)
-                  000009fe    00000002     startup_mspm0g350x_ticlang.o (.text.Default_Handler)
-                  00000a00    00000094     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRevisionId)
-                  00000a94    0000007c     libc.a : copy_decompress_lzss.c.obj (.text:decompress:lzss)
-                  00000b10    00000074     driverlib.a : dl_mcan.o (.text.DL_MCAN_addStdMsgIDFilter)
-                  00000b84    00000068                 : dl_mcan.o (.text.DL_MCAN_enableIntr)
-                  00000bec    00000064                 : dl_mcan.o (.text.DL_MCAN_selectIntrLine)
-                  00000c50    00000064     ti_msp_dl_config.o (.text.SYSCFG_DL_ADC12_0_init)
-                  00000cb4    00000058     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntrLine)
-                  00000d0c    0000004c                 : dl_adc12.o (.text.DL_ADC12_setClockConfig)
-                  00000d58    0000004c                 : dl_mcan.o (.text.DL_MCAN_setExtIDAndMask)
-                  00000da4    0000004c     ti_msp_dl_config.o (.text.SYSCFG_DL_GPIO_init)
-                  00000df0    00000048     init_sc.o (.text.Init)
-                  00000e38    00000040     main_sc.o (.text.CANFD0_IRQHandler)
-                  00000e78    00000040     driverlib.a : dl_mcan.o (.text.DL_MCAN_isMemInitDone)
-                  00000eb8    00000040     ti_msp_dl_config.o (.text.SYSCFG_DL_initPower)
-                  00000ef8    0000003c     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_init)
-                  00000f34    0000003c     libc.a : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
-                  00000f70    00000034     driverlib.a : dl_mcan.o (.text.DL_MCAN_clearIntrStatus)
-                  00000fa4    00000032                 : dl_mcan.o (.text.HW_WR_FIELD32_RAW)
-                  00000fd6    00000002     --HOLE-- [fill = 0]
-                  00000fd8    0000002c                 : dl_mcan.o (.text.DL_MCAN_setClockConfig)
-                  00001004    00000028                 : dl_adc12.o (.text.DL_Common_updateReg)
-                  0000102c    00000028                 : dl_mcan.o (.text.DL_Common_updateReg)
-                  00001054    00000028                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_Common_updateReg)
-                  0000107c    00000028     libc.a : boot_cortex_m.c.obj (.text:_c_int00_noargs)
-                  000010a4    00000020     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_configInstruction)
-                  000010c4    00000020                 : dl_mcan.o (.text.DL_MCAN_setOpMode)
-                  000010e4    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessLock)
-                  00001104    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessUnlock)
-                  00001124    00000020                 : dl_mcan.o (.text.HW_RD_FIELD32_RAW)
-                  00001144    0000001c     main_sc.o (.text.ADC0_IRQHandler)
-                  00001160    0000001c     driverlib.a : dl_mcan.o (.text.DL_MCAN_getOpMode)
-                  0000117c    0000001c     GetDeviceID_Mem.o (.text.GetDeviceUID)
-                  00001198    00000018     driverlib.a : dl_mcan.o (.text.DL_MCAN_getIntrStatus)
-                  000011b0    00000018     ti_msp_dl_config.o (.text.SYSCFG_DL_init)
-                  000011c8    00000018     initializeDeviceID.o (.text.initializeDeviceID)
-                  000011e0    00000016     libc.a : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
-                  000011f6    00000014     driverlib.a : dl_common.o (.text.DL_Common_delayCycles)
-                  0000120a    00000002     --HOLE-- [fill = 0]
-                  0000120c    00000014                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_disableSYSPLL)
-                  00001220    00000012     libc.a : copy_decompress_none.c.obj (.text:decompress:none)
-                  00001232    00000002     --HOLE-- [fill = 0]
-                  00001234    00000010     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_getInstructionConfig)
-                  00001244    00000010                 : dl_mcan.o (.text.HW_RD_REG32_RAW)
-                  00001254    00000010                 : dl_mcan.o (.text.HW_WR_REG32_RAW)
-                  00001264    0000000e     main_sc.o (.text.main)
-                  00001272    00000002     --HOLE-- [fill = 0]
-                  00001274    0000000c     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_getClockStatus)
-                  00001280    00000008     libclang_rt.builtins.a : aeabi_memcpy.S.obj (.text.__aeabi_memcpy)
-                  00001288    00000004     startup_mspm0g350x_ticlang.o (.text.Reset_Handler)
-                  0000128c    00000004     libc.a : pre_init.c.obj (.text._system_pre_init)
-                  00001290    00000004            : exit.c.obj (.text:abort)
-                  00001294    00000004     --HOLE-- [fill = 0]
-
-.cinit     0    000013c0    00000030     
-                  000013c0    0000000c     (__TI_handler_table)
-                  000013cc    00000008     (.cinit..bss.load) [load image, compression = zero_init]
-                  000013d4    00000005     (.cinit..data.load) [load image, compression = lzss]
-                  000013d9    00000003     --HOLE-- [fill = 0]
-                  000013dc    00000010     (__TI_cinit_table)
-                  000013ec    00000004     --HOLE-- [fill = 0]
-
-.rodata    0    00001298    00000128     
-                  00001298    00000060     ti_msp_dl_config.o (.rodata.gMCAN0MsgRAMConfigParams)
-                  000012f8    00000034     ti_msp_dl_config.o (.rodata.gMCAN0InitParams)
-                  0000132c    0000002c     ti_msp_dl_config.o (.rodata.gMCAN0ConfigParams)
-                  00001358    00000028     ti_msp_dl_config.o (.rodata.gSYSPLLConfig)
-                  00001380    00000020     ti_msp_dl_config.o (.rodata.gMCAN0BitTimes)
-                  000013a0    00000010     ti_msp_dl_config.o (.rodata.gMCAN0StdFiltelem)
-                  000013b0    00000008     ti_msp_dl_config.o (.rodata.gADC12_0ClockConfig)
-                  000013b8    00000004     ti_msp_dl_config.o (.rodata.gMCAN0ClockConf)
-                  000013bc    00000004     --HOLE-- [fill = 0]
+.text      0    000000c0    00002e10     
+                  000000c0    00000358     libc.a : e_log.c.obj (.text.log)
+                  00000418    000002a8     driverlib.a : dl_mcan.o (.text.DL_MCAN_msgRAMConfig)
+                  000006c0    0000021c     Com_rx_signal_sig.o (.text.AI_Com_RX_process_CAN_messages)
+                  000008dc    00000192     libclang_rt.builtins.a : adddf3.S.obj (.text.adddf3_subdf3)
+                  00000a6e    00000002     startup_mspm0g350x_ticlang.o (.text.Default_Handler)
+                  00000a70    00000184     Com_tx_signal_sig.o (.text.AI_Com_TX_cell_status)
+                  00000bf4    00000184     driverlib.a : dl_mcan.o (.text.DL_MCAN_init)
+                  00000d78    0000017e                 : dl_mcan.o (.text.DL_MCAN_readMsg)
+                  00000ef6    00000002     libclang_rt.builtins.a : aeabi_div0.c.obj (.text.__aeabi_idiv0)
+                  00000ef8    00000158     Com_tx_signal_sig.o (.text.AI_Com_TX_discovery_response)
+                  00001050    00000144     driverlib.a : dl_mcan.o (.text.DL_MCAN_setBitTime)
+                  00001194    00000140                 : dl_mcan.o (.text.DL_MCAN_writeMsg)
+                  000012d4    00000130                 : dl_mcan.o (.text.DL_MCAN_readMsgRam)
+                  00001404    0000012c                 : dl_mcan.o (.text.DL_MCAN_config)
+                  00001530    0000011c     ti_msp_dl_config.o (.text.SYSCFG_DL_MCAN0_init)
+                  0000164c    0000010c     libclang_rt.builtins.a : divdf3.S.obj (.text.__divdf3)
+                  00001758    000000f8     Hw_Interface.o (.text.AI_GetUITempCell_Hw)
+                  00001850    000000ec     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_configSYSPLL)
+                  0000193c    000000e4     libclang_rt.builtins.a : muldf3.S.obj (.text.__muldf3)
+                  00001a20    000000dc     Com_tx_signal_sig.o (.text.AI_Com_TX_segment_status)
+                  00001afc    000000c4     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRxFIFOStatus)
+                  00001bc0    000000c0     Com_rx_signal_sig.o (.text.AI_Com_MCAN_Receive_Msg)
+                  00001c80    000000b8     driverlib.a : dl_mcan.o (.text.DL_MCAN_writeRxFIFOAck)
+                  00001d38    000000b4     Hw_Interface.o (.text.AI_GetTempInC)
+                  00001dec    000000b4     driverlib.a : dl_mcan.o (.text.DL_MCAN_writeMsgRam)
+                  00001ea0    0000009a     libc.a : memcpy16.S.obj (.text:memcpy)
+                  00001f3a    00000002     --HOLE-- [fill = 0]
+                  00001f3c    00000098     Hw_Interface.o (.text.AI_Enable_Disable_Cell_Hw)
+                  00001fd4    00000094     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRevisionId)
+                  00002068    0000008c     libclang_rt.builtins.a : mulsf3.S.obj (.text.__mulsf3)
+                  000020f4    00000082                            : divsf3.S.obj (.text.__divsf3)
+                  00002176    00000002     --HOLE-- [fill = 0]
+                  00002178    0000007c     libc.a : copy_decompress_lzss.c.obj (.text:decompress:lzss)
+                  000021f4    00000074     driverlib.a : dl_mcan.o (.text.DL_MCAN_addStdMsgIDFilter)
+                  00002268    00000074     libclang_rt.builtins.a : comparedf2.c.obj (.text.__gedf2)
+                  000022dc    0000006c     main_sc.o (.text.main)
+                  00002348    00000068     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntr)
+                  000023b0    00000068     libclang_rt.builtins.a : comparedf2.c.obj (.text.__ledf2)
+                  00002418    00000064     driverlib.a : dl_mcan.o (.text.DL_MCAN_selectIntrLine)
+                  0000247c    00000064     ti_msp_dl_config.o (.text.SYSCFG_DL_ADC12_0_init)
+                  000024e0    00000062     libclang_rt.builtins.a : aeabi_dcmp.S.obj (.text.__aeabi_dcmp)
+                  00002542    00000062     libc.a : memset16.S.obj (.text:memset)
+                  000025a4    00000058     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntrLine)
+                  000025fc    00000054                 : dl_mcan.o (.text.DL_MCAN_TXBufAddReq)
+                  00002650    0000004c                 : dl_adc12.o (.text.DL_ADC12_setClockConfig)
+                  0000269c    0000004c                 : dl_mcan.o (.text.DL_MCAN_setExtIDAndMask)
+                  000026e8    0000004a     libclang_rt.builtins.a : fixdfsi.S.obj (.text.__fixdfsi)
+                  00002732    00000002     --HOLE-- [fill = 0]
+                  00002734    00000048     init_sc.o (.text.Init)
+                  0000277c    00000048     ti_msp_dl_config.o (.text.SYSCFG_DL_GPIO_init)
+                  000027c4    00000048     Store_DeviceUID_Unit8_Array_Utils.o (.text.Store_deviceUidin_uint8_array_Utils)
+                  0000280c    00000040     main_sc.o (.text.CANFD0_IRQHandler)
+                  0000284c    00000040     driverlib.a : dl_mcan.o (.text.DL_MCAN_isMemInitDone)
+                  0000288c    00000040     ti_msp_dl_config.o (.text.SYSCFG_DL_initPower)
+                  000028cc    00000040     libclang_rt.builtins.a : aeabi_uidivmod.S.obj (.text.__aeabi_uidivmod)
+                  0000290c    00000040                            : extendsfdf2.S.obj (.text.__extendsfdf2)
+                  0000294c    0000003c     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_init)
+                  00002988    0000003c     libclang_rt.builtins.a : floatsisf.S.obj (.text.__floatsisf)
+                  000029c4    0000003c     libc.a : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
+                  00002a00    0000003a     libclang_rt.builtins.a : muldsi3.S.obj (.text.__muldsi3)
+                  00002a3a    00000002     --HOLE-- [fill = 0]
+                  00002a3c    00000038                            : fixsfsi.S.obj (.text.__fixsfsi)
+                  00002a74    00000034     driverlib.a : dl_mcan.o (.text.DL_MCAN_clearIntrStatus)
+                  00002aa8    00000032                 : dl_mcan.o (.text.HW_WR_FIELD32_RAW)
+                  00002ada    00000002     --HOLE-- [fill = 0]
+                  00002adc    0000002c                 : dl_mcan.o (.text.DL_MCAN_getDataSize)
+                  00002b08    0000002c                 : dl_mcan.o (.text.DL_MCAN_setClockConfig)
+                  00002b34    0000002c     libclang_rt.builtins.a : floatsidf.S.obj (.text.__floatsidf)
+                  00002b60    00000028     driverlib.a : dl_adc12.o (.text.DL_Common_updateReg)
+                  00002b88    00000028                 : dl_mcan.o (.text.DL_Common_updateReg)
+                  00002bb0    00000028                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_Common_updateReg)
+                  00002bd8    00000028     libc.a : boot_cortex_m.c.obj (.text:_c_int00_noargs)
+                  00002c00    00000024     driverlib.a : dl_mcan.o (.text.DL_MCAN_getMsgObjSize)
+                  00002c24    00000020                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_configInstruction)
+                  00002c44    00000020                 : dl_mcan.o (.text.DL_MCAN_setOpMode)
+                  00002c64    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessLock)
+                  00002c84    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessUnlock)
+                  00002ca4    00000020                 : dl_mcan.o (.text.HW_RD_FIELD32_RAW)
+                  00002cc4    0000001c     main_sc.o (.text.ADC0_IRQHandler)
+                  00002ce0    0000001c     driverlib.a : dl_mcan.o (.text.DL_MCAN_getOpMode)
+                  00002cfc    0000001c     GetDeviceID_Mem.o (.text.GetDeviceUID)
+                  00002d18    00000018     parseCanID_utils.o (.text.AI_PackCanId_Utils)
+                  00002d30    00000018     parseCanID_utils.o (.text.AI_Parse_Can_id_Utils)
+                  00002d48    00000018     Hw_Interface.o (.text.AI_digitalWrite)
+                  00002d60    00000018     driverlib.a : dl_mcan.o (.text.DL_MCAN_getIntrStatus)
+                  00002d78    00000018     ti_msp_dl_config.o (.text.SYSCFG_DL_init)
+                  00002d90    00000018     initializeDeviceID.o (.text.initializeDeviceID)
+                  00002da8    00000016     libc.a : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
+                  00002dbe    00000002     --HOLE-- [fill = 0]
+                  00002dc0    00000014     Hw_Interface.o (.text.AI_Bridge_UnbridgeSegment_Hw)
+                  00002dd4    00000014     driverlib.a : dl_common.o (.text.DL_Common_delayCycles)
+                  00002de8    00000014                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_disableSYSPLL)
+                  00002dfc    00000012     libc.a : copy_decompress_none.c.obj (.text:decompress:none)
+                  00002e0e    00000002     --HOLE-- [fill = 0]
+                  00002e10    00000010     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_getInstructionConfig)
+                  00002e20    00000010                 : dl_mcan.o (.text.HW_RD_REG32_RAW)
+                  00002e30    00000010                 : dl_mcan.o (.text.HW_WR_REG32_RAW)
+                  00002e40    0000000c                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_getClockStatus)
+                  00002e4c    0000000c     libclang_rt.builtins.a : aeabi_memset.S.obj (.text.__aeabi_memclr)
+                  00002e58    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
+                  00002e62    00000002     --HOLE-- [fill = 0]
+                  00002e64    00000010     libclang_rt.builtins.a : muldf3.S.obj (.tramp.__aeabi_dmul.1)
+                  00002e74    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
+                  00002e7e    00000002     --HOLE-- [fill = 0]
+                  00002e80    00000010     libclang_rt.builtins.a : adddf3.S.obj (.tramp.__aeabi_dsub.1)
+                  00002e90    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
+                  00002e9a    0000000a            : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
+                  00002ea4    00000008            : aeabi_portable.c.obj (.text.__aeabi_errno_addr)
+                  00002eac    00000008     libclang_rt.builtins.a : aeabi_memcpy.S.obj (.text.__aeabi_memcpy)
+                  00002eb4    00000006     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
+                  00002eba    00000006            : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
+                  00002ec0    00000004     startup_mspm0g350x_ticlang.o (.text.Reset_Handler)
+                  00002ec4    00000004     libc.a : pre_init.c.obj (.text._system_pre_init)
+                  00002ec8    00000004            : exit.c.obj (.text:abort)
+                  00002ecc    00000004     --HOLE-- [fill = 0]
+
+.cinit     0    00003058    00000030     
+                  00003058    0000000c     (__TI_handler_table)
+                  00003064    0000000b     (.cinit..data.load) [load image, compression = lzss]
+                  0000306f    00000001     --HOLE-- [fill = 0]
+                  00003070    00000008     (.cinit..bss.load) [load image, compression = zero_init]
+                  00003078    00000010     (__TI_cinit_table)
+
+.rodata    0    00002ed0    00000188     
+                  00002ed0    00000060     ti_msp_dl_config.o (.rodata.gMCAN0MsgRAMConfigParams)
+                  00002f30    00000040     driverlib.a : dl_mcan.o (.rodata..L__const.DL_MCAN_getDataSize.dataSize)
+                  00002f70    00000034     ti_msp_dl_config.o (.rodata.gMCAN0InitParams)
+                  00002fa4    0000002c     ti_msp_dl_config.o (.rodata.gMCAN0ConfigParams)
+                  00002fd0    00000028     ti_msp_dl_config.o (.rodata.gSYSPLLConfig)
+                  00002ff8    00000020     driverlib.a : dl_mcan.o (.rodata.cst32)
+                  00003018    00000020     ti_msp_dl_config.o (.rodata.gMCAN0BitTimes)
+                  00003038    00000010     ti_msp_dl_config.o (.rodata.gMCAN0StdFiltelem)
+                  00003048    00000008     ti_msp_dl_config.o (.rodata.gADC12_0ClockConfig)
+                  00003050    00000004     ti_msp_dl_config.o (.rodata.gMCAN0ClockConf)
+                  00003054    00000004     --HOLE-- [fill = 0]
 
 .init_array 
 *          0    00000000    00000000     UNINITIALIZED
 
 .binit     0    00000000    00000000     
 
-.bss       0    20200000    00000015     UNINITIALIZED
-                  20200000    0000000c     (.common:DeviceUID)
-                  2020000c    00000004     (.common:gInterruptLine1Status)
-                  20200010    00000002     (.common:OverheatingThreshold)
-                  20200012    00000001     (.common:CurrentMode)
-                  20200013    00000001     (.common:gCheckADC)
-                  20200014    00000001     (.common:gServiceInt)
-
-.data      0    20200018    00000001     UNINITIALIZED
-                  20200018    00000001     initializeDeviceID.o (.data.initialized)
+.bss       0    20200000    00000056     UNINITIALIZED
+                  20200000    00000040     (.common:CurrentValue_Cell)
+                  20200040    0000000c     (.common:DeviceUID)
+                  2020004c    00000004     (.common:gInterruptLine1Status)
+                  20200050    00000002     (.common:OverheatingThreshold)
+                  20200052    00000001     (.common:CurrentMode)
+                  20200053    00000001     (.common:MYORDER_ID)
+                  20200054    00000001     (.common:gCheckADC)
+                  20200055    00000001     (.common:gServiceInt)
+
+.data      0    20200058    00000009     UNINITIALIZED
+                  20200058    00000004     libc.a : aeabi_portable.c.obj (.data.__aeabi_errno)
+                  2020005c    00000002     Com_tx_signal_sig.o (.data.gid_hash)
+                  2020005e    00000001     init_sc.o (.data.DISCOVERY)
+                  2020005f    00000001     --HOLE--
+                  20200060    00000001     initializeDeviceID.o (.data.initialized)
 
 .stack     0    20207e00    00000200     UNINITIALIZED
                   20207e00    00000004     libc.a : boot_cortex_m.c.obj (.stack)
@@ -150,301 +212,491 @@ __llvm_prf_bits
 
 MODULE SUMMARY
 
-       Module                         code   ro data   rw data
-       ------                         ----   -------   -------
+       Module                                code    ro data   rw data
+       ------                                ----    -------   -------
     .\
-       ti_msp_dl_config.o             608    292       0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         608    292       0      
-                                                              
+       ti_msp_dl_config.o                    604     292       0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                604     292       0      
+                                                                      
     .\01_sw_components\01_sc\01_src\
-       main_sc.o                      106    0         1      
-       init_sc.o                      72     0         20     
-    +--+------------------------------+------+---------+---------+
-       Total:                         178    0         21     
-                                                              
+       main_sc.o                             200     0         1      
+       init_sc.o                             72      0         86     
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                272     0         87     
+                                                                      
+    .\01_sw_components\02_sig\01_src\
+       Com_tx_signal_sig.o                   952     0         2      
+       Com_rx_signal_sig.o                   732     0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                1684    0         2      
+                                                                      
+    .\01_sw_components\03_hw\01_src\
+       Hw_Interface.o                        624     0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                624     0         0      
+                                                                      
     .\01_sw_components\06_mem\01_src\
-       GetDeviceID_Mem.o              28     0         0      
-       initializeDeviceID.o           24     0         1      
-    +--+------------------------------+------+---------+---------+
-       Total:                         52     0         1      
-                                                              
+       GetDeviceID_Mem.o                     28      0         0      
+       initializeDeviceID.o                  24      0         1      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                52      0         1      
+                                                                      
+    .\01_sw_components\07_utils\01_src\
+       Store_DeviceUID_Unit8_Array_Utils.o   72      0         0      
+       parseCanID_utils.o                    48      0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                120     0         0      
+                                                                      
     .\04_config\
-       startup_mspm0g350x_ticlang.o   6      192       0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         6      192       0      
-                                                              
+       startup_mspm0g350x_ticlang.o          6       192       0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                6       192       0      
+                                                                      
     C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/lib/ticlang/m0p/mspm0g1x0x_g3x0x/driverlib.a
-       dl_mcan.o                      2786   0         0      
-       dl_sysctl_mspm0g1x0x_g3x0x.o   356    0         0      
-       dl_adc12.o                     116    0         0      
-       dl_common.o                    20     0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         3278   0         0      
-                                                              
+       dl_mcan.o                             4516    96        0      
+       dl_sysctl_mspm0g1x0x_g3x0x.o          356     0         0      
+       dl_adc12.o                            116     0         0      
+       dl_common.o                           20      0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                5008    96        0      
+                                                                      
     C:\ti\ccstheia150\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      
-                                                              
+       e_log.c.obj                           908     0         0      
+       memcpy16.S.obj                        154     0         0      
+       copy_decompress_lzss.c.obj            124     0         0      
+       memset16.S.obj                        98      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      
+       aeabi_portable.c.obj                  8       0         4      
+       exit.c.obj                            4       0         0      
+       pre_init.c.obj                        4       0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                1440    0         4      
+                                                                      
     C:\ti\ccstheia150\ccs\tools\compiler\ti-cgt-armllvm_4.0.0.LTS\lib\armv6m-ti-none-eabi/libclang_rt.builtins.a
-       aeabi_memcpy.S.obj             8      0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         8      0         0      
-                                                              
-       Stack:                         0      0         512    
-       Linker Generated:              0      41        0      
-    +--+------------------------------+------+---------+---------+
-       Grand Total:                   4556   525       534    
+       adddf3.S.obj                          418     0         0      
+       divdf3.S.obj                          268     0         0      
+       muldf3.S.obj                          244     0         0      
+       comparedf2.c.obj                      220     0         0      
+       mulsf3.S.obj                          140     0         0      
+       divsf3.S.obj                          130     0         0      
+       aeabi_dcmp.S.obj                      98      0         0      
+       fixdfsi.S.obj                         74      0         0      
+       aeabi_uidivmod.S.obj                  64      0         0      
+       extendsfdf2.S.obj                     64      0         0      
+       floatsisf.S.obj                       60      0         0      
+       muldsi3.S.obj                         58      0         0      
+       fixsfsi.S.obj                         56      0         0      
+       floatsidf.S.obj                       44      0         0      
+       aeabi_memset.S.obj                    12      0         0      
+       aeabi_memcpy.S.obj                    8       0         0      
+       aeabi_div0.c.obj                      2       0         0      
+    +--+-------------------------------------+-------+---------+---------+
+       Total:                                1960    0         0      
+                                                                      
+       Stack:                                0       0         512    
+       Linker Generated:                     0       47        0      
+    +--+-------------------------------------+-------+---------+---------+
+       Grand Total:                          11770   627       606    
 
 
 LINKER GENERATED COPY TABLES
 
-__TI_cinit_table @ 000013dc records: 2, size/record: 8, table size: 16
-	.bss: load addr=000013cc, load size=00000008 bytes, run addr=20200000, run size=00000015 bytes, compression=zero_init
-	.data: load addr=000013d4, load size=00000005 bytes, run addr=20200018, run size=00000001 bytes, compression=lzss
+__TI_cinit_table @ 00003078 records: 2, size/record: 8, table size: 16
+	.data: load addr=00003064, load size=0000000b bytes, run addr=20200058, run size=00000009 bytes, compression=lzss
+	.bss: load addr=00003070, load size=00000008 bytes, run addr=20200000, run size=00000056 bytes, compression=zero_init
 
 
 LINKER GENERATED HANDLER TABLE
 
-__TI_handler_table @ 000013c0 records: 3, size/record: 4, table size: 12
+__TI_handler_table @ 00003058 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
 
 
+FAR CALL TRAMPOLINES
+
+callee name               trampoline name
+   callee addr  tramp addr   call addr  call info
+--------------  -----------  ---------  ----------------
+__aeabi_dmul              $Tramp$TT$L$PI$$__aeabi_dmul
+   0000193d     00002e64     00002e60   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
+                             00002e98          : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
+                             00002ea2          : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
+                             00002eb8          : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
+                             00002ebe          : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
+__aeabi_dsub              $Tramp$TT$L$PI$$__aeabi_dsub
+   000008dd     00002e80     00002e7c   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
+
+[2 trampolines]
+[6 trampoline calls]
+
+
 GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
 
-address   name                          
--------   ----                          
-00001145  ADC0_IRQHandler               
-000009ff  ADC1_IRQHandler               
-000009ff  AES_IRQHandler                
-00001290  C$$EXIT                       
-00000e39  CANFD0_IRQHandler             
-20200012  CurrentMode                   
-000009ff  DAC0_IRQHandler               
-00000d0d  DL_ADC12_setClockConfig       
-000011f7  DL_Common_delayCycles         
-00000b11  DL_MCAN_addStdMsgIDFilter     
-00000f71  DL_MCAN_clearIntrStatus       
-00000631  DL_MCAN_config                
-00000b85  DL_MCAN_enableIntr            
-00000cb5  DL_MCAN_enableIntrLine        
-00001199  DL_MCAN_getIntrStatus         
-00001161  DL_MCAN_getOpMode             
-00000a01  DL_MCAN_getRevisionId         
-00000369  DL_MCAN_init                  
-00000e79  DL_MCAN_isMemInitDone         
-000000c1  DL_MCAN_msgRAMConfig          
-00000bed  DL_MCAN_selectIntrLine        
-000004ed  DL_MCAN_setBitTime            
-00000fd9  DL_MCAN_setClockConfig        
-00000d59  DL_MCAN_setExtIDAndMask       
-000010c5  DL_MCAN_setOpMode             
-00000879  DL_SYSCTL_configSYSPLL        
-000009ff  DMA_IRQHandler                
-000009ff  Default_Handler               
-20200000  DeviceUID                     
-000009ff  GROUP0_IRQHandler             
-000009ff  GROUP1_IRQHandler             
-0000117d  GetDeviceUID                  
-000009ff  HardFault_Handler             
-000009ff  I2C0_IRQHandler               
-000009ff  I2C1_IRQHandler               
-00000df1  Init                          
-000009ff  NMI_Handler                   
-20200010  OverheatingThreshold          
-000009ff  PendSV_Handler                
-000009ff  RTC_IRQHandler                
-00001289  Reset_Handler                 
-000009ff  SPI0_IRQHandler               
-000009ff  SPI1_IRQHandler               
-000009ff  SVC_Handler                   
-00000c51  SYSCFG_DL_ADC12_0_init        
-00000da5  SYSCFG_DL_GPIO_init           
-0000075d  SYSCFG_DL_MCAN0_init          
-00000ef9  SYSCFG_DL_SYSCTL_init         
-000011b1  SYSCFG_DL_init                
-00000eb9  SYSCFG_DL_initPower           
-000009ff  SysTick_Handler               
-000009ff  TIMA0_IRQHandler              
-000009ff  TIMA1_IRQHandler              
-000009ff  TIMG0_IRQHandler              
-000009ff  TIMG12_IRQHandler             
-000009ff  TIMG6_IRQHandler              
-000009ff  TIMG7_IRQHandler              
-000009ff  TIMG8_IRQHandler              
-000009ff  UART0_IRQHandler              
-000009ff  UART1_IRQHandler              
-000009ff  UART2_IRQHandler              
-000009ff  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       
-000013dc  __TI_CINIT_Base               
-000013ec  __TI_CINIT_Limit              
-000013ec  __TI_CINIT_Warm               
-000013c0  __TI_Handler_Table_Base       
-000013cc  __TI_Handler_Table_Limit      
-00000f35  __TI_auto_init_nobinit_nopinit
-00000a95  __TI_decompress_lzss          
-00001221  __TI_decompress_none          
-ffffffff  __TI_pprof_out_hndl           
-ffffffff  __TI_prof_data_size           
-ffffffff  __TI_prof_data_start          
-00000000  __TI_static_base__            
-000011e1  __TI_zero_init_nomemset       
-00001281  __aeabi_memcpy                
-00001281  __aeabi_memcpy4               
-00001281  __aeabi_memcpy8               
-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        
-0000107d  _c_int00_noargs               
-UNDEFED   _system_post_cinit            
-0000128d  _system_pre_init              
-00001291  abort                         
-ffffffff  binit                         
-20200013  gCheckADC                     
-2020000c  gInterruptLine1Status         
-20200014  gServiceInt                   
-000011c9  initializeDeviceID            
-00000000  interruptVectors              
-00001265  main                          
-00000965  memcpy                        
+address   name                               
+-------   ----                               
+00002cc5  ADC0_IRQHandler                    
+00000a6f  ADC1_IRQHandler                    
+00000a6f  AES_IRQHandler                     
+00002dc1  AI_Bridge_UnbridgeSegment_Hw       
+00001bc1  AI_Com_MCAN_Receive_Msg            
+000006c1  AI_Com_RX_process_CAN_messages     
+00000a71  AI_Com_TX_cell_status              
+00000ef9  AI_Com_TX_discovery_response       
+00001a21  AI_Com_TX_segment_status           
+00001f3d  AI_Enable_Disable_Cell_Hw          
+00001d39  AI_GetTempInC                      
+00001759  AI_GetUITempCell_Hw                
+00002d19  AI_PackCanId_Utils                 
+00002d31  AI_Parse_Can_id_Utils              
+00002d49  AI_digitalWrite                    
+00002ec8  C$$EXIT                            
+0000280d  CANFD0_IRQHandler                  
+20200052  CurrentMode                        
+20200000  CurrentValue_Cell                  
+00000a6f  DAC0_IRQHandler                    
+2020005e  DISCOVERY                          
+00002651  DL_ADC12_setClockConfig            
+00002dd5  DL_Common_delayCycles              
+000025fd  DL_MCAN_TXBufAddReq                
+000021f5  DL_MCAN_addStdMsgIDFilter          
+00002a75  DL_MCAN_clearIntrStatus            
+00001405  DL_MCAN_config                     
+00002349  DL_MCAN_enableIntr                 
+000025a5  DL_MCAN_enableIntrLine             
+00002d61  DL_MCAN_getIntrStatus              
+00002ce1  DL_MCAN_getOpMode                  
+00001fd5  DL_MCAN_getRevisionId              
+00001afd  DL_MCAN_getRxFIFOStatus            
+00000bf5  DL_MCAN_init                       
+0000284d  DL_MCAN_isMemInitDone              
+00000419  DL_MCAN_msgRAMConfig               
+000012d5  DL_MCAN_readMsgRam                 
+00002419  DL_MCAN_selectIntrLine             
+00001051  DL_MCAN_setBitTime                 
+00002b09  DL_MCAN_setClockConfig             
+0000269d  DL_MCAN_setExtIDAndMask            
+00002c45  DL_MCAN_setOpMode                  
+00001ded  DL_MCAN_writeMsgRam                
+00001c81  DL_MCAN_writeRxFIFOAck             
+00001851  DL_SYSCTL_configSYSPLL             
+00000a6f  DMA_IRQHandler                     
+00000a6f  Default_Handler                    
+20200040  DeviceUID                          
+00000a6f  GROUP0_IRQHandler                  
+00000a6f  GROUP1_IRQHandler                  
+00002cfd  GetDeviceUID                       
+00000a6f  HardFault_Handler                  
+00000a6f  I2C0_IRQHandler                    
+00000a6f  I2C1_IRQHandler                    
+00002735  Init                               
+20200053  MYORDER_ID                         
+00000a6f  NMI_Handler                        
+20200050  OverheatingThreshold               
+00000a6f  PendSV_Handler                     
+00000a6f  RTC_IRQHandler                     
+00002ec1  Reset_Handler                      
+00000a6f  SPI0_IRQHandler                    
+00000a6f  SPI1_IRQHandler                    
+00000a6f  SVC_Handler                        
+0000247d  SYSCFG_DL_ADC12_0_init             
+0000277d  SYSCFG_DL_GPIO_init                
+00001531  SYSCFG_DL_MCAN0_init               
+0000294d  SYSCFG_DL_SYSCTL_init              
+00002d79  SYSCFG_DL_init                     
+0000288d  SYSCFG_DL_initPower                
+000027c5  Store_deviceUidin_uint8_array_Utils
+00000a6f  SysTick_Handler                    
+00000a6f  TIMA0_IRQHandler                   
+00000a6f  TIMA1_IRQHandler                   
+00000a6f  TIMG0_IRQHandler                   
+00000a6f  TIMG12_IRQHandler                  
+00000a6f  TIMG6_IRQHandler                   
+00000a6f  TIMG7_IRQHandler                   
+00000a6f  TIMG8_IRQHandler                   
+00000a6f  UART0_IRQHandler                   
+00000a6f  UART1_IRQHandler                   
+00000a6f  UART2_IRQHandler                   
+00000a6f  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            
+00003078  __TI_CINIT_Base                    
+00003088  __TI_CINIT_Limit                   
+00003088  __TI_CINIT_Warm                    
+00003058  __TI_Handler_Table_Base            
+00003064  __TI_Handler_Table_Limit           
+000029c5  __TI_auto_init_nobinit_nopinit     
+00002179  __TI_decompress_lzss               
+00002dfd  __TI_decompress_none               
+ffffffff  __TI_pprof_out_hndl                
+ffffffff  __TI_prof_data_size                
+ffffffff  __TI_prof_data_start               
+00000000  __TI_static_base__                 
+00002da9  __TI_zero_init_nomemset            
+000008e7  __adddf3                           
+000026e9  __aeabi_d2iz                       
+000008e7  __aeabi_dadd                       
+000024e1  __aeabi_dcmpeq                     
+0000251d  __aeabi_dcmpge                     
+00002531  __aeabi_dcmpgt                     
+00002509  __aeabi_dcmple                     
+000024f5  __aeabi_dcmplt                     
+0000164d  __aeabi_ddiv                       
+0000193d  __aeabi_dmul                       
+000008dd  __aeabi_dsub                       
+20200058  __aeabi_errno                      
+00002ea5  __aeabi_errno_addr                 
+0000290d  __aeabi_f2d                        
+00002a3d  __aeabi_f2iz                       
+000020f5  __aeabi_fdiv                       
+00002069  __aeabi_fmul                       
+00002b35  __aeabi_i2d                        
+00002989  __aeabi_i2f                        
+00000ef7  __aeabi_idiv0                      
+00002e4d  __aeabi_memclr                     
+00002e4d  __aeabi_memclr4                    
+00002e4d  __aeabi_memclr8                    
+00002ead  __aeabi_memcpy                     
+00002ead  __aeabi_memcpy4                    
+00002ead  __aeabi_memcpy8                    
+000028cd  __aeabi_uidiv                      
+000028cd  __aeabi_uidivmod                   
+ffffffff  __binit__                          
+000023b1  __cmpdf2                           
+0000164d  __divdf3                           
+000020f5  __divsf3                           
+000023b1  __eqdf2                            
+0000290d  __extendsfdf2                      
+000026e9  __fixdfsi                          
+00002a3d  __fixsfsi                          
+00002b35  __floatsidf                        
+00002989  __floatsisf                        
+00002269  __gedf2                            
+00002269  __gtdf2                            
+000023b1  __ledf2                            
+000023b1  __ltdf2                            
+UNDEFED   __mpu_init                         
+0000193d  __muldf3                           
+00002a01  __muldsi3                          
+00002069  __mulsf3                           
+000023b1  __nedf2                            
+20207e00  __stack                            
+20200000  __start___llvm_prf_bits            
+20200000  __start___llvm_prf_cnts            
+20200000  __stop___llvm_prf_bits             
+20200000  __stop___llvm_prf_cnts             
+000008dd  __subdf3                           
+00002bd9  _c_int00_noargs                    
+UNDEFED   _system_post_cinit                 
+00002ec5  _system_pre_init                   
+00002ec9  abort                              
+ffffffff  binit                              
+20200054  gCheckADC                          
+2020004c  gInterruptLine1Status              
+20200055  gServiceInt                        
+2020005c  gid_hash                           
+00002d91  initializeDeviceID                 
+00000000  interruptVectors                   
+000000c1  log                                
+000000c1  logl                               
+000022dd  main                               
+00001ea1  memcpy                             
+00002543  memset                             
 
 
 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  DL_MCAN_msgRAMConfig          
-00000200  __STACK_SIZE                  
-00000369  DL_MCAN_init                  
-000004ed  DL_MCAN_setBitTime            
-00000631  DL_MCAN_config                
-0000075d  SYSCFG_DL_MCAN0_init          
-00000879  DL_SYSCTL_configSYSPLL        
-00000965  memcpy                        
-000009ff  ADC1_IRQHandler               
-000009ff  AES_IRQHandler                
-000009ff  DAC0_IRQHandler               
-000009ff  DMA_IRQHandler                
-000009ff  Default_Handler               
-000009ff  GROUP0_IRQHandler             
-000009ff  GROUP1_IRQHandler             
-000009ff  HardFault_Handler             
-000009ff  I2C0_IRQHandler               
-000009ff  I2C1_IRQHandler               
-000009ff  NMI_Handler                   
-000009ff  PendSV_Handler                
-000009ff  RTC_IRQHandler                
-000009ff  SPI0_IRQHandler               
-000009ff  SPI1_IRQHandler               
-000009ff  SVC_Handler                   
-000009ff  SysTick_Handler               
-000009ff  TIMA0_IRQHandler              
-000009ff  TIMA1_IRQHandler              
-000009ff  TIMG0_IRQHandler              
-000009ff  TIMG12_IRQHandler             
-000009ff  TIMG6_IRQHandler              
-000009ff  TIMG7_IRQHandler              
-000009ff  TIMG8_IRQHandler              
-000009ff  UART0_IRQHandler              
-000009ff  UART1_IRQHandler              
-000009ff  UART2_IRQHandler              
-000009ff  UART3_IRQHandler              
-00000a01  DL_MCAN_getRevisionId         
-00000a95  __TI_decompress_lzss          
-00000b11  DL_MCAN_addStdMsgIDFilter     
-00000b85  DL_MCAN_enableIntr            
-00000bed  DL_MCAN_selectIntrLine        
-00000c51  SYSCFG_DL_ADC12_0_init        
-00000cb5  DL_MCAN_enableIntrLine        
-00000d0d  DL_ADC12_setClockConfig       
-00000d59  DL_MCAN_setExtIDAndMask       
-00000da5  SYSCFG_DL_GPIO_init           
-00000df1  Init                          
-00000e39  CANFD0_IRQHandler             
-00000e79  DL_MCAN_isMemInitDone         
-00000eb9  SYSCFG_DL_initPower           
-00000ef9  SYSCFG_DL_SYSCTL_init         
-00000f35  __TI_auto_init_nobinit_nopinit
-00000f71  DL_MCAN_clearIntrStatus       
-00000fd9  DL_MCAN_setClockConfig        
-0000107d  _c_int00_noargs               
-000010c5  DL_MCAN_setOpMode             
-00001145  ADC0_IRQHandler               
-00001161  DL_MCAN_getOpMode             
-0000117d  GetDeviceUID                  
-00001199  DL_MCAN_getIntrStatus         
-000011b1  SYSCFG_DL_init                
-000011c9  initializeDeviceID            
-000011e1  __TI_zero_init_nomemset       
-000011f7  DL_Common_delayCycles         
-00001221  __TI_decompress_none          
-00001265  main                          
-00001281  __aeabi_memcpy                
-00001281  __aeabi_memcpy4               
-00001281  __aeabi_memcpy8               
-00001289  Reset_Handler                 
-0000128d  _system_pre_init              
-00001290  C$$EXIT                       
-00001291  abort                         
-000013c0  __TI_Handler_Table_Base       
-000013cc  __TI_Handler_Table_Limit      
-000013dc  __TI_CINIT_Base               
-000013ec  __TI_CINIT_Limit              
-000013ec  __TI_CINIT_Warm               
-20200000  DeviceUID                     
-20200000  __start___llvm_prf_bits       
-20200000  __start___llvm_prf_cnts       
-20200000  __stop___llvm_prf_bits        
-20200000  __stop___llvm_prf_cnts        
-2020000c  gInterruptLine1Status         
-20200010  OverheatingThreshold          
-20200012  CurrentMode                   
-20200013  gCheckADC                     
-20200014  gServiceInt                   
-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            
-
-[108 symbols]
+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  log                                
+000000c1  logl                               
+00000200  __STACK_SIZE                       
+00000419  DL_MCAN_msgRAMConfig               
+000006c1  AI_Com_RX_process_CAN_messages     
+000008dd  __aeabi_dsub                       
+000008dd  __subdf3                           
+000008e7  __adddf3                           
+000008e7  __aeabi_dadd                       
+00000a6f  ADC1_IRQHandler                    
+00000a6f  AES_IRQHandler                     
+00000a6f  DAC0_IRQHandler                    
+00000a6f  DMA_IRQHandler                     
+00000a6f  Default_Handler                    
+00000a6f  GROUP0_IRQHandler                  
+00000a6f  GROUP1_IRQHandler                  
+00000a6f  HardFault_Handler                  
+00000a6f  I2C0_IRQHandler                    
+00000a6f  I2C1_IRQHandler                    
+00000a6f  NMI_Handler                        
+00000a6f  PendSV_Handler                     
+00000a6f  RTC_IRQHandler                     
+00000a6f  SPI0_IRQHandler                    
+00000a6f  SPI1_IRQHandler                    
+00000a6f  SVC_Handler                        
+00000a6f  SysTick_Handler                    
+00000a6f  TIMA0_IRQHandler                   
+00000a6f  TIMA1_IRQHandler                   
+00000a6f  TIMG0_IRQHandler                   
+00000a6f  TIMG12_IRQHandler                  
+00000a6f  TIMG6_IRQHandler                   
+00000a6f  TIMG7_IRQHandler                   
+00000a6f  TIMG8_IRQHandler                   
+00000a6f  UART0_IRQHandler                   
+00000a6f  UART1_IRQHandler                   
+00000a6f  UART2_IRQHandler                   
+00000a6f  UART3_IRQHandler                   
+00000a71  AI_Com_TX_cell_status              
+00000bf5  DL_MCAN_init                       
+00000ef7  __aeabi_idiv0                      
+00000ef9  AI_Com_TX_discovery_response       
+00001051  DL_MCAN_setBitTime                 
+000012d5  DL_MCAN_readMsgRam                 
+00001405  DL_MCAN_config                     
+00001531  SYSCFG_DL_MCAN0_init               
+0000164d  __aeabi_ddiv                       
+0000164d  __divdf3                           
+00001759  AI_GetUITempCell_Hw                
+00001851  DL_SYSCTL_configSYSPLL             
+0000193d  __aeabi_dmul                       
+0000193d  __muldf3                           
+00001a21  AI_Com_TX_segment_status           
+00001afd  DL_MCAN_getRxFIFOStatus            
+00001bc1  AI_Com_MCAN_Receive_Msg            
+00001c81  DL_MCAN_writeRxFIFOAck             
+00001d39  AI_GetTempInC                      
+00001ded  DL_MCAN_writeMsgRam                
+00001ea1  memcpy                             
+00001f3d  AI_Enable_Disable_Cell_Hw          
+00001fd5  DL_MCAN_getRevisionId              
+00002069  __aeabi_fmul                       
+00002069  __mulsf3                           
+000020f5  __aeabi_fdiv                       
+000020f5  __divsf3                           
+00002179  __TI_decompress_lzss               
+000021f5  DL_MCAN_addStdMsgIDFilter          
+00002269  __gedf2                            
+00002269  __gtdf2                            
+000022dd  main                               
+00002349  DL_MCAN_enableIntr                 
+000023b1  __cmpdf2                           
+000023b1  __eqdf2                            
+000023b1  __ledf2                            
+000023b1  __ltdf2                            
+000023b1  __nedf2                            
+00002419  DL_MCAN_selectIntrLine             
+0000247d  SYSCFG_DL_ADC12_0_init             
+000024e1  __aeabi_dcmpeq                     
+000024f5  __aeabi_dcmplt                     
+00002509  __aeabi_dcmple                     
+0000251d  __aeabi_dcmpge                     
+00002531  __aeabi_dcmpgt                     
+00002543  memset                             
+000025a5  DL_MCAN_enableIntrLine             
+000025fd  DL_MCAN_TXBufAddReq                
+00002651  DL_ADC12_setClockConfig            
+0000269d  DL_MCAN_setExtIDAndMask            
+000026e9  __aeabi_d2iz                       
+000026e9  __fixdfsi                          
+00002735  Init                               
+0000277d  SYSCFG_DL_GPIO_init                
+000027c5  Store_deviceUidin_uint8_array_Utils
+0000280d  CANFD0_IRQHandler                  
+0000284d  DL_MCAN_isMemInitDone              
+0000288d  SYSCFG_DL_initPower                
+000028cd  __aeabi_uidiv                      
+000028cd  __aeabi_uidivmod                   
+0000290d  __aeabi_f2d                        
+0000290d  __extendsfdf2                      
+0000294d  SYSCFG_DL_SYSCTL_init              
+00002989  __aeabi_i2f                        
+00002989  __floatsisf                        
+000029c5  __TI_auto_init_nobinit_nopinit     
+00002a01  __muldsi3                          
+00002a3d  __aeabi_f2iz                       
+00002a3d  __fixsfsi                          
+00002a75  DL_MCAN_clearIntrStatus            
+00002b09  DL_MCAN_setClockConfig             
+00002b35  __aeabi_i2d                        
+00002b35  __floatsidf                        
+00002bd9  _c_int00_noargs                    
+00002c45  DL_MCAN_setOpMode                  
+00002cc5  ADC0_IRQHandler                    
+00002ce1  DL_MCAN_getOpMode                  
+00002cfd  GetDeviceUID                       
+00002d19  AI_PackCanId_Utils                 
+00002d31  AI_Parse_Can_id_Utils              
+00002d49  AI_digitalWrite                    
+00002d61  DL_MCAN_getIntrStatus              
+00002d79  SYSCFG_DL_init                     
+00002d91  initializeDeviceID                 
+00002da9  __TI_zero_init_nomemset            
+00002dc1  AI_Bridge_UnbridgeSegment_Hw       
+00002dd5  DL_Common_delayCycles              
+00002dfd  __TI_decompress_none               
+00002e4d  __aeabi_memclr                     
+00002e4d  __aeabi_memclr4                    
+00002e4d  __aeabi_memclr8                    
+00002ea5  __aeabi_errno_addr                 
+00002ead  __aeabi_memcpy                     
+00002ead  __aeabi_memcpy4                    
+00002ead  __aeabi_memcpy8                    
+00002ec1  Reset_Handler                      
+00002ec5  _system_pre_init                   
+00002ec8  C$$EXIT                            
+00002ec9  abort                              
+00003058  __TI_Handler_Table_Base            
+00003064  __TI_Handler_Table_Limit           
+00003078  __TI_CINIT_Base                    
+00003088  __TI_CINIT_Limit                   
+00003088  __TI_CINIT_Warm                    
+20200000  CurrentValue_Cell                  
+20200000  __start___llvm_prf_bits            
+20200000  __start___llvm_prf_cnts            
+20200000  __stop___llvm_prf_bits             
+20200000  __stop___llvm_prf_cnts             
+20200040  DeviceUID                          
+2020004c  gInterruptLine1Status              
+20200050  OverheatingThreshold               
+20200052  CurrentMode                        
+20200053  MYORDER_ID                         
+20200054  gCheckADC                          
+20200055  gServiceInt                        
+20200058  __aeabi_errno                      
+2020005c  gid_hash                           
+2020005e  DISCOVERY                          
+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                 
+
+[176 symbols]

BIN
segment_main/Debug/segment_main.out


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 922 - 386
segment_main/Debug/segment_main_linkInfo.xml


+ 1 - 3
segment_main/Debug/ti_msp_dl_config.c

@@ -95,9 +95,7 @@ SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
 
     DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_IOMUX);
 
-    DL_GPIO_initDigitalInputFeatures(GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_IOMUX,
-		 DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_NONE,
-		 DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
+    DL_GPIO_initDigitalInput(GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_IOMUX);
 
     DL_GPIO_initDigitalOutput(GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_OUT_IOMUX);
 

+ 6 - 6
segment_main/Debug/ti_msp_dl_config.h

@@ -146,12 +146,12 @@ extern "C" {
 /* Port definition for Pin Group GPIO_PIN_FOR_CAN_COMMUNICATION */
 #define GPIO_PIN_FOR_CAN_COMMUNICATION_PORT                                 (GPIOA)
 
-/* Defines for PIN_DISCOVERY_IN: GPIOA.19 with pinCMx 41 on package pin 22 */
-#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_PIN     (DL_GPIO_PIN_19)
-#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_IOMUX     (IOMUX_PINCM41)
-/* Defines for PIN_DISCOVERY_OUT: GPIOA.20 with pinCMx 42 on package pin 23 */
-#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_OUT_PIN    (DL_GPIO_PIN_20)
-#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_OUT_IOMUX     (IOMUX_PINCM42)
+/* Defines for PIN_DISCOVERY_IN: GPIOA.0 with pinCMx 1 on package pin 4 */
+#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_PIN      (DL_GPIO_PIN_0)
+#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_IN_IOMUX      (IOMUX_PINCM1)
+/* Defines for PIN_DISCOVERY_OUT: GPIOA.1 with pinCMx 2 on package pin 5 */
+#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_OUT_PIN     (DL_GPIO_PIN_1)
+#define GPIO_PIN_FOR_CAN_COMMUNICATION_PIN_DISCOVERY_OUT_IOMUX      (IOMUX_PINCM2)
 
 
 

BIN
segment_main/Debug/ti_msp_dl_config.o


Vissa filer visades inte eftersom för många filer har ändrats