This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: J721E cannot use more CAN in mcu3_0

Part Number: TDA4VM

Hi team,

Here's an issue from the customer may need your help:

Debug CAN driver in mcu3_0 where both the MCU domain CAN and the main domain CAN are used: 

In the initialization list: 

When debugging with canoe, only the two can in front of the initialization list can be sent. Only the first two can can be used, regardless of the initialization sequence, whether MCU_can or main_can. It also indicates that there is no problem with the hardware configuration of CAN. But this error will still occur. (On mcu3_0, the MCU_can interrupt is already mapped)

The customer would like to know the possible cause of this issue. Thanks.

Best Regards,

Cherry

  • Hello,

    May i know which SDK version is being used ?

    Regards

    Tarun Mukesh

  • In the first screen shot 

    CanConfigSet_CanController_3 is used,
    and 
    In the second screen shot 
    CanConfigSet_CanController_3 is in undefined region.
     
    Could you explain this change ?
    Regards
    Tarun Mukesh
     
  • ti-processor-sdk-rtos-j721e-evm-08_01_00_13
  • ti-processor-sdk-rtos-j721e-evm-08_01_00_13
  • sorry, CanConfigSet_CanController_3 is defined.
    And ,i don't understand, why "CanConfigSet_CanController_3 is used" ? 

  • Hello ,

    I exactly couldn't understand the problem here.

    please look into mcal_drv/mcal/examples/Can/soc/j721e/mcu2_1/CanApp_Startup.c example where main CAN controllers are used and it can explain you in detail.

    Regards

    Tarun Mukesh

  • CanConfigSet_CanController_3 is defined , 【Replace CanConfigSet_CanController_4 with CanConfigSet_CanController_3】

  • I had read " mcal_drv/mcal/examples/Can/soc/j721e/mcu2_1/CanApp_Startup.c",but it does'not work.
    I want to say:
    I had define four controller (mcu_can0, mcu_can1, main_can0, main_can2), but only the first two controller of the initialization list are available.

  • If the initialization order is: (mcu_can0, mcu_can1, main_can0, main_can2), Only 【mcu_can0, mcu_can1】is available。
    If the initialization order is: (mcu_can0, main_can2, main_can0, mcu_can1), Only 【mcu_can0, main_can2】is available。

    Only the first two controller of the initialization list are available

  • Hello,

    I had read " mcal_drv/mcal/examples/Can/soc/j721e/mcu2_1/CanApp_Startup.c",but it does'not work.

    It doesn't work means has customer tried the same on MCU2_1 and didn't work ? or adapted to MCU3_0 and didn't work.

    Is customer using TI EVM or custom board ? I need more details on tests they are performing , are they doing internal loop back test or transmit/receive ?

     

    Can you please share me the configuration files used for MCU3_0 ? and the error log when customer using the latter 2 controllers.

    Regards

    Tarun Mukesh

  • Hi Tarun,

    Thanks for your support and eason zhou is the customer I mentioned above, you could discuss the issue with him directly. Please let me know if any questions.

    Thanks and regards,

    Cherry

  • I had read " mcal_drv/mcal/examples/Can/soc/j721e/mcu2_1/CanApp_Startup.c", but when I dapted to MCU3_0 and didn't work.

    I use custom board. I do internal receive.

    This is <Can_cfg.h>

    /*
    *
    * Copyright (c) 2019-2020 Texas Instruments Incorporated
    *
    * All rights reserved not granted herein.
    *
    * Limited License.
    *
    * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
    * license under copyrights and patents it now or hereafter owns or controls to make,
    * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
    * terms herein.  With respect to the foregoing patent license, such license is granted
    * solely to the extent that any such patent is necessary to Utilize the software alone.
    * The patent license shall not apply to any combinations which include this software,
    * other than combinations with devices manufactured by or for TI ("TI Devices").
    * No hardware patent is licensed hereunder.
    *
    * Redistributions must preserve existing copyright notices and reproduce this license
    * (including the above copyright notice and the disclaimer and (if applicable) source
    * code license limitations below) in the documentation and/or other materials provided
    * with the distribution
    *
    * Redistribution and use in binary form, without modification, are permitted provided
    * that the following conditions are met:
    *
    * *       No reverse engineering, decompilation, or disassembly of this software is
    * permitted with respect to any software provided in binary form.
    *
    * *       any redistribution and use are licensed by TI for use only with TI Devices.
    *
    * *       Nothing shall obligate TI to provide you with source code for the software
    * licensed and provided to you in object code.
    *
    * If software source code is provided to you, modification and redistribution of the
    * source code are permitted provided that the following conditions are met:
    *
    * *       any redistribution and use of the source code, including any resulting derivative
    * works, are licensed by TI for use only with TI Devices.
    *
    * *       any redistribution and use of any object code compiled from the source code
    * and any resulting derivative works, are licensed by TI for use only with TI Devices.
    *
    * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
    *
    * may be used to endorse or promote products derived from this software without
    * specific prior written permission.
    *
    * DISCLAIMER.
    *
    * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
    * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
    * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    * OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */
     /***************************************************************************
      Project: Can1
      Date   : 2019-06-26 16:49:00
      This file is generated by EB Tresos
      Do not modify this file, otherwise the software may behave in unexpected way.
    
     *****************************************************************************/
    
    /**
     *  \file     Can_Cfg.h
     *
     *  \brief    This file contains generated pre compile configuration file for
     *            CAN MCAL driver
     *
     */
    
    /**
     *
     ******************************************************************************
     * \defgroup MCAL_CAN_CFG Can Configuration
     *
     * This files defines CAN MCAL configuration structures
     *  @{
     ******************************************************************************/
    
    #ifndef CAN_CFG_H_
    #define CAN_CFG_H_
    
    #include "Dem.h"
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    
    /**
    *  \brief CAN Build Variant.
    *   Build variants.(i.e Pre Compile,Post Build)
    */
    
    #define CAN_VARIANT_PRE_COMPILE (STD_OFF)
    
    /**
     *  \name Can Driver Configuration SW Version Info
     *
     *  Pre-compile switches for enabling/disabling CAN MCAL APIs
     *  @{
     */
    #define CAN_VERSION_INFO_API                (STD_ON)
    /*!< Enable/Disable Can_GetVersionInfo() */
    #define CAN_DEV_ERROR_DETECT                (STD_ON)
    /*!< Enable/Disable DEV error detection */
    #define CAN_LOOPBACK_ENABLE                 (STD_OFF)
    /*!< Enable/Disable Can_TestLoopBackModeEnable() */
    #define CAN_REGISTER_READBACK_API           (STD_ON)
    /*!< Enable/Disable Can_ConfigRegReadBack() */
    #define CAN_WAKEUP_FUNCTIONALITY_API        (STD_OFF)
    /*!< Enable/Disable Can_CheckWakeup() */
    #define CAN_MULTIPLEXED_TRANSMISSION_ENABLE (STD_ON)
    /*!< Enable/Disable Multiplexed Transmission */
    
    /**
     *  \brief Pre Compile config macro name.
     */
    
    
    #define CAN_INIT_CONFIG_PC       CanConfigSet
    
    
    
    
    /*Requirements: MCAL-2311 */
    #define CAN_TX_POLLING      (STD_OFF)
    /*!< Enable/Disable Can_MainFunction_Write */
    #define CAN_RX_POLLING      (STD_OFF)
    /*!< Enable/Disable Can_MainFunction_Read */
    #define CAN_BUSOFF_POLLING  (STD_OFF)
    /*!< Enable/Disable Can_MainFunction_BusOff */
    #define CAN_WAKEUP_POLLING  (STD_OFF)
    /*!< Enable/Disable Can_MainFunction_Wakeup */
    #define CAN_RX_USE_FIFO_ONLY (STD_OFF)
    /*!< Use only RX FIFO/QUEUE */
    
    /* @} */
    
    #define CAN_NUM_CONTROLLER          (4U)
    /*!< Number of controllers defined*/
    
    #define CAN_NUM_MAILBOXES           (10U)
    /*!< Number of mailboxes defined*/
    
    #define CAN_MAX_CONTROLLER          (16U)
    /*!< Max number of controller instances per SOC */
    
    #define CAN_MAX_MAILBOXES   		(64U)
    /*!< Max number of mailboxes per controller */
    
    #define CAN_ISR_TYPE                (CAN_ISR_CAT1)
    /*!< OSEK Category 1 ISR Type */
    
    #define CLK_CAN_FD_FREQ             (80U)
    /*!< Clock source frequency CAN FD */
    
    /**
     *  \name Can Controller Id names
     *
     *  Defines for symbolic names for the CanControllerIds
     *  @{
     */
    #define CanConf_CanController_CanController_0   (0U)
    #define CanConf_CanController_CanController_1   (1U)
    #define CanConf_CanController_CanController_2   (2U)
    #define CanConf_CanController_CanController_3   (3U)
    #define CanConf_CanController_CanController_4   (4U)
    #if 0
    #define CanConf_CanController_CanController_5   (5U)
    #define CanConf_CanController_CanController_6   (6U)
    #define CanConf_CanController_CanController_7   (7U)
    #endif
    /* @} */
    
    /* @} */
    
    /*!< MCAN0 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCU_MCAN0
    #define CAN_CONTROLLER_MCU_MCAN1
    #define CAN_CONTROLLER_MCAN0
    
    /*!< MCAN4 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN2
    
    #if 0
    /*!< MCAN9 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN9
    
    /*!< MCAN11 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN11
    #endif
    /*!< MCAN2 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN4
    
    #if 0
    /*!< MCAN5 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN5
    
    /*!< MCAN6 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN6
    
    /*!< MCAN7 CONTROLLER INSTANCE */
    #define CAN_CONTROLLER_MCAN7
    #endif
    /**
     *  \name Can controler mem base
     * 
    */
    /*!< MCU MCAN0 MEM BASE*/
    #define  MCU_CAN0_MEM_BASE      0x40500000U
    
    /*!< MCU MCAN1 MEM BASE*/
    #define  MCU_CAN1_MEM_BASE      0x40540000U
    
    /*!< MAIN MCAN0 MEM BASE*/
    #define  MAIN_CAN0_MEM_BASE     0x2708000U
    
    /*!< MAIN MCAN1 MEM BASE*/
    #define  MAIN_CAN1_MEM_BASE     0x2718000U
    
    /*!< MAIN MCAN2 MEM BASE*/
    #define  MAIN_CAN2_MEM_BASE     0x2728000U
    
    /*!< MAIN MCAN3 MEM BASE*/
    #define  MAIN_CAN3_MEM_BASE     0x2738000U
    
    /*!< MAIN MCAN4 MEM BASE*/
    #define  MAIN_CAN4_MEM_BASE     0x2748000U
    
    /*!< MAIN MCAN5 MEM BASE*/
    #define  MAIN_CAN5_MEM_BASE     0x2758000U
    
    /*!< MAIN MCAN6 MEM BASE*/
    #define  MAIN_CAN6_MEM_BASE     0x2768000U
    
    /*!< MAIN MCAN7 MEM BASE*/
    #define  MAIN_CAN7_MEM_BASE     0x2778000U
    
    /*!< MAIN MCAN8 MEM BASE*/
    #define  MAIN_CAN8_MEM_BASE     0x2788000U
    
    /*!< MAIN MCAN9 MEM BASE*/
    #define  MAIN_CAN9_MEM_BASE     0x2798000U
    
    /*!< MAIN MCAN10 MEM BASE*/
    #define  MAIN_CAN10_MEM_BASE    0x27A8000
    
    /*!< MAIN MCAN11 MEM BASE*/
    #define  MAIN_CAN11_MEM_BASE    0x27B8000
    
    /*!< MAIN MCAN12 MEM BASE*/
    #define  MAIN_CAN12_MEM_BASE    0x27C8000
    
    /*!< MAIN MCAN13 MEM BASE*/
    #define  MAIN_CAN13_MEM_BASE    0x27D8000
    
    /**
     *  \name Can HW Object names
     *
     *  Defines for symbolic names for the CanHardwareObjectIds
     *  @{
     */
    
    #define CanConf_CanHardwareObject_CanHardwareObject_0   (0U)
    #define CAN_HTRH_0         (CanConf_CanHardwareObject_CanHardwareObject_0)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_1   (1U)
    #define CAN_HTRH_1         (CanConf_CanHardwareObject_CanHardwareObject_1)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_2   (2U)
    #define CAN_HTRH_2         (CanConf_CanHardwareObject_CanHardwareObject_2)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_3   (3U)
    #define CAN_HTRH_3         (CanConf_CanHardwareObject_CanHardwareObject_3)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_4   (4U)
    #define CAN_HTRH_4         (CanConf_CanHardwareObject_CanHardwareObject_4)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_5   (5U)
    #define CAN_HTRH_5         (CanConf_CanHardwareObject_CanHardwareObject_5)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_6   (6U)
    #define CAN_HTRH_6         (CanConf_CanHardwareObject_CanHardwareObject_6)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_7   (7U)
    #define CAN_HTRH_7         (CanConf_CanHardwareObject_CanHardwareObject_7)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_8   (8U)
    #define CAN_HTRH_8         (CanConf_CanHardwareObject_CanHardwareObject_8)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_9   (9U)
    #define CAN_HTRH_9         (CanConf_CanHardwareObject_CanHardwareObject_9)
    
    #define CanConf_CanHardwareObject_CanHardwareObject_10   (10U)
    #define CAN_HTRH_10         (CanConf_CanHardwareObject_CanHardwareObject_10)
    /* @} */
    
    /* @} */
    
    /** \brief Counter ID for counter used to count wait ticks */
    #define CAN_OS_COUNTER_ID               ((CounterType)OsCounter_0)
    
    /**
    *  \brief CAN timeout - used in CAN IFCMD busy wait and Start/Stop busy wait.
    *   Specifies the maximum time for blocking function until a timeout is detected.
    *   Unit is milli seconds.
    */
    #define CAN_TIMEOUT_DURATION            (10000U)
    
    /**
     *  \name CAN DEM Error codes to report
     *
     *  Pre-compile switches for enabling/disabling DEM events
     *  @{
     */
    #define DemConf_DemEventParameter_CAN_DEM_NO_EVENT (0xFFFFU)
    #define CAN_DEM_NO_EVENT DemConf_DemEventParameter_CAN_DEM_NO_EVENT
    
    #ifndef CAN_E_HARDWARE_ERROR
    /** \brief Hardware failed */
    #define CAN_E_HARDWARE_ERROR          (DemConf_DemEventParameter_CAN_E_HARDWARE_ERROR)
    #endif
    
    /* @} */
    
    /* ========================================================================== */
    /*                         Structures and Enums                               */
    /* ========================================================================== */
    
    /** \brief CAN Configuration struct declaration */
    extern const struct Can_ConfigType_s CanConfigSet;
    
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_0;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_1;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_2;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_3;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_4;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_5;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_6;
    
    /** \brief CAN Controller Configuration Pre Compile struct declaration */
    extern const struct Can_ControllerStruct_PC CanConfigSet_PC_CanController_7;
    
    
    /** \brief CAN Controller Pre Compile Configuration List */
    extern const struct Can_ControllerStruct_PC
        *CanConfigSet_CanController_List_PC[CAN_NUM_CONTROLLER];
    
    /** \brief CAN Mailbox Pre Compile Configuration List */
    extern const struct Can_MailboxStruct_PC
        *CanConfigSet_CanHardwareObject_List_PC[CAN_NUM_MAILBOXES];
    
    
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif /*CAN_CFG_H__*/
    
    /* @} */
    /**********************************************************************************************************************
     *  END OF FILE: Can_Cfg.h
     *********************************************************************************************************************/

    This is <Can_cfg.c>

    /*
    *
    * Copyright (c) 2019-2020 Texas Instruments Incorporated
    *
    * All rights reserved not granted herein.
    *
    * Limited License.
    *
    * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
    * license under copyrights and patents it now or hereafter owns or controls to make,
    * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
    * terms herein.  With respect to the foregoing patent license, such license is granted
    * solely to the extent that any such patent is necessary to Utilize the software alone.
    * The patent license shall not apply to any combinations which include this software,
    * other than combinations with devices manufactured by or for TI ("TI Devices").
    * No hardware patent is licensed hereunder.
    *
    * Redistributions must preserve existing copyright notices and reproduce this license
    * (including the above copyright notice and the disclaimer and (if applicable) source
    * code license limitations below) in the documentation and/or other materials provided
    * with the distribution
    *
    * Redistribution and use in binary form, without modification, are permitted provided
    * that the following conditions are met:
    *
    * *       No reverse engineering, decompilation, or disassembly of this software is
    * permitted with respect to any software provided in binary form.
    *
    * *       any redistribution and use are licensed by TI for use only with TI Devices.
    *
    * *       Nothing shall obligate TI to provide you with source code for the software
    * licensed and provided to you in object code.
    *
    * If software source code is provided to you, modification and redistribution of the
    * source code are permitted provided that the following conditions are met:
    *
    * *       any redistribution and use of the source code, including any resulting derivative
    * works, are licensed by TI for use only with TI Devices.
    *
    * *       any redistribution and use of any object code compiled from the source code
    * and any resulting derivative works, are licensed by TI for use only with TI Devices.
    *
    * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
    *
    * may be used to endorse or promote products derived from this software without
    * specific prior written permission.
    *
    * DISCLAIMER.
    *
    * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
    * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
    * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
    * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
    * OF THE POSSIBILITY OF SUCH DAMAGE.
    *
    */
     /***************************************************************************
      Project: Can1
      Date   : 2019-06-26 16:49:00
    
      This file is generated by EB Tresos
      Do not modify this file, otherwise the software may behave in unexpected way.
    
     *****************************************************************************/
    
    
    /*******************************************************************************
     *  INCLUDES
     ******************************************************************************/
    #include "Can.h"
    #include "Can_Cfg.h"
    
    /*Requirements : MCAL-2439, MCAL-2440, MCAL-2441 */
    
    /*  Version checking  */
     #if ((CAN_SW_MAJOR_VERSION != (1U))||(CAN_SW_MINOR_VERSION != (3U)))
        #error "Version numbers of Can_Cfg.c and Can.h are inconsistent!"
    #endif
    
    /*******************************************************************************
     *  GLOBAL DATA
     ******************************************************************************/
    #define CAN_START_SEC_CONFIG_DATA
    #include "Can_MemMap.h"
    
    
    /* Baud Rate Structure for all configsets */
    
    /*
     * CAN BAUD RATE = (Clk/(BRP*(sync+prop+seg1+seg2)));
     * e.g. 500k = 80M/(8*(1+8+6+5);
     * (sync+prop+seg1+seg2) shall between 5 to 50;
     */
    
    /* MCU CAN0 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_0_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MCU CAN1 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_1_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 0 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_2_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 2 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_3_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 4 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_4_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 5 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_5_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 6 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_6_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /* MAIN CAN 7 */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        CanConfigSet_CanController_7_CanControllerBaudrateConfig_0 =
    {
        500U,      /* in Kbps */
        8U,       /* Prop Segement value */
        6U,          /* Phase Segment 1 */
        5U,          /* Phase Segment 2 */
        1U, /* Sync jump width */
        19U,  /* Sum of all timing parameters  */
        8U,   /* Controller BRP value for Baud */
    	 /* Data phase Baudrate */
        {
            5000U,     /* in Kbps */
            1U,        /* Prop Segement value */
            1U,           /* Phase Segment 1 */
            1U,           /* Phase Segment 2 */
            2U,  /* Sync jump width */
            2U,  /* Sum of all timing parameters  */
            4U,   /* Controller BRP value for Baud */
            180U, /* Specifies the Transceiver Delay Compensation Offset in ns */
            (boolean)FALSE, /* Specifies if the bit rate switching shall be used */
        }
    };
    /*List of the Baudrate structures */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_0_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_0_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_1_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_1_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_2_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_2_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_3_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_3_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_4_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_4_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_5_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_5_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_6_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_6_CanControllerBaudrateConfig_0,
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_BaudConfigType
        *CanConfigSet_CanController_7_BaudRateConfigList[]=
    {
        &CanConfigSet_CanController_7_CanControllerBaudrateConfig_0,
    };
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_0 =
    {
        &CanConfigSet_CanController_0_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_0_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_1 =
    {
        &CanConfigSet_CanController_1_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_1_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_2 =
    {
        &CanConfigSet_CanController_2_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_2_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_3 =
    {
        &CanConfigSet_CanController_3_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_3_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_4 =
    {
        &CanConfigSet_CanController_4_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_4_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    
    #if 0
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_5 =
    {
        &CanConfigSet_CanController_5_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_5_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_6 =
    {
        &CanConfigSet_CanController_6_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_6_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        CanConfigSet_CanController_7 =
    {
        &CanConfigSet_CanController_7_CanControllerBaudrateConfig_0,  /* pointer to default Baud structure */
        CanConfigSet_CanController_7_BaudRateConfigList,  /* List of available Baudrate structs */
    };
    #endif
    
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_0 =
    {
        CanConf_CanController_CanController_0,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
    	MCU_CAN0_MEM_BASE, /* Can Controller Base Address */
        //0x2728000,
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCU_MCAN0,  /* Controller Instance */
        //CAN_CONTROLLER_INSTANCE_MCAN2,
    	(boolean)FALSE,  /* CAN FD Mode Enable */
    };
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_1 =
    {
        CanConf_CanController_CanController_1,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
        MCU_CAN1_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCU_MCAN1,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable CAN_CONTROLLER_INSTANCE_MCU_MCAN1*/
    };
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_2 =
    {
        CanConf_CanController_CanController_2,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
        MAIN_CAN0_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN0,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable */
    };
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_3 =
    {
        CanConf_CanController_CanController_3,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
    	MAIN_CAN2_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN2,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable CAN_CONTROLLER_INSTANCE_MCU_MCAN1*/
    };
    #if 0
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_4 =
    {
        CanConf_CanController_CanController_4,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
    	MAIN_CAN4_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN4,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable */
    };
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_5 =
    {
        CanConf_CanController_CanController_5,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
        MAIN_CAN5_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN5,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable CAN_CONTROLLER_INSTANCE_MCU_MCAN1*/
    };
    /* Controller structure defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_6 =
    {
        CanConf_CanController_CanController_6,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
    	MAIN_CAN6_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN6,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable */
    };
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        CanConfigSet_PC_CanController_7 =
    {
        CanConf_CanController_CanController_7,      /* Id as provided by GUI */
        (boolean)TRUE,   /* Contoller is used=1 or not_used=0*/
    	MAIN_CAN7_MEM_BASE, /* Can Controller Base Address */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Rx Processing Type */
        CAN_TX_RX_PROCESSING_INTERRUPT,  /* Can Tx Processing Type */
        (boolean)TRUE,/* BusOff  TRUE = Interrupt FALSE = Polling */
    	CAN_CONTROLLER_INSTANCE_MCAN7,  /* Controller Instance */
    	(boolean)FALSE,  /* CAN FD Mode Enable CAN_CONTROLLER_INSTANCE_MCU_MCAN1*/
    };
    #endif
    /*List of the Controller structures */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_ControllerType
        *CanConfigSet_CanController_List[]=
    {
        &CanConfigSet_CanController_0,
        &CanConfigSet_CanController_1,
        &CanConfigSet_CanController_2,
        &CanConfigSet_CanController_3,
    #if 0
        &CanConfigSet_CanController_4,
        &CanConfigSet_CanController_5,
        &CanConfigSet_CanController_6,
        &CanConfigSet_CanController_7,
    #endif
    };
    
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ControllerStruct_PC
        *CanConfigSet_CanController_List_PC[CAN_NUM_CONTROLLER]=
    {
        &CanConfigSet_PC_CanController_0,
        &CanConfigSet_PC_CanController_1,
        &CanConfigSet_PC_CanController_2,
        &CanConfigSet_PC_CanController_3,
    #if 0
        &CanConfigSet_PC_CanController_4,
        &CanConfigSet_PC_CanController_5,
        &CanConfigSet_PC_CanController_6,
        &CanConfigSet_PC_CanController_7,
    #endif
    };
    
    /* HW Filter structure for all configsets */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_1_CanHwFilter_0 =
    {
    	0x701,//192U,  /*CanHwFilterCode*/
        0xFFFFFFFD,//4294967295U,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_2_CanHwFilter_0 =
    {
    	/*0x708*/0x42A,//192U,  /*CanHwFilterCode*/
        0xFFFFFFFF,//4294967295U,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_3_CanHwFilter_0 =
    {   0x707,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_4_CanHwFilter_0 =
    {   0xC0,  /*CanHwFilterCode*/
    	0XFFFFFFFD,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_5_CanHwFilter_0 =
    {
        0X122U,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_6_CanHwFilter_0 =
    {
        0X130U,  /*CanHwFilterCode*/
    	0XFFFFFFFB,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_7_CanHwFilter_0 =
    {
        0X423U,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_8_CanHwFilter_0 =
    {
        0X424U,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_9_CanHwFilter_0 =
    {
        0XD0U,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        CanConfigSet_CanHardwareObject_10_CanHwFilter_0 =
    {
        0X780U,  /*CanHwFilterCode*/
    	0XFFFFFFFF,  /*Filter Mask*/
    };
    /*List of the HW Filter structures */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_1_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_1_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_2_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_2_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_3_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_3_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_4_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_4_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_5_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_5_CanHwFilter_0,
    	&CanConfigSet_CanHardwareObject_9_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_6_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_6_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_7_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_7_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_8_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_8_CanHwFilter_0,
    };
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_HwFilterType
        *CanConfigSet_CanHardwareObject_10_HwFilterConfigList[]=
    {
        &CanConfigSet_CanHardwareObject_10_CanHwFilter_0,
    };
    
    /* All the Mailbox objects(MB's) will be defined here for all config sets */
        CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_0 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        20U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_TX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_0,  /* Controller */	
    	(Can_HwFilterType         **)0,   /* List of HW Filter structs */
        0U,   /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_1 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_1,  /* Controller */	
        CanConfigSet_CanHardwareObject_1_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_2 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
    	CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_2,  /* Controller */
    	CanConfigSet_CanHardwareObject_2_HwFilterConfigList,  /* List of HW Filter structs */
        1U,   /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_3 =
    {
        1u,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_3,  /* Controller */
        CanConfigSet_CanHardwareObject_3_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_4 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
    	CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_0,  /* Controller */
    	CanConfigSet_CanHardwareObject_4_HwFilterConfigList,   /* List of HW Filter structs */
        1U,   /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_5 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_1,  /* Controller */
        CanConfigSet_CanHardwareObject_5_HwFilterConfigList,  /* List of HW Filter structs */
        2U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_6 =
    {
        1U,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_2,  /* Controller */
        CanConfigSet_CanHardwareObject_6_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_7 =
    {
        1u,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_3,  /* Controller */
        CanConfigSet_CanHardwareObject_7_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_8 =
    {
        1u,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_0,  /* Controller */
        CanConfigSet_CanHardwareObject_8_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    	CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        CanConfigSet_CanHardwareObject_10 =
    {
        1u,  /*  CanHandleType 0=Full, 1=Basic */
        0U,  /* CanIdType 0=standard 1=Extended 2=Mixed*/
    	0U,  /* HwHandle i.e Mailbox - Hw object in the controller */
        8U,   /* Length of the Mailbox */
        CAN_MAILBOX_DIRECTION_RX,  /* CanObjectType - Direction of Mailbox*/
        &CanConfigSet_PC_CanController_1,  /* Controller */
        CanConfigSet_CanHardwareObject_10_HwFilterConfigList,  /* List of HW Filter structs */
        1U, /* Hw Filter Count */
        0U,   /* Padding value for CAN FD message */
        (boolean)FALSE,   /* Reserved Param used for future use */
    };
    /* All the Mailbox objects(MB's) will be defined here for all config sets */
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_0 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_0,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_1 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_1,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_2 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_2,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_3 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_3,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_4 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_4,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_5 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_5,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_6 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_6,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_7 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_7,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
    CanConfigSet_PC_CanHardwareObject_8 =
    {
    CanConf_CanHardwareObject_CanHardwareObject_8,  /* CanObjectId - Holds handle Id */
    };
    CAN_CONFIG_DATA_SECTION_CONST static const struct Can_MailboxStruct_PC
        CanConfigSet_PC_CanHardwareObject_10 =
    {
        CanConf_CanHardwareObject_CanHardwareObject_10,  /* CanObjectId - Holds handle Id */
    };
    
    
    /* List of the Mailboxes */
    CAN_CONFIG_DATA_SECTION_NON_CONST static Can_MailboxType
        *CanConfigSet_CanHardwareObject_List[] =
    {
        &CanConfigSet_CanHardwareObject_0,
        &CanConfigSet_CanHardwareObject_1,
        &CanConfigSet_CanHardwareObject_2,
        &CanConfigSet_CanHardwareObject_3,
        &CanConfigSet_CanHardwareObject_4,
        &CanConfigSet_CanHardwareObject_5,
    	&CanConfigSet_CanHardwareObject_6,
    	&CanConfigSet_CanHardwareObject_7,
    	&CanConfigSet_CanHardwareObject_8,
    	&CanConfigSet_CanHardwareObject_10,
    };
    
    /* List of the Mailboxes */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_MailboxStruct_PC
        *CanConfigSet_CanHardwareObject_List_PC[CAN_NUM_MAILBOXES] =
    {
        &CanConfigSet_PC_CanHardwareObject_0,
        &CanConfigSet_PC_CanHardwareObject_1,
        &CanConfigSet_PC_CanHardwareObject_2,
        &CanConfigSet_PC_CanHardwareObject_3,
        &CanConfigSet_PC_CanHardwareObject_4,
        &CanConfigSet_PC_CanHardwareObject_5,
    	&CanConfigSet_PC_CanHardwareObject_6,
    	&CanConfigSet_PC_CanHardwareObject_7,
    	&CanConfigSet_PC_CanHardwareObject_8,
        &CanConfigSet_PC_CanHardwareObject_10,
    
    };
    
    /*Can Config struct */
    CAN_CONFIG_DATA_SECTION_CONST const struct Can_ConfigType_s CanConfigSet =
    {
        CanConfigSet_CanController_List, /* Controller List Pointer */
        (CAN_NUM_CONTROLLER),  /* max Controllers */
        CanConfigSet_CanHardwareObject_List, /* Mailbox List Pointer */
        (CAN_NUM_MAILBOXES),/* total number of mail boxes in this configset */
        .MaxBaudConfigID =
        {
            [0] = 0U,
            [1] = 0U,
            [2] = 0U,
            [3] = 0U,
    #if 0
            [4] = 0U,
            [5] = 0U,
            [6] = 0U,
            [7] = 0U,
    #endif
        }, /* Baud rate structure id */
    	(Can_DmaPrms          *)0,  /* Reserved Param used for future use */
    };
    
    #define  CAN_STOP_SEC_CONFIG_DATA
    #include "Can_MemMap.h"
    
    /*******************************************************************************
     *  End of File: Can_Cfg.c
     ******************************************************************************/
    

  • Hi,

    Thanks for sharing.

    the error log when customer using the latter 2 controllers.

    Can you share this as well ?

    Regards

    Tarun Mukesh

  • I use CANOE to send packets to the next two controllers, but CANOE directly reports an error. Other than that, there is no error log.
    Follow is CANOE error:

    This error only occurs when the last two CAN controllers are tested with CANOE.

  • ISR is defined in Can_Irq.c
    All ISRs for can are defined in can_irq.c (these ISRs come with the SDK), and what I can be sure of is that ISRs for all controllers in can_cfg.c are defined and used (I printed them out in CCS)

  • Hi,

    If CAN node fails to acknowledge the message received we can get the error , it can happen if the message fails at filtering as well.Can you check that ?

    My suggestion would be can you use configuration tool to generate these files ? instead manually writing out these .

    Regards

    Tarun Mukesh

  • 1,I have a question that what is "the message fails at filtering". Do you mean that if the sent packet does not belong to this can node, CANOE will also report an error? I have tested that if the sent message does not belong to this can node, this error will not appear on CANOE.

    2,I don' t have EB tresos. I have emailed TI hoping to get a TI license for EB tresos, but it has not been approved. So I had to change it by manual.

  • I have a question that what is "the message fails at filtering". Do you mean that if the sent packet does not belong to this can node, CANOE will also report an error? I have tested that if the sent message does not belong to this can node, this error will not appear on CANOE.

    No. I meant to say if the intended recipient of the CAN message don't acknowledge ,then this error can come.

    I need to verify the changes , as these are done manually. I will get back to you with updates.

    In the meanwhile, Can you please check with default config files of MCU1_0 which has 2 MCU CAN and 1 MAIN CAN whether that is working for you ?

    Regards

    Tarun Mukesh

  • 1,Thank you for helping verify。
    2,In the SDK, MCU2_1 demo uses mcu_can0/1, main_can, which I mcu3_0 application is a reference mcu2_1, but it does not work. At the same time I would like to ask, about all the configurations of the main_can. (Including the supported baud rate and so on, I use 500kbps)

  • My understanding is that mcu1_0 is of the MCU domain, mcu3_0 of the main domain, and the configuration of the MCU domain does not fully apply to the main domain, and interrupt mapping is required in the main domain, but I have done these interrupt mappings.

  • Hello

    I don' t have EB tresos. I have emailed TI hoping to get a TI license for EB tresos, but it has not been approved. So I had to change it by manual.

    Can you please look into this?

    eason zhou,

    It is not recommended to change it manually some or the other might trigger the problem.

    MCU2_1 demo uses all main domain CAN and MCU1_0 demo uses 2 MCU_CAN and 1 Main CAN.

    By default we use standard CAN 1Mbps and CANFD 5Mbps.

    Can you please verify whether on your application side  , no hard coding on number of controller is present ?

    Regards

    Tarun Mukesh

  • On my application side, there is no limit to the number of controllers, because the maximum supported can controller is 16, which we have not changed.

    Can you help verify the configuration I modified manually above? Thank you~

  • Can you help verify the configuration I modified manually above?

    It is becoming really difficult to identify root cause of issue from these files and generalised log error, as there are lot of changes from the expected.

    I have requested to provide necessary support in getting you the licence , then you can generate the files and validate .

    If the problem persists i can support you.

    I hope you understand

    Regards

    Tarun Mukesh

  • Thanks for your support, I've sorted it all out.

  • Thanks eason zhou