Sfoglia il codice sorgente

CAN Communication with ADC Values

titikluivert@yahoo.fr 1 anno fa
parent
commit
717ac316fe
47 ha cambiato i file con 1995 aggiunte e 1341 eliminazioni
  1. 2 0
      segment_main/.settings/org.eclipse.core.resources.prefs
  2. 40 16
      segment_main/01_sw_components/01_sc/01_src/main_sc.c
  3. 95 121
      segment_main/01_sw_components/02_sig/01_src/Com_rx_signal_sig.c
  4. 117 116
      segment_main/01_sw_components/02_sig/01_src/Com_tx_signal_sig.c
  5. 18 8
      segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h
  6. 66 10
      segment_main/01_sw_components/03_hw/01_src/Hw_Interface.c
  7. 4 14
      segment_main/01_sw_components/03_hw/02_headers/vardef_hw.h
  8. 56 0
      segment_main/01_sw_components/07_utils/01_src/parseCanID_utils.c
  9. 59 0
      segment_main/01_sw_components/07_utils/02_headers/vardef_utils.h
  10. 11 0
      segment_main/04_config/global_header.h
  11. 30 12
      segment_main/04_config/segment_main.syscfg
  12. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Com_rx_signal_sig.c.89964BD8AFAF6A1A.idx
  13. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Com_tx_signal_sig.c.1C87430846B5339E.idx
  14. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Hw_Interface.c.03F5C99EB0148896.idx
  15. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/Hw_Interface.c.43483B0B0C4F24F8.idx
  16. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/global_header.h.73C91F9ABA8DE3E5.idx
  17. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/init_sc.c.435F321C8C7F1849.idx
  18. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/main_sc.c.D8EB5CB0AEF3E502.idx
  19. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/parseCanID_utils.c.090264D4E92533D3.idx
  20. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.c.B931F9EE02218759.idx
  21. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/ti_msp_dl_config.h.C26D5E739004F756.idx
  22. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/vardef_hw.h.E6C43497DAD3C33B.idx
  23. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/vardef_sc.h.F23B3DA9849930BD.idx
  24. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/vardef_sig.h.64476CBC96D96B8A.idx
  25. BIN
      segment_main/Debug/.clangd/.cache/clangd/index/vardef_utils.h.9287DFF09926C832.idx
  26. 5 0
      segment_main/Debug/.clangd/compile_commands.json
  27. 6 6
      segment_main/Debug/01_sw_components/01_sc/01_src/main_sc.d
  28. BIN
      segment_main/Debug/01_sw_components/01_sc/01_src/main_sc.o
  29. 7 3
      segment_main/Debug/01_sw_components/02_sig/01_src/Com_rx_signal_sig.d
  30. BIN
      segment_main/Debug/01_sw_components/02_sig/01_src/Com_rx_signal_sig.o
  31. 7 3
      segment_main/Debug/01_sw_components/02_sig/01_src/Com_tx_signal_sig.d
  32. BIN
      segment_main/Debug/01_sw_components/02_sig/01_src/Com_tx_signal_sig.o
  33. 8 8
      segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.d
  34. BIN
      segment_main/Debug/01_sw_components/03_hw/01_src/Hw_Interface.o
  35. 156 0
      segment_main/Debug/01_sw_components/07_utils/01_src/parseCanID_utils.d
  36. BIN
      segment_main/Debug/01_sw_components/07_utils/01_src/parseCanID_utils.o
  37. 15 0
      segment_main/Debug/01_sw_components/07_utils/01_src/subdir_rules.mk
  38. 26 0
      segment_main/Debug/01_sw_components/07_utils/01_src/subdir_vars.mk
  39. 1 0
      segment_main/Debug/ccsObjs.opt
  40. 5 2
      segment_main/Debug/makefile
  41. 560 498
      segment_main/Debug/segment_main.map
  42. BIN
      segment_main/Debug/segment_main.out
  43. 622 487
      segment_main/Debug/segment_main_linkInfo.xml
  44. 1 0
      segment_main/Debug/sources.mk
  45. 47 25
      segment_main/Debug/ti_msp_dl_config.c
  46. 31 12
      segment_main/Debug/ti_msp_dl_config.h
  47. BIN
      segment_main/Debug/ti_msp_dl_config.o

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

@@ -5,6 +5,8 @@ encoding//Debug/01_sw_components/02_sig/01_src/subdir_rules.mk=UTF-8
 encoding//Debug/01_sw_components/02_sig/01_src/subdir_vars.mk=UTF-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/07_utils/01_src/subdir_rules.mk=UTF-8
+encoding//Debug/01_sw_components/07_utils/01_src/subdir_vars.mk=UTF-8
 encoding//Debug/04_config/subdir_rules.mk=UTF-8
 encoding//Debug/04_config/subdir_vars.mk=UTF-8
 encoding//Debug/makefile=UTF-8

+ 40 - 16
segment_main/01_sw_components/01_sc/01_src/main_sc.c

@@ -31,37 +31,63 @@
  */
 
 #include "04_config/global_header.h"
+#include "ti/devices/msp/m0p/mspm0g350x.h"
 #include "ti_msp_dl_config.h"
-#include "vardef_hw.h"
-#include "vardef_sig.h"
-#include "vardef_sc.h"
+#include "../../03_hw/02_headers/vardef_hw.h"
+#include "../../02_sig/02_headers/vardef_sig.h"
+#include "../../01_sc/02_headers/vardef_sc.h"
 
 
-volatile static bool gCheckADC;
+volatile  bool gCheckADC;
 typF32 voltage, adc_current, adc_temperatur;
 typF32 current, temperatur;
 
-volatile static uint32_t gInterruptLine1Status;
-volatile static bool gServiceInt;
+volatile  typUI32 gInterruptLine1Status;
+volatile  bool gServiceInt;
 
 int main(void)
 {
+
+    OperationMode currentMode = OPMODE_INIT;
     Qual_ReturnType qual_return_type = QUAL_SIGNAL_NOK;
     Qual_ReturnType qual_return_type_temp = QUAL_SIGNAL_NOK;
     Qual_ReturnType qual_return_type_curr = QUAL_SIGNAL_NOK;
   
-    OperationMode currentMode = OPMODE_NORMAL_OPERATION;  // TODO. will be implemented in code
     DL_MCAN_RxBufElement rxMsg; 
 
-    SYSCFG_DL_init();
-    gCheckADC = false;
-    gServiceInt = false;
-    gInterruptLine1Status = 0;
-
+    
     while (1) {
 
+    switch(currentMode) {
 
-    qual_return_type = AI_GetUITempCell_Hw(1, &voltage, &adc_current, &adc_temperatur, gCheckADC);
+        case OPMODE_INIT:
+          
+          SYSCFG_DL_init();
+          NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN);
+          NVIC_EnableIRQ(MCAN0_INST_INT_IRQN);
+          gCheckADC = false;
+          gServiceInt = false;
+          gInterruptLine1Status = 0;
+          currentMode = OPMODE_NORMAL_OPERATION;
+
+            break;
+        case OPMODE_NORMAL_OPERATION:
+            //TODO REQ in Wiki shall be implemented here. 
+            break;
+        case OPMODE_CAN_MESSAGE_RECEIVED:
+            // Code to handle CAN message
+            break;
+        case OPMODE_POWER_DOWN:
+            // Shutdown procedures
+            break;
+        case OPMODE_ERROR_IN_SEGMENT:
+            // Error handling code
+            break;
+        default:
+            break;
+    }
+
+    qual_return_type = AI_GetUITempCell_Hw(1, &voltage, &adc_current, &adc_temperatur, &gCheckADC);
 
     if (qual_return_type == QUAL_SIGNAL_OK)
     {
@@ -70,10 +96,9 @@ int main(void)
 
     }
 
-    AI_Com_MCAN_Receive_Msg(rxMsg, gInterruptLine1Status, gServiceInt);
+    AI_Com_MCAN_Receive_Msg(rxMsg, &gInterruptLine1Status, &gServiceInt);
 
     
-
     }
 }
 
@@ -89,7 +114,6 @@ void ADC12_0_INST_IRQHandler(void)
     }
 }
 
-
 void MCAN0_INST_IRQHandler(void)
 {
     switch (DL_MCAN_getPendingInterrupt(MCAN0_INST)) {

+ 95 - 121
segment_main/01_sw_components/02_sig/01_src/Com_rx_signal_sig.c

@@ -27,129 +27,134 @@
 /* including electronically, without prior written permission of Up Cell GmbH */
 
 
-#include "vardef_sig.h"
+#include "../../02_sig/02_headers/vardef_sig.h"
 #include "04_config/global_header.h"
+#include "../../07_utils/02_headers/vardef_utils.h"
 #include "ti_msp_dl_config.h"
+#include "../../03_hw/02_headers/vardef_hw.h"
 
-// Segment status variable
-//set_segment_status_rx segment_status_cmd;
 
-// Cell status array for each cell (assuming 8 cells)
-//set_cell_status_rx cell_status_cmd[NUMBER_OF_CELLS];
-
-/*
 // Function to process set_segment_status (0x03 set_status)
-void AI_Com_RX_set_segment_status(uint8_t* data) {
-
-    // Parse the set_segment_status packet
-    segment_status_cmd.BRIDGE = data[0] & 0x01;        // Get the BRIDGE flag
-    segment_status_cmd.CLEAR = (data[0] >> 7) & 0x01;  // Get the CLEAR flag
-
-    // Take action based on the received segment status
-    if (segment_status_cmd.BRIDGE) {
-        // Action to bridge the segment (e.g., enabling a relay)
-        bridge_segment();
-    } else {
-        // Action to unbridge the segment
-        unbridge_segment();
-    }
+void AI_Com_RX_set_segment_status(set_segment_status_t segment_status_cmd) {
 
+    AI_Bridge_UnbridgeSegment_Hw (segment_status_cmd.BRIDGE);
+    
+   /*
     if (segment_status_cmd.CLEAR) {
         // Clear any error related to the segment
         clear_segment_error();
     }
+    */
 }
 
-
 // Function to process set_cell_status (0x03 set_status for cells)
-void AI_Com_RX_set_cell_status(uint8_t num_cells, uint8_t* data) {
-    for (int i = 0; i < num_cells; i++) {
-        // Parse each cell's set_cell_status packet
-        cell_status_cmd[i].ENABLE = data[i * 2] & 0x01;  // Get the ENABLE flag
-        cell_status_cmd[i].CLEAR = (data[i * 2] >> 7) & 0x01;  // Get the CLEAR flag
-
-        // Take action based on the received cell status
-        if (cell_status_cmd[i].ENABLE) {
-            // Enable the specific cell (e.g., connecting it to the system)
-            enable_cell(i);
-        } else {
-            // Disable the specific cell
-            disable_cell(i);
-        }
-
+void AI_Com_RX_set_cell_status(typUI8 num_cells, set_cell_status_t cell_status_cmd[]) 
+{
+     typUI8 combi_cell_tobe_disable_enable;
+    for (int i = 0; i < num_cells; i++) 
+    {
+    combi_cell_tobe_disable_enable |= (cell_status_cmd[i].ENABLE << (7 - i));
+    AI_Enable_Disable_Cell_Hw(combi_cell_tobe_disable_enable);
+        /*
         if (cell_status_cmd[i].CLEAR) {
-            // Clear any error related to the cell
-            clear_cell_error(i);
-        }
+                    // Clear any error related to the cell
+                    clear_cell_error(i);
+                }
+        */
     }
 }
 
 
-// Function to process the set_status packet (0x03 set_status)
-void AI_Com_RX_set_status_packet(uint8_t* data) {
-    // Parse order_id and num_cells from the packet
-    uint8_t order_id = data[0];  // First byte: order_id
-    uint8_t num_cells = data[2];  // Third byte: number of cells
+// Function to process incoming CAN messages from the chain controller
+void AI_Com_RX_process_CAN_messages(DL_MCAN_RxBufElement *rxMsg) {
 
-    // Process the set_segment_status (starting at byte 1)
-    set_segment_status_t segment_status_cmd;
-    segment_status_cmd.BRIDGE = (data[1] >> 7) & 0x01;  // BRIDGE bit
-    segment_status_cmd.CLEAR = (data[1]) & 0x01;  // CLEAR bit
+                   
+   // Define initial statuses
+    cell_status_t cell_status[NUMBER_OF_CELLS] = {0};     // Initialize status for 8 cells
+    segment_status_t segment_status = {0};  // Initialize segment status
+    set_segment_status_t set_segment_status = {0};  // Initialize set segment status;
+    set_cell_status_t set_cell_status[NUMBER_OF_CELLS] = {0}; // Initialize set cell status;
 
-    // Take action based on the received segment status
-    if (segment_status_cmd.BRIDGE) {
-        bridge_segment();  // Action to bridge the segment
-    } else {
-        unbridge_segment();  // Action to unbridge the segment
-    }
+    typUI32 idMode;
+    typUI32 id;
+    CAN_ID id_parse;
+    typUI32 source_id;
+    idMode = rxMsg->xtd;
 
-    if (segment_status_cmd.CLEAR) {
-        clear_segment_error();  // Clear segment error
+    if (ID_MODE_EXTENDED == idMode) {
+        id = rxMsg->id;
+    } else {
+        /* Assuming package is using 11-bit standard ID.
+         * When package uses standard id, ID is stored in ID[28:18]*/
+        id = ((rxMsg->id & (typUI32) 0x1FFC0000) >> (typUI32) 18);
     }
 
-    // Process the set_cell_status for each cell (starting at byte 3)
-    for (int i = 0; i < num_cells; i++) {
-        set_cell_status_t cell_status_cmd;
-        uint8_t cell_offset = 3 + i * 2;  // Calculate the offset for each cell
-
-        // Parse the ENABLE and CLEAR flags for each cell
-        cell_status_cmd.ENABLE = (data[cell_offset] >> 7) & 0x01;  // ENABLE bit
-        cell_status_cmd.CLEAR = data[cell_offset] & 0x01;  // CLEAR bit
-
-        // Take action based on the received cell status
-        if (cell_status_cmd.ENABLE) {
-            enable_cell(i);  // Enable the specific cell
-        } else {
-            disable_cell(i);  // Disable the specific cell
-        }
-
-        if (cell_status_cmd.CLEAR) {
-            clear_cell_error(i);  // Clear cell error
+    id_parse = AI_Parse_Can_id_Utils (id);
+    
+    // Check if a message was received from strang controller. id prio shall be 0x00
+    if (id_parse.prio == 0x01) {
+        // Check the message ID and handle it accordingly
+        switch (id_parse.type_id) {
+            case DISCOVERY_PACKET_ID:
+                // Handle the discovery packet and send a response
+                AI_Com_TX_discovery_response(rxMsg->data[0]);  // Send UID to the controller
+                break;
+
+            // Request for the segment with matching order_id to report its status.
+            case STATUS_PACKET_ID:
+               
+                //TODO : Get Status HW.
+                 // Send back the segment status and cell statuses
+                AI_Com_TX_segment_status(segment_status, rxMsg->data[0]);  // Send segment status
+                AI_Com_TX_cell_status(cell_status, rxMsg->data[0]);     // Send cell status
+                break;
+
+            // Request from the branch controller to the segment to adjust its state
+            case SET_STATUS_PACKET_ID:
+                
+                source_id = rxMsg->data[0];
+                // Update the status of the segment and its cells
+                set_segment_status.BRIDGE = rxMsg->data[1] & 0x01;  // Update the segment bridge status
+                set_segment_status.CLEAR = (rxMsg->data[1] >> 7) & 0x01; // Reset the error flag of segment
+                // Update each cell's status
+                typUI8 num_cells = rxMsg->data[2];  // Number of cells
+                for (int i = 0; i < num_cells; i++) {
+                    //The "ENABLE" flag controls the activation of individual cells (high: the cell should be activated, low: the cell should be deactivated)
+                    set_cell_status[i].ENABLE = rxMsg->data[3 + i] & 0x01;  
+                    //The "CLEAR" flag resets the error state of the segment.
+                    set_cell_status[i].CLEAR = (rxMsg->data[3 + i] >> 7) & 0x01;  // Clear error
+                }
+
+                AI_Com_RX_set_segment_status(set_segment_status);
+                AI_Com_RX_set_cell_status(num_cells, set_cell_status); 
+                break;
+
+            default:
+                // Handle other message types or errors
+                break;
         }
     }
-
-    // After processing, respond with r_status_seg and r_status_cell packets
-    send_segment_status(order_id);  // Respond with the segment status
-    send_cell_status(order_id);     // Respond with the cell status
 }
 
-*/
-void AI_Com_MCAN_Receive_Msg (DL_MCAN_RxBufElement rxMsg, typUI32 gInterruptLine1Status, bool gServiceInt)
+void AI_Com_MCAN_Receive_Msg (DL_MCAN_RxBufElement rxMsg, volatile typUI32* gInterruptLine1Status, volatile bool* gServiceInt)
 {
     // DL_MCAN_RxBufElement rxMsg;
     DL_MCAN_RxFIFOStatus rxFS;
-
-    NVIC_EnableIRQ(MCAN0_INST_INT_IRQN);
      /*
          * Wait for flag interrupt to be triggered and flag to check received
          * message is set to true.
      */
-    if (DL_MCAN_OPERATION_MODE_NORMAL == DL_MCAN_getOpMode(MCAN0_INST) && gServiceInt != false)
-    {
-        gServiceInt  = false;
+
+    while (DL_MCAN_OPERATION_MODE_NORMAL != DL_MCAN_getOpMode(MCAN0_INST)) ;
+
+    while (false == *gServiceInt) {
+            __WFE();
+        }
+
+        *gServiceInt  = false;
         rxFS.fillLvl = 0;
 
-        if ((gInterruptLine1Status & MCAN_IR_RF0N_MASK) == MCAN_IR_RF0N_MASK) {
+        if ((*gInterruptLine1Status & MCAN_IR_RF0N_MASK) == MCAN_IR_RF0N_MASK) {
             rxFS.num = DL_MCAN_RX_FIFO_NUM_0;
             while ((rxFS.fillLvl) == 0) {
                 DL_MCAN_getRxFIFOStatus(MCAN0_INST, &rxFS);
@@ -160,43 +165,12 @@ void AI_Com_MCAN_Receive_Msg (DL_MCAN_RxBufElement rxMsg, typUI32 gInterruptLine
             //acknowledges the read operation, indicating the message has been processed and that space in the FIFO can be reused.
             DL_MCAN_writeRxFIFOAck(MCAN0_INST, rxFS.num, rxFS.getIdx);
             
-            // porcess 
+            AI_Com_RX_process_CAN_messages(&rxMsg);
             // clear interrupt flag
-            gInterruptLine1Status &= ~(MCAN_IR_RF0N_MASK);
+            *gInterruptLine1Status &= ~(MCAN_IR_RF0N_MASK);
         }
-    }
-
-
-}
-
-/*
-// Example functions to take action
-void bridge_segment() {
-    // Implement the action to bridge the segment
-    // e.g., set a GPIO pin to high to close a relay
-}
-
-void unbridge_segment() {
-    // Implement the action to unbridge the segment
-    // e.g., set a GPIO pin to low to open a relay
-}
-
-void clear_segment_error() {
-    // Implement the action to clear segment errors
-}
-
-void enable_cell(uint8_t cell_index) {
-    // Implement the action to enable a cell (e.g., connect it to the system)
-}
-
-void disable_cell(uint8_t cell_index) {
-    // Implement the action to disable a cell (e.g., disconnect it)
-}
-
-void clear_cell_error(uint8_t cell_index) {
-    // Implement the action to clear cell errors
+    
 }
 
-*/
 
 

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

@@ -27,170 +27,171 @@
 /* including electronically, without prior written permission of Up Cell GmbH */
 
 
-#include "vardef_sig.h"
+#include "../../02_sig/02_headers/vardef_sig.h"
+#include "../../07_utils/02_headers/vardef_utils.h"
 #include "04_config/global_header.h"
 #include "ti_msp_dl_config.h"
+#include "../../03_hw/02_headers/vardef_hw.h"
+
 
-// Define initial statuses
-segment_status_t segment_status = {0};  // Initialize segment status
-cell_status_t cell_status[NUMBER_OF_CELLS] = {0};     // Initialize status for 8 cells
 
 typUI8 num_cells = NUMBER_OF_CELLS;  // Number of cells in the segment
 typUI16 gid_hash = 0x1234;  // Example GID hash for the segment
 
-/*
+
 // Function to send a discovery response packet (0x81 r_discovery)
 void AI_Com_TX_discovery_response(typUI8 order_id) {
-    CAN_message_t msg;
-    msg.id = R_DISCOVERY_PACKET_ID;
-    msg.extended = 1;  // Use 29-bit Extended CAN ID
-    msg.data[0] = 0x10;  // Type = Segment (as per the spec)
+
+    DL_MCAN_TxBufElement txMsg;
+    CAN_ID can_id;
+
+    // Unique ID of the segment (16 bytes)
+     typUI8 segment_uid[16] = { /* Define the unique UID for each segment */ };
+
+    can_id.prio = 0x00;                     // Priority for segment
+    can_id.type_id = R_DISCOVERY_PACKET_ID; // Priority for segment
+    can_id.source_id = order_id;            // for segment source_id = order_id
+    
+    /* Identifier Value.*/
+    txMsg.id = AI_PackCanId_Utils(can_id);
+    /* Transmitting 17 bytes. */
+    txMsg.dlc = 17U;
+    //type des Paket
+    txMsg.data[0] = 0x10;  // Type = Segment (as per the spec)
     
     // Copy the UID into the CAN message
     for (int i = 0; i < 16; i++) {
-        msg.data[1 + i] = segment_uid[i];  // UID of the segment
+        txMsg.data[1 + i] = segment_uid[i];  // UID of the segment
     }
-    
-    msg.length = 17;  // 1 byte for type + 16 bytes for UID
 
-    CAN_send(&msg);  // Send the message
+    AI_Com_TX_process_CAN_messages(txMsg); // Send the message
 }
 
 // Function to send the status of the segment (0x82 r_status_seg)
-void AI_Com_TX_segment_status(typUI8 order_id) {
-    CAN_message_t msg;
-    msg.id = R_STATUS_SEG_PACKET_ID;
-    msg.extended = 1;
-    
+void AI_Com_TX_segment_status(segment_status_t segment_status, typUI8 order_id) {
+    DL_MCAN_TxBufElement txMsg;
+
+    CAN_ID can_id;
+    can_id.prio = 0x00;                     // Priority for segment
+    can_id.type_id = R_STATUS_SEG_PACKET_ID; // Priority for segment
+    can_id.source_id = order_id;            // for segment source_id = order_id
+
+
+    txMsg.id = AI_PackCanId_Utils(can_id);    
     // Fill in the data according to the 0x82 packet structure
-    msg.data[0] = gid_hash >> 8;  // First byte of gid_hash
-    msg.data[1] = gid_hash & 0xFF;  // Second byte of gid_hash
-    msg.data[2] = num_cells;  // Number of cells (e.g., 8)
+    txMsg.data[0] = gid_hash >> 8;  // First byte of gid_hash
+    txMsg.data[1] = gid_hash & 0xFF;  // Second byte of gid_hash
+    txMsg.data[2] = NUMBER_OF_CELLS;  // Number of cells (8)
     
+    // ADC Values
+        //TODO. config PIN für Segment Temp, Segment Voltage.
+
     // Status flags (BRIDGE, EOTEMP, EUTEMP)
-    msg.data[3] = (segment_status.BRIDGE & 0x01);  // Segment bridge status
-    msg.data[4] = (segment_status.EOTEMP & 0x01) << 7 | (segment_status.EUTEMP & 0x01) << 6;  // Error flags
+    txMsg.data[3] = (segment_status.BRIDGE & 0x01);  // Segment bridge status
+    txMsg.data[4] = (segment_status.EOTEMP & 0x01) << 7 | (segment_status.EUTEMP & 0x01) << 6;  // Error flags
     
     // Add segment voltage and temperature (16-bit values)
-    msg.data[5] = segment_status.seg_volt >> 8;
-    msg.data[6] = segment_status.seg_volt & 0xFF;
-    msg.data[7] = segment_status.temp >> 8;
-    msg.data[8] = segment_status.temp & 0xFF;
+    txMsg.data[5] = segment_status.seg_volt >> 8;
+    txMsg.data[6] = segment_status.seg_volt & 0xFF;
+    txMsg.data[7] = segment_status.temp >> 8;
+    txMsg.data[8] = segment_status.temp & 0xFF;
 
-    msg.length = 9;  // Total 9 bytes (2 bytes for gid_hash, 1 byte for num_cells, 6 bytes for status/voltage/temp)
+    txMsg.dlc = 9;  // Total 9 bytes (2 bytes for gid_hash, 1 byte for num_cells, 6 bytes for status/voltage/temp)
 
-    CAN_send(&msg);  // Send the message
+     AI_Com_TX_process_CAN_messages(txMsg);  // Send the message
 }
 
 // Function to send the status of the cells (0x83 r_status_cell)
-void AI_Com_TX_cell_status(typUI8 order_id) {
-    CAN_message_t msg;
-    msg.id = R_STATUS_CELL_PACKET_ID;
-    msg.extended = 1;
+void AI_Com_TX_cell_status(cell_status_t cell_status[] , typUI8 order_id) {
+    DL_MCAN_TxBufElement txMsg;
+    CAN_ID can_id;
+    typF32 adc_current, adc_temperatur;
+
+    Qual_ReturnType qual_return_type;
+
+    can_id.prio = 0x00;  
+    can_id.type_id = R_STATUS_CELL_PACKET_ID;
+    can_id.source_id = order_id;
+
+    txMsg.id = AI_PackCanId_Utils(can_id); 
 
     // Break cells into frames, each frame can contain up to 7 cells
-    uint8_t total_frames = (num_cells + 6) / 7;  // Calculate the total number of frames needed
-    uint8_t frame_idx = 0;
-    uint16_t gid_hash = 0x1234;  // Example GID hash
+    typUI8 total_frames = (NUMBER_OF_CELLS + 6) / 7;  // Calculate the total number of frames needed
+    typUI8 frame_idx = 0;
+    typUI16 gid_hash = 0x1234;  // Example GID hash
 
     for (frame_idx = 0; frame_idx < total_frames; frame_idx++) {
         // Prepare the CAN message for the current frame
-        msg.data[0] = gid_hash >> 8;  // First byte of gid_hash
-        msg.data[1] = gid_hash & 0xFF;  // Second byte of gid_hash
-        msg.data[2] = num_cells;  // Total number of cells
-        msg.data[3] = frame_idx;  // Current frame index
+        txMsg.data[0] = gid_hash >> 8;    // First byte of gid_hash
+        txMsg.data[1] = gid_hash & 0xFF;  // Second byte of gid_hash
+        txMsg.data[2] = NUMBER_OF_CELLS;  // Total number of cells
+        txMsg.data[3] = frame_idx;        // Current frame index
 
         // Calculate the number of cells in this frame (max 7 cells per frame)
-        uint8_t cells_in_frame = (num_cells - (frame_idx * 7) >= 7) ? 7 : (num_cells % 7);
+        typUI8 cells_in_frame = (NUMBER_OF_CELLS - (frame_idx * 7) >= 7) ? 7 : (NUMBER_OF_CELLS % 7);
 
         // Add the status of up to 7 cells to the CAN message
-        for (uint8_t i = 0; i < cells_in_frame; i++) {
-            uint8_t cell_idx = frame_idx * 7 + i;  // Index of the current cell
+        for (typUI8 i = 0; i < cells_in_frame; i++) {
+            typUI8 cell_idx = frame_idx * 7 + i;  // Index of the current cell
 
             // Pack cell status into the message
-            msg.data[4 + i * 6] = (cell_status[cell_idx].ENABLE & 0x01);  // Cell enable status
-            msg.data[5 + i * 6] = (cell_status[cell_idx].EOVOLT & 0x01) << 7 | (cell_status[cell_idx].EUVOLT & 0x01) << 6 |
+            txMsg.data[4 + i * 6] = (cell_status[cell_idx].ENABLE & 0x01);  // Cell enable status
+            txMsg.data[5 + i * 6] = (cell_status[cell_idx].EOVOLT & 0x01) << 7 | (cell_status[cell_idx].EUVOLT & 0x01) << 6 |
                                   (cell_status[cell_idx].EOCURR & 0x01) << 5 | (cell_status[cell_idx].EOTEMP & 0x01) << 4 | 
                                   (cell_status[cell_idx].EUTEMP & 0x01) << 3;  // Error flags for each cell
 
+            
+            qual_return_type = AI_GetUITempCell_Hw(cell_idx, (typF32*)&cell_status[cell_idx].cell_volt, &adc_current, &adc_temperatur, &gCheckADC);
+
+            if (qual_return_type == QUAL_SIGNAL_OK)
+            {
+                qual_return_type = AI_GetTempInC ((typF32*)&cell_status[cell_idx].cell_temp, adc_temperatur);
+                qual_return_type = AI_GetIInA ((typF32*)&cell_status[cell_idx].cell_curr, adc_current);
+
+            }
+
             // Add cell voltage, current, and temperature (16-bit values)
-            msg.data[6 + i * 6] = cell_status[cell_idx].cell_volt >> 8;
-            msg.data[7 + i * 6] = cell_status[cell_idx].cell_volt & 0xFF;
-            msg.data[8 + i * 6] = cell_status[cell_idx].cell_curr >> 8;
-            msg.data[9 + i * 6] = cell_status[cell_idx].cell_curr & 0xFF;
-            msg.data[10 + i * 6] = cell_status[cell_idx].cell_temp >> 8;
-            msg.data[11 + i * 6] = cell_status[cell_idx].cell_temp & 0xFF;
+            txMsg.data[6 + i * 6] = cell_status[cell_idx].cell_volt >> 8;
+            txMsg.data[7 + i * 6] = cell_status[cell_idx].cell_volt & 0xFF;
+            txMsg.data[8 + i * 6] = cell_status[cell_idx].cell_curr >> 8;
+            txMsg.data[9 + i * 6] = cell_status[cell_idx].cell_curr & 0xFF;
+            txMsg.data[10 + i * 6] = cell_status[cell_idx].cell_temp >> 8;
+            txMsg.data[11 + i * 6] = cell_status[cell_idx].cell_temp & 0xFF;
         }
 
         // Set the length of the CAN message depending on how many cells are in the frame
-        msg.length = 4 + cells_in_frame * 6;  // 4 bytes for gid_hash, num_cells, frame_idx + 6 bytes per cell
+        txMsg.dlc = 4 + cells_in_frame * 6;  // 4 bytes for gid_hash, num_cells, frame_idx + 6 bytes per cell
 
         // Send the current frame
-        CAN_send(&msg);
+        AI_Com_TX_process_CAN_messages(txMsg);
     }
 }
 
-// Function to send an error packet (0xFF error)
-void AI_Com_TX_error_packet(typUI8 packet_type_id, typUI8 error_type_id) {
-    CAN_message_t msg;
-    msg.id = ERROR_PACKET_ID;  // 0xFF for error packets
-    msg.extended = 1;  // 29-bit Extended CAN ID
-    
-    // Set packet type and error type
-    msg.data[0] = packet_type_id;  // The type of packet that caused the error
-    msg.data[1] = error_type_id;   // Specific error type
-    
-    msg.length = 2;  // Error packet length is 2 bytes (1 byte for packet_type_id and 1 byte for error_type_id)
-    
-    CAN_send(&msg);  // Send the error packet
-}
-// Function to process incoming CAN messages from the chain controller
-void AI_Com_TX_process_CAN_messages(DL_MCAN_RxBufElement *rxMsg) {
-    //CAN_message_t msg;
-
-    // Check if a message was received
-    if (CAN_receive(&rxMsg)) {
-        // Check the message ID and handle it accordingly
-        switch (msg.id) {
-            case DISCOVERY_PACKET_ID:
-                // Handle the discovery packet and send a response
-                send_discovery_response(msg.data[0]);  // Send UID to the controller
-                break;
-
-            case R_STATUS_SEG_PACKET_ID:
-                // Send back the segment status and cell statuses
-                send_segment_status(msg.data[0]);  // Send segment status
-                send_cell_status(msg.data[0]);     // Send cell status
-                break;
-
-            case R_STATUS_CELL_PACKET_ID:
-                // Update the status of the segment and its cells
-                segment_status.BRIDGE = msg.data[1] & 0x01;  // Update the segment bridge status
-                segment_status.EOTEMP = (msg.data[2] >> 7) & 0x01;  // Overtemperature error
-                segment_status.EUTEMP = (msg.data[2] >> 6) & 0x01;  // Temperature sensor error
-                segment_status.seg_volt = (msg.data[3] << 8) | msg.data[4];  // Update segment voltage
-                segment_status.temp = (msg.data[5] << 8) | msg.data[6];  // Update segment temperature
-
-                // Update each cell's status
-                num_cells = msg.data[2];  // Number of cells
-                for (int i = 0; i < num_cells; i++) {
-                    cell_status[i].ENABLE = msg.data[3 + i * 6] & 0x01;  // Update cell enable status
-                    cell_status[i].EOVOLT = (msg.data[4 + i * 6] >> 7) & 0x01;  // Overvoltage error
-                    cell_status[i].EUVOLT = (msg.data[4 + i * 6] >> 6) & 0x01;  // Undervoltage error
-                    cell_status[i].EOCURR = (msg.data[4 + i * 6] >> 5) & 0x01;  // Overcurrent error
-                    cell_status[i].EOTEMP = (msg.data[4 + i * 6] >> 4) & 0x01;  // Overtemperature error
-                    cell_status[i].EUTEMP = (msg.data[4 + i * 6] >> 3) & 0x01;  // Temperature sensor error
-                    cell_status[i].cell_volt = (msg.data[5 + i * 6] << 8) | msg.data[6 + i * 6];  // Update cell voltage
-                    cell_status[i].cell_curr = (msg.data[7 + i * 6] << 8) | msg.data[8 + i * 6];  // Update cell current
-                    cell_status[i].cell_temp = (msg.data[9 + i * 6] << 8) | msg.data[10 + i * 6]; // Update cell temperature
-                }
-                break;
-
-            default:
-                // Handle other message types or errors
-                break;
-        }
-    }
-}
 
-*/
+void AI_Com_TX_process_CAN_messages(DL_MCAN_TxBufElement txMsg)
+{
+    /* Initialize message to transmit. */
+    /* Transmit data frame. */
+    txMsg.rtr = 0U;
+    /* 11-bit standard identifier. 29-bit for CAN FD */
+    txMsg.xtd = 1U;
+    /* ESI bit in CAN FD format depends only on error passive flag. */
+    txMsg.esi = 0U;
+    /* CAN FD frames transmitted with bit rate switching. */
+    txMsg.brs = 1U;
+    /* Frame transmitted in CAN FD format. */
+    txMsg.fdf = 1U;
+    /* Store Tx events. */
+    txMsg.efc = 1U;
+    /* Message Marker. */
+    txMsg.mm = 0xAAU;
+
+    while (DL_MCAN_OPERATION_MODE_NORMAL != DL_MCAN_getOpMode(MCAN0_INST));
+
+    /* Write Tx Message to the Message RAM. */
+    DL_MCAN_writeMsgRam(MCAN0_INST, DL_MCAN_MEM_TYPE_BUF, 0U, &txMsg);
+
+    /* Add request for transmission. */
+    DL_MCAN_TXBufAddReq(MCAN0_INST, 0U);
+    
+}

+ 18 - 8
segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h

@@ -58,9 +58,8 @@ typedef struct {
 } set_cell_status_t;
 
 
-// Unique ID of the segment (16 bytes)
-//typUI8 segment_uid[16] = { /* Define the unique UID for each segment */ };
 
+#define ID_MODE_EXTENDED (0x1U)
 // Segment and Cell status structure definitions
 
 // Segment Status (32-bit structure)
@@ -89,18 +88,29 @@ typedef struct {
     typSI16 cell_temp;    // Cell temperature (signed 16-bit integer)
 } cell_status_t;
 
+// Define bit sizes based on the image provided
+#define PRIO_BITS      3   // prio uses 3 bits
+#define TYPE_ID_BITS   16  // type_id uses 16 bits
+#define SOURCE_ID_BITS 10  // source_id uses 10 bits
+
+// Define shifts based on where each field should be in the 29-bit integer
+#define PRIO_SHIFT     (TYPE_ID_BITS + SOURCE_ID_BITS)  // Shift prio left by the sum of type_id and source_id bits
+#define TYPE_ID_SHIFT  SOURCE_ID_BITS                   // Shift type_id left by the number of source_id bits
+#define SOURCE_ID_SHIFT 0  // source_id occupies the lowest bits, no shift needed
+
 
 
 /* Ino.10180.20180.000C0 */
 extern void AI_Com_TX_discovery_response(typUI8 order_id);
-extern void AI_Com_TX_segment_status(typUI8 order_id);
-extern void AI_Com_TX_cell_status(typUI8 order_id);
+extern void AI_Com_TX_cell_status(cell_status_t cell_status[] , typUI8 order_id);
 extern void AI_Com_TX_error_packet(typUI8 packet_type_id, typUI8 error_type_id);
-extern void AI_Com_TX_process_CAN_messages(DL_MCAN_RxBufElement *rxMsg);
-extern void AI_Com_MCAN_Receive_Msg(DL_MCAN_RxBufElement rxMsg, typUI32 gInterruptLine1Status, bool gServiceInt);
-extern void AI_Com_RX_set_segment_status(typUI8* data);
+extern void AI_Com_TX_process_CAN_messages(DL_MCAN_TxBufElement txMsg);
+extern void AI_Com_MCAN_Receive_Msg (DL_MCAN_RxBufElement rxMsg, volatile typUI32* gInterruptLine1Status, volatile bool* gServiceInt);
+extern void AI_Com_RX_set_segment_status(set_segment_status_t segment_status_cmd) ;
 // Function to process set_cell_status (0x03 set_status for cells)
-extern void AI_Com_RX_set_cell_status(typUI8 num_cells, typUI8* data) ;
+extern void AI_Com_RX_set_cell_status(typUI8 num_cells, set_cell_status_t cell_status_cmd[]);
 // Function to process the set_status packet (0x03 set_status)
 extern void AI_Com_RX_set_status_packet(typUI8* data) ;
+extern void AI_Com_TX_segment_status(segment_status_t segment_status, typUI8 order_id);
+
 #endif

+ 66 - 10
segment_main/01_sw_components/03_hw/01_src/Hw_Interface.c

@@ -31,10 +31,10 @@
 #include "04_config/global_header.h"
 #include "ti/devices/msp/m0p/mspm0g350x.h"
 #include "ti_msp_dl_config.h"
-#include "vardef_hw.h"
+#include "../../03_hw/02_headers/vardef_hw.h"
 
 
-Qual_ReturnType AI_GetUITempCell_Hw(typUI8 idx_cell, typF32* out_u, typF32* out_i, typF32* out_t, bool gCheckADC)
+Qual_ReturnType AI_GetUITempCell_Hw(typUI8 idx_cell, typF32* out_u, typF32* out_i, typF32* out_t, volatile bool *gCheckADC)
 {
      // Cell 1 till 8 shall be in correct range
     if (idx_cell < 1 || idx_cell > 8) {
@@ -64,29 +64,31 @@ Qual_ReturnType AI_GetUITempCell_Hw(typUI8 idx_cell, typF32* out_u, typF32* out_
 
     // Read ADC value (assuming you have an ADC read function)
     DL_ADC12_startConversion(ADC12_0_INST);
-
+    
+    while (false == *gCheckADC) {
+            __WFE();
+        }
     /* Wait until all data channels have been loaded. */
-    if (gCheckADC == true){
+   
        /* Store ADC Results into their respective buffer */
         *out_u = (typSI16)DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0);
         *out_i = (typSI16)DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_1);
         *out_t = (typSI16)DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_2);
 
-        gCheckADC = false;
+        *gCheckADC = false;
         DL_ADC12_enableConversions(ADC12_0_INST);
 
         // Disable the multiplexer for voltage (set the Enable pin to HIGH)
         AI_digitalWrite(GPIO_MULTIPLEXER_PIN_CONFIG_PORT, DL_GPIO_PIN_9, HIGH);
         // Disable the multiplexer for voltage (set the Enable pin to HIGH)
         AI_digitalWrite(GPIO_MULTIPLEXER_PIN_CONFIG_PORT, DL_GPIO_PIN_6, HIGH);
-    }
+    
 	}
 	/* Ino.40EC0.000C0 */
 
 	return (Qual_ReturnType) QUAL_SIGNAL_OK;
 }
 
-
 Qual_ReturnType AI_GetTempInC(typF32* out, typF32 adcVoltageTemperature)
 {
     volatile typF32 gTemperatureDegC;
@@ -115,7 +117,6 @@ Qual_ReturnType AI_GetIInA(typF32* out, typF32 adcVoltageCurrent)
 	return (Qual_ReturnType) QUAL_SIGNAL_OK;
 }
 
-
 /**
  * Sets the state of a GPIO pin.
  * 
@@ -123,7 +124,7 @@ Qual_ReturnType AI_GetIInA(typF32* out, typF32 adcVoltageCurrent)
  * @param state The state to set: true for HIGH, false for LOW.
  * @return      Returns true if the operation was successful, otherwise false.
  */
-bool AI_digitalWrite(GPIO_Regs *pin_Group, uint32_t pin, bool state){
+bool AI_digitalWrite(GPIO_Regs *pin_Group, typUI32 pin, bool state){
 
     // TODO: what happens if the pin is not configured ?
     // Check if the pin is valid (example: valid pins are 1-8)
@@ -138,4 +139,59 @@ bool AI_digitalWrite(GPIO_Regs *pin_Group, uint32_t pin, bool state){
         DL_GPIO_clearPins(pin_Group, pin);  // Set the pin to LOW
     }
     return true;  // Operation was successful
-}
+}
+
+void AI_ShiftOut_HW(typUI8 data) 
+{
+    for (int i = 0; i < NUMBER_OF_CELLS; i++) {
+
+        if (data & (1 << i)) {
+        // Set SER to 1
+          // activate the multiplexer for voltage (set the Enable pin to setzen)
+          AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_11, HIGH);
+        } else {
+          // activate the multiplexer for temperatur (set the Enable pin to setzen)
+          AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_11, LOW);
+        }
+        // Toggle SRCLK
+         AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_16, HIGH);
+         AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_16, LOW);
+    }
+    // Toggle RCLK
+     AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_15, HIGH);
+     AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_15, LOW);
+}
+
+
+// Example functions to take action
+void AI_Bridge_UnbridgeSegment_Hw(typUI8 data) {
+    // Implement the action to bridge the segment
+    
+        if (data == 1) {
+          // activate the multiplexer for voltage (set the Enable pin to setzen)
+          AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_11, HIGH);
+        } else {
+          // activate the multiplexer for temperatur (set the Enable pin to setzen)
+          AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_11, LOW);
+        }
+}
+
+/*void clear_segment_error() {
+    // Implement the action to clear segment errors
+}
+*/
+void AI_Enable_Disable_Cell_Hw(typUI8 cell_index_combi) {
+    // Implement the action to enable a cell or disable Cell
+
+    AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_14, HIGH);
+
+    AI_ShiftOut_HW(cell_index_combi); // Deaktiviert alle Enables
+
+    AI_digitalWrite(GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT, DL_GPIO_PIN_14, LOW);
+}
+
+/*
+void clear_cell_error(uint8_t cell_index) {
+    // Implement the action to clear cell errors
+}
+*/

+ 4 - 14
segment_main/01_sw_components/03_hw/02_headers/vardef_hw.h

@@ -133,10 +133,10 @@ typedef enum
 /* Interface parameters */
 
 /* Ino.10180.20180.000C0 */
-extern Qual_ReturnType AI_GetUITempCell_Hw(typUI8 idx_cell, typF32* out_u, typF32* out_i, typF32* out_t, bool gCheckADC);
+extern Qual_ReturnType AI_GetUITempCell_Hw(typUI8 idx_cell, typF32* out_u, typF32* out_i, typF32* out_t, volatile bool* gCheckADC);
 extern Qual_ReturnType AI_GetTempInC(typF32* out, typF32 adcVoltageTemperature);
 extern Qual_ReturnType AI_GetIInA(typF32* out, typF32 adcVoltageCurrent);
-extern bool AI_digitalWrite(GPIO_Regs *pin_Group, uint32_t pin, bool state);
+extern bool AI_digitalWrite(GPIO_Regs *pin_Group, typUI32 pin, bool state);
 
 /* Operation Mode: Init */
 
@@ -173,23 +173,13 @@ extern void UpCell_Exit_Hw(void);
 
 extern Qual_ReturnType AI_GetTempCell_Hw(typUI16 idx_cell, typSI16* out);
 extern Qual_ReturnType AI_GetUCell_Hw(typUI16 idx_cell, typSI16* out);
-
+extern void AI_Bridge_UnbridgeSegment_Hw(typUI8 data);
+extern void AI_Enable_Disable_Cell_Hw (typUI8 data);
 /* Ino.400C0.40180.40180.00180 */
 
 
 /* Conti DMS simulation lib */
 
-/* Ino.10180.20180.000C0 */
-
-extern typUI32  os_reset_timer_1ms;
-
-/* Ino.400C0.40180.40180.00180 */
-
-
-/* Lock end */
-
-/* Ino.10180.20180.000C0 */
-
 #endif
 
 /* Ino.400C0.40180 */

+ 56 - 0
segment_main/01_sw_components/07_utils/01_src/parseCanID_utils.c

@@ -0,0 +1,56 @@
+
+/* Description */
+
+
+/* Module Name            : HW_Interface        */
+/* Process                : Hw interface       */
+/* Specification          :                    */
+
+/* Ino.100C0 */
+
+/*  revision             Revision: 1.0.0   */
+/* Last change made by   Author: NG-Tiofack Kegne, Max Well  */
+/* Date for last change  $Date: 2014/09/16 13:20:35MESZ $  */
+
+/* Ino.400C0.000C0 */
+
+
+/* Module description     : "Compiler specific Type definitions" */
+
+/* Ino.100C0.400C0.000C0 */
+
+
+/* Up Cell owns all the intellectual property rights, including \       */
+/* copyright and rights of confidence,  in these computer programs. Such \    */
+/* intellectual property rights extend to the structure, sequence, \          */
+/* organisation and presentation of the programs and they may not be, in \    */
+/* whole or part, copied, used or transmitted in any form or by any means, \  */
+/* including electronically, without prior written permission of Up Cell GmbH */
+
+
+#include "04_config/global_header.h"
+#include "ti/devices/msp/m0p/mspm0g350x.h"
+#include "ti_msp_dl_config.h"
+#include "../../07_utils/02_headers/vardef_utils.h"
+
+
+// Function to parse the CAN ID
+CAN_ID AI_Parse_Can_id_Utils(typUI32 id) {
+    CAN_ID can_id;
+
+    // Mask and shift bits to extract each field based on the bitfield definitions
+    can_id.prio      = (id & 0x00000003);              // Extract bits 0-1
+    can_id.type_id   = (id >> 2) & 0x0000FFFF;         // Extract bits 2-17
+    can_id.source_id = (id >> 18) & 0x000007FF;        // Extract bits 18-28
+    
+    return can_id;
+}
+
+typUI32 AI_PackCanId_Utils(CAN_ID can_id) {
+    typUI32 packed_id = 0;
+    packed_id |= (can_id.prio & ((1 << PRIO_BITS) - 1)) << PRIO_SHIFT;
+    packed_id |= (can_id.type_id & ((1 << TYPE_ID_BITS) - 1)) << TYPE_ID_SHIFT;
+    packed_id |= (can_id.source_id & ((1 << SOURCE_ID_BITS) - 1)) << SOURCE_ID_SHIFT;
+
+    return packed_id;
+}

+ 59 - 0
segment_main/01_sw_components/07_utils/02_headers/vardef_utils.h

@@ -0,0 +1,59 @@
+
+/* Description */
+
+
+/* Module Name            : vardef_hw.h        */
+/* Process                : Hw interface            */
+/* Specification          :                    */
+
+/* Ino.100C0 */
+
+/* MKS revision        $Revision: 1.0.0 $  */
+/* Last change made by   $Author: NG-Tiofack Kegne, Max Well  $  */
+
+/* Ino.400C0.000C0 */
+
+
+/* Module description     : "Compiler specific Type definitions" */
+
+/* Ino.100C0.400C0.000C0 */
+
+
+/* Up Cell owns all the intellectual property rights, including \       */
+/* copyright and rights of confidence,  in these computer programs. Such \    */
+/* intellectual property rights extend to the structure, sequence, \          */
+/* organisation and presentation of the programs and they may not be, in \    */
+/* whole or part, copied, used or transmitted in any form or by any means, \  */
+/* including electronically, without prior written permission of Up Cell GmbH */
+
+
+
+#if !defined (vardef_utils)
+  #define vardef_utils
+
+/* Ino.400C0.40180.00180 */
+#include "04_config/global_header.h"
+
+// Define structure to hold the CAN ID parts using bitfields
+typedef struct {
+    typUI32 source_id : 11;  // 11 bits for source_id
+    typUI32 type_id   : 16; // 16 bits for type_id (unsigned int 16)
+    typUI32 prio      : 2;  // 2 bits for prio
+} CAN_ID;
+
+// Define bit sizes based on updated specifications
+#define PRIO_BITS      3
+#define TYPE_ID_BITS   16
+#define SOURCE_ID_BITS 10  // Calculated as 29 - 3 - 16
+
+// Define shifts based on where each field should be in the 29-bit integer
+#define PRIO_SHIFT     (TYPE_ID_BITS + SOURCE_ID_BITS)  // Shift prio left by the sum of type_id and source_id bits
+#define TYPE_ID_SHIFT  SOURCE_ID_BITS                   // Shift type_id left by the number of source_id bits
+#define SOURCE_ID_SHIFT 0  // source_id occupies the lowest bits, no shift needed
+#endif
+
+
+extern CAN_ID AI_Parse_Can_id_Utils(typUI32 id);
+extern typUI32 AI_PackCanId_Utils(CAN_ID can_id);
+/* Ino.400C0.40180 */
+

+ 11 - 0
segment_main/04_config/global_header.h

@@ -33,6 +33,9 @@
 
 #define BASETYPES_H
 
+#include "ti_msp_dl_config.h"
+
+
 #define NUMBER_OF_CELLS     8
 
 typedef  signed short int typSI16;
@@ -55,4 +58,12 @@ typedef   float    typF32;
 typedef   double   typF64;  
 
 
+
+extern volatile bool gCheckADC;
+
+extern volatile typUI32 gInterruptLine1Status;
+extern volatile bool gServiceInt;
+
+
+
 #endif

+ 30 - 12
segment_main/04_config/segment_main.syscfg

@@ -13,6 +13,8 @@ const ADC12   = scripting.addModule("/ti/driverlib/ADC12", {}, false);
 const ADC121  = ADC12.addInstance();
 const GPIO    = scripting.addModule("/ti/driverlib/GPIO", {}, false);
 const GPIO1   = GPIO.addInstance();
+const GPIO2   = GPIO.addInstance();
+const GPIO3   = GPIO.addInstance();
 const MATHACL = scripting.addModule("/ti/driverlib/MATHACL");
 const MCAN    = scripting.addModule("/ti/driverlib/MCAN", {}, false);
 const MCAN1   = MCAN.addInstance();
@@ -21,14 +23,16 @@ const SYSCTL  = scripting.addModule("/ti/driverlib/SYSCTL");
 /**
  * Write custom configuration values to the imported modules.
  */
-const mux4       = system.clockTree["EXHFMUX"];
-mux4.inputSelect = "EXHFMUX_XTAL";
+const multiplier2         = system.clockTree["PLL_QDIV"];
+multiplier2.multiplyValue = 5;
+
+const mux2       = system.clockTree["CANCLKMUX"];
+mux2.inputSelect = "CANCLKMUX_PLLCLK1_OUT";
 
 const pinFunction3     = system.clockTree["HFCLKEXT"];
 pinFunction3.inputFreq = 40;
 
 const pinFunction4        = system.clockTree["HFXT"];
-pinFunction4.enable       = true;
 pinFunction4.HFXTStartup  = 10;
 pinFunction4.HFCLKMonitor = true;
 pinFunction4.inputFreq    = 40;
@@ -40,6 +44,7 @@ ADC121.endAdd                     = 2;
 ADC121.adcMem1chansel             = "DL_ADC12_INPUT_CHAN_3";
 ADC121.adcMem2chansel             = "DL_ADC12_INPUT_CHAN_7";
 ADC121.sampClkDiv                 = "DL_ADC12_CLOCK_DIVIDE_8";
+ADC121.enabledInterrupts          = ["DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED"];
 ADC121.peripheral.$assign         = "ADC0";
 ADC121.peripheral.adcPin2.$assign = "PA25";
 ADC121.peripheral.adcPin3.$assign = "PA24";
@@ -58,13 +63,30 @@ GPIO1.associatedPins.create(5);
 GPIO1.associatedPins[0].$name       = "PIN_E1";
 GPIO1.associatedPins[0].pin.$assign = "PA9";
 GPIO1.associatedPins[1].$name       = "PIN_S0";
-GPIO1.associatedPins[1].pin.$assign = "PA23";
+GPIO1.associatedPins[1].pin.$assign = "PA5";
 GPIO1.associatedPins[2].$name       = "PIN_S1";
 GPIO1.associatedPins[2].pin.$assign = "PA4";
 GPIO1.associatedPins[3].$name       = "PIN_S2";
 GPIO1.associatedPins[3].pin.$assign = "PA3";
 GPIO1.associatedPins[4].$name       = "PIN_E0";
-GPIO1.associatedPins[4].pin.$assign = "PA11";
+GPIO1.associatedPins[4].pin.$assign = "PA6";
+
+GPIO2.$name                         = "GPIO_SHIFT_REGISTER_PIN_CONFIG";
+GPIO2.associatedPins.create(5);
+GPIO2.associatedPins[0].$name       = "PIN_SER";
+GPIO2.associatedPins[0].pin.$assign = "PA11";
+GPIO2.associatedPins[1].$name       = "PIN_OE";
+GPIO2.associatedPins[1].pin.$assign = "PA14";
+GPIO2.associatedPins[2].$name       = "PIN_RCLK";
+GPIO2.associatedPins[2].pin.$assign = "PA15";
+GPIO2.associatedPins[3].$name       = "PIN_SRCLK";
+GPIO2.associatedPins[3].pin.$assign = "PA16";
+GPIO2.associatedPins[4].$name       = "PIN_SRCLR";
+GPIO2.associatedPins[4].pin.$assign = "PA17";
+
+GPIO3.$name                         = "GPIO_BRIDGE_SEGMENT";
+GPIO3.associatedPins[0].$name       = "PIN_BRIDGE_SEGMENT";
+GPIO3.associatedPins[0].pin.$assign = "PA10";
 
 MCAN1.$name                = "MCAN0";
 MCAN1.wkupReqEnable        = true;
@@ -97,7 +119,6 @@ MCAN1.txPinConfig.$name    = "ti_driverlib_gpio_GPIOPinGeneric3";
 MCAN1.rxPinConfig.$name    = "ti_driverlib_gpio_GPIOPinGeneric4";
 
 SYSCTL.CANCLKSource          = "HFCLK";
-SYSCTL.useHFCLK_Manual       = true;
 SYSCTL.HFCLKSource           = "HFXT";
 SYSCTL.HFCLK_Freq            = 48000000;
 SYSCTL.HFCLKMonitor          = true;
@@ -113,9 +134,6 @@ ProjectConfig.migrationCondition = true;
  * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
  * re-solve from scratch.
  */
-pinFunction4.peripheral.$suggestSolution           = "SYSCTL";
-pinFunction4.peripheral.hfxInPin.$suggestSolution  = "PA5";
-pinFunction4.peripheral.hfxOutPin.$suggestSolution = "PA6";
-MCAN1.peripheral.$suggestSolution                  = "CANFD0";
-MCAN1.peripheral.rxPin.$suggestSolution            = "PA27";
-MCAN1.peripheral.txPin.$suggestSolution            = "PA26";
+MCAN1.peripheral.$suggestSolution       = "CANFD0";
+MCAN1.peripheral.rxPin.$suggestSolution = "PA27";
+MCAN1.peripheral.txPin.$suggestSolution = "PA26";

BIN
segment_main/Debug/.clangd/.cache/clangd/index/Com_rx_signal_sig.c.89964BD8AFAF6A1A.idx


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.03F5C99EB0148896.idx


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


BIN
segment_main/Debug/.clangd/.cache/clangd/index/global_header.h.73C91F9ABA8DE3E5.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/parseCanID_utils.c.090264D4E92533D3.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_hw.h.E6C43497DAD3C33B.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/vardef_sc.h.F23B3DA9849930BD.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/vardef_sig.h.64476CBC96D96B8A.idx


BIN
segment_main/Debug/.clangd/.cache/clangd/index/vardef_utils.h.9287DFF09926C832.idx


+ 5 - 0
segment_main/Debug/.clangd/compile_commands.json

@@ -23,5 +23,10 @@
       "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"
+   },
+   {
+      "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/07_utils/01_src/parseCanID_utils.c"
    }
 ]

+ 6 - 6
segment_main/Debug/01_sw_components/01_sc/01_src/main_sc.d

@@ -77,9 +77,9 @@
  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 \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers/vardef_hw.h \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers/vardef_sc.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
 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:
@@ -155,6 +155,6 @@ 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:
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers/vardef_hw.h:
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h:
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/01_sc/02_headers/vardef_sc.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:

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


+ 7 - 3
segment_main/Debug/01_sw_components/02_sig/01_src/Com_rx_signal_sig.d

@@ -2,7 +2,7 @@
 
 01_sw_components/02_sig/01_src/Com_rx_signal_sig.o: \
  ../01_sw_components/02_sig/01_src/Com_rx_signal_sig.c \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.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 \
@@ -77,8 +77,10 @@
  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
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h:
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h \
+ ../01_sw_components/07_utils/02_headers/vardef_utils.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h
+../01_sw_components/02_sig/02_headers/vardef_sig.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:
@@ -154,3 +156,5 @@ 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/07_utils/02_headers/vardef_utils.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:

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


+ 7 - 3
segment_main/Debug/01_sw_components/02_sig/01_src/Com_tx_signal_sig.d

@@ -2,7 +2,7 @@
 
 01_sw_components/02_sig/01_src/Com_tx_signal_sig.o: \
  ../01_sw_components/02_sig/01_src/Com_tx_signal_sig.c \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h \
+ ../01_sw_components/02_sig/02_headers/vardef_sig.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 \
@@ -77,8 +77,10 @@
  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
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/02_sig/02_headers/vardef_sig.h:
+ C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib/m0p/dl_systick.h \
+ ../01_sw_components/07_utils/02_headers/vardef_utils.h \
+ ../01_sw_components/03_hw/02_headers/vardef_hw.h
+../01_sw_components/02_sig/02_headers/vardef_sig.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:
@@ -154,3 +156,5 @@ 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/07_utils/02_headers/vardef_utils.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:

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


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

@@ -3,6 +3,9 @@
 01_sw_components/03_hw/01_src/Hw_Interface.o: \
  ../01_sw_components/03_hw/01_src/Hw_Interface.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 \
@@ -30,10 +33,7 @@
  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/DeviceFamily.h \
  C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.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/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 \
@@ -77,8 +77,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 \
- C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers/vardef_hw.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:
+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:
@@ -106,10 +109,7 @@ C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/hw_factoryregio
 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/DeviceFamily.h:
 C:/ti/mspm0_sdk_2_02_00_05/source/ti/devices/msp/peripherals/m0p/sysctl/hw_sysctl_mspm0g1x0x_g3x0x.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/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:
@@ -153,4 +153,4 @@ 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:
-C:/Users/User/workspace_ccstheia/segment_main/01_sw_components/03_hw/02_headers/vardef_hw.h:
+../01_sw_components/03_hw/02_headers/vardef_hw.h:

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


+ 156 - 0
segment_main/Debug/01_sw_components/07_utils/01_src/parseCanID_utils.d

@@ -0,0 +1,156 @@
+# FIXED
+
+01_sw_components/07_utils/01_src/parseCanID_utils.o: \
+ ../01_sw_components/07_utils/01_src/parseCanID_utils.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/07_utils/02_headers/vardef_utils.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/07_utils/02_headers/vardef_utils.h:

BIN
segment_main/Debug/01_sw_components/07_utils/01_src/parseCanID_utils.o


+ 15 - 0
segment_main/Debug/01_sw_components/07_utils/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/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"$@" "$<"
+	@echo 'Finished building: "$<"'
+	@echo ' '
+
+

+ 26 - 0
segment_main/Debug/01_sw_components/07_utils/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/07_utils/01_src/parseCanID_utils.c 
+
+C_DEPS += \
+./01_sw_components/07_utils/01_src/parseCanID_utils.d 
+
+OBJS += \
+./01_sw_components/07_utils/01_src/parseCanID_utils.o 
+
+OBJS__QUOTED += \
+"01_sw_components\07_utils\01_src\parseCanID_utils.o" 
+
+C_DEPS__QUOTED += \
+"01_sw_components\07_utils\01_src\parseCanID_utils.d" 
+
+C_SRCS__QUOTED += \
+"../01_sw_components/07_utils/01_src/parseCanID_utils.c" 
+
+

+ 1 - 0
segment_main/Debug/ccsObjs.opt

@@ -2,6 +2,7 @@
 "./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/07_utils/01_src/parseCanID_utils.o"
 "./ti_msp_dl_config.o"
 "./04_config/startup_mspm0g350x_ticlang.o"
 -l"./device_linker.cmd"

+ 5 - 2
segment_main/Debug/makefile

@@ -14,6 +14,7 @@ ORDERED_OBJS += \
 "./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/07_utils/01_src/parseCanID_utils.o" \
 "./ti_msp_dl_config.o" \
 "./04_config/startup_mspm0g350x_ticlang.o" \
 $(GEN_CMDS__FLAG) \
@@ -30,10 +31,12 @@ RMDIR := RMDIR /S/Q
 -include 01_sw_components/01_sc/01_src/subdir_vars.mk
 -include 01_sw_components/02_sig/01_src/subdir_vars.mk
 -include 01_sw_components/03_hw/01_src/subdir_vars.mk
+-include 01_sw_components/07_utils/01_src/subdir_vars.mk
 -include 04_config/subdir_vars.mk
 -include 01_sw_components/01_sc/01_src/subdir_rules.mk
 -include 01_sw_components/02_sig/01_src/subdir_rules.mk
 -include 01_sw_components/03_hw/01_src/subdir_rules.mk
+-include 01_sw_components/07_utils/01_src/subdir_rules.mk
 -include 04_config/subdir_rules.mk
 -include objects.mk
 
@@ -152,8 +155,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\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" "ti_msp_dl_config.o" "04_config\startup_mspm0g350x_ticlang.o" 
-	-$(RM) "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" "ti_msp_dl_config.d" "startup_mspm0g350x_ticlang.d" 
+	-$(RM) "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\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\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\07_utils\01_src\parseCanID_utils.d" "ti_msp_dl_config.d" "startup_mspm0g350x_ticlang.d" 
 	-@echo 'Finished clean'
 	-@echo ' '
 

+ 560 - 498
segment_main/Debug/segment_main.map

@@ -1,18 +1,18 @@
 ******************************************************************************
             TI ARM Clang Linker PC v4.0.0                      
 ******************************************************************************
->> Linked Thu Oct 10 14:28:40 2024
+>> Linked Fri Oct 11 15:50:10 2024
 
 OUTPUT FILE NAME:   <segment_main.out>
-ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 00001fcd
+ENTRY POINT SYMBOL: "_c_int00_noargs"  address: 0000290d
 
 
 MEMORY CONFIGURATION
 
          name            origin    length      used     unused   attr    fill
 ----------------------  --------  ---------  --------  --------  ----  --------
-  FLASH                 00000000   00020000  00002430  0001dbd0  R  X
-  SRAM                  20200000   00008000  0000021e  00007de2  RW X
+  FLASH                 00000000   00020000  00002d98  0001d268  R  X
+  SRAM                  20200000   00008000  00000220  00007de0  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    00002430   00002430    r-x
+00000000    00000000    00002d98   00002d98    r-x
   00000000    00000000    000000c0   000000c0    r-- .intvecs
-  000000c0    000000c0    000021e0   000021e0    r-x .text
-  000022a0    000022a0    00000160   00000160    r-- .rodata
-  00002400    00002400    00000030   00000030    r-- .cinit
-20200000    20200000    00000020   00000000    rw-
+  000000c0    000000c0    00002b20   00002b20    r-x .text
+  00002be0    00002be0    00000188   00000188    r-- .rodata
+  00002d68    00002d68    00000030   00000030    r-- .cinit
+20200000    20200000    00000022   00000000    rw-
   20200000    20200000    0000001a   00000000    rw- .bss
-  2020001c    2020001c    00000004   00000000    rw- .data
+  2020001c    2020001c    00000006   00000000    rw- .data
 20207e00    20207e00    00000200   00000000    rw-
   20207e00    20207e00    00000200   00000000    rw- .stack
 
@@ -41,123 +41,134 @@ section   page    origin      length       input sections
 .intvecs   0    00000000    000000c0     
                   00000000    000000c0     startup_mspm0g350x_ticlang.o (.intvecs)
 
-.text      0    000000c0    000021e0     
+.text      0    000000c0    00002b20     
                   000000c0    00000358     libc.a : e_log.c.obj (.text.log)
                   00000418    000002a8     driverlib.a : dl_mcan.o (.text.DL_MCAN_msgRAMConfig)
-                  000006c0    00000192     libclang_rt.builtins.a : adddf3.S.obj (.text.adddf3_subdf3)
-                  00000852    00000002     startup_mspm0g350x_ticlang.o (.text.Default_Handler)
-                  00000854    00000184     driverlib.a : dl_mcan.o (.text.DL_MCAN_init)
-                  000009d8    0000017e                 : dl_mcan.o (.text.DL_MCAN_readMsg)
-                  00000b56    00000002     --HOLE-- [fill = 0]
-                  00000b58    00000144                 : dl_mcan.o (.text.DL_MCAN_setBitTime)
-                  00000c9c    00000130                 : dl_mcan.o (.text.DL_MCAN_readMsgRam)
-                  00000dcc    0000012c                 : dl_mcan.o (.text.DL_MCAN_config)
-                  00000ef8    0000011c     ti_msp_dl_config.o (.text.SYSCFG_DL_MCAN0_init)
-                  00001014    0000010c     libclang_rt.builtins.a : divdf3.S.obj (.text.__divdf3)
-                  00001120    000000e4                            : muldf3.S.obj (.text.__muldf3)
-                  00001204    000000c4     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRxFIFOStatus)
-                  000012c8    000000b8     Hw_Interface.o (.text.AI_GetUITempCell_Hw)
-                  00001380    000000b8     driverlib.a : dl_mcan.o (.text.DL_MCAN_writeRxFIFOAck)
-                  00001438    000000ac     Hw_Interface.o (.text.AI_GetTempInC)
-                  000014e4    0000009a     libc.a : memcpy16.S.obj (.text:memcpy)
-                  0000157e    00000002     --HOLE-- [fill = 0]
-                  00001580    00000094     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRevisionId)
-                  00001614    0000008c     main_sc.o (.text.main)
-                  000016a0    00000084     Com_rx_signal_sig.o (.text.AI_Com_MCAN_Receive_Msg)
-                  00001724    0000007c     libc.a : copy_decompress_lzss.c.obj (.text:decompress:lzss)
-                  000017a0    00000074     driverlib.a : dl_mcan.o (.text.DL_MCAN_addStdMsgIDFilter)
-                  00001814    00000074     libclang_rt.builtins.a : comparedf2.c.obj (.text.__gedf2)
-                  00001888    00000008     libc.a : aeabi_portable.c.obj (.text.__aeabi_errno_addr)
-                  00001890    00000074     libclang_rt.builtins.a : truncdfsf2.S.obj (.text.__truncdfsf2)
-                  00001904    00000068     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntr)
-                  0000196c    00000068     libclang_rt.builtins.a : comparedf2.c.obj (.text.__ledf2)
-                  000019d4    00000064     driverlib.a : dl_mcan.o (.text.DL_MCAN_selectIntrLine)
-                  00001a38    00000064                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_setHFCLKSourceHFXTParams)
-                  00001a9c    00000062     libclang_rt.builtins.a : aeabi_dcmp.S.obj (.text.__aeabi_dcmp)
-                  00001afe    00000002     --HOLE-- [fill = 0]
-                  00001b00    00000058     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntrLine)
-                  00001b58    00000050     ti_msp_dl_config.o (.text.SYSCFG_DL_ADC12_0_init)
-                  00001ba8    0000004c     driverlib.a : dl_adc12.o (.text.DL_ADC12_setClockConfig)
-                  00001bf4    0000004c                 : dl_mcan.o (.text.DL_MCAN_setExtIDAndMask)
-                  00001c40    00000040     main_sc.o (.text.CANFD0_IRQHandler)
-                  00001c80    00000040     driverlib.a : dl_mcan.o (.text.DL_MCAN_isMemInitDone)
-                  00001cc0    00000040     ti_msp_dl_config.o (.text.SYSCFG_DL_initPower)
-                  00001d00    00000040     libclang_rt.builtins.a : extendsfdf2.S.obj (.text.__extendsfdf2)
-                  00001d40    0000003c     ti_msp_dl_config.o (.text.SYSCFG_DL_GPIO_init)
-                  00001d7c    0000003c     libclang_rt.builtins.a : floatsisf.S.obj (.text.__floatsisf)
-                  00001db8    0000003c     libc.a : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
-                  00001df4    0000003a     libclang_rt.builtins.a : muldsi3.S.obj (.text.__muldsi3)
-                  00001e2e    00000002     --HOLE-- [fill = 0]
-                  00001e30    00000038     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_init)
-                  00001e68    00000034     driverlib.a : dl_mcan.o (.text.DL_MCAN_clearIntrStatus)
-                  00001e9c    00000032                 : dl_mcan.o (.text.HW_WR_FIELD32_RAW)
-                  00001ece    00000002     --HOLE-- [fill = 0]
-                  00001ed0    0000002c                 : dl_mcan.o (.text.DL_MCAN_getDataSize)
-                  00001efc    0000002c                 : dl_mcan.o (.text.DL_MCAN_setClockConfig)
-                  00001f28    0000002c     libclang_rt.builtins.a : floatsidf.S.obj (.text.__floatsidf)
-                  00001f54    00000028     driverlib.a : dl_adc12.o (.text.DL_Common_updateReg)
-                  00001f7c    00000028                 : dl_mcan.o (.text.DL_Common_updateReg)
-                  00001fa4    00000028                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_Common_updateReg)
-                  00001fcc    00000028     libc.a : boot_cortex_m.c.obj (.text:_c_int00_noargs)
-                  00001ff4    00000024     Hw_Interface.o (.text.AI_GetIInA)
-                  00002018    00000024     driverlib.a : dl_mcan.o (.text.DL_MCAN_getMsgObjSize)
-                  0000203c    00000024     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_CLK_init)
-                  00002060    00000020     driverlib.a : dl_mcan.o (.text.DL_MCAN_setOpMode)
-                  00002080    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessLock)
-                  000020a0    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessUnlock)
-                  000020c0    00000020                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_setHFXTFrequencyRange)
-                  000020e0    00000020                 : dl_mcan.o (.text.HW_RD_FIELD32_RAW)
-                  00002100    0000001c     main_sc.o (.text.ADC0_IRQHandler)
-                  0000211c    0000001c     driverlib.a : dl_mcan.o (.text.DL_MCAN_getOpMode)
-                  00002138    0000001c     ti_msp_dl_config.o (.text.SYSCFG_DL_init)
-                  00002154    00000018     driverlib.a : dl_mcan.o (.text.DL_MCAN_getIntrStatus)
-                  0000216c    00000018                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_setHFXTStartupTime)
-                  00002184    00000016     libc.a : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
-                  0000219a    00000014     driverlib.a : dl_common.o (.text.DL_Common_delayCycles)
-                  000021ae    00000002     --HOLE-- [fill = 0]
-                  000021b0    00000014                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_disableHFCLKStartupMonitor)
-                  000021c4    00000014                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_enableHFCLKStartupMonitor)
-                  000021d8    00000012     libc.a : copy_decompress_none.c.obj (.text:decompress:none)
-                  000021ea    00000002     --HOLE-- [fill = 0]
-                  000021ec    00000010     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_disableHFXT)
-                  000021fc    00000010                 : dl_mcan.o (.text.HW_RD_REG32_RAW)
-                  0000220c    00000010                 : dl_mcan.o (.text.HW_WR_REG32_RAW)
-                  0000221c    0000000c                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_getClockStatus)
-                  00002228    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
-                  00002232    00000002     --HOLE-- [fill = 0]
-                  00002234    00000010     libclang_rt.builtins.a : muldf3.S.obj (.tramp.__aeabi_dmul.1)
-                  00002244    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
-                  0000224e    00000002     --HOLE-- [fill = 0]
-                  00002250    00000010     libclang_rt.builtins.a : adddf3.S.obj (.tramp.__aeabi_dsub.1)
-                  00002260    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
-                  0000226a    0000000a            : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
-                  00002274    00000008     libclang_rt.builtins.a : aeabi_memcpy.S.obj (.text.__aeabi_memcpy)
-                  0000227c    00000006     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
-                  00002282    00000006            : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
-                  00002288    00000004     startup_mspm0g350x_ticlang.o (.text.Reset_Handler)
-                  0000228c    00000004     libc.a : pre_init.c.obj (.text._system_pre_init)
-                  00002290    00000004            : exit.c.obj (.text:abort)
-                  00002294    0000000c     --HOLE-- [fill = 0]
-
-.cinit     0    00002400    00000030     
-                  00002400    0000000c     (__TI_handler_table)
-                  0000240c    00000008     (.cinit..bss.load) [load image, compression = zero_init]
-                  00002414    00000007     (.cinit..data.load) [load image, compression = lzss]
-                  0000241b    00000001     --HOLE-- [fill = 0]
-                  0000241c    00000010     (__TI_cinit_table)
-                  0000242c    00000004     --HOLE-- [fill = 0]
-
-.rodata    0    000022a0    00000160     
-                  000022a0    00000060     ti_msp_dl_config.o (.rodata.gMCAN0MsgRAMConfigParams)
-                  00002300    00000040     driverlib.a : dl_mcan.o (.rodata..L__const.DL_MCAN_getDataSize.dataSize)
-                  00002340    00000034     ti_msp_dl_config.o (.rodata.gMCAN0InitParams)
-                  00002374    0000002c     ti_msp_dl_config.o (.rodata.gMCAN0ConfigParams)
-                  000023a0    00000020     driverlib.a : dl_mcan.o (.rodata.cst32)
-                  000023c0    00000020     ti_msp_dl_config.o (.rodata.gMCAN0BitTimes)
-                  000023e0    00000010     ti_msp_dl_config.o (.rodata.gMCAN0StdFiltelem)
-                  000023f0    00000008     ti_msp_dl_config.o (.rodata.gADC12_0ClockConfig)
-                  000023f8    00000004     ti_msp_dl_config.o (.rodata.gMCAN0ClockConf)
-                  000023fc    00000004     --HOLE-- [fill = 0]
+                  000006c0    00000212     Com_rx_signal_sig.o (.text.AI_Com_RX_process_CAN_messages)
+                  000008d2    00000002     startup_mspm0g350x_ticlang.o (.text.Default_Handler)
+                  000008d4    00000192     libclang_rt.builtins.a : adddf3.S.obj (.text.adddf3_subdf3)
+                  00000a66    00000002                            : aeabi_div0.c.obj (.text.__aeabi_idiv0)
+                  00000a68    00000184     driverlib.a : dl_mcan.o (.text.DL_MCAN_init)
+                  00000bec    0000017e                 : dl_mcan.o (.text.DL_MCAN_readMsg)
+                  00000d6a    00000002     --HOLE-- [fill = 0]
+                  00000d6c    00000154     Com_tx_signal_sig.o (.text.AI_Com_TX_cell_status)
+                  00000ec0    00000144     driverlib.a : dl_mcan.o (.text.DL_MCAN_setBitTime)
+                  00001004    00000140                 : dl_mcan.o (.text.DL_MCAN_writeMsg)
+                  00001144    00000130                 : dl_mcan.o (.text.DL_MCAN_readMsgRam)
+                  00001274    0000012c                 : dl_mcan.o (.text.DL_MCAN_config)
+                  000013a0    0000011c     ti_msp_dl_config.o (.text.SYSCFG_DL_MCAN0_init)
+                  000014bc    0000010c     libclang_rt.builtins.a : divdf3.S.obj (.text.__divdf3)
+                  000015c8    000000ec     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_configSYSPLL)
+                  000016b4    000000e4     libclang_rt.builtins.a : muldf3.S.obj (.text.__muldf3)
+                  00001798    000000c4     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRxFIFOStatus)
+                  0000185c    000000c0     Com_tx_signal_sig.o (.text.AI_Com_TX_segment_status)
+                  0000191c    000000c0     Hw_Interface.o (.text.AI_GetUITempCell_Hw)
+                  000019dc    000000b8     Com_rx_signal_sig.o (.text.AI_Com_MCAN_Receive_Msg)
+                  00001a94    000000b8     driverlib.a : dl_mcan.o (.text.DL_MCAN_writeRxFIFOAck)
+                  00001b4c    000000b4                 : dl_mcan.o (.text.DL_MCAN_writeMsgRam)
+                  00001c00    000000ac     Hw_Interface.o (.text.AI_GetTempInC)
+                  00001cac    000000a8     Com_tx_signal_sig.o (.text.AI_Com_TX_discovery_response)
+                  00001d54    000000a0     main_sc.o (.text.main)
+                  00001df4    0000009a     libc.a : memcpy16.S.obj (.text:memcpy)
+                  00001e8e    00000002     --HOLE-- [fill = 0]
+                  00001e90    00000098     Hw_Interface.o (.text.AI_Enable_Disable_Cell_Hw)
+                  00001f28    00000094     driverlib.a : dl_mcan.o (.text.DL_MCAN_getRevisionId)
+                  00001fbc    0000007c     libc.a : copy_decompress_lzss.c.obj (.text:decompress:lzss)
+                  00002038    00000074     driverlib.a : dl_mcan.o (.text.DL_MCAN_addStdMsgIDFilter)
+                  000020ac    00000074     libclang_rt.builtins.a : comparedf2.c.obj (.text.__gedf2)
+                  00002120    00000074                            : truncdfsf2.S.obj (.text.__truncdfsf2)
+                  00002194    00000068     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntr)
+                  000021fc    00000068     libclang_rt.builtins.a : comparedf2.c.obj (.text.__ledf2)
+                  00002264    00000064     driverlib.a : dl_mcan.o (.text.DL_MCAN_selectIntrLine)
+                  000022c8    00000064     ti_msp_dl_config.o (.text.SYSCFG_DL_ADC12_0_init)
+                  0000232c    00000062     libclang_rt.builtins.a : aeabi_dcmp.S.obj (.text.__aeabi_dcmp)
+                  0000238e    00000062     libc.a : memset16.S.obj (.text:memset)
+                  000023f0    00000058     driverlib.a : dl_mcan.o (.text.DL_MCAN_enableIntrLine)
+                  00002448    00000054                 : dl_mcan.o (.text.DL_MCAN_TXBufAddReq)
+                  0000249c    0000004c                 : dl_adc12.o (.text.DL_ADC12_setClockConfig)
+                  000024e8    0000004c                 : dl_mcan.o (.text.DL_MCAN_setExtIDAndMask)
+                  00002534    00000044     ti_msp_dl_config.o (.text.SYSCFG_DL_GPIO_init)
+                  00002578    00000040     main_sc.o (.text.CANFD0_IRQHandler)
+                  000025b8    00000040     driverlib.a : dl_mcan.o (.text.DL_MCAN_isMemInitDone)
+                  000025f8    00000040     ti_msp_dl_config.o (.text.SYSCFG_DL_initPower)
+                  00002638    00000040     libclang_rt.builtins.a : aeabi_uidivmod.S.obj (.text.__aeabi_uidivmod)
+                  00002678    00000040                            : extendsfdf2.S.obj (.text.__extendsfdf2)
+                  000026b8    0000003c     ti_msp_dl_config.o (.text.SYSCFG_DL_SYSCTL_init)
+                  000026f4    0000003c     libclang_rt.builtins.a : floatsisf.S.obj (.text.__floatsisf)
+                  00002730    0000003c     libc.a : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit)
+                  0000276c    0000003a     libclang_rt.builtins.a : muldsi3.S.obj (.text.__muldsi3)
+                  000027a6    00000002     --HOLE-- [fill = 0]
+                  000027a8    00000034     driverlib.a : dl_mcan.o (.text.DL_MCAN_clearIntrStatus)
+                  000027dc    00000032                 : dl_mcan.o (.text.HW_WR_FIELD32_RAW)
+                  0000280e    00000002     --HOLE-- [fill = 0]
+                  00002810    0000002c                 : dl_mcan.o (.text.DL_MCAN_getDataSize)
+                  0000283c    0000002c                 : dl_mcan.o (.text.DL_MCAN_setClockConfig)
+                  00002868    0000002c     libclang_rt.builtins.a : floatsidf.S.obj (.text.__floatsidf)
+                  00002894    00000028     driverlib.a : dl_adc12.o (.text.DL_Common_updateReg)
+                  000028bc    00000028                 : dl_mcan.o (.text.DL_Common_updateReg)
+                  000028e4    00000028                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_Common_updateReg)
+                  0000290c    00000028     libc.a : boot_cortex_m.c.obj (.text:_c_int00_noargs)
+                  00002934    00000024     Hw_Interface.o (.text.AI_GetIInA)
+                  00002958    00000024     driverlib.a : dl_mcan.o (.text.DL_MCAN_getMsgObjSize)
+                  0000297c    00000020                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_configInstruction)
+                  0000299c    00000020                 : dl_mcan.o (.text.DL_MCAN_setOpMode)
+                  000029bc    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessLock)
+                  000029dc    00000020                 : dl_mcan.o (.text.DL_MCAN_writeProtectedRegAccessUnlock)
+                  000029fc    00000020                 : dl_mcan.o (.text.HW_RD_FIELD32_RAW)
+                  00002a1c    0000001c     main_sc.o (.text.ADC0_IRQHandler)
+                  00002a38    0000001c     driverlib.a : dl_mcan.o (.text.DL_MCAN_getOpMode)
+                  00002a54    00000018     parseCanID_utils.o (.text.AI_PackCanId_Utils)
+                  00002a6c    00000018     parseCanID_utils.o (.text.AI_Parse_Can_id_Utils)
+                  00002a84    00000018     driverlib.a : dl_mcan.o (.text.DL_MCAN_getIntrStatus)
+                  00002a9c    00000018     ti_msp_dl_config.o (.text.SYSCFG_DL_init)
+                  00002ab4    00000016     libc.a : copy_zero_init.c.obj (.text:decompress:ZI:__TI_zero_init_nomemset)
+                  00002aca    00000002     --HOLE-- [fill = 0]
+                  00002acc    00000014     Hw_Interface.o (.text.AI_Bridge_UnbridgeSegment_Hw)
+                  00002ae0    00000014     driverlib.a : dl_common.o (.text.DL_Common_delayCycles)
+                  00002af4    00000014                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_disableSYSPLL)
+                  00002b08    00000012     libc.a : copy_decompress_none.c.obj (.text:decompress:none)
+                  00002b1a    00000002     --HOLE-- [fill = 0]
+                  00002b1c    00000010     driverlib.a : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_CORE_getInstructionConfig)
+                  00002b2c    00000010                 : dl_mcan.o (.text.HW_RD_REG32_RAW)
+                  00002b3c    00000010                 : dl_mcan.o (.text.HW_WR_REG32_RAW)
+                  00002b4c    0000000c                 : dl_sysctl_mspm0g1x0x_g3x0x.o (.text.DL_SYSCTL_getClockStatus)
+                  00002b58    0000000c     libclang_rt.builtins.a : aeabi_memset.S.obj (.text.__aeabi_memclr)
+                  00002b64    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
+                  00002b6e    00000002     --HOLE-- [fill = 0]
+                  00002b70    00000010     libclang_rt.builtins.a : muldf3.S.obj (.tramp.__aeabi_dmul.1)
+                  00002b80    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
+                  00002b8a    00000002     --HOLE-- [fill = 0]
+                  00002b8c    00000010     libclang_rt.builtins.a : adddf3.S.obj (.tramp.__aeabi_dsub.1)
+                  00002b9c    0000000a     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
+                  00002ba6    0000000a            : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
+                  00002bb0    00000008            : aeabi_portable.c.obj (.text.__aeabi_errno_addr)
+                  00002bb8    00000008     libclang_rt.builtins.a : aeabi_memcpy.S.obj (.text.__aeabi_memcpy)
+                  00002bc0    00000006     libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
+                  00002bc6    00000006            : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
+                  00002bcc    00000004     startup_mspm0g350x_ticlang.o (.text.Reset_Handler)
+                  00002bd0    00000004     libc.a : pre_init.c.obj (.text._system_pre_init)
+                  00002bd4    00000004            : exit.c.obj (.text:abort)
+                  00002bd8    00000008     --HOLE-- [fill = 0]
+
+.cinit     0    00002d68    00000030     
+                  00002d68    0000000c     (__TI_handler_table)
+                  00002d74    00000009     (.cinit..data.load) [load image, compression = lzss]
+                  00002d7d    00000003     --HOLE-- [fill = 0]
+                  00002d80    00000008     (.cinit..bss.load) [load image, compression = zero_init]
+                  00002d88    00000010     (__TI_cinit_table)
+
+.rodata    0    00002be0    00000188     
+                  00002be0    00000060     ti_msp_dl_config.o (.rodata.gMCAN0MsgRAMConfigParams)
+                  00002c40    00000040     driverlib.a : dl_mcan.o (.rodata..L__const.DL_MCAN_getDataSize.dataSize)
+                  00002c80    00000034     ti_msp_dl_config.o (.rodata.gMCAN0InitParams)
+                  00002cb4    0000002c     ti_msp_dl_config.o (.rodata.gMCAN0ConfigParams)
+                  00002ce0    00000028     ti_msp_dl_config.o (.rodata.gSYSPLLConfig)
+                  00002d08    00000020     driverlib.a : dl_mcan.o (.rodata.cst32)
+                  00002d28    00000020     ti_msp_dl_config.o (.rodata.gMCAN0BitTimes)
+                  00002d48    00000010     ti_msp_dl_config.o (.rodata.gMCAN0StdFiltelem)
+                  00002d58    00000008     ti_msp_dl_config.o (.rodata.gADC12_0ClockConfig)
+                  00002d60    00000004     ti_msp_dl_config.o (.rodata.gMCAN0ClockConf)
+                  00002d64    00000004     --HOLE-- [fill = 0]
 
 .init_array 
 *          0    00000000    00000000     UNINITIALIZED
@@ -165,17 +176,18 @@ section   page    origin      length       input sections
 .binit     0    00000000    00000000     
 
 .bss       0    20200000    0000001a     UNINITIALIZED
-                  20200000    00000004     main_sc.o (.bss.gInterruptLine1Status)
-                  20200004    00000004     (.common:adc_current)
-                  20200008    00000004     (.common:adc_temperatur)
-                  2020000c    00000004     (.common:current)
+                  20200000    00000004     (.common:adc_current)
+                  20200004    00000004     (.common:adc_temperatur)
+                  20200008    00000004     (.common:current)
+                  2020000c    00000004     (.common:gInterruptLine1Status)
                   20200010    00000004     (.common:temperatur)
                   20200014    00000004     (.common:voltage)
-                  20200018    00000001     main_sc.o (.bss.gCheckADC)
-                  20200019    00000001     main_sc.o (.bss.gServiceInt)
+                  20200018    00000001     (.common:gCheckADC)
+                  20200019    00000001     (.common:gServiceInt)
 
-.data      0    2020001c    00000004     UNINITIALIZED
+.data      0    2020001c    00000006     UNINITIALIZED
                   2020001c    00000004     libc.a : aeabi_portable.c.obj (.data.__aeabi_errno)
+                  20200020    00000002     Com_tx_signal_sig.o (.data.gid_hash)
 
 .stack     0    20207e00    00000200     UNINITIALIZED
                   20207e00    00000004     libc.a : boot_cortex_m.c.obj (.stack)
@@ -189,86 +201,96 @@ __llvm_prf_bits
 
 MODULE SUMMARY
 
-       Module                         code   ro data   rw data
-       ------                         ----   -------   -------
+       Module                         code    ro data   rw data
+       ------                         ----    -------   -------
     .\
-       ti_msp_dl_config.o             608    252       0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         608    252       0      
-                                                              
+       ti_msp_dl_config.o             600     292       0      
+    +--+------------------------------+-------+---------+---------+
+       Total:                         600     292       0      
+                                                               
     .\01_sw_components\01_sc\01_src\
-       main_sc.o                      232    0         26     
-    +--+------------------------------+------+---------+---------+
-       Total:                         232    0         26     
-                                                              
+       main_sc.o                      252     0         26     
+    +--+------------------------------+-------+---------+---------+
+       Total:                         252     0         26     
+                                                               
     .\01_sw_components\02_sig\01_src\
-       Com_rx_signal_sig.o            132    0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         132    0         0      
-                                                              
+       Com_rx_signal_sig.o            714     0         0      
+       Com_tx_signal_sig.o            700     0         2      
+    +--+------------------------------+-------+---------+---------+
+       Total:                         1414    0         2      
+                                                               
     .\01_sw_components\03_hw\01_src\
-       Hw_Interface.o                 392    0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         392    0         0      
-                                                              
+       Hw_Interface.o                 572     0         0      
+    +--+------------------------------+-------+---------+---------+
+       Total:                         572     0         0      
+                                                               
+    .\01_sw_components\07_utils\01_src\
+       parseCanID_utils.o             48      0         0      
+    +--+------------------------------+-------+---------+---------+
+       Total:                         48      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                      3932   96        0      
-       dl_sysctl_mspm0g1x0x_g3x0x.o   264    0         0      
-       dl_adc12.o                     116    0         0      
-       dl_common.o                    20     0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         4332   96        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
-       e_log.c.obj                    908    0         0      
-       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      
-       aeabi_portable.c.obj           8      0         4      
-       exit.c.obj                     4      0         0      
-       pre_init.c.obj                 4      0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         1342   0         4      
-                                                              
+       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
-       adddf3.S.obj                   418    0         0      
-       divdf3.S.obj                   268    0         0      
-       muldf3.S.obj                   244    0         0      
-       comparedf2.c.obj               220    0         0      
-       truncdfsf2.S.obj               116    0         0      
-       aeabi_dcmp.S.obj               98     0         0      
-       extendsfdf2.S.obj              64     0         0      
-       floatsisf.S.obj                60     0         0      
-       muldsi3.S.obj                  58     0         0      
-       floatsidf.S.obj                44     0         0      
-       aeabi_memcpy.S.obj             8      0         0      
-    +--+------------------------------+------+---------+---------+
-       Total:                         1598   0         0      
-                                                              
-       Stack:                         0      0         512    
-       Linker Generated:              0      43        0      
-    +--+------------------------------+------+---------+---------+
-       Grand Total:                   8642   583       542    
+       adddf3.S.obj                   418     0         0      
+       divdf3.S.obj                   268     0         0      
+       muldf3.S.obj                   244     0         0      
+       comparedf2.c.obj               220     0         0      
+       truncdfsf2.S.obj               116     0         0      
+       aeabi_dcmp.S.obj               98      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      
+       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:                         1676    0         0      
+                                                               
+       Stack:                         0       0         512    
+       Linker Generated:              0       45        0      
+    +--+------------------------------+-------+---------+---------+
+       Grand Total:                   11016   625       544    
 
 
 LINKER GENERATED COPY TABLES
 
-__TI_cinit_table @ 0000241c records: 2, size/record: 8, table size: 16
-	.bss: load addr=0000240c, load size=00000008 bytes, run addr=20200000, run size=0000001a bytes, compression=zero_init
-	.data: load addr=00002414, load size=00000007 bytes, run addr=2020001c, run size=00000004 bytes, compression=lzss
+__TI_cinit_table @ 00002d88 records: 2, size/record: 8, table size: 16
+	.data: load addr=00002d74, load size=00000009 bytes, run addr=2020001c, run size=00000006 bytes, compression=lzss
+	.bss: load addr=00002d80, load size=00000008 bytes, run addr=20200000, run size=0000001a bytes, compression=zero_init
 
 
 LINKER GENERATED HANDLER TABLE
 
-__TI_handler_table @ 00002400 records: 3, size/record: 4, table size: 12
+__TI_handler_table @ 00002d68 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
@@ -280,13 +302,13 @@ callee name               trampoline name
    callee addr  tramp addr   call addr  call info
 --------------  -----------  ---------  ----------------
 __aeabi_dmul              $Tramp$TT$L$PI$$__aeabi_dmul
-   00001121     00002234     00002230   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
-                             00002268          : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
-                             00002272          : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
-                             00002280          : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
-                             00002286          : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
+   000016b5     00002b70     00002b6c   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_0)
+                             00002ba4          : e_log.c.obj (.text.OUTLINED_FUNCTION_4)
+                             00002bae          : e_log.c.obj (.text.OUTLINED_FUNCTION_5)
+                             00002bc4          : e_log.c.obj (.text.OUTLINED_FUNCTION_1)
+                             00002bca          : e_log.c.obj (.text.OUTLINED_FUNCTION_2)
 __aeabi_dsub              $Tramp$TT$L$PI$$__aeabi_dsub
-   000006c1     00002250     0000224c   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
+   000008d5     00002b8c     00002b88   libc.a : e_log.c.obj (.text.OUTLINED_FUNCTION_3)
 
 [2 trampolines]
 [6 trampoline calls]
@@ -294,303 +316,343 @@ __aeabi_dsub              $Tramp$TT$L$PI$$__aeabi_dsub
 
 GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name 
 
-address   name                              
--------   ----                              
-00002101  ADC0_IRQHandler                   
-00000853  ADC1_IRQHandler                   
-00000853  AES_IRQHandler                    
-000016a1  AI_Com_MCAN_Receive_Msg           
-00001ff5  AI_GetIInA                        
-00001439  AI_GetTempInC                     
-000012c9  AI_GetUITempCell_Hw               
-00002290  C$$EXIT                           
-00001c41  CANFD0_IRQHandler                 
-00000853  DAC0_IRQHandler                   
-00001ba9  DL_ADC12_setClockConfig           
-0000219b  DL_Common_delayCycles             
-000017a1  DL_MCAN_addStdMsgIDFilter         
-00001e69  DL_MCAN_clearIntrStatus           
-00000dcd  DL_MCAN_config                    
-00001905  DL_MCAN_enableIntr                
-00001b01  DL_MCAN_enableIntrLine            
-00002155  DL_MCAN_getIntrStatus             
-0000211d  DL_MCAN_getOpMode                 
-00001581  DL_MCAN_getRevisionId             
-00001205  DL_MCAN_getRxFIFOStatus           
-00000855  DL_MCAN_init                      
-00001c81  DL_MCAN_isMemInitDone             
-00000419  DL_MCAN_msgRAMConfig              
-00000c9d  DL_MCAN_readMsgRam                
-000019d5  DL_MCAN_selectIntrLine            
-00000b59  DL_MCAN_setBitTime                
-00001efd  DL_MCAN_setClockConfig            
-00001bf5  DL_MCAN_setExtIDAndMask           
-00002061  DL_MCAN_setOpMode                 
-00001381  DL_MCAN_writeRxFIFOAck            
-00001a39  DL_SYSCTL_setHFCLKSourceHFXTParams
-00000853  DMA_IRQHandler                    
-00000853  Default_Handler                   
-00000853  GROUP0_IRQHandler                 
-00000853  GROUP1_IRQHandler                 
-00000853  HardFault_Handler                 
-00000853  I2C0_IRQHandler                   
-00000853  I2C1_IRQHandler                   
-00000853  NMI_Handler                       
-00000853  PendSV_Handler                    
-00000853  RTC_IRQHandler                    
-00002289  Reset_Handler                     
-00000853  SPI0_IRQHandler                   
-00000853  SPI1_IRQHandler                   
-00000853  SVC_Handler                       
-00001b59  SYSCFG_DL_ADC12_0_init            
-00001d41  SYSCFG_DL_GPIO_init               
-00000ef9  SYSCFG_DL_MCAN0_init              
-0000203d  SYSCFG_DL_SYSCTL_CLK_init         
-00001e31  SYSCFG_DL_SYSCTL_init             
-00002139  SYSCFG_DL_init                    
-00001cc1  SYSCFG_DL_initPower               
-00000853  SysTick_Handler                   
-00000853  TIMA0_IRQHandler                  
-00000853  TIMA1_IRQHandler                  
-00000853  TIMG0_IRQHandler                  
-00000853  TIMG12_IRQHandler                 
-00000853  TIMG6_IRQHandler                  
-00000853  TIMG7_IRQHandler                  
-00000853  TIMG8_IRQHandler                  
-00000853  UART0_IRQHandler                  
-00000853  UART1_IRQHandler                  
-00000853  UART2_IRQHandler                  
-00000853  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           
-0000241c  __TI_CINIT_Base                   
-0000242c  __TI_CINIT_Limit                  
-0000242c  __TI_CINIT_Warm                   
-00002400  __TI_Handler_Table_Base           
-0000240c  __TI_Handler_Table_Limit          
-00001db9  __TI_auto_init_nobinit_nopinit    
-00001725  __TI_decompress_lzss              
-000021d9  __TI_decompress_none              
-ffffffff  __TI_pprof_out_hndl               
-ffffffff  __TI_prof_data_size               
-ffffffff  __TI_prof_data_start              
-00000000  __TI_static_base__                
-00002185  __TI_zero_init_nomemset           
-000006cb  __adddf3                          
-00001891  __aeabi_d2f                       
-000006cb  __aeabi_dadd                      
-00001a9d  __aeabi_dcmpeq                    
-00001ad9  __aeabi_dcmpge                    
-00001aed  __aeabi_dcmpgt                    
-00001ac5  __aeabi_dcmple                    
-00001ab1  __aeabi_dcmplt                    
-00001015  __aeabi_ddiv                      
-00001121  __aeabi_dmul                      
-000006c1  __aeabi_dsub                      
-2020001c  __aeabi_errno                     
-00001889  __aeabi_errno_addr                
-00001d01  __aeabi_f2d                       
-00001f29  __aeabi_i2d                       
-00001d7d  __aeabi_i2f                       
-00002275  __aeabi_memcpy                    
-00002275  __aeabi_memcpy4                   
-00002275  __aeabi_memcpy8                   
-ffffffff  __binit__                         
-0000196d  __cmpdf2                          
-00001015  __divdf3                          
-0000196d  __eqdf2                           
-00001d01  __extendsfdf2                     
-00001f29  __floatsidf                       
-00001d7d  __floatsisf                       
-00001815  __gedf2                           
-00001815  __gtdf2                           
-0000196d  __ledf2                           
-0000196d  __ltdf2                           
-UNDEFED   __mpu_init                        
-00001121  __muldf3                          
-00001df5  __muldsi3                         
-0000196d  __nedf2                           
-20207e00  __stack                           
-20200000  __start___llvm_prf_bits           
-20200000  __start___llvm_prf_cnts           
-20200000  __stop___llvm_prf_bits            
-20200000  __stop___llvm_prf_cnts            
-000006c1  __subdf3                          
-00001891  __truncdfsf2                      
-00001fcd  _c_int00_noargs                   
-UNDEFED   _system_post_cinit                
-0000228d  _system_pre_init                  
-00002291  abort                             
-20200004  adc_current                       
-20200008  adc_temperatur                    
-ffffffff  binit                             
-2020000c  current                           
-00000000  interruptVectors                  
-000000c1  log                               
-000000c1  logl                              
-00001615  main                              
-000014e5  memcpy                            
-20200010  temperatur                        
-20200014  voltage                           
+address   name                          
+-------   ----                          
+00002a1d  ADC0_IRQHandler               
+000008d3  ADC1_IRQHandler               
+000008d3  AES_IRQHandler                
+00002acd  AI_Bridge_UnbridgeSegment_Hw  
+000019dd  AI_Com_MCAN_Receive_Msg       
+000006c1  AI_Com_RX_process_CAN_messages
+00000d6d  AI_Com_TX_cell_status         
+00001cad  AI_Com_TX_discovery_response  
+0000185d  AI_Com_TX_segment_status      
+00001e91  AI_Enable_Disable_Cell_Hw     
+00002935  AI_GetIInA                    
+00001c01  AI_GetTempInC                 
+0000191d  AI_GetUITempCell_Hw           
+00002a55  AI_PackCanId_Utils            
+00002a6d  AI_Parse_Can_id_Utils         
+00002bd4  C$$EXIT                       
+00002579  CANFD0_IRQHandler             
+000008d3  DAC0_IRQHandler               
+0000249d  DL_ADC12_setClockConfig       
+00002ae1  DL_Common_delayCycles         
+00002449  DL_MCAN_TXBufAddReq           
+00002039  DL_MCAN_addStdMsgIDFilter     
+000027a9  DL_MCAN_clearIntrStatus       
+00001275  DL_MCAN_config                
+00002195  DL_MCAN_enableIntr            
+000023f1  DL_MCAN_enableIntrLine        
+00002a85  DL_MCAN_getIntrStatus         
+00002a39  DL_MCAN_getOpMode             
+00001f29  DL_MCAN_getRevisionId         
+00001799  DL_MCAN_getRxFIFOStatus       
+00000a69  DL_MCAN_init                  
+000025b9  DL_MCAN_isMemInitDone         
+00000419  DL_MCAN_msgRAMConfig          
+00001145  DL_MCAN_readMsgRam            
+00002265  DL_MCAN_selectIntrLine        
+00000ec1  DL_MCAN_setBitTime            
+0000283d  DL_MCAN_setClockConfig        
+000024e9  DL_MCAN_setExtIDAndMask       
+0000299d  DL_MCAN_setOpMode             
+00001b4d  DL_MCAN_writeMsgRam           
+00001a95  DL_MCAN_writeRxFIFOAck        
+000015c9  DL_SYSCTL_configSYSPLL        
+000008d3  DMA_IRQHandler                
+000008d3  Default_Handler               
+000008d3  GROUP0_IRQHandler             
+000008d3  GROUP1_IRQHandler             
+000008d3  HardFault_Handler             
+000008d3  I2C0_IRQHandler               
+000008d3  I2C1_IRQHandler               
+000008d3  NMI_Handler                   
+000008d3  PendSV_Handler                
+000008d3  RTC_IRQHandler                
+00002bcd  Reset_Handler                 
+000008d3  SPI0_IRQHandler               
+000008d3  SPI1_IRQHandler               
+000008d3  SVC_Handler                   
+000022c9  SYSCFG_DL_ADC12_0_init        
+00002535  SYSCFG_DL_GPIO_init           
+000013a1  SYSCFG_DL_MCAN0_init          
+000026b9  SYSCFG_DL_SYSCTL_init         
+00002a9d  SYSCFG_DL_init                
+000025f9  SYSCFG_DL_initPower           
+000008d3  SysTick_Handler               
+000008d3  TIMA0_IRQHandler              
+000008d3  TIMA1_IRQHandler              
+000008d3  TIMG0_IRQHandler              
+000008d3  TIMG12_IRQHandler             
+000008d3  TIMG6_IRQHandler              
+000008d3  TIMG7_IRQHandler              
+000008d3  TIMG8_IRQHandler              
+000008d3  UART0_IRQHandler              
+000008d3  UART1_IRQHandler              
+000008d3  UART2_IRQHandler              
+000008d3  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       
+00002d88  __TI_CINIT_Base               
+00002d98  __TI_CINIT_Limit              
+00002d98  __TI_CINIT_Warm               
+00002d68  __TI_Handler_Table_Base       
+00002d74  __TI_Handler_Table_Limit      
+00002731  __TI_auto_init_nobinit_nopinit
+00001fbd  __TI_decompress_lzss          
+00002b09  __TI_decompress_none          
+ffffffff  __TI_pprof_out_hndl           
+ffffffff  __TI_prof_data_size           
+ffffffff  __TI_prof_data_start          
+00000000  __TI_static_base__            
+00002ab5  __TI_zero_init_nomemset       
+000008df  __adddf3                      
+00002121  __aeabi_d2f                   
+000008df  __aeabi_dadd                  
+0000232d  __aeabi_dcmpeq                
+00002369  __aeabi_dcmpge                
+0000237d  __aeabi_dcmpgt                
+00002355  __aeabi_dcmple                
+00002341  __aeabi_dcmplt                
+000014bd  __aeabi_ddiv                  
+000016b5  __aeabi_dmul                  
+000008d5  __aeabi_dsub                  
+2020001c  __aeabi_errno                 
+00002bb1  __aeabi_errno_addr            
+00002679  __aeabi_f2d                   
+00002869  __aeabi_i2d                   
+000026f5  __aeabi_i2f                   
+00000a67  __aeabi_idiv0                 
+00002b59  __aeabi_memclr                
+00002b59  __aeabi_memclr4               
+00002b59  __aeabi_memclr8               
+00002bb9  __aeabi_memcpy                
+00002bb9  __aeabi_memcpy4               
+00002bb9  __aeabi_memcpy8               
+00002639  __aeabi_uidiv                 
+00002639  __aeabi_uidivmod              
+ffffffff  __binit__                     
+000021fd  __cmpdf2                      
+000014bd  __divdf3                      
+000021fd  __eqdf2                       
+00002679  __extendsfdf2                 
+00002869  __floatsidf                   
+000026f5  __floatsisf                   
+000020ad  __gedf2                       
+000020ad  __gtdf2                       
+000021fd  __ledf2                       
+000021fd  __ltdf2                       
+UNDEFED   __mpu_init                    
+000016b5  __muldf3                      
+0000276d  __muldsi3                     
+000021fd  __nedf2                       
+20207e00  __stack                       
+20200000  __start___llvm_prf_bits       
+20200000  __start___llvm_prf_cnts       
+20200000  __stop___llvm_prf_bits        
+20200000  __stop___llvm_prf_cnts        
+000008d5  __subdf3                      
+00002121  __truncdfsf2                  
+0000290d  _c_int00_noargs               
+UNDEFED   _system_post_cinit            
+00002bd1  _system_pre_init              
+00002bd5  abort                         
+20200000  adc_current                   
+20200004  adc_temperatur                
+ffffffff  binit                         
+20200008  current                       
+20200018  gCheckADC                     
+2020000c  gInterruptLine1Status         
+20200019  gServiceInt                   
+20200020  gid_hash                      
+00000000  interruptVectors              
+000000c1  log                           
+000000c1  logl                          
+00001d55  main                          
+00001df5  memcpy                        
+0000238f  memset                        
+20200010  temperatur                    
+20200014  voltage                       
 
 
 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  log                               
-000000c1  logl                              
-00000200  __STACK_SIZE                      
-00000419  DL_MCAN_msgRAMConfig              
-000006c1  __aeabi_dsub                      
-000006c1  __subdf3                          
-000006cb  __adddf3                          
-000006cb  __aeabi_dadd                      
-00000853  ADC1_IRQHandler                   
-00000853  AES_IRQHandler                    
-00000853  DAC0_IRQHandler                   
-00000853  DMA_IRQHandler                    
-00000853  Default_Handler                   
-00000853  GROUP0_IRQHandler                 
-00000853  GROUP1_IRQHandler                 
-00000853  HardFault_Handler                 
-00000853  I2C0_IRQHandler                   
-00000853  I2C1_IRQHandler                   
-00000853  NMI_Handler                       
-00000853  PendSV_Handler                    
-00000853  RTC_IRQHandler                    
-00000853  SPI0_IRQHandler                   
-00000853  SPI1_IRQHandler                   
-00000853  SVC_Handler                       
-00000853  SysTick_Handler                   
-00000853  TIMA0_IRQHandler                  
-00000853  TIMA1_IRQHandler                  
-00000853  TIMG0_IRQHandler                  
-00000853  TIMG12_IRQHandler                 
-00000853  TIMG6_IRQHandler                  
-00000853  TIMG7_IRQHandler                  
-00000853  TIMG8_IRQHandler                  
-00000853  UART0_IRQHandler                  
-00000853  UART1_IRQHandler                  
-00000853  UART2_IRQHandler                  
-00000853  UART3_IRQHandler                  
-00000855  DL_MCAN_init                      
-00000b59  DL_MCAN_setBitTime                
-00000c9d  DL_MCAN_readMsgRam                
-00000dcd  DL_MCAN_config                    
-00000ef9  SYSCFG_DL_MCAN0_init              
-00001015  __aeabi_ddiv                      
-00001015  __divdf3                          
-00001121  __aeabi_dmul                      
-00001121  __muldf3                          
-00001205  DL_MCAN_getRxFIFOStatus           
-000012c9  AI_GetUITempCell_Hw               
-00001381  DL_MCAN_writeRxFIFOAck            
-00001439  AI_GetTempInC                     
-000014e5  memcpy                            
-00001581  DL_MCAN_getRevisionId             
-00001615  main                              
-000016a1  AI_Com_MCAN_Receive_Msg           
-00001725  __TI_decompress_lzss              
-000017a1  DL_MCAN_addStdMsgIDFilter         
-00001815  __gedf2                           
-00001815  __gtdf2                           
-00001889  __aeabi_errno_addr                
-00001891  __aeabi_d2f                       
-00001891  __truncdfsf2                      
-00001905  DL_MCAN_enableIntr                
-0000196d  __cmpdf2                          
-0000196d  __eqdf2                           
-0000196d  __ledf2                           
-0000196d  __ltdf2                           
-0000196d  __nedf2                           
-000019d5  DL_MCAN_selectIntrLine            
-00001a39  DL_SYSCTL_setHFCLKSourceHFXTParams
-00001a9d  __aeabi_dcmpeq                    
-00001ab1  __aeabi_dcmplt                    
-00001ac5  __aeabi_dcmple                    
-00001ad9  __aeabi_dcmpge                    
-00001aed  __aeabi_dcmpgt                    
-00001b01  DL_MCAN_enableIntrLine            
-00001b59  SYSCFG_DL_ADC12_0_init            
-00001ba9  DL_ADC12_setClockConfig           
-00001bf5  DL_MCAN_setExtIDAndMask           
-00001c41  CANFD0_IRQHandler                 
-00001c81  DL_MCAN_isMemInitDone             
-00001cc1  SYSCFG_DL_initPower               
-00001d01  __aeabi_f2d                       
-00001d01  __extendsfdf2                     
-00001d41  SYSCFG_DL_GPIO_init               
-00001d7d  __aeabi_i2f                       
-00001d7d  __floatsisf                       
-00001db9  __TI_auto_init_nobinit_nopinit    
-00001df5  __muldsi3                         
-00001e31  SYSCFG_DL_SYSCTL_init             
-00001e69  DL_MCAN_clearIntrStatus           
-00001efd  DL_MCAN_setClockConfig            
-00001f29  __aeabi_i2d                       
-00001f29  __floatsidf                       
-00001fcd  _c_int00_noargs                   
-00001ff5  AI_GetIInA                        
-0000203d  SYSCFG_DL_SYSCTL_CLK_init         
-00002061  DL_MCAN_setOpMode                 
-00002101  ADC0_IRQHandler                   
-0000211d  DL_MCAN_getOpMode                 
-00002139  SYSCFG_DL_init                    
-00002155  DL_MCAN_getIntrStatus             
-00002185  __TI_zero_init_nomemset           
-0000219b  DL_Common_delayCycles             
-000021d9  __TI_decompress_none              
-00002275  __aeabi_memcpy                    
-00002275  __aeabi_memcpy4                   
-00002275  __aeabi_memcpy8                   
-00002289  Reset_Handler                     
-0000228d  _system_pre_init                  
-00002290  C$$EXIT                           
-00002291  abort                             
-00002400  __TI_Handler_Table_Base           
-0000240c  __TI_Handler_Table_Limit          
-0000241c  __TI_CINIT_Base                   
-0000242c  __TI_CINIT_Limit                  
-0000242c  __TI_CINIT_Warm                   
-20200000  __start___llvm_prf_bits           
-20200000  __start___llvm_prf_cnts           
-20200000  __stop___llvm_prf_bits            
-20200000  __stop___llvm_prf_cnts            
-20200004  adc_current                       
-20200008  adc_temperatur                    
-2020000c  current                           
-20200010  temperatur                        
-20200014  voltage                           
-2020001c  __aeabi_errno                     
-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                
-
-[145 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
+000008d3  ADC1_IRQHandler               
+000008d3  AES_IRQHandler                
+000008d3  DAC0_IRQHandler               
+000008d3  DMA_IRQHandler                
+000008d3  Default_Handler               
+000008d3  GROUP0_IRQHandler             
+000008d3  GROUP1_IRQHandler             
+000008d3  HardFault_Handler             
+000008d3  I2C0_IRQHandler               
+000008d3  I2C1_IRQHandler               
+000008d3  NMI_Handler                   
+000008d3  PendSV_Handler                
+000008d3  RTC_IRQHandler                
+000008d3  SPI0_IRQHandler               
+000008d3  SPI1_IRQHandler               
+000008d3  SVC_Handler                   
+000008d3  SysTick_Handler               
+000008d3  TIMA0_IRQHandler              
+000008d3  TIMA1_IRQHandler              
+000008d3  TIMG0_IRQHandler              
+000008d3  TIMG12_IRQHandler             
+000008d3  TIMG6_IRQHandler              
+000008d3  TIMG7_IRQHandler              
+000008d3  TIMG8_IRQHandler              
+000008d3  UART0_IRQHandler              
+000008d3  UART1_IRQHandler              
+000008d3  UART2_IRQHandler              
+000008d3  UART3_IRQHandler              
+000008d5  __aeabi_dsub                  
+000008d5  __subdf3                      
+000008df  __adddf3                      
+000008df  __aeabi_dadd                  
+00000a67  __aeabi_idiv0                 
+00000a69  DL_MCAN_init                  
+00000d6d  AI_Com_TX_cell_status         
+00000ec1  DL_MCAN_setBitTime            
+00001145  DL_MCAN_readMsgRam            
+00001275  DL_MCAN_config                
+000013a1  SYSCFG_DL_MCAN0_init          
+000014bd  __aeabi_ddiv                  
+000014bd  __divdf3                      
+000015c9  DL_SYSCTL_configSYSPLL        
+000016b5  __aeabi_dmul                  
+000016b5  __muldf3                      
+00001799  DL_MCAN_getRxFIFOStatus       
+0000185d  AI_Com_TX_segment_status      
+0000191d  AI_GetUITempCell_Hw           
+000019dd  AI_Com_MCAN_Receive_Msg       
+00001a95  DL_MCAN_writeRxFIFOAck        
+00001b4d  DL_MCAN_writeMsgRam           
+00001c01  AI_GetTempInC                 
+00001cad  AI_Com_TX_discovery_response  
+00001d55  main                          
+00001df5  memcpy                        
+00001e91  AI_Enable_Disable_Cell_Hw     
+00001f29  DL_MCAN_getRevisionId         
+00001fbd  __TI_decompress_lzss          
+00002039  DL_MCAN_addStdMsgIDFilter     
+000020ad  __gedf2                       
+000020ad  __gtdf2                       
+00002121  __aeabi_d2f                   
+00002121  __truncdfsf2                  
+00002195  DL_MCAN_enableIntr            
+000021fd  __cmpdf2                      
+000021fd  __eqdf2                       
+000021fd  __ledf2                       
+000021fd  __ltdf2                       
+000021fd  __nedf2                       
+00002265  DL_MCAN_selectIntrLine        
+000022c9  SYSCFG_DL_ADC12_0_init        
+0000232d  __aeabi_dcmpeq                
+00002341  __aeabi_dcmplt                
+00002355  __aeabi_dcmple                
+00002369  __aeabi_dcmpge                
+0000237d  __aeabi_dcmpgt                
+0000238f  memset                        
+000023f1  DL_MCAN_enableIntrLine        
+00002449  DL_MCAN_TXBufAddReq           
+0000249d  DL_ADC12_setClockConfig       
+000024e9  DL_MCAN_setExtIDAndMask       
+00002535  SYSCFG_DL_GPIO_init           
+00002579  CANFD0_IRQHandler             
+000025b9  DL_MCAN_isMemInitDone         
+000025f9  SYSCFG_DL_initPower           
+00002639  __aeabi_uidiv                 
+00002639  __aeabi_uidivmod              
+00002679  __aeabi_f2d                   
+00002679  __extendsfdf2                 
+000026b9  SYSCFG_DL_SYSCTL_init         
+000026f5  __aeabi_i2f                   
+000026f5  __floatsisf                   
+00002731  __TI_auto_init_nobinit_nopinit
+0000276d  __muldsi3                     
+000027a9  DL_MCAN_clearIntrStatus       
+0000283d  DL_MCAN_setClockConfig        
+00002869  __aeabi_i2d                   
+00002869  __floatsidf                   
+0000290d  _c_int00_noargs               
+00002935  AI_GetIInA                    
+0000299d  DL_MCAN_setOpMode             
+00002a1d  ADC0_IRQHandler               
+00002a39  DL_MCAN_getOpMode             
+00002a55  AI_PackCanId_Utils            
+00002a6d  AI_Parse_Can_id_Utils         
+00002a85  DL_MCAN_getIntrStatus         
+00002a9d  SYSCFG_DL_init                
+00002ab5  __TI_zero_init_nomemset       
+00002acd  AI_Bridge_UnbridgeSegment_Hw  
+00002ae1  DL_Common_delayCycles         
+00002b09  __TI_decompress_none          
+00002b59  __aeabi_memclr                
+00002b59  __aeabi_memclr4               
+00002b59  __aeabi_memclr8               
+00002bb1  __aeabi_errno_addr            
+00002bb9  __aeabi_memcpy                
+00002bb9  __aeabi_memcpy4               
+00002bb9  __aeabi_memcpy8               
+00002bcd  Reset_Handler                 
+00002bd1  _system_pre_init              
+00002bd4  C$$EXIT                       
+00002bd5  abort                         
+00002d68  __TI_Handler_Table_Base       
+00002d74  __TI_Handler_Table_Limit      
+00002d88  __TI_CINIT_Base               
+00002d98  __TI_CINIT_Limit              
+00002d98  __TI_CINIT_Warm               
+20200000  __start___llvm_prf_bits       
+20200000  __start___llvm_prf_cnts       
+20200000  __stop___llvm_prf_bits        
+20200000  __stop___llvm_prf_cnts        
+20200000  adc_current                   
+20200004  adc_temperatur                
+20200008  current                       
+2020000c  gInterruptLine1Status         
+20200010  temperatur                    
+20200014  voltage                       
+20200018  gCheckADC                     
+20200019  gServiceInt                   
+2020001c  __aeabi_errno                 
+20200020  gid_hash                      
+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            
+
+[165 symbols]

BIN
segment_main/Debug/segment_main.out


File diff suppressed because it is too large
+ 622 - 487
segment_main/Debug/segment_main_linkInfo.xml


+ 1 - 0
segment_main/Debug/sources.mk

@@ -127,5 +127,6 @@ SUBDIRS := \
 01_sw_components/01_sc/01_src \
 01_sw_components/02_sig/01_src \
 01_sw_components/03_hw/01_src \
+01_sw_components/07_utils/01_src \
 04_config \
 

+ 47 - 25
segment_main/Debug/ti_msp_dl_config.c

@@ -52,7 +52,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_init(void)
     SYSCFG_DL_SYSCTL_init();
     SYSCFG_DL_ADC12_0_init();
     SYSCFG_DL_MCAN0_init();
-    SYSCFG_DL_SYSCTL_CLK_init();
 }
 
 
@@ -74,8 +73,7 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
 SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
 {
 
-    DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXIN_IOMUX);
-    DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXOUT_IOMUX);
+    DL_GPIO_initDigitalOutput(GPIO_BRIDGE_SEGMENT_PIN_BRIDGE_SEGMENT_IOMUX);
 
     DL_GPIO_initDigitalOutput(GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_IOMUX);
 
@@ -87,16 +85,38 @@ SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
 
     DL_GPIO_initDigitalOutput(GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_IOMUX);
 
-    DL_GPIO_clearPins(GPIO_MULTIPLEXER_PIN_CONFIG_PORT, GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_PIN |
+    DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SER_IOMUX);
+
+    DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_OE_IOMUX);
+
+    DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_RCLK_IOMUX);
+
+    DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLK_IOMUX);
+
+    DL_GPIO_initDigitalOutput(GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_IOMUX);
+
+    DL_GPIO_clearPins(GPIOA, GPIO_BRIDGE_SEGMENT_PIN_BRIDGE_SEGMENT_PIN |
+		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S1_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S2_PIN |
-		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN);
-    DL_GPIO_enableOutput(GPIO_MULTIPLEXER_PIN_CONFIG_PORT, GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_PIN |
+		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SER_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_OE_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_RCLK_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLK_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_PIN);
+    DL_GPIO_enableOutput(GPIOA, GPIO_BRIDGE_SEGMENT_PIN_BRIDGE_SEGMENT_PIN |
+		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S1_PIN |
 		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S2_PIN |
-		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN);
+		GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SER_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_OE_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_RCLK_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLK_PIN |
+		GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_PIN);
 
     DL_GPIO_initPeripheralOutputFunction(
         GPIO_MCAN0_IOMUX_CAN_TX, GPIO_MCAN0_IOMUX_CAN_TX_FUNC);
@@ -106,7 +126,19 @@ SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
 }
 
 
-
+static const DL_SYSCTL_SYSPLLConfig gSYSPLLConfig = {
+    .inputFreq              = DL_SYSCTL_SYSPLL_INPUT_FREQ_32_48_MHZ,
+	.rDivClk2x              = 1,
+	.rDivClk1               = 0,
+	.rDivClk0               = 0,
+	.enableCLK2x            = DL_SYSCTL_SYSPLL_CLK2X_DISABLE,
+	.enableCLK1             = DL_SYSCTL_SYSPLL_CLK1_ENABLE,
+	.enableCLK0             = DL_SYSCTL_SYSPLL_CLK0_DISABLE,
+	.sysPLLMCLK             = DL_SYSCTL_SYSPLL_MCLK_CLK0,
+	.sysPLLRef              = DL_SYSCTL_SYSPLL_REF_SYSOSC,
+	.qDiv                   = 4,
+	.pDiv                   = DL_SYSCTL_SYSPLL_PDIV_1
+};
 SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
 {
 
@@ -118,22 +150,9 @@ SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
 	/* Set default configuration */
 	DL_SYSCTL_disableHFXT();
 	DL_SYSCTL_disableSYSPLL();
-    DL_SYSCTL_setHFCLKSourceHFXTParams(DL_SYSCTL_HFXT_RANGE_32_48_MHZ,10, true);
+    DL_SYSCTL_configSYSPLL((DL_SYSCTL_SYSPLLConfig *) &gSYSPLLConfig);
 
 }
-SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_CLK_init(void) {
-    while ((DL_SYSCTL_getClockStatus() & (DL_SYSCTL_CLK_STATUS_HFCLK_GOOD
-		 | DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))
-	       != (DL_SYSCTL_CLK_STATUS_HFCLK_GOOD
-		 | DL_SYSCTL_CLK_STATUS_LFOSC_GOOD))
-	{
-		/* Ensure that clocks are in default POR configuration before initialization.
-		* Additionally once LFXT is enabled, the internal LFOSC is disabled, and cannot
-		* be re-enabled other than by executing a BOOTRST. */
-		;
-	}
-}
-
 
 
 /* ADC12_0 Initialization */
@@ -159,11 +178,14 @@ SYSCONFIG_WEAK void SYSCFG_DL_ADC12_0_init(void)
     DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_2,
         DL_ADC12_INPUT_CHAN_7, DL_ADC12_REFERENCE_VOLTAGE_VDDA, DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0, DL_ADC12_AVERAGING_MODE_DISABLED,
         DL_ADC12_BURN_OUT_SOURCE_DISABLED, DL_ADC12_TRIGGER_MODE_AUTO_NEXT, DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
+    /* Enable ADC12 interrupt */
+    DL_ADC12_clearInterruptStatus(ADC12_0_INST,(DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED));
+    DL_ADC12_enableInterrupt(ADC12_0_INST,(DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED));
     DL_ADC12_enableConversions(ADC12_0_INST);
 }
 
 static const DL_MCAN_ClockConfig gMCAN0ClockConf = {
-    .clockSel = DL_MCAN_FCLK_HFCLK,
+    .clockSel = DL_MCAN_FCLK_SYSPLLCLK1,
     .divider  = DL_MCAN_FCLK_DIV_1,
 };
 
@@ -261,7 +283,7 @@ static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem = {
 
 static const DL_MCAN_BitTimingParams   gMCAN0BitTimes = {
     /* Arbitration Baud Rate Pre-scaler. */
-    .nomRatePrescalar   = 1,
+    .nomRatePrescalar   = 3,
     /* Arbitration Time segment before sample point. */
     .nomTimeSeg1        = 33,
     /* Arbitration Time segment after sample point. */
@@ -269,7 +291,7 @@ static const DL_MCAN_BitTimingParams   gMCAN0BitTimes = {
     /* Arbitration (Re)Synchronization Jump Width Range. */
     .nomSynchJumpWidth  = 4,
     /* Data Baud Rate Pre-scaler. */
-    .dataRatePrescalar  = 1,
+    .dataRatePrescalar  = 3,
     /* Data Time segment before sample point. */
     .dataTimeSeg1       = 16,
     /* Data Time segment after sample point. */

+ 31 - 12
segment_main/Debug/ti_msp_dl_config.h

@@ -73,11 +73,7 @@ extern "C" {
 #define POWER_STARTUP_DELAY                                                (16)
 
 
-#define GPIO_HFXT_PORT                                                     GPIOA
-#define GPIO_HFXIN_PIN                                             DL_GPIO_PIN_5
-#define GPIO_HFXIN_IOMUX                                         (IOMUX_PINCM10)
-#define GPIO_HFXOUT_PIN                                            DL_GPIO_PIN_6
-#define GPIO_HFXOUT_IOMUX                                        (IOMUX_PINCM11)
+
 #define CPUCLK_FREQ                                                     32000000
 
 
@@ -105,24 +101,48 @@ extern "C" {
 
 
 
+/* Port definition for Pin Group GPIO_BRIDGE_SEGMENT */
+#define GPIO_BRIDGE_SEGMENT_PORT                                         (GPIOA)
+
+/* Defines for PIN_BRIDGE_SEGMENT: GPIOA.10 with pinCMx 21 on package pin 15 */
+#define GPIO_BRIDGE_SEGMENT_PIN_BRIDGE_SEGMENT_PIN              (DL_GPIO_PIN_10)
+#define GPIO_BRIDGE_SEGMENT_PIN_BRIDGE_SEGMENT_IOMUX             (IOMUX_PINCM21)
 /* Port definition for Pin Group GPIO_MULTIPLEXER_PIN_CONFIG */
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PORT                                 (GPIOA)
 
 /* Defines for PIN_E1: GPIOA.9 with pinCMx 20 on package pin 14 */
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_PIN                   (DL_GPIO_PIN_9)
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E1_IOMUX                 (IOMUX_PINCM20)
-/* Defines for PIN_S0: GPIOA.23 with pinCMx 53 on package pin 26 */
-#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_PIN                  (DL_GPIO_PIN_23)
-#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_IOMUX                 (IOMUX_PINCM53)
+/* Defines for PIN_S0: GPIOA.5 with pinCMx 10 on package pin 12 */
+#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_PIN                   (DL_GPIO_PIN_5)
+#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S0_IOMUX                 (IOMUX_PINCM10)
 /* Defines for PIN_S1: GPIOA.4 with pinCMx 9 on package pin 11 */
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S1_PIN                   (DL_GPIO_PIN_4)
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S1_IOMUX                  (IOMUX_PINCM9)
 /* Defines for PIN_S2: GPIOA.3 with pinCMx 8 on package pin 10 */
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S2_PIN                   (DL_GPIO_PIN_3)
 #define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_S2_IOMUX                  (IOMUX_PINCM8)
-/* Defines for PIN_E0: GPIOA.11 with pinCMx 22 on package pin 16 */
-#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN                  (DL_GPIO_PIN_11)
-#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_IOMUX                 (IOMUX_PINCM22)
+/* Defines for PIN_E0: GPIOA.6 with pinCMx 11 on package pin 13 */
+#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_PIN                   (DL_GPIO_PIN_6)
+#define GPIO_MULTIPLEXER_PIN_CONFIG_PIN_E0_IOMUX                 (IOMUX_PINCM11)
+/* Port definition for Pin Group GPIO_SHIFT_REGISTER_PIN_CONFIG */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PORT                                 (GPIOA)
+
+/* Defines for PIN_SER: GPIOA.11 with pinCMx 22 on package pin 16 */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SER_PIN              (DL_GPIO_PIN_11)
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SER_IOMUX             (IOMUX_PINCM22)
+/* Defines for PIN_OE: GPIOA.14 with pinCMx 36 on package pin 17 */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_OE_PIN               (DL_GPIO_PIN_14)
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_OE_IOMUX              (IOMUX_PINCM36)
+/* Defines for PIN_RCLK: GPIOA.15 with pinCMx 37 on package pin 18 */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_RCLK_PIN             (DL_GPIO_PIN_15)
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_RCLK_IOMUX            (IOMUX_PINCM37)
+/* Defines for PIN_SRCLK: GPIOA.16 with pinCMx 38 on package pin 19 */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLK_PIN            (DL_GPIO_PIN_16)
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLK_IOMUX           (IOMUX_PINCM38)
+/* Defines for PIN_SRCLR: GPIOA.17 with pinCMx 39 on package pin 20 */
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_PIN            (DL_GPIO_PIN_17)
+#define GPIO_SHIFT_REGISTER_PIN_CONFIG_PIN_SRCLR_IOMUX           (IOMUX_PINCM39)
 
 
 
@@ -182,7 +202,6 @@ void SYSCFG_DL_init(void);
 void SYSCFG_DL_initPower(void);
 void SYSCFG_DL_GPIO_init(void);
 void SYSCFG_DL_SYSCTL_init(void);
-void SYSCFG_DL_SYSCTL_CLK_init(void);
 void SYSCFG_DL_ADC12_0_init(void);
 
 

BIN
segment_main/Debug/ti_msp_dl_config.o


Some files were not shown because too many files changed in this diff