/*================================================================================================== * Project : RTD AUTOSAR 4.4 * Platform : CORTEXM * Peripheral : FLEXCAN * Dependencies : * * Autosar Version : 4.4.0 * Autosar Revision : ASR_REL_4_4_REV_0000 * Autosar Conf.Variant : * SW Version : 1.0.0 * Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907 * * (c) Copyright 2020-2021 NXP Semiconductors * All Rights Reserved. * * NXP Confidential. This software is owned or controlled by NXP and may only be * used strictly in accordance with the applicable license terms. By expressly * accepting such terms or by downloading, installing, activating and/or otherwise * using the software, you are agreeing that you have read, and that you agree to * comply with and are bound by, such license terms. If you do not agree to be * bound by the applicable license terms, then you may not retain, install, * activate or otherwise use the software. ==================================================================================================*/ /*================================================================================================== ==================================================================================================*/ /* @brief The consistency of the configuration must be checked by the configuration tool(s). @brief (SWS_Can_00022) The code configuration of the Can module is CAN controller specific. If the CAN controller is sited on-chip, the code generation tool for the Can module is Controller specific. If the CAN controller is an external device the generation tool must not be Controller specific. @brief (SWS_Can_00024) The valid values that can be configured are hardware dependent. Therefore the rules and constraints can't be given in the standard. The configuration tool is responsible to do a static configuration checking, also regarding dependencies between modules (i.e. Port driver, MCU driver etc.) */ /* * @file Can_Cfg.h */ #ifndef CAN_CFG_H #define CAN_CFG_H /** * @file Can_Cfg.h * @version 1.0.0 * * @brief AUTOSAR Can - module interface * @details Configuration settings generated by user settings. * * @addtogroup CAN_DRIVER * @{ */ #ifdef __cplusplus extern "C"{ #endif /** * @page misra_violations MISRA-C:2012 violations * * @section [global] * Violates MISRA 2012 Required Rule 5.1, External identifiers shall be distinct. * The used compilers use more than 31 chars for identifiers. * * @section [global] * Violates MISRA 2012 Required Rule 5.2, Identifiers declared in the same scope and name space shall be distinct. * The used compilers use more than 31 chars for identifiers. * * @section [global] * Violates MISRA 2012 Required Rule 5.4, Macro identifiers shall be distinct. * The used compilers use more than 31 chars for identifiers. * * @section [global] * Violates MISRA 2012 Required Rule 5.5, Identifiers shall be distinct from macro names. * The used compilers use more than 31 chars for identifiers. * * @section Can_Cfg_h_REF_1 * Violates MISRA 2012 Advisory Rule 2.5, A project should not contain unused macro declarations. * Some macro are required by ASR even they are not use in MCAL layer * * @section Can_Cfg_h_REF_2 * Violates MISRA 2012 Advisory Rule 4.9, A function should be used in preference to a function-like macro where they are interchangeable. * Function like macro are used to reduce code complexity */ /*================================================================================================== * INCLUDE FILES * 1) system and project includes * 2) needed interfaces from external units * 3) internal and external interfaces from this unit ==================================================================================================*/ #include "Can_VS_0_PBcfg.h" /*================================================================================================== * SOURCE FILE VERSION INFORMATION ==================================================================================================*/ /* * @file Can_Cfg.h */ #define CAN_VENDOR_ID_CFG_H 43 #define CAN_MODULE_ID_CFG_H 80 #define CAN_AR_RELEASE_MAJOR_VERSION_CFG_H 4 #define CAN_AR_RELEASE_MINOR_VERSION_CFG_H 4 #define CAN_AR_RELEASE_REVISION_VERSION_CFG_H 0 #define CAN_SW_MAJOR_VERSION_CFG_H 1 #define CAN_SW_MINOR_VERSION_CFG_H 0 #define CAN_SW_PATCH_VERSION_CFG_H 0 /*================================================================================================== * FILE VERSION CHECKS ==================================================================================================*/ /* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same vendor */ #if (CAN_VENDOR_ID_VS_0_PBCFG_H != CAN_VENDOR_ID_CFG_H) #error "Can_VS_0_PBcfg.h and Can_Cfg.h have different vendor IDs" #endif /* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same Autosar version */ #if ((CAN_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MAJOR_VERSION_CFG_H) || \ (CAN_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_MINOR_VERSION_CFG_H) || \ (CAN_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != CAN_AR_RELEASE_REVISION_VERSION_CFG_H) \ ) #error "AutoSar Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different" #endif /* Check if header file and Can_VS_0_PBcfg.h configuration header file are of the same software version */ #if ((CAN_SW_MAJOR_VERSION_VS_0_PBCFG_H != CAN_SW_MAJOR_VERSION_CFG_H) || \ (CAN_SW_MINOR_VERSION_VS_0_PBCFG_H != CAN_SW_MINOR_VERSION_CFG_H) || \ (CAN_SW_PATCH_VERSION_VS_0_PBCFG_H != CAN_SW_PATCH_VERSION_CFG_H) \ ) #error "Software Version Numbers of Can_VS_0_PBcfg.h and Can_Cfg.h are different" #endif /*================================================================================================== * DEFINES AND MACROS ==================================================================================================*/ /** * @brief Enable/Disable Precompile Support */ #define CAN_PRECOMPILE_SUPPORT (STD_ON) /** * @brief Number of Can Controller Support */ #define CAN_HWCONTROLLER_SUPPORT 3U /** * @brief Controller unsed */ #define CAN_CONTROLLER_UNUSED ((uint8)0xFFU) /** * @brief The definition represent for Message buffer index which not assigned for any Hw Object */ #define CAN_HWOBJ_UNMAPPED ((Can_HwHandleType)0xFFFFU) /** * @brief The definition represent for number of ECUC partition configured. */ #define CAN_MAX_PARTITIONS 1U /** * @brief Number Of Hw Message Buffer support */ #define CAN_HWMB_COUNT ((uint8)32U) /** * @brief The definition of TimeStamp Enable Support for Hw Objects */ #define CAN_TIMESTAMP_ENABLE (STD_OFF) /** * @brief The definition used for guarding GetCoreID/Multicore */ #define CAN_MULTICORE_ENABLED (STD_OFF) /** * @brief Define if global variables need to be placed in non-cache area or not */ #define CAN_NO_CACHE_NEEDED (STD_OFF) /** * @brief Enable/Disable Development Error Detection and Notification */ #define CAN_DEV_ERROR_DETECT (STD_OFF) /** * @brief Enable/Disable support Can_GetVersionInfo API */ #define CAN_VERSION_INFO_API (STD_ON) /** * @brief Enable/Disable support Can_SetBaudrate API */ #define CAN_SET_BAUDRATE_API (STD_ON) /** * @brief Enable/Disable support Can_AbortMb API */ #define CAN_ABORT_MB_API (STD_ON) /** * @brief Enable/Disable LPdu Callout Function */ #define CAN_LPDU_CALLOUT_FUNC_ENABLE (STD_OFF) /** * @brief Enable/Disable Extended Range of Can Hw Object */ #define CAN_MBCOUNTEXTENSION (STD_OFF) /** * @brief Instance of the Can Hw unit */ #define CAN_INSTANCE ((uint8)0U) /** * @brief Enable/Disable support Dual Clock Mode */ #define CAN_DUAL_CLOCK_MODE (STD_OFF) /** * @brief Enable/Disable support Listen Only Mode */ #define CAN_LISTEN_ONLY_MODE (STD_OFF) /** * @brief Enable/Disable LPdu Receive callout function support */ #define CAN_LPDU_CALLOUT_SUPPORT (STD_OFF) #define CAN_LPDU_CALLOUT_FUNC_CALLED /** * @brief Symbolic Name generated for CanMainFunctionRWPeriods */ #define CanMainFunctionRWPeriods_0 0U /** * @brief Period for cyclic call of Main Function Read/Write */ #define CAN_MAINFUNCTION_MULTIPLE_WRITE (STD_OFF) #define CAN_MAINFUNCTION_MULTIPLE_READ (STD_OFF) #define CAN_MAINFUNCTION_READ_PERIOD (0.001F) #define CAN_MAINFUNCTION_WRITE_PERIOD (0.001F) /** * @brief Period for cyclic call of Main Function Mode */ #define CAN_MAINFUNCTION_MODE_PERIOD (0.001F) /** * @brief Period for cyclic call of Main Function Bus Off */ #define CAN_MAINFUNCTION_BUSOFF_PERIOD (0.001F) /** * @brief Supporting Pretended Networking */ #define CAN_PUBLIC_ICOM_SUPPORT (STD_ON) /** * @brief Number Of Can Controller Config */ #define CAN_CONTROLLER_CONFIG_COUNT (3U) /** * @brief Number Of HardwareObject Config */ #define CAN_HWOBJECT_CONFIG_COUNT ((Can_HwHandleType)6U) /** * @brief Symbolic Name generated for Can Controller */ #define CanController_0 ((uint8)0U) #define CanController_1 ((uint8)1U) #define CanController_2 ((uint8)2U) /** * @brief Symbolic Name generated for Can HardwareObject */ #define Can0HardwareObject_RX ((Can_HwHandleType)0U) #define Can1HardwareObject_RX ((Can_HwHandleType)1U) #define Can2HardwareObject_RX ((Can_HwHandleType)2U) #define Can0HardwareObject_TX ((Can_HwHandleType)3U) #define Can1HardwareObject_TX ((Can_HwHandleType)4U) #define Can2HardwareObject_TX ((Can_HwHandleType)5U) /** * @brief Enable/Disable support Can_CheckWakeup API */ #define CAN_CHECK_WAKEUP_API (STD_OFF) /** * @brief Can Tx Polling support */ #define CAN_TX_POLLING_SUPPORT (STD_ON) /** * @brief Can Rx Polling support */ #define CAN_RX_POLLING_SUPPORT (STD_ON) /** * @brief Can Bus Off Polling support */ #define CAN_BUSOFF_POLLING_SUPPORT (STD_ON) /** * @brief Can Wakeup Polling support */ #define CAN_WAKEUP_POLLING_SUPPORT (STD_ON) /** * @brief Can Wakeup support */ #define CAN_WAKEUP_SUPPORT (STD_OFF) /** * @brief Can Rx/Tx common interrupt support */ /** * @brief The definition was represented for at least one Hw Object enabled trigger transmit. */ #define CAN_TRIGGER_TRANSMIT_USED (STD_OFF) /** * @brief Can Enhanced RxFiFo enabling. */ #define CAN_ENHANCED_FIFO_ENABLED (STD_OFF) #define CAN_CONFIG_EXT #ifdef __cplusplus } #endif /** @} */ #endif /* _CAN_CFG_H_ */