Skip to content

AUTOSAR RTE4 실습#

아래 그림은 RTE4 실습의 설계도 입니다.#

그림

목차(실습 과정)#

  1. Project 생성
  2. VFB level
  3. RTE level
  4. C coding
  5. ECU Mapping
  6. ECU Extract
  7. ECU Configuration
  8. Generate & Build

1. Project 생성#

  • FileImportGeneralExisting Projects into WorkspaceNext 선택
    1-1

  • Base Project 선택 → Copy projects into workspace 체크 → Finish 클릭
    1-2
    1-3

    Copy projects into workspace는 원본 프로젝트 보존하고 workspace에서 실습하기 위함

2. VFB level#

  • Configuration → System → Swcd_App 우클릭 → New → AUTOSAR File 선택
    2-1

  • Package name과 File name 입력 → Finish 클릭
    2-2

  • 생성한 AUTOSAR 파일 열기 → 화살표 클릭

  • App_Rte 우클릭 → NewApplication Sw Component Type 선택
    2-3

  • SWC 이름 설정: SWC_SeatSwitch, SWC_SeatHeatingControl 생성\ Supports Multiple Instantiation : false
    2-4

Sender Receiver Interface 생성#

  • App_Rte[ARPACKAGE] 우클릭 → NewSender Receiver Interface 선택
    2-5

  • Short Name: If_SeatSwitch 설정, Is Service: false

  • Date Element 생성 : New클릭 → boolean[/AUTOSAR...] 선택
    → Short Name: PassengerDetected, Type : boolean 2-6

Client Server Interface 생성#

  • App_Rte[ARPACKAGE] 우클릭 → NewClient Server Interface 선택
    2-7

  • Short Name: If_SeatHeatingControl 설정, Is Service: false

  • Operations 생성 : New클릭 → Short Name : HeatingOnArgument+ 클릭 → Short Name: num, Type : uint32, Direction : IN\ 2-8 > Direction에 따라 매개변수를 넘기는 방법이 달라짐\ In : CallByValue, Out : CallByReference

SWC_SeatSwitch 설정#

  • Ports+ 클릭 → Sender Receiver InterfaceSenderIf_SeatSwitch 선택
    2-9 2-10

  • Short name : P_SeatSwitch → Data Elements : PassengerDetectedEnable Required Com Specs 체크 2-11

  • Ports+ 클릭 → Client Server InterfaceServerIf_SeatHeatingControl 선택
    2-12-1 2-12-2

  • Short name : P_HeatingControl → Operations : HeatingOnEnable Required Com Specs 체크 2-13

  • Ports+ 클릭 → Client Server InterfaceClientIoHwAb_If_DigDir 선택 → OK 2-14 2-15

  • Short name : R_IO → Operations : ReadDirectEnable Required Com Specs 체크 2-16

  • Ports+ 클릭 → Client Server InterfaceClientIoHwAb_If_DigDir 선택 → OK 2-17 2-18

  • Short name : R_HeatingElement → Operations : WriteDirectEnable Required Com Specs 체크 2-19

SWC_SeatHeatingControl 설정#

  • Ports+ 클릭 → Sender Receiver InterfaceReceiverIf_SeatSwitch 선택
    2-20 2-21

  • Short name : R_SeatSwitch → Data Elements : PassengerDetectedEnable Required Com Specs 체크 → Init Value : Numerical Value Specification 체크 2-22

  • Ports+ 클릭 → Client Server InterfaceClinetIf_SeatHeatingControl 선택
    2-23 2-24

  • Short name : R_HeatingControl → Operations : HeatingOnEnable Required Com Specs 체크 2-25

CSWC 생성 및 연결#

  • App_Rte [ARPackage] 에서 우클릭 → NewComposition Sw Component Type 클릭 2-26

  • Short name : CSWC_SeatHeatingSystemComponents and Ports 클릭 2-27

  • + 클릭 → SWC_SeatHeatingControl, SWC_SeatSwitch 선택 → OK 2-28

  • Automatic Connection 클릭 → R_HeatingControl 선택 → + 클릭 2-29

  • HeatingControl 연결되어있는 것 확인 → OK 2-30

  • R_SeatSwitch 선택 → + 클릭 → SeatSwitch 연결되어있는 것 확인 → OK 2-31


3. Rte level#

Runnable 설정: SWC_SeatSwitch#

  • Runnables+ 클릭 → Short Name: RE_SeatSwitch → Symbol: SeatSwitch_funcCan Be Invoked Concurrently: false
    3-1

  • RTE EventAddTiming Event 선택 → Period: 100ms
    3-2
    3-3
    3-4

  • Operation/Mode/Trigger AccessAddSSCP 선택 → R_IO.ReadDirect 선택 → OK 3-5
    3-6

  • Data/Parameter AccessAddData Send Points 선택 → P_SeatSwitch.PassengerDetected 선택
    3-7
    3-8-0

  • Runnables+ 클릭 → Short Name: RE_HeatingControl → Symbol: HeatingControl_funcCan Be Invoked Concurrently: false

  • RTE EventADD 클릭 3-8-1

  • Operation Invoked EventP_SeatHeatingControl.HeatingOn 선택 → OK 3-8-2

  • Operation/Mode/Trigger AccessAddSSCP 선택 → R_HeatingElement.WriteDirect 선택 → OK 3-8-3 3-8-4

Runnable 설정: SWC_SeatHeatingControl#

  • Runnables+ 클릭 → Short Name: RE_SeatHeatingControl → Symbol: SeatHeatingControl_func
    3-9

  • RTE EventAddData Received EventR_SeatSwitch.PassengerDetected 선택 → OK
    3-10
    3-11

  • Operation/Mode/Trigger AccessAddSSCPR_HeatingElement.WriteDirect 선택 → OK 3-12
    3-13

  • Data/Parameter AccessAddData Received Points By ArgumentsR_SeatSwitch.PassengerDetected 선택 → OK 3-14
    3-15


4. C Coding#

  • Static_CodeReference_Codesrc 우클릭 → New → File 선택 → 파일명: SeatSwitch.c, SeatHeatingControl.c 생성
    4-1
    4-2

  • 각각 코드 작성 후 저장
    4-3 4-4


5. ECU Mapping#

  • ConfigurationSystemCompositionRootComposition.arxmlAUTOSARCSWC_RootComposition [Composition] 더블클릭
  • Components and Ports+ 클릭 → CSWC_SeatHeatingSystem 선택
    5-1
    5-2
    > SWC를 따로 넣지 말고 묶음 단위(CSWC)로 넣기
    

    5-3


6. ECU Extract#

  • Auto-WizSystem Configuration & ECU Extract 선택 → ECU Software Components Mapping 클릭
    6-1
    6-2

  • Performs Flattening 체크 → Apply 클릭
    6-3


7. ECU Configuration#

  • 우측 상단 초록 아이콘 클릭 → Generate ECU Configuration 선택
    7-1

  • NextServiceRte 선택 → Next
    7-2
    7-3

  • Rte: Generate SwcInstance Configuration 체크 → Finish 클릭
    7-4

Task Mapping#

  • 우측 초록 아이콘 클릭 → Rte 선택
    7-5

  • Task Mapping 탭 → SwcInstance_SWC_SeatSwitch 선택 → OsTask_ASW_FG1_100ms 선택 → TE_RE_SeatSwitch 선택 후 Add
    7-6

  • Task Mapping 탭 → SwcInstance_SWC_SeatHeatingControl 선택 → OsTask_BSW_FG3_ComMModeRequest 선택 → DRE_RE_SeatHeatingControl_R_SeatSwitch_PassengerDetected 선택 → Add
    7-6-1

스위치/LED 연결#

  • Service and I/OP_IoHwAbDigitalDirectLogical_SW06 선택 → 자동 연결 + 클릭
    7-7

  • Respect Naming Rule 해제 → R_IO 선택
    7-8

  • P_IoHwAbDigitalDirectLogical_LED_Red 선택 → 자동 연결 + 클릭 → Respect Naming Rule 해제 → R_HeatingElement 선택
    7-9
    7-10


8. Generate & Build#

  • BuildScons.arxmlAUTOSARAUTRONSCons 더블클릭 → All Contents 클릭
    8-1

  • Navigator의 SconsRTSWGenerationModule 이동 → Rte 더블클릭
    8-2

  • Input Files ListAdd.. 클릭 8-3

  • App_Rte 입력 후 Add 클릭 → 추가되었는지 확인 \ 화면 왼쪽 상단의 망치 버튼(Build) 누르기 8-4