AUTOSAR RTE6 실습#

0. 목차#
- Project 생성
- VFB level
- RTE level
- C coding
- ECU Mapping
- ECU Extract
- ECU Configuration
- IO Configuration
- OS Configuration
- RTE Configuration
- Generate & Build
1. Project 생성#
-
File→Import→General→Existing Projects into Workspace→Next선택

-
Browse..→ Base Project 선택 →Copy projects into workspace체크 →Finish클릭
Copy projects into workspace는 원본 프로젝트 보존 목적 위함.
2. VFB level#
Configuration → System → Swcd_App우클릭 →New→AUTOSAR File선택- Package name & Package name :
App_Rte→Finish클릭
- 생성한 AUTOSAR 파일의 아래 방향 화살표 클릭.
-
App_Rte[ARPackage]에서 우클릭 →New→Application Sw Component Type클릭.(SWC 생성)
-
SWC 더블클릭 → Short Name :
SWC_SeatSwitch - Support Multiple Instantiation :
false - 같은 방법으로
SWC_SeatHeatingControl생성. App_Rte[ARPackage]우클릭 →New→Application Sw Component Type클릭 → Short Name :SWC_SeatHeatingControl, Supports Multiple Instantiation :false
Sender Receiver Interface 생성#
- App_Rte[ARPackage]우클릭 → New → Sender Receiver Interface

- 생성한 SRI 더블클릭 → Short Name :
If_SeatSwitch - Is Service :
false - Data Elements →
New클릭. - Short Name :
PassengerDetected - Type :
...박스클릭 →boolean[/AUTOSAR...]을 선택.
- 동일한 방식으로
HeatStrength추가 - Type :
uint16

SWC_SeatSwitch 설정#
-
Ports→+클릭 →Sender Receiver Interface→Sender→If_SeatSwitch선택 →OK클릭.

-
Short Name :
P_SeatSwitch - Communication Spec → Data Elements →
PassengerDetected→Enable Provided Com Specs를 체크 -
동일한 방식으로
HeatStrength→Enable Provided Com Specs
-
Ports 우측의
+클릭 →Client Server Interface→Client→IoHwAb_If_DigDir→OK클릭
- Short Name :
R_SW06 -
Communication Spec → Operations →
ReadDirect→Enable Provided Com Specs체크
-
Ports 우측의
+클릭 →Client Server Interface→Client→IoHwAb_If_AnalnDir→OK클릭
-
Short Name :
R_Pot - Communication Spec → Operations →
ReadDirect→Enable Provided Com Specs체크
SWC_SeatHeatingControl 설정#
SWC_SeatHeatingControl→Ports-
상단 Ports 우측의
+클릭 →Send Receiver Interface→Receiver→If_SeatSwitch→OK클릭

-
Short Name :
R_SeatSwitch - Communication Spec → Data Elements →
PassengerDetected→Enable Provided Com Specs체크 -
Init Value :
Numerical Value Specification체크
-
동일한 방식으로
HeatStrength→Enable Required Com Specs체크 - Init Value :
Numerical Value Specification체크
- Ports 우측의
+클릭 →Client Server Interface→Client→IoHwAb_If_DigDir→OK클릭
- Short Name :
R_LED_Red - Communication Spec → Operations →
WriteDirect로 선택 →Enable Provided Com Specs를 체크
- Ports 우측의
+클릭 →Client Server Interface→Client→IoHwAb_If_Pwm→OK클릭
- Short Name :
R_LED_Blue - Communication Spec → Operations →
SetDutyCycle로 선택 →Enable Provided Com Specs를 체크
CSWC 생성 및 연결#
- 위의 SWC를 묶어서 관리하기 위해 CSWC를 추가.
App_Rte[ARPackage]우클릭 →New→Composition Sw Component Type-
Short Name :
CSWC_SeatHeatingSystem
-
Components and Ports→ 상단의 Components 우측+선택 → 생성한SWC_SeatSwitch와SWC_SeatHeatingControl체크 →OK클릭
-
Automatic Connection→R_SeatSwitch선택 → 우측 상단+클릭.
P_SeatSwitch체크 →OK클릭
3. RTE level#
Runnable 설정: SWC_SeatSwitch#
- 작업 창의
SWC_SeatSwitch클릭 –>Runnable클릭 - 상단 Runnables의 우측
+클릭 - Short Name :
RE_SeatSwitch, Symbol :SeatSwitch_func -
Can Be Invoked Concurrently :
false
-
RTE Event→Add→Timing Event→OK클릭 - 생성된
Timing Event더블클릭 → Period :100msec→OK클릭

Operation/Mode/Trigger Access→Add.
Synchronuous Server Call Points(SSCP) →R_Pot.ReadDirect&R_SW06.ReadDirect를 선택 →OK클릭.
Data/Parameter Access→Add.
Data Sent Points(DSP) →P_SeatSwitch.HeatStrength&P_SeatSwitch.PassengerDetected선택 →OK클릭.
Runnable 설정: SWC_SeatHeatingControl#
- 작업 창의
SWC_SeatHeatingControl→Runnables클릭 - Short Name :
RE_SeatHeatingControl, Symbol :SeatHeatingControl_func - Can Be Invoked Concurrently :
false
-
RTE Event→Add.
-
Data Received Event→R_SeatSwitch.HeatStrength&R_SeatSwitch.PassengerDetected선택 →OK클릭.
-
Operation/Mode/Trigger Access→Add.
-
Synchronous Server Call Points(SSCP) →R_LED_Blue.SetDutyCycle&R_LED_Red.WriteDirect선택 →OK클릭.
-
Data/Parameter Access→Add.
Data Received Points By Arguments(DRPBA) →R_SeatSwitch.HeatStrength&R_SeatSwitch.PassengerDetected선택 →OK클릭.
4. C coding#
Static Code→Reference Code→src에서 우클릭 →New→File
- File name :
SWC_SeatSwitch.c
- 동일한 방법으로
SWC_SeatHeatingControl.c생성
- C 코드 작성

5. ECU Mapping#
Configuration→System→Composition→RootComposition.arxml→CSWC_RootComposition더블클릭.- 하단의
Components and Ports→+클릭.
CSWC_SeatHeatingSystem선택 →OK클릭.
> SWC를 따로 넣지 말고 묶음 단위(CSWC)로 넣기
#
6. ECU Extract#
- 상단의
Auto-Wiz→System Configuration&ECU Extract→ECU Software Components Mapping클릭.
- 우측 하단의
OK를 누른 후 추가하고자 하는 SWC와 Connector가 적용되는지 확인한 후Apply클릭.
7. ECU Configuration#
OS Configuration#
-
Auto-Wiz→ECU Configuration & Code GenerationOS 1.3.0클릭.
-
Task→ 우측 상단+클릭.
- Short Name :
OsTask_SWC_SeatSwitch_100ms -
Activation :
1, Priority :117
-
같은 방식으로
+클릭 - Short Name :
OsTask_SWC_SeatHeatingControl -
Activation :
1, Priority :118
-
Alarm→ 우측 상단+클릭
-
만든 알람을 더블 클릭 하여 알람 안으로 접근.
-
Short Name :
OsAlarm_SWC_SeatSwitch_100ms
-
Counter Ref*의
Browse..클릭
-
OsCounter_Main선택 →OK
-
Counter를 설정 후
Action클릭. -
Number of containers : 1→OK
-
Activate Task선택 →OK클릭.
-
Browse..클릭.
-
OsTask_SWC_SeatSwitch_100ms선택 →OK
-
Application→OsApplication0더블클릭
-
App Alarm Ref 의
Browse..클릭. (만든 Alarm 추가)
-
이미 그룹에 포함되어 있는 Alarm들을 확인할 수 있고, 우리가 만든 Alarm을 추가시켜주는 과정.

-
App Task Ref의
Browse..클릭.(만든 2개의 Task를 그룹에 포함시켜주기 위함.)
-
두 개 모두 선택(ctrl + 클릭) →
Add→OK
RTE Configuration#
-
Configure ECU and Generate Code→Generate ECU Configuration
-
Next→Rte선택 →Next→Rte: Generate SwInstance configuration체크 →Finish클릭
-
RTE event to Task Mapping클릭
SWC_SeatSwitch Mapping(주기 Task)-
unMapped→OsTask_SWC_SeatSwitch_100ms
-
TE_RE_SeatSwitch선택 →Add
SwcInstance_SWC_SeatHeatingControl→unmapped선택 →OsTask_SWC_SeatHeatingControl선택 →DRE_RE_*선택 →Add클릭.
I/O Configuration#
-
Configuration→Ecu→Mcal→Ecud_Port.arml→Port더블클릭. 다음 아래의Container→PortContainer_A→Pin안에 담겨 있는 핀 확인
-
PTA31을 더블클릭 - Initial Mode :
PORT_ALT1_FUNC_MODE -
Mode :
EMIOS_1_EMIOS_1_CH_14_H_OUT선택 - >OK클릭
-
PTA11더블클릭 - Direction :
PORT_PIN_IN -
Initial Mode :
PORT_ANALOG_INPUT_MODE
-
Configuration→Ecu→Mcal→Ecud_PWM.arxml→Pwm더블클릭 →Channel클릭
-
우측 상단의
+버튼 클릭하여 Channel을 생성. - Short Name :
PwmChannel_PTA31 - Id :
1 - Class :
PWM_FIXED_PERIOD -
Period Default :
8191, Dutycycle Default :0
-
이후 Hw Channel을 설정해야함. 필요한 Hw Channel 생성을 위해 이동.

-
Emios클릭. PwmEmios_0→Channels→PwmEmiosChannels_0-
우측 상단의
+버튼으로 채널을 생성.
-
Short Name :
PwmEmiosChannels_CH14 - Emios Ch Id :
CH_14 - Emios Ch Mode :
EMIOS_PWM_IP_MODE_OPWMB -
Emios Ch Counter Bus :
EMIOS_PWM_IP_BUS_BCDE
-
다음은 Bus Ref를 설정해야 하지만 필요한 Bus Ref가 없기에 생성해주어야 함.

-
Mcal→Ecud_Mcl.arxml→Mcl더블클릭. -
Emios Common으로 이동.
-
EmiosCommon_1→Emios Mcl Master Bus→+버튼 클릭. - Short Name :
EmiosMclMasterBus_1_CH8, Number :EMIOS_CH_8 - Mode Type :
MCB_UP_COUNTER, Emios Mcl Default Period :8191 -
Prescaler :
DIV_12
-
Pwm→Emios→PwmEmiosChannels_CH14의 Bus Ref를 생성한EmiosMasterBus_1_CH8로 설정.
-
Channel→Hw Channel,Mcu Clock Reference설정.
-
Hw Channel :
PwmEmiosChannels_CH14
-
Mcu Clock :
CORE_CLK
-
Mcal→Ecud_IoHwAb.arxml→IoHwAb더블클릭. All Contents클릭.
IoHwAbConfig→IoHwAbAnalogInputDirect→Logical- 기존에 있던
IoHwAbAnalogInputDirectLogical_Test2의 이름을 다음과 같이IoHwAbAnalogInputDirectLogical_Pot로 변경.
IoHwAbPwm→Logical→+버튼 클릭 Short Name :IoHwAbPwmLogical_LED_Blue, Callback Via Rte :falseHw Pwm Ch Ref :PwmChannel_PTA31
I/O Mapping#
- I/O Mapping을 위해 다시 상단의 초록색 네모 (
Configure ECU and Generate Code) 클릭 → 하단의Service and I/O클릭 →IoHwAb의 화살표 클릭
P_IoHwAb…_Pot선택 → Automatic Connection의 우측+클릭
Respect Naming Rule해제 →R_Pot선택 →OK클릭
- 동일한 방식으로
P_IoHwAb…_LED_Red→R_LED_RED와 연결. P_IoHwAb…_SW06→R_SW06과 연결.P_IoHwAb…_LED_Blue→R_LED_Blue와 연결.
8. Generate & Build#
Build→Scons.arxml→SCons더블클릭 후-
하단의
All Contents→RTSW→Generation→Module
-
Rte폴더 찾기 -
오른쪽 창에서 Input Files List 우측의
Add를 클릭

-
'App_Rte'(이전에 생성한 AUTOSAR file이름) 입력 →
Add→OK클릭
-
좌측 상단 망치의 화살표 클릭 → Build
