add
This commit is contained in:
@@ -0,0 +1,629 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = Can.h */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2021-2024 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* Provision of external declaration of APIs and Service IDs. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: RCar S4, Rcar V4H, V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.1.17:18/12/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.17
|
||||
* 1.1.15:18/06/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.15
|
||||
* 1.1.14:18/04/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.14
|
||||
* 1.1.13:23/03/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.13
|
||||
* 1.1.12:14/02/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.12
|
||||
* 1.1.11:17/01/2023 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.11
|
||||
* 1.1.10:15/12/2022 : Update CAN_SW_PATCH_VERSION
|
||||
* Increase software version to 1.1.10
|
||||
* 1.1.9: 15/11/2022 : Update CAN_SW_PATCH_VERSION
|
||||
* : 04/11/2022 : Increase software version to 1.1.9
|
||||
* 1.1.8: 18/10/2022 : Update Misra-C rules messages
|
||||
* 05/10/2022 : Increase software version to 1.1.8
|
||||
* 1.1.6: 20/08/2022 : Add new Can_TimeStampProtolType,
|
||||
* CAN_TSCAP_RECEIVE_CALLOUT_FUNCTION and
|
||||
* CAN_TSCAP_TRANSMIT_CALLOUT_FUNCTION to support
|
||||
* Can Time Sync feature
|
||||
* 08/08/2022 : Added declaration Can_RAMTest API.
|
||||
* Increase software version to 1.0.5
|
||||
* Add service ID for Can_RAMTest
|
||||
* Add service ID and declaration for new API
|
||||
* Can_SetIcomConfiguration().
|
||||
* Add pointer element pIcomConfig in Can_ConfigType type.
|
||||
* Add CWE rule ID to QA-C messages header.
|
||||
* Add extern call-out function CAN_ICOM_CALLOUT_FUNCTION.
|
||||
* 06/08/2022 : Update CWE Rule Violation
|
||||
* 1.1.5: 08/07/2022 : Add service ID for API Can_SelfTestChannel.
|
||||
* Add new data type Can_SelfTestType.
|
||||
* Add declaration of API Can_SelfTestChannel.
|
||||
* Increase software version to 1.0.4.
|
||||
* 07/07/2022 : Added decalration of Can_SelfTestChannel API,
|
||||
* new data type Can_SelfTestType and
|
||||
* CAN_SELFTEST_CHANNEL_SID.
|
||||
* 1.1.3: 22/06/2022 : Added decalration Can_RAMTest API.
|
||||
* Change CAN_SW_PATCH_VERSION.
|
||||
* 1.1.2: 08/04/2022 : Can_ConfigType change memclass from
|
||||
* CAN_RSCAN_CONFIG_DATA into TYPEDEF for all VAR type.
|
||||
* Change all memclass from CAN_RSCAN_APPL_DATA into
|
||||
* AUTOMATIC for all API argument VAR type
|
||||
* Add start, stop section PRIVATE_CODE
|
||||
* for Can_CommonDetCheck
|
||||
* Change memclass from CAN_RSCAN_PUBLIC_CONST into
|
||||
* AUTOMATIC for argument P2CONST type in Can_Init
|
||||
* Correct memclass of function Can_SetIcomConfiguration
|
||||
* from PRIVATE_CODE to PUBLIC_CODE
|
||||
* 1.1.1: 23/03/2022 : Change version of CAN_SW_PATCH_VERSION
|
||||
* 1.1.0: 22/02/2022 : Added decalration Can_SetIcomConfiguration API and SID
|
||||
* : Added Icom config pointer to Can_ConfigType
|
||||
* 1.0.3: 22/12/2021 : Change CAN_SW_PATCH_VERSION
|
||||
* 1.0.2: 29/11/2021 : Move declaration of schedule function to SchM_Can.h
|
||||
* Correct declaration of Can_ChangeBaudrate API
|
||||
* 26/11/2021 : Added Can_GetControllerTxErrorCounter and
|
||||
* Can_GetControllerRxErrorCounter declaration
|
||||
* 1.0.1: 10/09/2021 : Add AUTOSAR release version information AR1911.
|
||||
* 1.0.0: 10/06/2021 : Initial version.
|
||||
*/
|
||||
/******************************************************************************/
|
||||
#ifndef CAN_H
|
||||
#define CAN_H
|
||||
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
/* Include standard Autosar Type */
|
||||
#include "Std_Types.h"
|
||||
/* CAN Pre-compile configuration Header File */
|
||||
#include "Can_Cfg.h"
|
||||
/* CAN Driver GeneralTypes Header File */
|
||||
#include "Can_GeneralTypes.h"
|
||||
/* Register structure Header file */
|
||||
#include "Can_CommonRegStruct.h"
|
||||
|
||||
#include "ComStack_Types.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Version Information **
|
||||
*******************************************************************************/
|
||||
#define CAN_VENDOR_ID CAN_VENDOR_ID_VALUE
|
||||
#define CAN_MODULE_ID CAN_MODULE_ID_VALUE
|
||||
#define CAN_INSTANCE_ID CAN_INSTANCE_ID_VALUE
|
||||
|
||||
/* AUTOSAR release version information */
|
||||
|
||||
#define CAN_AR_422_VERSION 422
|
||||
#define CAN_AR_431_VERSION 431
|
||||
#define CAN_AR_1911_VERSION 450
|
||||
|
||||
#if (CAN_AR_VERSION == CAN_AR_422_VERSION)
|
||||
|
||||
#define CAN_AR_RELEASE_MAJOR_VERSION 4U
|
||||
#define CAN_AR_RELEASE_MINOR_VERSION 2U
|
||||
#define CAN_AR_RELEASE_REVISION_VERSION 2U
|
||||
|
||||
#elif (CAN_AR_VERSION == CAN_AR_431_VERSION)
|
||||
|
||||
#define CAN_AR_RELEASE_MAJOR_VERSION 4U
|
||||
#define CAN_AR_RELEASE_MINOR_VERSION 3U
|
||||
/* MISRA Violation: START Msg(7:0791)-2 */
|
||||
#define CAN_AR_RELEASE_REVISION_VERSION 1U
|
||||
/* END Msg(7:0791)-2 */
|
||||
|
||||
#elif (CAN_AR_VERSION == CAN_AR_1911_VERSION)
|
||||
|
||||
#define CAN_AR_RELEASE_MAJOR_VERSION 4U
|
||||
#define CAN_AR_RELEASE_MINOR_VERSION 5U
|
||||
/* MISRA Violation: START Msg(7:0791)-2 */
|
||||
#define CAN_AR_RELEASE_REVISION_VERSION 0U
|
||||
/* END Msg(7:0791)-2 */
|
||||
|
||||
#endif /* (CAN_AR_VERSION == CAN_AR_422_VERSION) */
|
||||
|
||||
/* Module Software version information */
|
||||
#define CAN_SW_MAJOR_VERSION 1U
|
||||
#define CAN_SW_MINOR_VERSION 1U
|
||||
#define CAN_SW_PATCH_VERSION 17U
|
||||
|
||||
/*******************************************************************************
|
||||
** MISRA C Rule Violations **
|
||||
*******************************************************************************/
|
||||
|
||||
/* 1. MISRA C RULE VIOLATION: */
|
||||
/* Message : (2:3684) Array declared with unknown size. */
|
||||
/* Rule : MISRA-C:2012 Rule-8.11, CERTCCM ARR02 */
|
||||
/* Justification : Arrays used are verified in the file which are only */
|
||||
/* declarations and size is configuration dependent. */
|
||||
/* Verification : However, part of the code is verified manually and it is */
|
||||
/* not having any impact. */
|
||||
/* Reference : Look for START Msg(2:3684)-1 and */
|
||||
/* END Msg(2:3684)-1 tags in the code. */
|
||||
/******************************************************************************/
|
||||
|
||||
/* 2. MISRA C RULE VIOLATION: */
|
||||
/* Message : (7:0791) [U] Macro identifier does not differ from other */
|
||||
/* macro identifier(s) (e.g. '') within the specified */
|
||||
/* number of significant characters. */
|
||||
/* Rule : MISRA-C:2012 Rule-5.4, CERTCCM DCL23 */
|
||||
/* Justification : This macro identifier is following AUTOSAR standard rule */
|
||||
/* (Symbolic Name or Published Macro's name), */
|
||||
/* so this is accepted. */
|
||||
/* Verification : However, part of the code is verified manually */
|
||||
/* and it is not having any impact. */
|
||||
/* Reference : Look for START Msg(7:0791)-2 and */
|
||||
/* END Msg(7:0791)-2 tags in the code. */
|
||||
/******************************************************************************/
|
||||
|
||||
/* 3. MISRA C RULE VIOLATION: */
|
||||
/* Message : (2:3432) Simple macro argument expression is not */
|
||||
/* parenthesized. */
|
||||
/* Rule : MISRA-C:2012 Rule-20.7, CWE-398, CWE-569 */
|
||||
/* Justification : Compiler keyword (macro) is defined and used followed */
|
||||
/* AUTOSAR standard rule. It is accepted. */
|
||||
/* Verification : However, part of the code is verified manually */
|
||||
/* and it is not having any impact. */
|
||||
/* Reference : Look for START Msg(2:3432)-3 and */
|
||||
/* END Msg(2:3432)-3 tags in the code. */
|
||||
/******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/** QAC warning **/
|
||||
/******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
** Global Symbols **
|
||||
*******************************************************************************/
|
||||
#if (CAN_AR_VERSION == CAN_AR_422_VERSION)
|
||||
|
||||
#define Common_ReturnType Can_ReturnType
|
||||
#define COMMON_OK CAN_OK
|
||||
#define COMMON_NOT_OK CAN_NOT_OK
|
||||
|
||||
#define Common_ControllerStateType Can_StateTransitionType
|
||||
#define COMMON_STATE_UNINIT
|
||||
#define COMMON_STATE_STARTED CAN_T_START
|
||||
#define COMMON_STATE_STOPPED CAN_T_STOP
|
||||
#define COMMON_STATE_SLEEP CAN_T_SLEEP
|
||||
#define COMMON_STATE_WAKEUP CAN_T_WAKEUP
|
||||
#define MAX_VALID_STATE_TRANSITION CAN_T_WAKEUP
|
||||
#define COMMON_IF_STATE_STARTED CANIF_CS_STARTED
|
||||
#define COMMON_IF_STATE_STOPPED CANIF_CS_STOPPED
|
||||
#define COMMON_IF_STATE_SLEEP CANIF_CS_SLEEP
|
||||
|
||||
#elif ((CAN_AR_VERSION == CAN_AR_431_VERSION) || \
|
||||
(CAN_AR_VERSION == CAN_AR_1911_VERSION))
|
||||
|
||||
#define Common_ReturnType Std_ReturnType
|
||||
#define COMMON_OK E_OK
|
||||
#define COMMON_NOT_OK E_NOT_OK
|
||||
|
||||
#define Common_ControllerStateType Can_ControllerStateType
|
||||
#define COMMON_STATE_UNINIT CAN_CS_UNINIT
|
||||
#define COMMON_STATE_STARTED CAN_CS_STARTED
|
||||
#define COMMON_STATE_STOPPED CAN_CS_STOPPED
|
||||
#define COMMON_STATE_SLEEP CAN_CS_SLEEP
|
||||
#define COMMON_STATE_WAKEUP
|
||||
#define MAX_VALID_STATE_TRANSITION CAN_CS_SLEEP
|
||||
#define COMMON_IF_STATE_STARTED CAN_CS_STARTED
|
||||
#define COMMON_IF_STATE_STOPPED CAN_CS_STOPPED
|
||||
#define COMMON_IF_STATE_SLEEP CAN_CS_SLEEP
|
||||
|
||||
#endif /* (CAN_AR_VERSION == CAN_AR_422_VERSION) */
|
||||
/*******************************************************************************
|
||||
** Service IDs **
|
||||
*******************************************************************************/
|
||||
/* Service ID for Can_Init */
|
||||
#define CAN_INIT_SID (uint8)0x00U
|
||||
/* Service ID for Can_MainFunction_Write */
|
||||
#define CAN_MAIN_WRITE_SID (uint8)0x01U
|
||||
/* Service ID for Can_SetControllerMode */
|
||||
#define CAN_SET_MODECNTRL_SID (uint8)0x03U
|
||||
/* Service ID for Can_DisableControllerInterupts */
|
||||
#define CAN_DISABLE_CNTRL_INT_SID (uint8)0x04U
|
||||
/* Service ID for Can_EnableControllerInterupts */
|
||||
#define CAN_ENABLE_CNTRL_INT_SID (uint8)0x05U
|
||||
/* Service ID for Can_Write */
|
||||
#define CAN_WRITE_SID (uint8)0x06U
|
||||
/* Service ID for Can_GetVersionInfo */
|
||||
#define CAN_GET_VERSIONINFO_SID (uint8)0x07U
|
||||
/* Service ID for Can_MainFunction_Read */
|
||||
#define CAN_MAIN_READ_SID (uint8)0x08U
|
||||
/* Service ID for Can_MainFunction_BusOff */
|
||||
#define CAN_MAIN_BUSOFF_SID (uint8)0x09U
|
||||
/* Service ID for Can_MainFunction_Wakeup */
|
||||
#define CAN_MAIN_WAKEUP_SID (uint8)0x0AU
|
||||
/* Service ID for Can_CheckWakeup */
|
||||
#define CAN_CHECK_WAKEUP_SID (uint8)0x0BU
|
||||
/* Service ID for Can_MainFunction_Mode */
|
||||
#define CAN_MAIN_MODE_SID (uint8)0x0CU
|
||||
/* Service ID for Can_ChangeBaudrate */
|
||||
#define CAN_CHANGE_BAUDRATE_SID (uint8)0x0DU
|
||||
/* Service ID for Can_CheckBaudrate */
|
||||
#define CAN_CHECK_BAUDRATE_SID (uint8)0x0EU
|
||||
/* Service ID for Can_SetBaudrate */
|
||||
#define CAN_SET_BAUDRATE_SID (uint8)0x0FU
|
||||
/* Service ID for Can_DeInit */
|
||||
#define CAN_DEINIT_SID (uint8)0x10U
|
||||
/* Service ID for Can_GetControllerErrorState */
|
||||
#define CAN_GET_ERRSTATECNTRL_SID (uint8)0x11U
|
||||
/* Service ID for Can_GetControllerMode */
|
||||
#define CAN_GET_MODECNTRL_SID (uint8)0x12U
|
||||
/* Service ID for Can_RxProcessing */
|
||||
#define CAN_RXPROCESSING_SID (uint8)0x13U
|
||||
/* Service ID for Can_IcomRxProcessing */
|
||||
#define CAN_ICOM_RXPROCESSING_SID (uint8)0x16U
|
||||
/* Service ID for Can_GetControllerRxErrorCounter */
|
||||
#define CAN_GET_CONTROLLER_RXERROR_COUNTER_SID (uint8)0x30U
|
||||
/* Service ID for Can_GetControllerTxErrorCounter */
|
||||
#define CAN_GET_CONTROLLER_TXERROR_COUNTER_SID (uint8)0x31U
|
||||
/* Service ID for Can_SetIcomConfiguration */
|
||||
#define CAN_SET_ICOM_CONFIGURATION_SID (uint8)0x21U
|
||||
/* Service ID for Can_RAMTest */
|
||||
#define CAN_RAMTEST_SID (uint8)0x22U
|
||||
/* Service ID for Can_SelfTestChannel */
|
||||
#define CAN_SELFTEST_CHANNEL_SID (uint8)0x23U
|
||||
|
||||
/* DET ERRORS */
|
||||
/* API service called with null Pointer */
|
||||
#define CAN_E_PARAM_POINTER (uint8)0x01U
|
||||
/* API service called with wrong Handle */
|
||||
#define CAN_E_PARAM_HANDLE (uint8)0x02U
|
||||
/* API service called with wrong Controller Id */
|
||||
#define CAN_E_PARAM_CONTROLLER (uint8)0x04U
|
||||
/* API service called with de-initialization */
|
||||
#define CAN_E_UNINIT (uint8)0x05U
|
||||
/* API service called with wrong Transition */
|
||||
#define CAN_E_TRANSITION (uint8)0x06U
|
||||
|
||||
#if (CAN_AR_VERSION == CAN_AR_422_VERSION)
|
||||
|
||||
/* API service called with wrong DLC */
|
||||
#define CAN_E_PARAM_DLC (uint8)0x03U
|
||||
/* Received CAN Message is lost */
|
||||
#define CAN_E_DATALOST (uint8)0x07U
|
||||
/* API service called with invalid baudrate value */
|
||||
#define CAN_E_PARAM_BAUDRATE (uint8)0x08U
|
||||
/* API service called with invalid ICOM configuration Id */
|
||||
#define CAN_E_ICOM_CONFIG_INVALID (uint8)0x09U
|
||||
/* API service called with invalid configuration set selection */
|
||||
#define CAN_E_INIT_FAILED (uint8)0x0AU
|
||||
|
||||
#elif ((CAN_AR_VERSION == CAN_AR_431_VERSION) || \
|
||||
(CAN_AR_VERSION == CAN_AR_1911_VERSION))
|
||||
|
||||
/* API service called with wrong Data length */
|
||||
#define CAN_E_PARAM_DATA_LENGTH (uint8)0x03U
|
||||
/* Received CAN Message is lost */
|
||||
#define CAN_E_DATALOST (uint8)0x01U
|
||||
/* API service called with invalid baudrate value */
|
||||
#define CAN_E_PARAM_BAUDRATE (uint8)0x07U
|
||||
/* API service called with invalid ICOM configuration Id */
|
||||
#define CAN_E_ICOM_CONFIG_INVALID (uint8)0x08U
|
||||
/* API service called with invalid configuration set selection */
|
||||
#define CAN_E_INIT_FAILED (uint8)0x09U
|
||||
#endif
|
||||
|
||||
/* API service called when CANFD is not in Global Stop mode */
|
||||
#define CAN_RAMTEST_E_INITIALIZED (uint8)0x0BU
|
||||
/* API service called with BlockId is out of range */
|
||||
#define CAN_RAMTEST_E_OUT_OF_RANGE (uint8)0x0CU
|
||||
|
||||
/* API service called with wrong database address */
|
||||
#define CAN_E_INVALID_DATABASE (uint8)0xEFU
|
||||
/* Instance ID Value of CAN driver*/
|
||||
#define CAN_INSTANCE_ID_VALUE (uint8)0x00U
|
||||
|
||||
/*******************************************************************************
|
||||
** Global Data Types **
|
||||
*******************************************************************************/
|
||||
/* CAN Driver Initialization configuration */
|
||||
typedef struct STag_Can_ConfigType
|
||||
{
|
||||
/* StartOfDbToc */
|
||||
VAR(uint32, TYPEDEF) ulStartOfDbToc;
|
||||
/* Element number of HWUnitInfo */
|
||||
VAR(uint8, TYPEDEF) ucNoOfUnits;
|
||||
/* Element number of pControllerPCConfig and pControllerPBConfig */
|
||||
VAR(uint8, TYPEDEF) ucNoOfControllers;
|
||||
/* Element number of pHohConfig */
|
||||
VAR(uint16, TYPEDEF) usNoOfHohs;
|
||||
/* Pointer to HWUnit configuration structures */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(void, TYPEDEF, CAN_RSCAN_CONFIG_DATA) pHWUnitInfo;
|
||||
/* END Msg(2:3432)-3 */
|
||||
/* Pointer to Controller Pre-compile Configuration structures */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(void, TYPEDEF, CAN_RSCAN_CONFIG_DATA)
|
||||
pControllerPCConfig;
|
||||
/* END Msg(2:3432)-3 */
|
||||
/* Pointer to Controller Post-build Configuration structures */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(void, TYPEDEF, CAN_RSCAN_CONFIG_DATA)
|
||||
pControllerPBConfig;
|
||||
/* END Msg(2:3432)-3 */
|
||||
/* Pointer to HTH/HRH configuration structures */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(void, TYPEDEF, CAN_RSCAN_CONFIG_DATA) pHohConfig;
|
||||
/* END Msg(2:3432)-3 */
|
||||
/* Pointer to ICom Configuration strutures */
|
||||
#if(CAN_PUBLIC_ICOM_SUPPORT == STD_ON)
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(void, TYPEDEF, CAN_RSCAN_CONFIG_DATA) pIcomConfig;
|
||||
/* END Msg(2:3432)-3 */
|
||||
#endif
|
||||
/* Lookup table to get index of Controller from physical number of Channel */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(uint8, TYPEDEF, CAN_RSCAN_CONFIG_DATA) pPhysicalControllerToIndex;
|
||||
/* END Msg(2:3432)-3 */
|
||||
} Can_ConfigType;
|
||||
|
||||
#if (STD_ON == CAN_SELFTEST_API)
|
||||
/* Enum declaration for Can_SelfTest */
|
||||
typedef enum ETag_Can_SelfTestType
|
||||
{
|
||||
/* Disable self-test */
|
||||
CAN_T_SELF_OFF = 0,
|
||||
/* Self-test mode 0 (External loopback mode) */
|
||||
CAN_T_SELF_EXTERNAL,
|
||||
/* Self-test mode 1 (Internal loopback mode) */
|
||||
CAN_T_SELF_INTERNAL
|
||||
} Can_SelfTestType;
|
||||
#endif
|
||||
|
||||
#if (STD_ON == CAN_TIME_SYNC_CAPTURE_EN)
|
||||
typedef enum ETag_Can_TimeStampProtolType
|
||||
{
|
||||
/* Time Stamp is captured in gPTP standard */
|
||||
CAN_TIMESTAMP_GPTP = 0,
|
||||
/* Time Stamp is captured in AVTP standard */
|
||||
CAN_TIMESTAMP_AVTP
|
||||
} Can_TimeStampProtolType;
|
||||
#endif
|
||||
/*******************************************************************************
|
||||
** Extern declarations for Global Data **
|
||||
*******************************************************************************/
|
||||
#define CAN_RSCAN_START_SEC_DBTOC_DATA_UNSPECIFIED
|
||||
#include "Can_MemMap.h"
|
||||
/* Global array for Config structure */
|
||||
/* MISRA Violation: START Msg(2:3684)-1 */
|
||||
extern CONST(Can_ConfigType, CAN_RSCAN_CONST) Can_GaaConfig[];
|
||||
/* END Msg(2:3684)-1 */
|
||||
|
||||
#define CAN_RSCAN_STOP_SEC_DBTOC_DATA_UNSPECIFIED
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Function Prototypes **
|
||||
*******************************************************************************/
|
||||
#define CAN_RSCAN_START_SEC_PUBLIC_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
/* API for global initialization */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(void, CAN_RSCAN_PUBLIC_CODE) Can_Init(
|
||||
P2CONST(Can_ConfigType, AUTOMATIC, CAN_RSCAN_APPL_DATA) Config);
|
||||
/* END Msg(2:3432)-3 */
|
||||
|
||||
#if (CAN_AR_VERSION == CAN_AR_422_VERSION)
|
||||
#if (CAN_CHANGE_BAUDRATE_API == STD_ON)
|
||||
/* API for changing baudrate of the Controller */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_ChangeBaudrate(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
VAR(uint16, AUTOMATIC) BaudRateConfigID);
|
||||
|
||||
/* API for checking baudrates configured for the Controller */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_CheckBaudrate(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
CONST(uint16, AUTOMATIC) Baudrate);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (CAN_SET_BAUDRATE_API == STD_ON)
|
||||
/* API for changing baudrate of the Controller by ID value */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_SetBaudrate(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
VAR(uint16, AUTOMATIC) BaudRateConfigID);
|
||||
#endif
|
||||
|
||||
/* API for set Controller mode */
|
||||
extern FUNC(Common_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_SetControllerMode(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
VAR(Common_ControllerStateType, AUTOMATIC) Transition);
|
||||
|
||||
#if ((CAN_AR_VERSION == CAN_AR_431_VERSION) || \
|
||||
(CAN_AR_VERSION == CAN_AR_1911_VERSION))
|
||||
|
||||
/* API for global de-initialization */
|
||||
extern FUNC(void, CAN_RSCAN_PUBLIC_CODE) Can_DeInit(void);
|
||||
|
||||
/* API for obtaining Controller error state */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_GetControllerErrorState(
|
||||
VAR(uint8, AUTOMATIC) ControllerId,
|
||||
P2VAR(Can_ErrorStateType, AUTOMATIC, CAN_RSCAN_APPL_DATA) ErrorStatePtr);
|
||||
/* END Msg(2:3432)-3 */
|
||||
|
||||
/* API for obtaining Controller mode */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_GetControllerMode(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
P2VAR(Can_ControllerStateType, AUTOMATIC, CAN_RSCAN_APPL_DATA)
|
||||
ControllerModePtr);
|
||||
/* END Msg(2:3432)-3 */
|
||||
#endif
|
||||
|
||||
#if (STD_ON == CAN_SELFTEST_API)
|
||||
/* API for Self-Test */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_SelfTestChannel(
|
||||
VAR(uint8, AUTOMATIC) Controller,
|
||||
VAR(Can_SelfTestType, AUTOMATIC) TestTransition);
|
||||
#endif
|
||||
|
||||
#if (CAN_AR_VERSION == CAN_AR_1911_VERSION)
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_GetControllerTxErrorCounter(
|
||||
VAR(uint8, AUTOMATIC) ControllerId,
|
||||
P2VAR(uint8, AUTOMATIC, CAN_RSCAN_APPL_DATA) TxErrorCounterPtr);
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_GetControllerRxErrorCounter(
|
||||
VAR(uint8, AUTOMATIC) ControllerId,
|
||||
P2VAR(uint8, AUTOMATIC, CAN_RSCAN_APPL_DATA) RxErrorCounterPtr);
|
||||
/* END Msg(2:3432)-3 */
|
||||
#endif
|
||||
|
||||
/* API for disabling Controller interrupt */
|
||||
extern FUNC(void, CAN_RSCAN_PUBLIC_CODE) Can_DisableControllerInterrupts(
|
||||
VAR(uint8, AUTOMATIC) Controller);
|
||||
|
||||
/* API for enabling Controller interrupt */
|
||||
extern FUNC(void, CAN_RSCAN_PUBLIC_CODE) Can_EnableControllerInterrupts(
|
||||
VAR(uint8, AUTOMATIC) Controller);
|
||||
|
||||
/* API for Can Write */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(Common_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_Write(
|
||||
VAR(Can_HwHandleType, AUTOMATIC) Hth,
|
||||
P2CONST(Can_PduType, AUTOMATIC, CAN_RSCAN_APPL_DATA) PduInfo);
|
||||
/* END Msg(2:3432)-3 */
|
||||
|
||||
|
||||
#if (CAN_VERSION_INFO_API == STD_ON)
|
||||
/* API for getting version information */
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
extern FUNC(void, CAN_RSCAN_PUBLIC_CODE) Can_GetVersionInfo(
|
||||
P2VAR(Std_VersionInfoType, AUTOMATIC, CAN_RSCAN_APPL_DATA) versioninfo);
|
||||
/* END Msg(2:3432)-3 */
|
||||
#endif
|
||||
|
||||
#if (CAN_CHECK_WAKEUP_API == STD_ON)
|
||||
/* API for getting wakeup status of a controller */
|
||||
extern FUNC(Common_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_CheckWakeup(
|
||||
VAR(uint8, AUTOMATIC) Controller);
|
||||
#endif
|
||||
|
||||
/* API for activate or deactivate ICOM */
|
||||
#if (CAN_PUBLIC_ICOM_SUPPORT == STD_ON)
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_SetIcomConfiguration (
|
||||
uint8 Controller, IcomConfigIdType ConfigurationId);
|
||||
#endif
|
||||
|
||||
#if (CAN_RAMTEST_API == STD_ON)
|
||||
extern FUNC(Std_ReturnType, CAN_RSCAN_PUBLIC_CODE) Can_RAMTest(uint8 LucUnit, uint16 LusPageID);
|
||||
#endif
|
||||
|
||||
#define CAN_RSCAN_STOP_SEC_PUBLIC_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
|
||||
#define CAN_RSCAN_START_SEC_APPL_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
#if defined(CAN_LPDU_RECEIVE_CALLOUT_FUNCTION)
|
||||
/* API for reception callout function */
|
||||
extern FUNC(boolean, CAN_RSCAN_APPL_CODE) CAN_LPDU_RECEIVE_CALLOUT_FUNCTION(
|
||||
VAR(uint16, AUTOMATIC) Hrh,
|
||||
VAR(Can_IdType, AUTOMATIC) CanId,
|
||||
#if (CAN_AR_VERSION == CAN_AR_422_VERSION)
|
||||
VAR(uint8, AUTOMATIC) CanDlc,
|
||||
#elif ((CAN_AR_VERSION == CAN_AR_431_VERSION) || \
|
||||
(CAN_AR_VERSION == CAN_AR_1911_VERSION))
|
||||
VAR(uint8, AUTOMATIC) CanDataLength,
|
||||
#endif
|
||||
/* MISRA Violation: START Msg(2:3432)-3 */
|
||||
P2CONST(uint8, AUTOMATIC, CAN_RSCAN_APPL_DATA) CanSduPtr);
|
||||
/* END Msg(2:3432)-3 */
|
||||
#endif
|
||||
|
||||
#if (CAN_TIME_SYNC_CAPTURE_EN == STD_ON)
|
||||
/* Call out function to forware the captured timestamp of Received frame to upper layer */
|
||||
extern FUNC(void, CAN_RSCAN_APPL_CODE) CAN_TSCAP_RECEIVE_CALLOUT_FUNCTION(
|
||||
VAR(Can_IdType, AUTOMATIC) LdCanId,
|
||||
VAR(uint8, AUTOMATIC) LucControllerId,
|
||||
VAR(uint32, AUTOMATIC) LulTimeStampL,
|
||||
VAR(uint32, AUTOMATIC) LulTimeStampH,
|
||||
VAR(Can_TimeStampProtolType, AUTOMATIC) LdProtolType);
|
||||
|
||||
/* Call out function to forware the captured timestamp of Transmitted frame to upper layer */
|
||||
extern FUNC(void, CAN_RSCAN_APPL_CODE) CAN_TSCAP_TRANSMIT_CALLOUT_FUNCTION(
|
||||
VAR(PduIdType, AUTOMATIC) CanTxPduId,
|
||||
VAR(uint32, AUTOMATIC) LulTimeStampL,
|
||||
VAR(uint32, AUTOMATIC) LulTimeStampH,
|
||||
VAR(Can_TimeStampProtolType, AUTOMATIC) LdProtolType);
|
||||
|
||||
#endif /* #if (CAN_TIME_SYNC_CAPTURE_EN == STD_ON) */
|
||||
|
||||
#if ((CAN_PUBLIC_ICOM_SUPPORT == STD_ON) && \
|
||||
(CAN_ICOM_PAYLOAD_LENGTH_ERROR_SUPPORT == STD_ON))
|
||||
extern FUNC(void, CAN_RSCAN_APPL_CODE) CAN_ICOM_CALLOUT_FUNCTION
|
||||
(uint8 Controller, IcomConfigIdType ConfigurationId);
|
||||
#endif
|
||||
|
||||
#define CAN_RSCAN_STOP_SEC_APPL_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
#define CAN_RSCAN_START_SEC_PRIVATE_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
#if (CAN_DEV_ERROR_DETECT == STD_ON)
|
||||
/* API for common DET validation */
|
||||
extern FUNC(Common_ReturnType, CAN_RSCAN_PRIVATE_CODE) Can_CommonDetCheck(
|
||||
CONST(uint8, AUTOMATIC) LucSID, CONST(uint8, AUTOMATIC) LucController);
|
||||
#endif
|
||||
|
||||
#define CAN_RSCAN_STOP_SEC_PRIVATE_CODE
|
||||
#include "Can_MemMap.h"
|
||||
|
||||
#endif /* CAN_H */
|
||||
|
||||
/*******************************************************************************
|
||||
** End of File **
|
||||
*******************************************************************************/
|
||||
@@ -0,0 +1,86 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = Can_Version.h */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2021-2023 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* This file contains macros required for checking versions of modules */
|
||||
/* included by CAN Driver */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: RCar S4, Rcar V4H, V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.1.14: 18/04/2023 : Support V4M device.
|
||||
* 1.0.1: 21/01/2022 : Support V4H device.
|
||||
* 1.0.0: 10/06/2021 : Initial version.
|
||||
*/
|
||||
/******************************************************************************/
|
||||
#ifndef CAN_VERSION_H
|
||||
#define CAN_VERSION_H
|
||||
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
** Version Information **
|
||||
*******************************************************************************/
|
||||
/* AUTOSAR Release version information */
|
||||
#define CAN_VERSION_AR_RELEASE_MAJOR_VERSION CAN_AR_RELEASE_MAJOR_VERSION
|
||||
#define CAN_VERSION_AR_RELEASE_MINOR_VERSION CAN_AR_RELEASE_MINOR_VERSION
|
||||
#define CAN_VERSION_AR_RELEASE_REVISION_VERSION CAN_AR_RELEASE_REVISION_VERSION
|
||||
|
||||
/* Module Software version information */
|
||||
#define CAN_VERSION_SW_MAJOR_VERSION CAN_SW_MAJOR_VERSION
|
||||
#define CAN_VERSION_SW_MINOR_VERSION CAN_SW_MINOR_VERSION
|
||||
|
||||
#endif /* CAN_VERSION_H */
|
||||
|
||||
/*******************************************************************************
|
||||
** End of File **
|
||||
*******************************************************************************/
|
||||
@@ -0,0 +1,21 @@
|
||||
###############################################################################
|
||||
# REGISTRY
|
||||
#
|
||||
PREPARE_CONFIGURATION_INTERFACE += CAN_MODULE_DBASE_REQ
|
||||
|
||||
CHECK_VARS_WHICH_ARE_REQUIRED += CAN_MODULE_DBASE_REQ
|
||||
|
||||
###############################################################################
|
||||
# SPECIFIC
|
||||
#
|
||||
ifneq ($(CAN_MODULE_DBASE_REQ),yes)
|
||||
ifneq ($(CAN_MODULE_DBASE_REQ),no)
|
||||
$(error The value of the variable CAN_MODULE_DBASE_REQ is not valid. \
|
||||
Please specify whether database is required or not )
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(MCU_CONFIG_FILE),no)
|
||||
$(error The value of the variable MCU_CONFIG_FILE is not valid. \
|
||||
Please specify which MCU configuration file is used )
|
||||
endif
|
||||
@@ -0,0 +1,33 @@
|
||||
###############################################################################
|
||||
# INTERNAL REQUIRED CONFIGURATION
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# REQUIRED (in base_make)
|
||||
#
|
||||
|
||||
###############################################################################
|
||||
# SPECIFIC
|
||||
#
|
||||
|
||||
ifneq ( $(CAN_MODULE_CONFIG_PATH), )
|
||||
CAN_MODULE_PROJECT_PATH = $(CAN_MODULE_CONFIG_PATH)
|
||||
else
|
||||
CAN_MODULE_PROJECT_PATH = $(CAN_MODULE_CORE_PATH)\Cfg1
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
# REGISTRY
|
||||
#
|
||||
SSC_PLUGINS += renesas_can
|
||||
renesas_can_DEPENDENT_PLUGINS =
|
||||
|
||||
CC_INCLUDE_PATH += $(CAN_MODULE_CORE_PATH)\include \
|
||||
$(CAN_MODULE_CORE_PATH)\include\$(MICRO_VARIANT) \
|
||||
$(CAN_MODULE_PROJECT_PATH)\include
|
||||
CC_SRC_PATH += $(CAN_MODULE_CORE_PATH)\src \
|
||||
$(CAN_MODULE_PROJECT_PATH)\src
|
||||
CPP_INCLUDE_PATH += $(CAN_MODULE_CORE_PATH)\include \
|
||||
$(CAN_MODULE_PROJECT_PATH)\include
|
||||
ASM_INCLUDE_PATH +=
|
||||
PREPROCESSOR_DEFINES +=
|
||||
@@ -0,0 +1,104 @@
|
||||
###############################################################################
|
||||
# REGISTRY
|
||||
#
|
||||
|
||||
LIBRARIES_TO_BUILD += renesas_canlib
|
||||
|
||||
ifeq ($(MICRO_SUB_VARIANT), S4)
|
||||
renesas_canlib_FILES = \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_MainServ.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_ModeCntrl.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Irq.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Write.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Ram.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Icom.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_RamTest.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_TSCapture.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Version.c
|
||||
|
||||
|
||||
CC_FILES_TO_BUILD += \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_MainServ.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_ModeCntrl.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Irq.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Write.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Ram.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Icom.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_RamTest.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_TSCapture.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Version.c
|
||||
else
|
||||
renesas_canlib_FILES = \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_MainServ.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_ModeCntrl.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Irq.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Write.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Ram.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Icom.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_RamTest.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Version.c
|
||||
|
||||
|
||||
CC_FILES_TO_BUILD += \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_MainServ.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_ModeCntrl.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Irq.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Write.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Ram.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Icom.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_RamTest.c \
|
||||
$(CAN_MODULE_CORE_PATH)\src\Can_Version.c
|
||||
endif
|
||||
|
||||
OBJECTS_LINK_ONLY +=
|
||||
|
||||
ifeq ($(CAN_MODULE_DBASE_REQ),yes)
|
||||
GENERATED_SOURCE_FILES += \
|
||||
$(CAN_MODULE_PROJECT_PATH)\src\Can_PBcfg.c \
|
||||
$(CAN_MODULE_PROJECT_PATH)\src\Can_Lcfg.c
|
||||
endif
|
||||
|
||||
MAKE_CLEAN_RULES += can_clean_generated_files
|
||||
MAKE_GENERATE_RULES += generate_can_config
|
||||
MAKE_DEBUG_RULES += debug_can_makefile
|
||||
MAKE_CONFIG_RULES += generate_can_config
|
||||
|
||||
can_clean_generated_files:
|
||||
@if exist $(CAN_MODULE_PROJECT_PATH)\src\*.c del /Q $(CAN_MODULE_PROJECT_PATH)\src\*.c
|
||||
@if exist $(CAN_MODULE_PROJECT_PATH)\include\*.h del /Q $(CAN_MODULE_PROJECT_PATH)\include\*.h
|
||||
@if exist $(CAN_MODULE_PROJECT_PATH)\*.log del /Q $(CAN_MODULE_PROJECT_PATH)\*.log
|
||||
|
||||
###############################################################################
|
||||
# Command to print debug information #
|
||||
###############################################################################
|
||||
debug_can_makefile:
|
||||
@echo CAN_MODULE_PROJECT_PATH = $(CAN_MODULE_PROJECT_PATH)
|
||||
@echo CAN_MODULE_CORE_PATH = $(CAN_MODULE_CORE_PATH)
|
||||
@echo CAN_MODULE_CONFIG_PATH = $(CAN_MODULE_CONFIG_PATH)
|
||||
@echo CAN_MODULE_CONFIG_FILE = $(CAN_MODULE_CONFIG_FILE)
|
||||
@echo CAN_MODULE_DBASE_REQ = $(CAN_MODULE_DBASE_REQ)
|
||||
@echo TRXML_CONFIG_FILE = $(TRXML_CONFIG_FILE)
|
||||
|
||||
@echo CAN_MODULE_BSWMDT_CONFIG_FILE = $(CAN_MODULE_BSWMDT_CONFIG_FILE)
|
||||
@echo CAN_DEM_CONFIG_FILE = $(CAN_DEM_CONFIG_FILE)
|
||||
@echo CAN_OS_CONFIG_FILE = $(CAN_OS_CONFIG_FILE)
|
||||
@echo CAN_ECUM_CONFIG_FILE = $(CAN_ECUM_CONFIG_FILE)
|
||||
@echo MCU_CONFIG_FILE = $(MCU_CONFIG_FILE)
|
||||
|
||||
###############################################################################
|
||||
# Command to trigger the tool and generate configuration files #
|
||||
###############################################################################
|
||||
generate_can_config:
|
||||
$(COMMON_TOOL_FILE) -m $(CAN_MODULE_NAME) \
|
||||
-o $(CAN_MODULE_PROJECT_PATH) \
|
||||
$(CAN_MODULE_CONFIG_FILE) \
|
||||
$(TRXML_CONFIG_FILE) \
|
||||
$(CAN_MODULE_BSWMDT_CONFIG_FILE) \
|
||||
$(MCU_CONFIG_FILE) \
|
||||
$(CAN_DEM_CONFIG_FILE) \
|
||||
$(CAN_ECUM_CONFIG_FILE) \
|
||||
$(CAN_OS_CONFIG_FILE)
|
||||
@@ -0,0 +1,212 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = App_CAN_Device_Sample.h */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2023 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* Header file information for application */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision Control History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.1.14: 20/04/2023 : Initial Version
|
||||
*/
|
||||
/******************************************************************************/
|
||||
#ifndef APP_CAN_DEVICE_SAMPLE_H
|
||||
#define APP_CAN_DEVICE_SAMPLE_H
|
||||
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
|
||||
#include "Can.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Global Symbols **
|
||||
*******************************************************************************/
|
||||
/* GPIO Group 2 */
|
||||
/* Bus Domain 0 (PFSS) : +H0000 */
|
||||
#define PFC_DOMAIN_OFFSET (uint32)0x00000000UL
|
||||
#define PFC_RW_OFFSET (uint32)0x00000000UL
|
||||
#define PFC_SET_OFFSET (uint32)0x00000200UL
|
||||
#define PFC_CLR_OFFSET (uint32)0x00000400UL
|
||||
#define PFC_MCU_BASE (uint32)0xE6050000UL
|
||||
#define PFC_PORT_GRP1 (0x00000800UL) /* Port Group1 */
|
||||
#define PFC_PORT_GRP2 (0x00008000UL) /* Port Group2 */
|
||||
#define PFC_GPSR2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0040U))
|
||||
#define PFC_IP0SR2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0060U))
|
||||
#define PFC_IP1SR2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0064U))
|
||||
#define PFC_IP2SR2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0068U))
|
||||
#define PFC_DRV1CTRL2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0084U))
|
||||
#define PFC_DRV2CTRL2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0088U))
|
||||
#define PFC_INOUTSEL2_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0184U))
|
||||
|
||||
#define PFC_GPSR1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0040U))
|
||||
#define PFC_INOUTSEL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0184U))
|
||||
#define PFC_OUTDT1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0188U))
|
||||
#define PFC_OUTDTSEL1_RW *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x01C0U))
|
||||
#define PMMR1 *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP1 + 0x0000U))
|
||||
#define PMMR2 *((volatile uint32 *)(PFC_MCU_BASE + PFC_PORT_GRP2 + 0x0000U))
|
||||
|
||||
#define PFC_PMMR2 (PFC_MCU_BASE + PFC_PORT_GRP2 + 0x0000U)
|
||||
#define PFC_GPSR2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0040U)
|
||||
#define PFC_IP0SR2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0060U)
|
||||
#define PFC_IP1SR2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0064U)
|
||||
#define PFC_IP2SR2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0068U)
|
||||
#define PFC_DRV1CTRL2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0084U)
|
||||
#define PFC_DRV2CTRL2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0088U)
|
||||
#define PFC_INOUTSEL2_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP2 + PFC_RW_OFFSET + 0x0184U)
|
||||
|
||||
#define PFC_GPSR1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0040U)
|
||||
#define PFC_INOUTSEL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0184U)
|
||||
#define PFC_OUTDT1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x0188U)
|
||||
#define PFC_OUTDTSEL1_RW_ADD (PFC_MCU_BASE + PFC_PORT_GRP1 + PFC_RW_OFFSET + 0x01C0U)
|
||||
|
||||
/* Bit MASK for CAN */
|
||||
#define ALL_BIT (uint32)0xFFFFFFFFUL
|
||||
#define ALL_0 (uint32)0x00000000UL
|
||||
#define ALL_3 (uint32)0x33333333UL
|
||||
#define ALL_1 (uint32)0x11111111UL
|
||||
#define ALL_5 (uint32)0x55555555UL
|
||||
#define BIT0 (uint32)0x00000001UL
|
||||
#define BIT3 (uint32)0x00000008UL
|
||||
#define BIT3_0 (uint32)0x0000000FUL
|
||||
#define BIT7 (uint32)0x00000080UL
|
||||
#define BIT8 (uint32)0x00000100UL
|
||||
#define BIT11_10 (uint32)0x00000C00UL
|
||||
#define BIT11_8 (uint32)0x00000F00UL
|
||||
#define BIT15_12 (uint32)0x0000F000UL
|
||||
#define BIT19_16 (uint32)0x000F0000UL
|
||||
#define BIT23_20 (uint32)0x00F00000UL
|
||||
#define BIT27_24 (uint32)0x0F000000UL
|
||||
#define BIT31_28 (uint32)0xF0000000UL
|
||||
#define BIT31_28_15_0 (uint32)0x10001111UL
|
||||
#define BIT15_0 (uint32)0x0000FFFFUL
|
||||
#define BIT19_10 (uint32)0xF00FFC00UL
|
||||
#define BIT31_8_EQ_3 (uint32)0x33333300UL
|
||||
#define BIT15_0_EQ_3 (uint32)0x00003333UL
|
||||
#define BIT31_8_EQ_6 (uint32)0x66666600UL
|
||||
#define BIT15_0_EQ_6 (uint32)0x00006666UL
|
||||
#define BIT31_1 (uint32)0xFFFFFF0EUL
|
||||
#define BIT_IN_OUT (uint32)0x00055485UL
|
||||
/* clock protect */
|
||||
|
||||
/* Enable all modules in this MSR register */
|
||||
#define CAN_MSR_ACTIVE 0x00000000UL
|
||||
|
||||
/* Protection key codes */
|
||||
#define CAN_KCPROT_CLR 0xA5A5A500UL
|
||||
#define CAN_KCPROT_SET 0xA5A5A501UL
|
||||
|
||||
/* Enable all modules in this MSR register */
|
||||
#define CAN_MSR_ACTIVE 0x00000000UL
|
||||
/* Disable all modules in this MSR register */
|
||||
#define CAN_MSR_STOP 0xFFFFFFFFUL
|
||||
|
||||
|
||||
/* PCLK(LSB): 40MHz */
|
||||
#define CAN_PCLK_HZ 40000000UL
|
||||
/* Interval of Can_MainFunction_Handling: 10ms */
|
||||
#define CAN_POLLING_INTERVAL_MS 10UL
|
||||
|
||||
/* clock setting */
|
||||
|
||||
#define CPGWPR *((volatile uint32 *)(0xE6150000UL)) /* CPG Write Protect Register */
|
||||
#define MSTPCR3 *((volatile uint32 *)(0xE6152D0CUL)) /* Module Stop Control Register 3 (MSTPCR3) */
|
||||
#define MSTPCR3_ADDR 0xE6152D0CUL /* Module Stop Control Register 3 (MSTPCR3) */
|
||||
#define CAN_MASK_CLOCK (uint32)(0x01 << 28)
|
||||
#define CANFDCKCR *((volatile uint32 *)(0xE6150878UL)) /* CAN-FD Clock Frequency Control Register */
|
||||
#define CANFDCKCR_ADDR 0xE6150878UL /* CAN-FD Clock Frequency Control Register (CANFDCKCR) */
|
||||
#define CAN_SUPPLY_CLOCK (uint32)(9)
|
||||
|
||||
#define SRCR3 *((volatile uint32 *)(0xE6152C0CUL)) /* Software Reset Control register SRCR3*/
|
||||
#define SRCR3_ADDR (0xE6152C0CUL) /* Address of Software Reset Control register SRCR3*/
|
||||
#define CAN_MASK_RESET (uint32)(0x01 << 28)
|
||||
#define SRSTCLR3 *((volatile uint32 *)(0xE6152C8CUL)) /* Software Reset Clearing register SRSTCLR3*/
|
||||
|
||||
/* Timer unit 0 TMU0 related clock */
|
||||
#define MSTPCR7 *((volatile uint32 *)(0xE6152D1CUL)) /* Module Stop Control Register 3 (MSTPCR7) */
|
||||
#define MSTPCR7_ADDR 0xE6152D1CUL /* Module Stop Control Register 3 (MSTPCR7) */
|
||||
#define TMU0_MASK_CLOCK (uint32)(0x01 << 13)
|
||||
#define TMU_TCR0 (uint32)0x00000020UL
|
||||
|
||||
#define REG_TSTR0 (*((volatile uint8 *) 0xE61E0004UL))
|
||||
#define REG_TCOR0 (*((volatile uint32 *) 0xE61E0008UL))
|
||||
#define REG_TCNT0 (*((volatile uint32 *) 0xE61E000CUL))
|
||||
#define REG_TCR0 (*((volatile uint16 *) 0xE61E0010UL))
|
||||
#define REG_TSTR0_TMU0_ENABLE (0x01U)
|
||||
|
||||
/* Interrupt ID */
|
||||
#define CAN_CHANNEL_INT_ID (uint32)(444) /* INTID: 0x01BC : 412 + 32 */
|
||||
#define CAN_GLOBAL_INT_ID (uint32)(445) /* INTID: 0x01BD : 413 + 32 */
|
||||
#define TMU_CHANNEL0_INT_ID (uint32)(321) /* INTID: 0x0141 : 289 + 32 */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Function Prototypes **
|
||||
*******************************************************************************/
|
||||
|
||||
extern void Clock_Init(void);
|
||||
/* Timer Initialization */
|
||||
extern void Gpt_Init(void);
|
||||
/* Controller Port(s) Initialization */
|
||||
extern void Port_Init(void);
|
||||
/* System Initialization */
|
||||
extern void Mcu_Init(void);
|
||||
/* Sub Initialization */
|
||||
extern void Can_sub_Init(void);
|
||||
/* TMU setting */
|
||||
extern void Gpt_Init(void);
|
||||
|
||||
extern void Timer_irq_end(void);
|
||||
|
||||
#endif /* APP_CAN_DEVICE_SAMPLE_H */
|
||||
|
||||
/*******************************************************************************
|
||||
** End of File **
|
||||
*******************************************************************************/
|
||||
@@ -0,0 +1,319 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = App_CAN_V4M_Sample.c */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2023 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* This application file contains execution sequences to demonstrate the usage*/
|
||||
/* of CAN Driver APIs. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision Control History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.1.14: 18/04/2023 : Initial Version
|
||||
*/
|
||||
/******************************************************************************/
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
|
||||
#include "App_CAN_Device_Sample.h"
|
||||
#include "Interrupt.h"
|
||||
#include "log.h"
|
||||
#include "scif.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Local Definitions **
|
||||
*******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
* Global Variables **
|
||||
*******************************************************************************/
|
||||
/*******************************************************************************
|
||||
** Function Prototypes **
|
||||
*******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
* Function Definitions **
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* Turn off interrupts in the ARM processor
|
||||
* Turn off IRQ and FIQ interrupt
|
||||
*/
|
||||
void cpuirq_disable (void)
|
||||
{
|
||||
__asm("cpsid i\n\t");
|
||||
}
|
||||
/*
|
||||
* Turn on interrupts in the ARM processor
|
||||
* Turn on IRQ interrupt & turn off FIQ interrupt
|
||||
*/
|
||||
void cpuirq_enable (void)
|
||||
{
|
||||
__asm("cpsie i\n\t");
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
System Initialization
|
||||
******************************************************************************/
|
||||
void Clock_Init(void)
|
||||
{
|
||||
|
||||
Console_Print("[V4M:CAN] Clock_Init start\r\n");
|
||||
/**********************************************/
|
||||
/* Setting Clock for CANFD */
|
||||
/**********************************************/
|
||||
/* Get Module stop control register */
|
||||
volatile uint32 *reg = (volatile uint32 *)MSTPCR3_ADDR;
|
||||
|
||||
/* Unlock MSTPCR3 register */
|
||||
CPGWPR = ~((MSTPCR3 & ~(CAN_MASK_CLOCK)));
|
||||
|
||||
/* Enable Supply clock for CANFD module */
|
||||
*reg = (MSTPCR3 & ~(CAN_MASK_CLOCK));
|
||||
/* Wait for the status of MSTPCR3 is correct */
|
||||
while(CAN_MASK_CLOCK & MSTPCR3);
|
||||
|
||||
/* Reset CANFD by writing to 1 to SRCR3 Register */
|
||||
CPGWPR = ~(CAN_MASK_RESET);
|
||||
reg = (volatile uint32 *)SRCR3_ADDR;
|
||||
*reg = CAN_MASK_RESET;
|
||||
while(!(CAN_MASK_RESET & SRCR3));
|
||||
|
||||
/* Write to software reset clearing register to clearing SRCR3 */
|
||||
CPGWPR = ~CAN_MASK_RESET;
|
||||
SRSTCLR3 = CAN_MASK_RESET;
|
||||
while(CAN_MASK_RESET & SRCR3);
|
||||
|
||||
/* Unlock CANFDCKCR register */
|
||||
CPGWPR = ~((CANFDCKCR & (CAN_SUPPLY_CLOCK)));
|
||||
/* Supply clock for CANFD module */
|
||||
reg = (volatile uint32 *)CANFDCKCR_ADDR;
|
||||
*reg = (CANFDCKCR & CAN_SUPPLY_CLOCK);
|
||||
while(!(CAN_SUPPLY_CLOCK & CANFDCKCR));
|
||||
|
||||
/**********************************************/
|
||||
/* Setting internal clock for timer unit TMU0 */
|
||||
/**********************************************/
|
||||
reg = (volatile uint32 *)MSTPCR7_ADDR ;
|
||||
/* Unlock TMU0 register */
|
||||
CPGWPR = ~((MSTPCR7 & ~(TMU0_MASK_CLOCK)));
|
||||
/* Enable supply clock for TMU0 */
|
||||
*reg = (MSTPCR7 & ~(TMU0_MASK_CLOCK));
|
||||
}
|
||||
|
||||
|
||||
/* Perform the System initialization */
|
||||
void Mcu_Init(void)
|
||||
{
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Watchdog Initialization **
|
||||
*******************************************************************************/
|
||||
void Wdg_Init(void)
|
||||
{
|
||||
/* call the function */
|
||||
}
|
||||
/******************************************************************************
|
||||
* Port Initialization **
|
||||
******************************************************************************/
|
||||
|
||||
void Port_Init(void)
|
||||
{
|
||||
volatile uint32 *regval;
|
||||
Console_Print("[V4M:CAN] Port_Init start\r\n");
|
||||
|
||||
/* Set INOUTSEL2 register to select input/ output mode for each TX/RX port */
|
||||
PMMR2 = ~(PFC_INOUTSEL2_RW | (BIT_IN_OUT));
|
||||
regval = (volatile uint32 *)PFC_INOUTSEL2_RW_ADD;
|
||||
*regval = (PFC_INOUTSEL2_RW | (BIT_IN_OUT));
|
||||
|
||||
/*
|
||||
* GP1_03 -------GPIO *
|
||||
* GP2_10 -------CANFD0_TX | GP2_16 -------CANFD4_TX *
|
||||
* GP2_11 -------CANFD0_RX | GP2_17 -------CANFD4_RX *
|
||||
* GP2_00 -------CANFD1_TX | GP2_02 -------CANFD5_TX *
|
||||
* GP2_01 -------CANFD1_RX | GP2_03 -------CANFD5_RX *
|
||||
* GP2_12 -------CANFD2_TX | GP2_07 -------CANFD6_TX *
|
||||
* GP2_13 -------CANFD2_RX | GP2_08 -------CANFD6_RX *
|
||||
* GP2_14 -------CANFD3_TX | GP2_18 -------CANFD7_TX *
|
||||
* GP2_15 -------CANFD3_RX | GP2_19 -------CANFD7_RX *
|
||||
*/
|
||||
/* Set the GPSR2 register */
|
||||
PMMR2 = ~(PFC_GPSR2_RW | (BIT3_0|BIT7|BIT8|BIT11_10|BIT15_12|BIT19_16));
|
||||
regval = (volatile uint32 *)PFC_GPSR2_RW_ADD;
|
||||
*regval = (PFC_GPSR2_RW | (BIT3_0|BIT7|BIT8|BIT11_10|BIT15_12|BIT19_16));
|
||||
|
||||
/* Set the IP0SR2 register */
|
||||
/* IP0SR2[31:28]: CANFD6_TX: 0x1 */
|
||||
/* IP0SR2[15:12]: CANFD5_RX: 0x1 */
|
||||
/* IP0SR2[11:8]: CANFD5_TX: 0x1 */
|
||||
/* IP0SR2[7:4]: CANFD1_RX: 0x1 */
|
||||
/* IP0SR2[3:0]: CANFD1_TX: 0x1 */
|
||||
PMMR2 = ~(PFC_IP0SR2_RW | BIT31_28_15_0);
|
||||
regval = (volatile uint32 *)PFC_IP0SR2_RW_ADD;
|
||||
*regval = (PFC_IP0SR2_RW | BIT31_28_15_0);
|
||||
|
||||
/* Set the IP1SR2 register */
|
||||
/* IP1SR2[31:28]: CANFD3_RX: 0x0 */
|
||||
/* IP1SR2[27:24]: CANFD3_TX: 0x0 */
|
||||
/* IP1SR2[23:20]: CANFD2_RX: 0x0 */
|
||||
/* IP1SR2[19:16]: CANFD2_TX: 0x0 */
|
||||
/* IP1SR2[15:12]: CANFD0_RX: 0x0 */
|
||||
/* IP1SR2[11:8]: CANFD0_TX: 0x0 */
|
||||
/* IP1SR2[3:0]: CANFD6_RX: 0x1 */
|
||||
PMMR2 = ~((PFC_IP1SR2_RW & ~(BIT31_1)) | (BIT0));
|
||||
regval = (volatile uint32 *)PFC_IP1SR2_RW_ADD;
|
||||
*regval = ((PFC_IP1SR2_RW & ~(BIT31_1)) | (BIT0));
|
||||
|
||||
/* Set the IP2SR2 register */
|
||||
/* IP2SR2[15:12]: CANFD7_RX: 0x0 */
|
||||
/* IP2SR2[11:8]: CANFD7_TX: 0x0 */
|
||||
/* IP2SR2[7:4]: CANFD4_RX: 0x0 */
|
||||
/* IP2SR2[3:0]: CANFD4_TX: 0x0 */
|
||||
PMMR2 = ~(PFC_IP2SR2_RW & ~(ALL_BIT));
|
||||
regval = (volatile uint32 *)PFC_IP2SR2_RW_ADD;
|
||||
*regval = (PFC_IP2SR2_RW & ~(ALL_BIT));
|
||||
|
||||
/* Set bellow registers to configure Port GP1_03 as Output with high level value */
|
||||
/* to enable transceiver for channel 0 */
|
||||
/* Set the INOUTSEL1 register to select GP1_03 as Output mode */
|
||||
PMMR1 = ~(PFC_INOUTSEL1_RW | BIT3);
|
||||
regval = (volatile uint32 *)PFC_INOUTSEL1_RW_ADD;
|
||||
*regval = (PFC_INOUTSEL1_RW | BIT3);
|
||||
|
||||
/* Set the GPSR1 register to select GP1_03 as GPIO */
|
||||
PMMR1 = ~(PFC_GPSR1_RW & ~BIT3);
|
||||
regval = (volatile uint32 *)PFC_GPSR1_RW_ADD;
|
||||
*regval = (PFC_GPSR1_RW & ~BIT3);
|
||||
|
||||
/* Set the OUTDTSEL1 register */
|
||||
PMMR1 = ~(PFC_OUTDTSEL1_RW & ~BIT3);
|
||||
regval = (volatile uint32 *)PFC_OUTDTSEL1_RW_ADD;
|
||||
*regval = (PFC_OUTDTSEL1_RW & ~BIT3);
|
||||
|
||||
/* Set the OUTDT1 register */
|
||||
PMMR1 = ~(PFC_OUTDT1_RW | BIT3);
|
||||
regval = (volatile uint32 *)PFC_OUTDT1_RW_ADD;
|
||||
*regval = (PFC_OUTDT1_RW |BIT3);
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
Timer Initialization
|
||||
*****************************************************************************/
|
||||
void Gpt_Init(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void Tmu_Init(uint32 CounterValue)
|
||||
{
|
||||
Console_Print("[V4M:CAN] Tmu_Init start\r\n");
|
||||
REG_TSTR0 &= ~(REG_TSTR0_TMU0_ENABLE);
|
||||
REG_TCR0 |= TMU_TCR0;
|
||||
REG_TCOR0 = 0x00000000UL;
|
||||
REG_TCNT0 = 0x00000000UL;
|
||||
|
||||
REG_TCOR0 = CounterValue;
|
||||
REG_TCNT0 = CounterValue;
|
||||
|
||||
/* To start CH0 timer */
|
||||
REG_TSTR0 |= (uint8) 0x01;
|
||||
|
||||
}
|
||||
|
||||
void Timer_irq_end(void)
|
||||
{
|
||||
REG_TCR0 &= (uint16) 0xFEFF;
|
||||
}
|
||||
|
||||
void Timer_End(void)
|
||||
{
|
||||
/* To stop CH0 timer */
|
||||
REG_TSTR0 &= (uint8) 0x06;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
CAN Module Initialization
|
||||
*******************************************************************************/
|
||||
|
||||
void Can_sub_Init(void)
|
||||
{
|
||||
Console_Print("[V4M:CAN] Can_sub_Init start\r\n");
|
||||
|
||||
/* Disable interrupts in the R52 processor */
|
||||
cpuirq_disable();
|
||||
|
||||
Interrupt_Config();
|
||||
/* Enable CAN channel Interrupt */
|
||||
Interrupt_Enable(CAN_CHANNEL_INT_ID);
|
||||
/* Set CAN channel Interrupt to IRQ (Group 1) */
|
||||
Interrupt_SetGroup(CAN_CHANNEL_INT_ID, 1);
|
||||
|
||||
/* Enable CAN global Interrupt */
|
||||
Interrupt_Enable(CAN_GLOBAL_INT_ID);
|
||||
/* Set CAN global Interrupt to IRQ (Group 1) */
|
||||
Interrupt_SetGroup(CAN_GLOBAL_INT_ID, 1);
|
||||
|
||||
/* Enable the interrupt of TMU0 channel 0 */
|
||||
Interrupt_Enable(TMU_CHANNEL0_INT_ID);
|
||||
Interrupt_SetGroup(TMU_CHANNEL0_INT_ID, 1);
|
||||
|
||||
/* Initialize timer TMU0 */
|
||||
Tmu_Init(3000000);
|
||||
|
||||
/* enable interrupts in the R52 processor */
|
||||
cpuirq_enable();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
End of the file
|
||||
*******************************************************************************/
|
||||
@@ -0,0 +1,114 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = App_CAN_Common_Sample.h */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2021-2023 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* Header file information for application */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: R-Car S4, V4H, V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision Control History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.0.5: 18/04/2023 : Update SampleApp timer interrupt for V4M device.
|
||||
* 1.1.4: 08/08/2022 : Add extern call-out function Can_IcomCallOut().
|
||||
* 1.1.3: 09/05/2022 : Update new method for CAN_CR52_PROC
|
||||
* 1.1.0: 08/04/2022 : Add start stop section APPL_CODE for Timer_Task
|
||||
* 1.0.2: 14/02/2022 : Update SampleApp timer interrupt for V4H device.
|
||||
* 1.0.1: 18/06/2021 : Support CR52 interrupt
|
||||
* 1.0.0: 10/06/2021 : Initial Version
|
||||
*/
|
||||
/******************************************************************************/
|
||||
#ifndef APP_CAN_COMMON_SAMPLE_H
|
||||
#define APP_CAN_COMMON_SAMPLE_H
|
||||
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
|
||||
#include "Can.h"
|
||||
|
||||
/*******************************************************************************
|
||||
** Function Prototypes **
|
||||
*******************************************************************************/
|
||||
|
||||
extern void Clock_Init(void);
|
||||
/* Timer Initialization */
|
||||
extern void Gpt_Init(void);
|
||||
/* Controller Port(s) Initialization */
|
||||
extern void Port_Init(void);
|
||||
/* Watchdog Initialization */
|
||||
extern void Wdg_Init(void);
|
||||
/* System Initialization */
|
||||
extern void Mcu_Init(void);
|
||||
#define CAN_RSCAN_START_SEC_APPL_CODE
|
||||
#include "Can_MemMap.h"
|
||||
/* Timer Task */
|
||||
extern _INTERRUPT_ FUNC(void, CAN_RSCAN_APPL_CODE) Timer_Task(void);
|
||||
|
||||
#if ((CAN_PUBLIC_ICOM_SUPPORT == STD_ON) && \
|
||||
(CAN_ICOM_PAYLOAD_LENGTH_ERROR_SUPPORT == STD_ON))
|
||||
extern FUNC(void, CAN_RSCAN_APPL_CODE) Can_IcomCallOut(uint8 Controller,
|
||||
IcomConfigIdType IcomConfigurationId);
|
||||
#endif
|
||||
|
||||
#define CAN_RSCAN_STOP_SEC_APPL_CODE
|
||||
#include "Can_MemMap.h"
|
||||
/* Sub Initialization */
|
||||
extern void Can_sub_Init(void);
|
||||
|
||||
#if (CAN_CR52_PROC == STD_ON) || defined(CAN_V4H_PROC) || defined(CAN_V4M_PROC)
|
||||
extern void Timer_irq_end(void);
|
||||
extern void Timer_End(void);
|
||||
#endif
|
||||
extern void Tmu_Init(uint32 CounterValue);
|
||||
|
||||
#endif /* APP_CAN_COMMON_SAMPLE_H */
|
||||
|
||||
/*******************************************************************************
|
||||
** End of File **
|
||||
*******************************************************************************/
|
||||
@@ -0,0 +1,140 @@
|
||||
################################################################################
|
||||
# Makefile to compile and build the Sample Application with the AUTOSAR CAN #
|
||||
# Driver Component (For Test purposes only) #
|
||||
# Compatible with GNU Make 3.81 for Win32. #
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# Definitions of global environment variables #
|
||||
################################################################################
|
||||
|
||||
###############################################################################
|
||||
# MULTI CORE SAMPLE
|
||||
#
|
||||
MODULE_USE_MULTIINSTANCE = no
|
||||
MODULE_USE_INSTANCE0 = no
|
||||
MODULE_USE_INSTANCE1 = no
|
||||
|
||||
# FLAGS OF MULTI INSTANCE
|
||||
ifeq ($(MODULE_USE_MULTIINSTANCE),yes)
|
||||
CFLAGS += -D$(MSN_MODULE_NAME)_USE_MULTIINSTANCE
|
||||
ifeq ($(MODULE_USE_INSTANCE0),yes)
|
||||
CFLAGS += -D$(MSN_MODULE_NAME)_USE_INSTANCE0
|
||||
endif
|
||||
ifeq ($(MODULE_USE_INSTANCE1),yes)
|
||||
CFLAGS += -D$(MSN_MODULE_NAME)_USE_INSTANCE1
|
||||
CC_FILES_TO_BUILD += $(STARTUP_$(MICRO_SUB_VARIANT)_CORE_PATH)\src\arm\Interrupt_VectorTable.c
|
||||
CPP_FILES_TO_BUILD += $(STARTUP_$(MICRO_SUB_VARIANT)_CORE_PATH)\src\arm\Interrupt_VectorTable.c
|
||||
endif
|
||||
endif
|
||||
|
||||
# Database to be linked together with the current application
|
||||
# Define 'no' to isolate database from the application
|
||||
MODULE_DBASE_REQ = yes
|
||||
|
||||
# Get the name of the SRECORD file
|
||||
CURRENT_APPL_SRECORD = $(CURRENT_APPL)_$(MICRO_SUB_VARIANT)_Sample
|
||||
|
||||
# Name of the database if generated separately
|
||||
MODULE_DB = $(MODULE_NAME)_PBcfg
|
||||
|
||||
# Map common variables to module variables
|
||||
CAN_MODULE_NAME = $(MODULE_NAME)
|
||||
CAN_MODULE_CORE_PATH = $(MODULE_CORE_PATH)
|
||||
CAN_MODULE_CONFIG_PATH = $(MODULE_CONFIG_PATH)
|
||||
CAN_MODULE_CONFIG_FILE = $(MODULE_CONFIG_FILE)
|
||||
CAN_MODULE_DBASE_REQ = $(MODULE_DBASE_REQ)
|
||||
CAN_MODULE_BSWMDT_CONFIG_FILE = $(MODULE_BSWMDT_CONFIG_FILE)
|
||||
CAN_DEM_CONFIG_FILE = $(DEM_CONFIG_FILE)
|
||||
CAN_ECUM_CONFIG_FILE = $(ECUM_CONFIG_FILE)
|
||||
CAN_OS_CONFIG_FILE = $(OS_CONFIG_FILE)
|
||||
|
||||
################################################################################
|
||||
# Modules to be included in the project #
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# DET Module Core Path
|
||||
#
|
||||
DET_CORE_PATH = $(STUBS_PATH)\Det
|
||||
include $(DET_CORE_PATH)\make\det_defs.mak
|
||||
include $(DET_CORE_PATH)\make\det_rules.mak
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# OS Module Core Path
|
||||
#
|
||||
OS_CORE_PATH = $(STUBS_PATH)\Os
|
||||
include $(OS_CORE_PATH)\make\os_defs.mak
|
||||
include $(OS_CORE_PATH)\make\os_rules.mak
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# DEM Module Core Path
|
||||
#
|
||||
DEM_CORE_PATH = $(STUBS_PATH)\Dem
|
||||
include $(DEM_CORE_PATH)\make\dem_defs.mak
|
||||
include $(DEM_CORE_PATH)\make\dem_rules.mak
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# Scheduler Manager Module Core Path
|
||||
#
|
||||
RTE_CORE_PATH = $(STUBS_PATH)\Rte
|
||||
include $(RTE_CORE_PATH)\make\rte_defs.mak
|
||||
include $(RTE_CORE_PATH)\make\rte_rules.mak
|
||||
|
||||
################################################################################
|
||||
# ECUM Module Core Path
|
||||
#
|
||||
ECUM_CORE_PATH = $(STUBS_PATH)\EcuM
|
||||
include $(ECUM_CORE_PATH)\make\ecum_defs.mak
|
||||
include $(ECUM_CORE_PATH)\make\ecum_rules.mak
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# Driver Component
|
||||
#
|
||||
MODULE_CORE_PATH = $(PROJECT_ROOT)\$(MICRO_FAMILY)\modules\$(MODULE_NAME)
|
||||
include $(MODULE_CORE_PATH)\make\renesas_$(MODULE_NAME)_defs.mak
|
||||
include $(MODULE_CORE_PATH)\make\renesas_$(MODULE_NAME)_check.mak
|
||||
include $(MODULE_CORE_PATH)\make\renesas_$(MODULE_NAME)_rules.mak
|
||||
|
||||
################################################################################
|
||||
# Can_General Module Core Path
|
||||
#
|
||||
CANGENERAL_CORE_PATH = $(STUBS_PATH)\CanGeneral
|
||||
include $(CANGENERAL_CORE_PATH)\make\cangeneral_defs.mak
|
||||
include $(CANGENERAL_CORE_PATH)\make\cangeneral_rules.mak
|
||||
|
||||
################################################################################
|
||||
# CanIf Module Core Path
|
||||
#
|
||||
CANIF_CORE_PATH = $(STUBS_PATH)\CanIf
|
||||
include $(CANIF_CORE_PATH)\make\canif_defs.mak
|
||||
include $(CANIF_CORE_PATH)\make\canif_rules.mak
|
||||
|
||||
################################################################################
|
||||
# Command to generate standalone database #
|
||||
################################################################################
|
||||
$(MODULE_DB).$(S_RECORD_SUFFIX):$(MODULE_DB).$(OBJ_FILE_SUFFIX) $(LNKFILE_DB)
|
||||
@echo *********************************************************************
|
||||
@echo Building the standalone database ...
|
||||
$(DBLINKER) $(LNKFILE_DB) $(LNKFILE_COMMON) \
|
||||
"$(OBJECT_OUTPUT_PATH)\$(MODULE_DB).$(OBJ_FILE_SUFFIX)" \
|
||||
-map="$(OBJECT_OUTPUT_PATH)\$(MODULE_DB).$(MAP_FILE_SUFFIX)" \
|
||||
-o "$(OBJECT_OUTPUT_PATH)\$(MODULE_DB).$(EXE_FILE_SUFFIX)"
|
||||
@echo Generating Motorola S-Record file...
|
||||
$(CONVERTER) $(SFLAGS) "$(OBJECT_OUTPUT_PATH)\$(MODULE_DB).$(EXE_FILE_SUFFIX)" \
|
||||
-o "$(OBJECT_OUTPUT_PATH)\$(MODULE_DB).$(S_RECORD_SUFFIX)"
|
||||
@echo Done ...
|
||||
|
||||
################################################################################
|
||||
# End of the Base Make script #
|
||||
################################################################################
|
||||
File diff suppressed because it is too large
Load Diff
3963
4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/modules/all/src/All.c
Normal file
3963
4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/modules/all/src/All.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,218 @@
|
||||
/*============================================================================*/
|
||||
/* Project = R-Car Gen4 AR19-11 MCAL */
|
||||
/* Module = Can_Version.c */
|
||||
/* SW-VERSION = 1.1.17 */
|
||||
/*============================================================================*/
|
||||
/* COPYRIGHT */
|
||||
/*============================================================================*/
|
||||
/* Copyright(c) 2021-2022 Renesas Electronics Corporation. */
|
||||
/*============================================================================*/
|
||||
/* Purpose: */
|
||||
/* This file contains code for version checking for modules included by CAN */
|
||||
/* Driver */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* */
|
||||
/* Unless otherwise agreed upon in writing between your company and */
|
||||
/* Renesas Electronics Corporation the following shall apply! */
|
||||
/* */
|
||||
/* Warranty Disclaimer */
|
||||
/* */
|
||||
/* There is no warranty of any kind whatsoever granted by Renesas. Any */
|
||||
/* warranty is expressly disclaimed and excluded by Renesas, either expressed */
|
||||
/* or implied, including but not limited to those for non-infringement of */
|
||||
/* intellectual property, merchantability and/or fitness for the particular */
|
||||
/* purpose. */
|
||||
/* */
|
||||
/* Renesas shall not have any obligation to maintain, service or provide bug */
|
||||
/* fixes for the supplied Product(s) and/or the Application. */
|
||||
/* */
|
||||
/* Each User is solely responsible for determining the appropriateness of */
|
||||
/* using the Product(s) and assumes all risks associated with its exercise */
|
||||
/* of rights under this Agreement, including, but not limited to the risks */
|
||||
/* and costs of program errors, compliance with applicable laws, damage to */
|
||||
/* or loss of data, programs or equipment, and unavailability or */
|
||||
/* interruption of operations. */
|
||||
/* */
|
||||
/* Limitation of Liability */
|
||||
/* */
|
||||
/* In no event shall Renesas be liable to the User for any incidental, */
|
||||
/* consequential, indirect, or punitive damage (including but not limited */
|
||||
/* to lost profits) regardless of whether such liability is based on breach */
|
||||
/* of contract, tort, strict liability, breach of warranties, failure of */
|
||||
/* essential purpose or otherwise and even if advised of the possibility of */
|
||||
/* such damages. Renesas shall not be liable for any services or products */
|
||||
/* provided by third party vendors, developers or consultants identified or */
|
||||
/* referred to the User by Renesas in connection with the Product(s) and/or */
|
||||
/* the Application. */
|
||||
/* */
|
||||
/*============================================================================*/
|
||||
/* Environment: */
|
||||
/* Devices: RCarS4, RcarV4H, V4M */
|
||||
/*============================================================================*/
|
||||
|
||||
/*******************************************************************************
|
||||
** Revision History **
|
||||
*******************************************************************************/
|
||||
/*
|
||||
* 1.1.2: 20/04/2022 : Corrected Misra-C rules and QAC warning messages
|
||||
* 1.0.0: 10/06/2021 : Initial version.
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
/** MISRA C Rule Violations **/
|
||||
/******************************************************************************/
|
||||
|
||||
/* 1. MISRA C RULE VIOLATION: */
|
||||
/* Message : (2:0857): [L] Number of macro definitions exceeds 1024 - */
|
||||
/* program does not conform strictly to ISO:C90. */
|
||||
/* Rule : MISRA C:2012 Dir-1.1 */
|
||||
/* Justification : The number of macro depend on module code size. There is */
|
||||
/* no issue when number of macro is over 1024. */
|
||||
/* Verification : However, part of the code is verified manually and */
|
||||
/* it is not having any impact. */
|
||||
/* Reference : Look for START Msg(2:0857)-1 and */
|
||||
/* END Msg(2:0857)-1 tags in the code. */
|
||||
/******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
** Include Section **
|
||||
*******************************************************************************/
|
||||
/* CAN module version information is required for inter module version check */
|
||||
/* MISRA Violation: START Msg(2:0857)-1 */
|
||||
#include "Can.h"
|
||||
/* END Msg(2:0857)-1 */
|
||||
/*
|
||||
* Included for CAN module version information and other modules version
|
||||
* information
|
||||
*/
|
||||
#include "Can_Version.h"
|
||||
|
||||
/* Following is required only when external modules version check is enabled */
|
||||
#if (CAN_VERSION_CHECK_EXT_MODULES == STD_ON)
|
||||
|
||||
/* CanIf module version information is required */
|
||||
/* MISRA Violation: START Msg(2:0857)-1 */
|
||||
#include "CanIf.h"
|
||||
/* END Msg(2:0857)-1 */
|
||||
|
||||
/* DEM module version information is required */
|
||||
/* MISRA Violation: START Msg(2:0857)-1 */
|
||||
#include "Dem.h"
|
||||
/* END Msg(2:0857)-1 */
|
||||
|
||||
#if (CAN_DEV_ERROR_DETECT == STD_ON)
|
||||
/* DET module version information is required only when DET is enabled */
|
||||
/* MISRA Violation: START Msg(2:0857)-1 */
|
||||
#include "Det.h"
|
||||
/* END Msg(2:0857)-1 */
|
||||
#endif
|
||||
|
||||
#if (CAN_WAKEUP_SUPPORT == STD_ON)
|
||||
/*
|
||||
* EcuM module version information is required only when wakeup source is
|
||||
* enabled
|
||||
*/
|
||||
/* MISRA Violation: START Msg(2:0857)-1 */
|
||||
#include "EcuM.h"
|
||||
/* END Msg(2:0857)-1 */
|
||||
#endif
|
||||
|
||||
/* OS module version information is required */
|
||||
#include "Os.h"
|
||||
|
||||
#if (CAN_CRITICAL_SECTION_PROTECTION == STD_ON)
|
||||
/*
|
||||
* RTE module version information is required only when critical section
|
||||
* protection is enabled
|
||||
*/
|
||||
#include "Rte.h"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
** Version Information **
|
||||
*******************************************************************************/
|
||||
/* AUTOSAR release version information */
|
||||
#define CAN_VERSION_C_AR_RELEASE_MAJOR_VERSION\
|
||||
CAN_AR_RELEASE_MAJOR_VERSION_VALUE
|
||||
#define CAN_VERSION_C_AR_RELEASE_MINOR_VERSION\
|
||||
CAN_AR_RELEASE_MINOR_VERSION_VALUE
|
||||
#define CAN_VERSION_C_AR_RELEASE_REVISION_VERSION\
|
||||
CAN_AR_RELEASE_REVISION_VERSION_VALUE
|
||||
|
||||
/* File version information */
|
||||
#define CAN_VERSION_C_SW_MAJOR_VERSION CAN_SW_MAJOR_VERSION_VALUE
|
||||
#define CAN_VERSION_C_SW_MINOR_VERSION CAN_SW_MINOR_VERSION_VALUE
|
||||
|
||||
/*******************************************************************************
|
||||
** Version Check **
|
||||
*******************************************************************************/
|
||||
/* Functionality related to R4.0 */
|
||||
#if (CAN_VERSION_C_AR_RELEASE_MAJOR_VERSION != \
|
||||
CAN_VERSION_AR_RELEASE_MAJOR_VERSION)
|
||||
#error "Can_Version.c : Mismatch in Release Major Version"
|
||||
#endif
|
||||
|
||||
#if (CAN_VERSION_C_AR_RELEASE_MINOR_VERSION != \
|
||||
CAN_VERSION_AR_RELEASE_MINOR_VERSION)
|
||||
#error "Can_Version.c : Mismatch in Release Minor Version"
|
||||
#endif
|
||||
|
||||
#if (CAN_VERSION_C_AR_RELEASE_REVISION_VERSION != \
|
||||
CAN_VERSION_AR_RELEASE_REVISION_VERSION)
|
||||
#error "Can_Version.c : Mismatch in Release Revision Version"
|
||||
#endif
|
||||
|
||||
#if (CAN_VERSION_C_SW_MAJOR_VERSION != CAN_VERSION_SW_MAJOR_VERSION)
|
||||
#error "Can_Version.c : Mismatch in Software Major Version"
|
||||
#endif
|
||||
#if (CAN_VERSION_C_SW_MINOR_VERSION != CAN_VERSION_SW_MINOR_VERSION)
|
||||
#error "Can_Version.c : Mismatch in Software Minor Version"
|
||||
#endif
|
||||
|
||||
#if (CAN_VERSION_CHECK_EXT_MODULES == STD_ON)
|
||||
#if ((CANIF_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(CANIF_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of CanIf.h does not match the expected version"
|
||||
#endif
|
||||
|
||||
#if (CAN_DEV_ERROR_DETECT == STD_ON)
|
||||
#if ((DET_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(DET_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of Det.h does not match the expected version"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ((DEM_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(DEM_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of Dem.h does not match the expected version"
|
||||
#endif
|
||||
|
||||
#if(CAN_CRITICAL_SECTION_PROTECTION == STD_ON)
|
||||
#if ((RTE_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(RTE_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of Rte.h does not match the expected version"
|
||||
#endif
|
||||
#endif /* End of CAN_CRITICAL_SECTION_PROTECTION */
|
||||
|
||||
#if(CAN_WAKEUP_SUPPORT == STD_ON)
|
||||
#if ((ECUM_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(ECUM_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of EcuM.h does not match the expected version"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ((OS_AR_RELEASE_MAJOR_VERSION != CAN_AR_RELEASE_MAJOR_VERSION) || \
|
||||
(OS_AR_RELEASE_MINOR_VERSION != CAN_AR_RELEASE_MINOR_VERSION))
|
||||
#error "The AR version of Os.h does not match the expected version"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif /* (CAN_VERSION_CHECK_EXT_MODULES == STD_ON) */
|
||||
|
||||
/*******************************************************************************
|
||||
** End of File **
|
||||
*******************************************************************************/
|
||||
Reference in New Issue
Block a user