Compare commits

...

26 Commits

Author SHA1 Message Date
a6e5b4ae43 del 2025-12-24 14:51:40 +09:00
b5c7527b8d update 2025-12-18 20:23:38 +09:00
82e5a43322 update 2025-12-18 20:20:58 +09:00
581206595f update 2025-12-18 20:11:45 +09:00
fa99c032e0 update 2025-12-18 19:54:01 +09:00
62f7a8bef3 update 2025-12-18 19:46:52 +09:00
c79fcbae2d update 2025-12-18 19:45:46 +09:00
f97c668d19 update Woody Build 2025-12-18 19:43:24 +09:00
828de1da0f update 2025-12-18 12:40:09 +09:00
e993fe9ce7 add 2025-12-17 14:42:32 +09:00
9fceb47af1 add 2025-12-17 13:30:59 +09:00
a569ac2b69 update 2025-12-10 09:39:49 +09:00
80928becdb update 2025-12-08 13:11:04 +09:00
f361878aa2 add 2025-12-08 12:30:41 +09:00
f93f468214 Merge branch 'main' of http://solunets.synology.me:64321/woody/Gen4_R-Car_MCAL
# Conflicts:
#	4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/V4M/common_family/make/arm/WoodySampleApp.bat
2025-12-08 12:27:25 +09:00
f5f11f1428 test 2025-12-08 12:22:56 +09:00
2dca7a378f Merge branch 'main' of http://solunets.synology.me:64321/woody/Gen4_R-Car_MCAL 2025-12-08 12:21:06 +09:00
bee1e7f899 test 2025-12-08 12:20:48 +09:00
f1f42f71b5 Merge branch 'main' of http://solunets.synology.me:64321/woody/Gen4_R-Car_MCAL
# Conflicts:
#	4_Trunk/MCAL-v4h-1_19.3.0.D_release/rel/V4H/common_family/make/arm/SampleApp.bat
#	4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/V4M/common_family/make/arm/SampleApp.bat
2025-12-08 12:14:30 +09:00
b33605127b Merge branch 'main' of http://solunets.synology.me:64321/woody/Gen4_R-Car_MCAL
# Conflicts:
#	4_Trunk/MCAL-v4h-1_19.3.0.D_release/rel/V4H/common_family/make/arm/SampleApp.bat
#	4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/V4M/common_family/make/arm/SampleApp.bat
2025-12-08 12:13:20 +09:00
84cc68d38b Merge branch 'main' of http://solunets.synology.me:64321/woody/Gen4_R-Car_MCAL
# Conflicts:
#	4_Trunk/MCAL-v4h-1_19.3.0.D_release/rel/V4H/common_family/make/arm/SampleApp.bat
#	4_Trunk/MCAL-v4m-1_19.0.11.D_release/rel/V4M/common_family/make/arm/SampleApp.bat
2025-12-08 12:09:59 +09:00
2dff00926c update 2025-12-08 11:47:52 +09:00
614b4c922e 컴파일 path 설정 2025-11-19 11:10:57 +09:00
62b20d068d add F/W Write TTL Script. 2025-11-03 14:29:44 +09:00
4b9bf890b4 update 2025-10-29 16:55:01 +09:00
150637ffa9 컴파일 경로 수정 2025-10-01 20:03:02 +09:00
42 changed files with 3151 additions and 2 deletions

View File

@@ -53,7 +53,7 @@ SET CPU2_OPTION=CPU2_NOT_USED
SET CPU3_OPTION=CPU3_NOT_USED
IF "%COMPILER_INSTALL_DIR%"=="" (
SET COMPILER_INSTALL_DIR=C:\ARMCompiler6.16.2\bin
SET COMPILER_INSTALL_DIR=C:\Program Files\ArmCompilerforEmbeddedFuSa6.16.1\bin
)
IF /i "%1"=="DisplEnv" (

View File

@@ -0,0 +1,382 @@
@echo off
setlocal EnableDelayedExpansion
REM ==============================================================================
REM This script sequentially calls SampleApp.bat to run the 'generate' step
REM for all 16 supported modules. It takes 6 arguments from the command line
REM (or uses defaults if no arguments are provided).
REM ==============================================================================
:: <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %~n0)
set Filename=%~n0
:: ----------------------------------------
:: 1. Argument Check and Assignment
:: ----------------------------------------
:: ù <20><>° <20>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> Help ȣ<><C8A3>
IF /i "%1"=="" (
GOTO :Help
)
:: <20>ʼ<EFBFBD> 6<><36> <20>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ҵ<EFBFBD><D2B4>մϴ<D5B4>.
SET MODULE_NAME=%1
SET AUTOSAR_VERSION=%2
SET DEVICE=%3
SET MULTI_CORE=%4
SET MCAL_LOG_PRINT=%5
SET BUILD_OPTION=%6
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD> <20>μ<EFBFBD><CEBC><EFBFBD> ARGS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
SET ARGS=%AUTOSAR_VERSION% %DEVICE% %MULTI_CORE% %MCAL_LOG_PRINT% %BUILD_OPTION%
ECHO ==================================================================
ECHO Starting Sequential Module Generation using %Filename%.bat
ECHO Target Module: %MODULE_NAME%
ECHO Configuration: %ARGS%
ECHO Total Modules in list: 16
ECHO ==================================================================
:: ----------------------------------------
:: 2. Supported Module List and Validation
:: ----------------------------------------
:: <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (SampleApp.bat<61><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
SET SUPPORTED_MODULES=Fls Dio Port Mcu Gpt Wdg Spi Can Eth Cddiccom Cddiic Cddcrc Cddths Cddemm Cddipmmu cddrfso Woody
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ALL<4C><4C> <20><><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
IF /I "%MODULE_NAME%"=="ALL" (
GOTO :GENERATE_ALL
)
:: ALL<4C><4C> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȿ<EFBFBD><C8BF> <20>˻<EFBFBD>
SET IS_VALID_MODULE=0
FOR %%M IN (%SUPPORTED_MODULES%) DO (
IF /I "%%M"=="%MODULE_NAME%" (
SET IS_VALID_MODULE=1
GOTO :CHECK_DONE
)
)
:CHECK_DONE
IF "%IS_VALID_MODULE%"=="0" (
GOTO :INVALID_MODULE
)
:: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
GOTO :GENERATE_SINGLE
:GENERATE_ALL
REM ----------------------------------------
REM 1. Fls Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Fls module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Fls %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Fls_FAIL
ECHO Fls generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 2. Dio Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Dio module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Dio %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Dio_FAIL
ECHO Dio generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 3. Port Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Port module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Port %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Port_FAIL
ECHO Port generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 4. Mcu Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Mcu module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Mcu %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Mcu_FAIL
ECHO Mcu generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 5. Gpt Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Gpt module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Gpt %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Gpt_FAIL
ECHO Gpt generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 6. Wdg Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Wdg module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Wdg %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Wdg_FAIL
ECHO Wdg generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 7. Spi Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Spi module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Spi %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Spi_FAIL
ECHO Spi generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 8. Can Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Can module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Can %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Can_FAIL
ECHO Can generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 9. Eth Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Eth module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Eth %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Eth_FAIL
ECHO Eth generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 10. Cddiccom Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddiccom module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddiccom %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddiccom_FAIL
ECHO Cddiccom generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 11. Cddiic Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddiic module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddiic %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddiic_FAIL
ECHO Cddiic generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 12. Cddcrc Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddcrc module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddcrc %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddcrc_FAIL
ECHO Cddcrc generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 13. Cddths Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddths module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddths %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddths_FAIL
ECHO Cddths generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 14. Cddemm Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddemm module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddemm %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddemm_FAIL
ECHO Cddemm generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 15. Cddipmmu Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddipmmu module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddipmmu %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddipmmu_FAIL
ECHO Cddipmmu generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 16. cddrfso Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for cddrfso module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat cddrfso %ARGS%
IF NOT ERRORLEVEL 0 GOTO :cddrfso_FAIL
ECHO cddrfso generation complete.
ECHO ------------------------------------------------------------------
GOTO :SUCCESS_ALL
:GENERATE_SINGLE
ECHO.
ECHO Starting generation for %MODULE_NAME% module...
ECHO ------------------------------------------------------------------
:: SampleApp.bat ȣ<><C8A3>
CALL .\SampleApp.bat %MODULE_NAME% %ARGS%
:: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30> <20>ƴϸ<C6B4> (<28><>, 1 <20>̻<EFBFBD><CCBB≯<EFBFBD>) <20><><EFBFBD>з<EFBFBD> <20>̵<EFBFBD>
IF NOT ERRORLEVEL 0 GOTO :FAIL_SINGLE
ECHO %MODULE_NAME% Call SampleApp.bat Complete.
ECHO ------------------------------------------------------------------
GOTO :SUCCESS_SINGLE
:INVALID_MODULE
ECHO.
ECHO ==================================================================
ECHO [ERROR] Invalid module name specified: %MODULE_NAME%
ECHO Supported modules are: %SUPPORTED_MODULES%
ECHO ==================================================================
EXIT /B 1
:Fls_FAIL
ECHO.
ECHO [FAILURE] Fls module generation failed. Aborting process.
GOTO :FAIL_END
:Dio_FAIL
ECHO.
ECHO [FAILURE] Dio module generation failed. Aborting process.
GOTO :FAIL_END
:Port_FAIL
ECHO.
ECHO [FAILURE] Port module generation failed. Aborting process.
GOTO :FAIL_END
:Mcu_FAIL
ECHO.
ECHO [FAILURE] Mcu module generation failed. Aborting process.
GOTO :FAIL_END
:Gpt_FAIL
ECHO.
ECHO [FAILURE] Gpt module generation failed. Aborting process.
GOTO :FAIL_END
:Wdg_FAIL
ECHO.
ECHO [FAILURE] Wdg module generation failed. Aborting process.
GOTO :FAIL_END
:Spi_FAIL
ECHO.
ECHO [FAILURE] Spi module generation failed. Aborting process.
GOTO :FAIL_END
:Can_FAIL
ECHO.
ECHO [FAILURE] Can module generation failed. Aborting process.
GOTO :FAIL_END
:Eth_FAIL
ECHO.
ECHO [FAILURE] Eth module generation failed. Aborting process.
GOTO :FAIL_END
:Cddiccom_FAIL
ECHO.
ECHO [FAILURE] Cddiccom module generation failed. Aborting process.
GOTO :FAIL_END
:Cddiic_FAIL
ECHO.
ECHO [FAILURE] Cddiic module generation failed. Aborting process.
GOTO :FAIL_END
:Cddcrc_FAIL
ECHO.
ECHO [FAILURE] Cddcrc module generation failed. Aborting process.
GOTO :FAIL_END
:Cddths_FAIL
ECHO.
ECHO [FAILURE] Cddths module generation failed. Aborting process.
GOTO :FAIL_END
:Cddemm_FAIL
ECHO.
ECHO [FAILURE] Cddemm module generation failed. Aborting process.
GOTO :FAIL_END
:Cddipmmu_FAIL
ECHO.
ECHO [FAILURE] Cddipmmu module generation failed. Aborting process.
GOTO :FAIL_END
:cddrfso_FAIL
ECHO.
ECHO [FAILURE] cddrfso module generation failed. Aborting process.
GOTO :FAIL_END
:FAIL_SINGLE
ECHO.
ECHO [FAILURE] %MODULE_NAME% module generation failed. Aborting process.
EXIT /B 1
:FAIL_END
ECHO.
ECHO ==================================================================
ECHO [FAILURE] Module generation failed during sequence. Aborting process.
ECHO ==================================================================
EXIT /B 1
:SUCCESS_SINGLE
ECHO.
ECHO ==================================================================
ECHO [SUCCESS] %MODULE_NAME% module completed generation successfully.
ECHO ==================================================================
GOTO :END
:SUCCESS_ALL
ECHO.
ECHO ==================================================================
ECHO [SUCCESS] All 16 modules completed generation successfully.
ECHO ==================================================================
GOTO :END
:Help
ECHO.
ECHO ==================================================================
ECHO [HELP] Usage: %Filename%.bat ^<MODULE/ALL^^> ^<AR_VERSION^^> ^<DEVICE^*^> ^<MULTI_CORE^> ^<LOG_PRINT^> ^<BUILD_OPTION^>
ECHO.
ECHO Note: All 6 arguments must be provided.
ECHO.
ECHO MODULE/ALL - Module name (e.g., Fls) or "ALL" for sequential run.
ECHO AR_VERSION - AUTOSAR Version (e.g., R19-11)
ECHO DEVICE - Target device (e.g., V4M, V4H, V5H)
ECHO MULTI_CORE - Yes/No
ECHO LOG_PRINT - Yes/No
ECHO BUILD_OPTION - all/clean/generate/make
ECHO.
ECHO [EXAMPLE] Fls R19-11 V4H No Yes generate
ECHO .%Filename%.bat Fls R19-11 V4H No Yes generate
ECHO.
ECHO [EXAMPLE] All R19-11 V4M No Yes make
ECHO .%Filename%.bat ALL R19-11 V4M No Yes make
ECHO ==================================================================
EXIT /B 1
:END
endlocal

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

@@ -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

@@ -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

@@ -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 #
################################################################################

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

@@ -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

@@ -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)
{
}

View File

@@ -0,0 +1,747 @@
@echo off
setlocal EnableDelayedExpansion
set Filename=%~n0
echo ***************************************************************************
echo Run %Filename% ...
echo ***************************************************************************
echo.
IF "%GNUMAKE%" == "" (GOTO :noGnuMake) ELSE (GOTO :GnuMake)
:noGnuMake
echo If you have make.exe located in a different directory
echo then your standard path, please add a local
echo user variable named 'GNUMAKE' to your Windows
echo environment variables and specified the location
echo of make.exe by using this variable.
echo.
echo Your current path variable is
echo.
echo %path%
echo.
echo ***************************************************************************
GOTO :continue
:GnuMake
set path=%GNUMAKE%
echo Found user variable GNUMAKE ...
echo ***************************************************************************
echo Temporary modify path variable to be sure to use correct make, shell...
echo path = %path%
echo ***************************************************************************
GOTO :continue
:setmoduleOneGroup
SET MODULE=Port
SET MODULE_PCL=P
SET CDD_MSN_NAME=t
SET CDD_MSN_NAME_FC=T
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Can
SET MODULE_PCL=C
SET CDD_MSN_NAME=n
SET CDD_MSN_NAME_FC=N
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Fls
SET MODULE_PCL=F
SET CDD_MSN_NAME=s
SET CDD_MSN_NAME_FC=S
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Dio
SET MODULE_PCL=D
SET CDD_MSN_NAME=o
SET CDD_MSN_NAME_FC=O
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Mcu
SET MODULE_PCL=M
SET CDD_MSN_NAME=u
SET CDD_MSN_NAME_FC=U
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
echo !CONFIG_FOLDER!
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
exit /b 0
:setmoduleTwoGroup
SET MODULE=Wdg
SET MODULE_PCL=W
SET CDD_MSN_NAME=g
SET CDD_MSN_NAME_FC=G
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Spi
SET MODULE_PCL=S
SET CDD_MSN_NAME=i
SET CDD_MSN_NAME_FC=I
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Eth
SET MODULE_PCL=E
SET CDD_MSN_NAME=h
SET CDD_MSN_NAME_FC=H
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
exit /b 0
:setmoduleThreeGroup
SET MODULE=Cddiccom
SET MODULE_PCL=C
SET CDD_MSN_NAME=iccom
SET CDD_MSN_NAME_FC=I
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Cddiic
SET MODULE_PCL=C
SET CDD_MSN_NAME=iic
SET CDD_MSN_NAME_FC=I
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Cddcrc
SET MODULE_PCL=C
SET CDD_MSN_NAME=crc
SET CDD_MSN_NAME_FC=C
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Cddths
SET MODULE_PCL=C
SET CDD_MSN_NAME=ths
SET CDD_MSN_NAME_FC=T
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=Cddemm
SET MODULE_PCL=C
SET CDD_MSN_NAME=emm
SET CDD_MSN_NAME_FC=E
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
echo !CONFIG_FOLDER!
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
exit /b 0
:setmoduleFourGroup
SET MODULE=Cddipmmu
SET MODULE_PCL=C
SET CDD_MSN_NAME=ipmmu
SET CDD_MSN_NAME_FC=I
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
SET MODULE=cddrfso
SET MODULE_PCL=C
SET CDD_MSN_NAME=rfso
SET CDD_MSN_NAME_FC=R
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
exit /b 0
:continue
SETLOCAL
:: set root folder
SET ROOT_FOLDER=..\..\..\..\..
::Specify the Family and Micro Variant (not change)
SET MICRO_FAMILY=rel
SET MICRO_VARIANT=V4M
SET MICRO_SOC=RCar
::CPU Option
:: CPUn_OPTION is CPUn_USED when the CPUn used
SET CPU0_OPTION=CPU0_USED
SET CPU1_OPTION=CPU1_NOT_USED
SET CPU2_OPTION=CPU2_NOT_USED
SET CPU3_OPTION=CPU3_NOT_USED
IF "%COMPILER_INSTALL_DIR%"=="" (
SET COMPILER_INSTALL_DIR=C:\Program Files\ArmCompilerforEmbeddedFuSa6.16.1\bin
)
IF /i "%1"=="DisplEnv" (
GOTO :Display_Env
)
IF /i "%1"=="" (
GOTO :Help
)
SET MODULE=%1
IF "%2" == "4.3.1" (
SET AUTOSAR_VERSION=4_3_1
)ELSE (
IF "%2" == "4.2.2" (
SET AUTOSAR_VERSION=4_2_2
)ELSE (
IF "%2" == "R19-11" (
SET AUTOSAR_VERSION=19_11
)ELSE (
SET AUTOSAR_VERSION=%2
)
)
)
SET DEVICE_NAME=%3
SET MODULE_USE_MULTIINSTANCE=%4
IF "%~4" == "" (
SET MODULE_USE_MULTIINSTANCE=no
)ELSE (
IF /I "%MODULE_USE_MULTIINSTANCE%" NEQ "yes" IF /I "%MODULE_USE_MULTIINSTANCE%" NEQ "no" (
GOTO :Help
)
)
SET MODULE_USE_LOG_PRINT=%5
IF "%~5" == "" (
SET MODULE_USE_LOG_PRINT=yes
)ELSE (
IF /I "%MODULE_USE_LOG_PRINT%" NEQ "yes" IF /I "%MODULE_USE_LOG_PRINT%" NEQ "no" (
GOTO :Help
)
)
SET BULID_OPTION=%6
SET COMPILER_NAME="arm6.16.2"
SET OBJ_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%DEVICE_NAME%\obj\arm
:: Check and create required folder
if not exist "%OBJ_FOLDER%" (
mkdir "%OBJ_FOLDER%"
)
IF "%AUTOSAR_VERSION%" NEQ "4_3_1" (
IF "%AUTOSAR_VERSION%" NEQ "4_2_2" (
IF "%AUTOSAR_VERSION%" NEQ "19_11" (
GOTO :Help
)
)
)
IF "%3" NEQ "V4M" (
GOTO :Help
)
::To Set the Sub Variant based on the Device.
CALL :SUB_VARIANT
::To Set the Max CPU Number on the Device.
CALL :TOTAL_CPU_NUMBER
:: To convert the case of MODULE_USE_MULTIINSTANCE name entered to Lowercase for Display
CALL :CONV_VAR_to_LOC MODULE_USE_MULTIINSTANCE
:: To convert the case of Module name entered to Uppercase for Display
CALL :CONV_VAR_to_LOC MODULE
SET MODULE_PCL=%MODULE:~0,1%
CALL :CONV_VAR_to_UPC MODULE_PCL
:: Pre-process for CDD and MCAL module
SET CDD_MSN_NAME=%MODULE:~3,-1%%MODULE:~-1,1%
CALL :CONV_VAR_to_LOC CDD_MSN_NAME
SET CDD_MSN_NAME_FC=%MODULE:~3,1%
CALL :CONV_VAR_to_UPC CDD_MSN_NAME_FC
:: Select MCAL or CDD module to make Msn naming
If not %MODULE:cdd=%==%MODULE% (
SET MSN_PREFIX=CDD_
SET MSN_FIRST_CHARACTER=%CDD_MSN_NAME_FC%
SET MSN_FULL_NAME=%CDD_MSN_NAME%
)else (
SET MSN_PREFIX=
SET MSN_FIRST_CHARACTER=%MODULE_PCL%
SET MSN_FULL_NAME=%MODULE%
)
SET MODULE_PCL=%MODULE_PCL%%MODULE:~1%
:: Assign to global variable (e.g. Can, Dio, CDD_Iccom, CDD_Iic,...)
SET MSN_NAME_UFC=%MSN_PREFIX%%MSN_FIRST_CHARACTER%%MSN_FULL_NAME:~1%
SET CONFIG_FOLDER=%ROOT_FOLDER%\%MICRO_FAMILY%\modules\%MODULE%\sample_application\%MICRO_SUB_VARIANT%\%AUTOSAR_VERSION%
If not exist "%ROOT_FOLDER%" (
echo Error! Root Folder %ROOT_FOLDER% doesn't exist.
GOTO :End
)
If not exist "%COMPILER_INSTALL_DIR%" (
echo Error! Compiler installed directory %COMPILER_INSTALL_DIR% doesn't exist.
GOTO :End
)
If not exist "%CONFIG_FOLDER%" (
echo Error! Folder %CONFIG_FOLDER% doesn't exist.
GOTO :End
)
IF /I "%MODULE_USE_LOG_PRINT%" EQU "yes" (
SET USE_LOG_PRINT=yes
)
SET OPTION=no
:: To convert the case of Module name entered to Uppercase for Display
CALL :CONV_VAR_to_UPC MODULE
echo.
echo ===========================================================================
echo BUILDING SAMPLE APPLICATION: %MODULE%
echo ===========================================================================
:: To convert the case of Module name entered to Lowercase for file path using
CALL :CONV_VAR_to_LOC MODULE
IF "%BULID_OPTION%"=="clean" (
SET OPTION=yes
echo ===========================================================================
echo CLEAN ONLY
echo ===========================================================================
make -f common.mak clean
make -f common.mak clean_all
)
IF "%BULID_OPTION%"=="generate" (
SET OPTION=yes
echo ===========================================================================
echo CLEAN AND RE-GENERATE
echo ===========================================================================
make -f common.mak clean
make -f common.mak clean_all
make -f common.mak generate_%MODULE%_config || GOTO :eof
)
IF "%BULID_OPTION%"=="allgenerate" (
SET OPTION=yes
echo ===========================================================================
echo CLEAN AND All-GENERATE
echo ===========================================================================
call :setmoduleOneGroup
call :setmoduleTwoGroup
call :setmoduleThreeGroup
call :setmoduleFourGroup
)
IF "%BULID_OPTION%"=="make" (
SET OPTION=yes
echo ===========================================================================
echo MAKE ONLY
echo ===========================================================================
rem make -f common.mak debug_base_make
make -f common.mak App_%MODULE%_%MICRO_SUB_VARIANT%_Sample.elf
)
IF "%OPTION%"=="no" (
echo ===========================================================================
echo CLEAN AND RE-BUILD
echo ===========================================================================
make -f common.mak clean
make -f common.mak clean_all
rem make -f common.mak debug_base_make
make -f common.mak generate_%MODULE%_config || GOTO :eof
make -f common.mak App_%MODULE%_%MICRO_SUB_VARIANT%_Sample.elf
)
echo.
echo ===========================================================================
echo BUILDING COMPLETED
echo ===========================================================================
GOTO :eof
:CONV_VAR_to_LOC
FOR %%z IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO CALL set %~1=%%%~1:%%z=%%z%%
GOTO :eof
:CONV_VAR_to_UPC
FOR %%z IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO CALL set %~1=%%%~1:%%z=%%z%%
GOTO :eof
:Help
echo.
echo ===========================================================================
echo HELP TO BUILD SAMPLE APPLICATION
echo ===========================================================================
echo Usage:
echo.
echo SampleApp.bat MODULE AUTOSAR_VERSION DEVICE MULTIINSTANCE MCAL_LOG_PRINT BUILD_OPTION
echo.
echo MODULE (*) - Module Short Name to be generated e.g. Port, Can, ...
echo Supported module: Fls, Dio, Port, Mcu, Gpt, Wdg, Spi,
echo. Can, Eth, Cddiccom, Cddiic, Cddcrc, Cddths, Cddemm
echo. Cddipmmu, cddrfso
echo.
echo.AUTOSAR_VERSION (*) - AUTOSAR version to be compiled which is available :
echo. R19-11
echo.
echo DEVICE (*) - Device Name to be compiled which is available :
echo. V4M : V4M
echo.
echo MULTIINSTANCE - Yes : Build sample application with multi instances (applicable for: none)
echo No or unset(null) : Build sample application with single instance (applicable for: all supported modules)
echo.
echo MCAL_LOG_PRINT - Yes or unset(null) : Output MCAL driver's log to console when using Console_Print() function in Sample Application
echo No : Do not output MCAL driver's log to console when using Console_Print() function in Sample Application
echo.
echo BUILD_OPTION - unset(null) : Build with all processes.
echo clean : Only delete object files.
echo generate : Only generation tool done.
echo make : Only compile and link (use already generated files)
echo allgenerate : All generation tool done.
echo.
echo DisplEnv - Display Useful Variable for debug
echo.
echo Note: (*) is mandantory input argument
echo ===========================================================================
goto :END
:SUB_VARIANT
FOR %%A IN (V4M) Do IF "%DEVICE_NAME%" == "%%A" SET MICRO_SUB_VARIANT=V4M
:TOTAL_CPU_NUMBER
FOR %%A IN (V4M) Do IF "%DEVICE_NAME%" == "%%A" SET TOTAL_CPU=1
GOTO :eof
:Display_Env
echo Display Env Variables
echo =================================
echo DEVICE_NAME=%DEVICE_NAME%
echo AUTOSAR_VERSION=%AUTOSAR_VERSION%
echo MODULE_NAME=%MODULE%
echo =================================
:End
ENDLOCAL
@echo on

View File

@@ -53,7 +53,7 @@ SET CPU2_OPTION=CPU2_NOT_USED
SET CPU3_OPTION=CPU3_NOT_USED
IF "%COMPILER_INSTALL_DIR%"=="" (
SET COMPILER_INSTALL_DIR=C:\ARMCompiler6.16.2\bin
SET COMPILER_INSTALL_DIR=C:\Program Files\ArmCompilerforEmbeddedFuSa6.16.2\bin
)
IF /i "%1"=="DisplEnv" (

View File

@@ -0,0 +1,382 @@
@echo off
setlocal EnableDelayedExpansion
REM ==============================================================================
REM This script sequentially calls SampleApp.bat to run the 'generate' step
REM for all 16 supported modules. It takes 6 arguments from the command line
REM (or uses defaults if no arguments are provided).
REM ==============================================================================
:: <20><>ũ<EFBFBD><C5A9>Ʈ <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %~n0)
set Filename=%~n0
:: ----------------------------------------
:: 1. Argument Check and Assignment
:: ----------------------------------------
:: ù <20><>° <20>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> Help ȣ<><C8A3>
IF /i "%1"=="" (
GOTO :Help
)
:: <20>ʼ<EFBFBD> 6<><36> <20>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ҵ<EFBFBD><D2B4>մϴ<D5B4>.
SET MODULE_NAME=%1
SET AUTOSAR_VERSION=%2
SET DEVICE=%3
SET MULTI_CORE=%4
SET MCAL_LOG_PRINT=%5
SET BUILD_OPTION=%6
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD> <20>μ<EFBFBD><CEBC><EFBFBD> ARGS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
SET ARGS=%AUTOSAR_VERSION% %DEVICE% %MULTI_CORE% %MCAL_LOG_PRINT% %BUILD_OPTION%
ECHO ==================================================================
ECHO Starting Sequential Module Generation using %Filename%.bat
ECHO Target Module: %MODULE_NAME%
ECHO Configuration: %ARGS%
ECHO Total Modules in list: 16
ECHO ==================================================================
:: ----------------------------------------
:: 2. Supported Module List and Validation
:: ----------------------------------------
:: <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (SampleApp.bat<61><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
SET SUPPORTED_MODULES=Fls Dio Port Mcu Gpt Wdg Spi Can Eth Cddiccom Cddiic Cddcrc Cddths Cddemm Cddipmmu cddrfso Woody
:: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ALL<4C><4C> <20><><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
IF /I "%MODULE_NAME%"=="ALL" (
GOTO :GENERATE_ALL
)
:: ALL<4C><4C> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȿ<EFBFBD><C8BF> <20>˻<EFBFBD>
SET IS_VALID_MODULE=0
FOR %%M IN (%SUPPORTED_MODULES%) DO (
IF /I "%%M"=="%MODULE_NAME%" (
SET IS_VALID_MODULE=1
GOTO :CHECK_DONE
)
)
:CHECK_DONE
IF "%IS_VALID_MODULE%"=="0" (
GOTO :INVALID_MODULE
)
:: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
GOTO :GENERATE_SINGLE
:GENERATE_ALL
REM ----------------------------------------
REM 1. Fls Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Fls module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Fls %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Fls_FAIL
ECHO Fls generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 2. Dio Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Dio module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Dio %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Dio_FAIL
ECHO Dio generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 3. Port Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Port module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Port %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Port_FAIL
ECHO Port generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 4. Mcu Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Mcu module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Mcu %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Mcu_FAIL
ECHO Mcu generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 5. Gpt Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Gpt module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Gpt %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Gpt_FAIL
ECHO Gpt generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 6. Wdg Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Wdg module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Wdg %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Wdg_FAIL
ECHO Wdg generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 7. Spi Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Spi module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Spi %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Spi_FAIL
ECHO Spi generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 8. Can Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Can module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Can %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Can_FAIL
ECHO Can generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 9. Eth Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Eth module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Eth %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Eth_FAIL
ECHO Eth generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 10. Cddiccom Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddiccom module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddiccom %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddiccom_FAIL
ECHO Cddiccom generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 11. Cddiic Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddiic module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddiic %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddiic_FAIL
ECHO Cddiic generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 12. Cddcrc Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddcrc module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddcrc %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddcrc_FAIL
ECHO Cddcrc generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 13. Cddths Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddths module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddths %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddths_FAIL
ECHO Cddths generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 14. Cddemm Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddemm module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddemm %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddemm_FAIL
ECHO Cddemm generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 15. Cddipmmu Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for Cddipmmu module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat Cddipmmu %ARGS%
IF NOT ERRORLEVEL 0 GOTO :Cddipmmu_FAIL
ECHO Cddipmmu generation complete.
ECHO ------------------------------------------------------------------
REM ----------------------------------------
REM 16. cddrfso Module
REM ----------------------------------------
ECHO.
ECHO Starting generation for cddrfso module...
ECHO ------------------------------------------------------------------
CALL .\SampleApp.bat cddrfso %ARGS%
IF NOT ERRORLEVEL 0 GOTO :cddrfso_FAIL
ECHO cddrfso generation complete.
ECHO ------------------------------------------------------------------
GOTO :SUCCESS_ALL
:GENERATE_SINGLE
ECHO.
ECHO Starting generation for %MODULE_NAME% module...
ECHO ------------------------------------------------------------------
:: SampleApp.bat ȣ<><C8A3>
CALL .\SampleApp.bat %MODULE_NAME% %ARGS%
:: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30> <20>ƴϸ<C6B4> (<28><>, 1 <20>̻<EFBFBD><CCBB≯<EFBFBD>) <20><><EFBFBD>з<EFBFBD> <20>̵<EFBFBD>
IF NOT ERRORLEVEL 0 GOTO :FAIL_SINGLE
ECHO %MODULE_NAME% Call SampleApp.bat Complete.
ECHO ------------------------------------------------------------------
GOTO :SUCCESS_SINGLE
:INVALID_MODULE
ECHO.
ECHO ==================================================================
ECHO [ERROR] Invalid module name specified: %MODULE_NAME%
ECHO Supported modules are: %SUPPORTED_MODULES%
ECHO ==================================================================
EXIT /B 1
:Fls_FAIL
ECHO.
ECHO [FAILURE] Fls module generation failed. Aborting process.
GOTO :FAIL_END
:Dio_FAIL
ECHO.
ECHO [FAILURE] Dio module generation failed. Aborting process.
GOTO :FAIL_END
:Port_FAIL
ECHO.
ECHO [FAILURE] Port module generation failed. Aborting process.
GOTO :FAIL_END
:Mcu_FAIL
ECHO.
ECHO [FAILURE] Mcu module generation failed. Aborting process.
GOTO :FAIL_END
:Gpt_FAIL
ECHO.
ECHO [FAILURE] Gpt module generation failed. Aborting process.
GOTO :FAIL_END
:Wdg_FAIL
ECHO.
ECHO [FAILURE] Wdg module generation failed. Aborting process.
GOTO :FAIL_END
:Spi_FAIL
ECHO.
ECHO [FAILURE] Spi module generation failed. Aborting process.
GOTO :FAIL_END
:Can_FAIL
ECHO.
ECHO [FAILURE] Can module generation failed. Aborting process.
GOTO :FAIL_END
:Eth_FAIL
ECHO.
ECHO [FAILURE] Eth module generation failed. Aborting process.
GOTO :FAIL_END
:Cddiccom_FAIL
ECHO.
ECHO [FAILURE] Cddiccom module generation failed. Aborting process.
GOTO :FAIL_END
:Cddiic_FAIL
ECHO.
ECHO [FAILURE] Cddiic module generation failed. Aborting process.
GOTO :FAIL_END
:Cddcrc_FAIL
ECHO.
ECHO [FAILURE] Cddcrc module generation failed. Aborting process.
GOTO :FAIL_END
:Cddths_FAIL
ECHO.
ECHO [FAILURE] Cddths module generation failed. Aborting process.
GOTO :FAIL_END
:Cddemm_FAIL
ECHO.
ECHO [FAILURE] Cddemm module generation failed. Aborting process.
GOTO :FAIL_END
:Cddipmmu_FAIL
ECHO.
ECHO [FAILURE] Cddipmmu module generation failed. Aborting process.
GOTO :FAIL_END
:cddrfso_FAIL
ECHO.
ECHO [FAILURE] cddrfso module generation failed. Aborting process.
GOTO :FAIL_END
:FAIL_SINGLE
ECHO.
ECHO [FAILURE] %MODULE_NAME% module generation failed. Aborting process.
EXIT /B 1
:FAIL_END
ECHO.
ECHO ==================================================================
ECHO [FAILURE] Module generation failed during sequence. Aborting process.
ECHO ==================================================================
EXIT /B 1
:SUCCESS_SINGLE
ECHO.
ECHO ==================================================================
ECHO [SUCCESS] %MODULE_NAME% module completed generation successfully.
ECHO ==================================================================
GOTO :END
:SUCCESS_ALL
ECHO.
ECHO ==================================================================
ECHO [SUCCESS] All 16 modules completed generation successfully.
ECHO ==================================================================
GOTO :END
:Help
ECHO.
ECHO ==================================================================
ECHO [HELP] Usage: %Filename%.bat ^<MODULE/ALL^^> ^<AR_VERSION^^> ^<DEVICE^*^> ^<MULTI_CORE^> ^<LOG_PRINT^> ^<BUILD_OPTION^>
ECHO.
ECHO Note: All 6 arguments must be provided.
ECHO.
ECHO MODULE/ALL - Module name (e.g., Fls) or "ALL" for sequential run.
ECHO AR_VERSION - AUTOSAR Version (e.g., R19-11)
ECHO DEVICE - Target device (e.g., V4M, V4H, V5H)
ECHO MULTI_CORE - Yes/No
ECHO LOG_PRINT - Yes/No
ECHO BUILD_OPTION - all/clean/generate/make
ECHO.
ECHO [EXAMPLE] Fls R19-11 V4H No Yes generate
ECHO .%Filename%.bat Fls R19-11 V4H No Yes generate
ECHO.
ECHO [EXAMPLE] All R19-11 V4M No Yes make
ECHO .%Filename%.bat ALL R19-11 V4M No Yes make
ECHO ==================================================================
EXIT /B 1
:END
endlocal

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

@@ -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

@@ -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

@@ -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 #
################################################################################

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

@@ -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

@@ -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)
{
}