update Woody Build

This commit is contained in:
2025-12-18 19:43:24 +09:00
parent 828de1da0f
commit f97c668d19
29 changed files with 679 additions and 6461 deletions

View File

@@ -0,0 +1 @@
/* Empty stub file for WOODY module */

View File

@@ -0,0 +1 @@
/* Empty stub file for WOODY module */

View File

@@ -0,0 +1,6 @@
/* Empty stub file for WOODY module */
void WOODY_Rte_Dummy(void)
{
}

View File

@@ -0,0 +1,6 @@
/* Empty stub file for WOODY module */
void WOODY_SchM_Dummy(void)
{
}

View File

@@ -1,629 +0,0 @@
/*============================================================================*/
/* 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 **
*******************************************************************************/

View File

@@ -1,86 +0,0 @@
/*============================================================================*/
/* 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 **
*******************************************************************************/

View File

@@ -0,0 +1,21 @@
/*============================================================================*/
/* Environment: */
/* Devices: Rcar V4H, V4M */
/*============================================================================*/
/*******************************************************************************
** Revision History **
*******************************************************************************/
/*
* 1.0.0: 18/12/2025 : Initial version.
*/
/******************************************************************************/
#ifndef WOODY_H
#define WOODY_H
#endif /* WOODY_H */
/*******************************************************************************
** End of File **
*******************************************************************************/

View File

@@ -0,0 +1,21 @@
/*============================================================================*/
/* Environment: */
/* Devices: Rcar V4H, V4M */
/*============================================================================*/
/*******************************************************************************
** Revision History **
*******************************************************************************/
/*
* 1.0.0: 18/12/2025 : Initial version.
*/
/******************************************************************************/
#ifndef WOODY_VERSION_H
#define WOODY_VERSION_H
#endif /* WOODY_VERSION_H */
/*******************************************************************************
** End of File **
*******************************************************************************/

View File

@@ -1,21 +0,0 @@
###############################################################################
# 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

View File

@@ -1,33 +0,0 @@
###############################################################################
# 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 +=

View File

@@ -1,104 +0,0 @@
###############################################################################
# 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)

View File

@@ -0,0 +1,16 @@
###############################################################################
# REGISTRY
#
PREPARE_CONFIGURATION_INTERFACE += WOODY_MODULE_DBASE_REQ
CHECK_VARS_WHICH_ARE_REQUIRED += WOODY_MODULE_DBASE_REQ
###############################################################################
# SPECIFIC
#
ifneq ($(WOODY_MODULE_DBASE_REQ),yes)
ifneq ($(WOODY_MODULE_DBASE_REQ),no)
$(error The value of the variable WOODY_MODULE_DBASE_REQ is not valid. \
Please specify whether database is required or not )
endif
endif

View File

@@ -0,0 +1,33 @@
###############################################################################
# INTERNAL REQUIRED CONFIGURATION
#
###############################################################################
# REQUIRED (in base_make)
#
###############################################################################
# SPECIFIC
#
ifneq ( $(WOODY_MODULE_CONFIG_PATH), )
WOODY_MODULE_PROJECT_PATH = $(WOODY_MODULE_CONFIG_PATH)
else
WOODY_MODULE_PROJECT_PATH = $(WOODY_MODULE_CORE_PATH)\Cfg1
endif
###############################################################################
# REGISTRY
#
SSC_PLUGINS += renesas_WOODY
renesas_WOODY_DEPENDENT_PLUGINS =
CC_INCLUDE_PATH += $(WOODY_MODULE_CORE_PATH)\include \
$(WOODY_MODULE_CORE_PATH)\include\$(MICRO_VARIANT) \
$(WOODY_MODULE_PROJECT_PATH)\include
CC_SRC_PATH += $(WOODY_MODULE_CORE_PATH)\src \
$(WOODY_MODULE_PROJECT_PATH)\src
CPP_INCLUDE_PATH += $(WOODY_MODULE_CORE_PATH)\include \
$(WOODY_MODULE_PROJECT_PATH)\include
ASM_INCLUDE_PATH +=
PREPROCESSOR_DEFINES +=

View File

@@ -0,0 +1,74 @@
###############################################################################
# REGISTRY
#
LIBRARIES_TO_BUILD += renesas_WOODYlib
ifeq ($(MICRO_SUB_VARIANT), S4)
renesas_WOODYlib_FILES = \
$(WOODY_MODULE_CORE_PATH)\src\WOODY.c \
$(WOODY_MODULE_CORE_PATH)\src\WOODY_Version.c
CC_FILES_TO_BUILD += \
$(WOODY_MODULE_CORE_PATH)\src\WOODY.c \
$(WOODY_MODULE_CORE_PATH)\src\WOODY_Version.c
else
renesas_WOODYlib_FILES = \
$(WOODY_MODULE_CORE_PATH)\src\WOODY.c \
$(WOODY_MODULE_CORE_PATH)\src\WOODY_Version.c
CC_FILES_TO_BUILD += \
$(WOODY_MODULE_CORE_PATH)\src\WOODY.c \
$(WOODY_MODULE_CORE_PATH)\src\WOODY_Version.c
endif
OBJECTS_LINK_ONLY +=
ifeq ($(WOODY_MODULE_DBASE_REQ),yes)
#GENERATED_SOURCE_FILES += \
# $(WOODY_MODULE_PROJECT_PATH)\src\WOODY_PBcfg.c \
# $(WOODY_MODULE_PROJECT_PATH)\src\WOODY_Lcfg.c
endif
MAKE_CLEAN_RULES += WOODY_clean_generated_files
MAKE_GENERATE_RULES += generate_WOODY_config
MAKE_DEBUG_RULES += debug_WOODY_makefile
MAKE_CONFIG_RULES += generate_WOODY_config
WOODY_clean_generated_files:
@if exist $(WOODY_MODULE_PROJECT_PATH)\src\*.c del /Q $(WOODY_MODULE_PROJECT_PATH)\src\*.c
@if exist $(WOODY_MODULE_PROJECT_PATH)\include\*.h del /Q $(WOODY_MODULE_PROJECT_PATH)\include\*.h
@if exist $(WOODY_MODULE_PROJECT_PATH)\*.log del /Q $(WOODY_MODULE_PROJECT_PATH)\*.log
###############################################################################
# Command to print debug information #
###############################################################################
debug_WOODY_makefile:
@echo WOODY_MODULE_PROJECT_PATH = $(WOODY_MODULE_PROJECT_PATH)
@echo WOODY_MODULE_CORE_PATH = $(WOODY_MODULE_CORE_PATH)
@echo WOODY_MODULE_CONFIG_PATH = $(WOODY_MODULE_CONFIG_PATH)
@echo WOODY_MODULE_CONFIG_FILE = $(WOODY_MODULE_CONFIG_FILE)
@echo WOODY_MODULE_DBASE_REQ = $(WOODY_MODULE_DBASE_REQ)
@echo TRXML_CONFIG_FILE = $(TRXML_CONFIG_FILE)
@echo WOODY_MODULE_BSWMDT_CONFIG_FILE = $(WOODY_MODULE_BSWMDT_CONFIG_FILE)
@echo WOODY_DEM_CONFIG_FILE = $(WOODY_DEM_CONFIG_FILE)
@echo WOODY_OS_CONFIG_FILE = $(WOODY_OS_CONFIG_FILE)
@echo WOODY_ECUM_CONFIG_FILE = $(WOODY_ECUM_CONFIG_FILE)
@echo MCU_CONFIG_FILE = $(MCU_CONFIG_FILE)
###############################################################################
# Command to trigger the tool and generate configuration files #
###############################################################################
generate_WOODY_config:
$(COMMON_TOOL_FILE) -m $(WOODY_MODULE_NAME) \
-o $(WOODY_MODULE_PROJECT_PATH) \
$(WOODY_MODULE_CONFIG_FILE) \
$(TRXML_CONFIG_FILE) \
$(WOODY_MODULE_BSWMDT_CONFIG_FILE) \
$(MCU_CONFIG_FILE) \
$(WOODY_DEM_CONFIG_FILE) \
$(WOODY_ECUM_CONFIG_FILE) \
$(WOODY_OS_CONFIG_FILE)

View File

@@ -1,212 +0,0 @@
/*============================================================================*/
/* 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 **
*******************************************************************************/

View File

@@ -0,0 +1,21 @@
/*============================================================================*/
/* Environment: */
/* Devices: Rcar V4H, V4M */
/*============================================================================*/
/*******************************************************************************
** Revision History **
*******************************************************************************/
/*
* 1.0.0: 18/12/2025 : Initial version.
*/
/******************************************************************************/
#ifndef APP_WOODY_DEVICE_SAMPLE_H
#define APP_WOODY_DEVICE_SAMPLE_H
#endif /* APP_WOODY_DEVICE_SAMPLE_H */
/*******************************************************************************
** End of File **
*******************************************************************************/

View File

@@ -0,0 +1,6 @@
/* Empty stub file for WOODY module */
void WOODY_App_Dummy(void)
{
}

View 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
*******************************************************************************/

View File

@@ -1,114 +0,0 @@
/*============================================================================*/
/* 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 **
*******************************************************************************/

View File

@@ -0,0 +1,21 @@
/*============================================================================*/
/* Environment: */
/* Devices: Rcar V4H, V4M */
/*============================================================================*/
/*******************************************************************************
** Revision History **
*******************************************************************************/
/*
* 1.0.0: 18/12/2025 : Initial version.
*/
/******************************************************************************/
#ifndef APP_WOODY_COMMON_SAMPLE_H
#define APP_WOODY_COMMON_SAMPLE_H
#endif /* APP_WOODY_COMMON_SAMPLE_H */
/*******************************************************************************
** End of File **
*******************************************************************************/

View File

@@ -0,0 +1,113 @@
################################################################################
# Makefile to compile and build the Sample Application with the AUTOSAR Woody #
# 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
WOODY_MODULE_NAME = $(MODULE_NAME)
WOODY_MODULE_CORE_PATH = $(MODULE_CORE_PATH)
WOODY_MODULE_CONFIG_PATH = $(MODULE_CONFIG_PATH)
WOODY_MODULE_CONFIG_FILE = $(MODULE_CONFIG_FILE)
WOODY_MODULE_DBASE_REQ = $(MODULE_DBASE_REQ)
WOODY_MODULE_BSWMDT_CONFIG_FILE = $(MODULE_BSWMDT_CONFIG_FILE)
WOODY_DEM_CONFIG_FILE = $(DEM_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
################################################################################
# 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
################################################################################
# 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 #
################################################################################

View File

@@ -0,0 +1,8 @@
/*******************************************************************************
** Include Section **
*******************************************************************************/
#include "App_Woody_Common_Sample.h"
int main(void)
{
}

View File

@@ -1,218 +0,0 @@
/*============================================================================*/
/* 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 **
*******************************************************************************/

View File

@@ -0,0 +1,6 @@
/* Empty stub file for WOODY module */
void WOODY_Dummy(void)
{
}

View File

@@ -0,0 +1,6 @@
/* Empty stub file for WOODY module */
void WOODY_Version_Dummy(void)
{
}