본문으로 건너뛰기

머신 설정

이 장에서 할 일​

이 장에서는 프로젝트와 HPC 머신 만들기에서 기본값으로 저장한 머신 Ecu 에 실제 값을 채운다. Machine Configuration 다이얼로그의 MACHINE 탭에서 OS 를 POSIX 로 정하고 코어를 Core0 부터 Core3 까지 4개로 늘린다. FUNCTION GROUP 탭에서는 함수 그룹 MachineFG 의 상태를 확인만 하고, MODULE 탭에서 Log and Trace 의 ECU ID 와 State Management 의 Max Action List Duration 을 입력한다.

이 장을 마치면 머신 파일 design/Module/Machine/Ecu.machine.io.model 이 갱신되고, 1장에 남아 있던 검증 오류 constr_10641 이 사라져 VALIDATION 패널에 No validation issues. 가 보인다.

시작하기 전에​

  • 프로젝트와 HPC 머신 만들기를 마친 상태에서 시작한다. 창 제목이 PAIO [AADesign] 이고, VFB 루트 캔버스에 컴포지션 HPC [Ecu] 가 있으며, VALIDATION 패널에 constr_10641 한 건이 보여야 한다.
  • 1장에서 열어 둔 편집기 탭은 닫아도 된다. 이 장은 EDITOR 뷰의 DESIGN 에서 VFB 를 새로 열어 시작한다.

이 장에서 키보드로 입력하는 값은 세 개뿐이다. 코어는 버튼을 세 번 누르기만 하면 이름과 ID 가 자동으로 채워진다.

탭항목입력하는 값
MACHINEOSPOSIX
MACHINEPROCESSORCPU (기본값, 그대로 둔다)
MACHINECORE 표+ 버튼 3회 → Core1 / 1, Core2 / 2, Core3 / 3 자동 추가
FUNCTION GROUPMachineFG바꾸지 않는다 (확인만)
MODULE › Log and TraceECU IDECU1
MODULE › State Management › ACTION ITEMSMAX ACTION LIST DURATION1000 (단위 s)

참고. 다이얼로그의 입력란은 칸에서 빠져나와야 값이 확정된다. 이 장에서는 값을 입력한 뒤 Tab 키를 눌러 확정한다. OS 는 AUTOSAR 이름 규칙(영문자로 시작하고, 이어서 영문자, 숫자, _ 만)을 어기면 확정되지 않고 원래 값으로 돌아간다.

시작 상태 확인하기​

  1. 화면 아래 푸터의 왼쪽에서 다섯 번째 아이콘인 V 를 본다. 이미 빨간 배지 1 이 붙어 있고, 툴팁은 Validation: 1 error(s), 0 warning(s), 0 info(s) 이다.

  2. VALIDATION 패널이 닫혀 있으면 V 아이콘을 클릭해 연다.

    오류 1건 constr_10641 이 보이는 Validation 패널

    그림 2-1. 이 장을 시작할 때의 VALIDATION 패널. 헤더 배지는 1 이고, ① constr_10641 행 하나가 있다.

패널의 한 행은 다음과 같다. ELEMENT TYPE 열과 DESCRIPTION 열은 폭이 좁아 각각 …Instantiati… 와 …missing maxAction… 까지만 보이지만 전체 내용은 아래와 같다.

ELEMENT TYPENAMEDESCRIPTIONCONSTR
StateManagementModuleInstantiationSMState-Management module "SM" of machine "Ecu" is missing maxActionListDuration.constr_10641

심각도는 error 이고 정확히 1건이다. 머신 다이얼로그가 기본으로 넣은 State Management 모듈 SM 에 Max Action List Duration 이 없다는 뜻이며, 이 장의 마지막 입력에서 해결한다.

다이얼로그 열기​

  1. 푸터의 V 아이콘을 클릭해 VALIDATION 패널을 닫는다. 탭 AADesign:VFB 가 이미 열려 있으면 탭의 × 를 클릭해 닫는다.

  2. EDITOR 뷰의 DESIGN 아래에서 VFB 를 클릭한다. 탭 AADesign:VFB 가 열리고, 루트 캔버스(왼쪽 위 System)에 컴포지션 HPC [Ecu] 가 보인다.

  3. 컴포지션 헤더 오른쪽의 파란 3단 막대 모양 머신 아이콘을 클릭한다.

    VFB 루트 캔버스의 HPC [Ecu] 와 머신 아이콘

    그림 2-2. EDITOR 뷰의 DESIGN 에서 새로 연 VFB 편집기. ① 컴포지션 HPC [Ecu], ② 헤더 오른쪽의 머신 아이콘. 푸터의 V 아이콘에 배지 1 이 보인다.

  4. 제목이 Machine Configuration [HPC] 인 다이얼로그가 MACHINE 탭이 선택된 채 열린다. 대괄호 안은 컴포지션 이름이고, 가운데 캔버스의 머신 박스 라벨은 Ecu 이다.

참고. EDITOR 뷰에서 새로 연 VFB 탭에서는 머신 아이콘을 클릭하면 바로 다이얼로그가 열린다. 머신 이름을 입력하는 칸은 없다. 머신 이름과 머신 파일 이름은 System 편집기의 HPC 노드 이름 Ecu 를 그대로 따른다.

MACHINE 탭 — OS 와 코어​

OS 를 POSIX 로 입력하기​

  1. 오른쪽 MACHINE 패널의 OS 입력란을 클릭한다. 비어 있으며, 안내 Name (letter, then A-Z/0-9/_) 와 빨간 Name is required 가 보인다.

  2. POSIX 를 입력하고 Tab 키를 누른다. 빨간 안내가 사라진다.

  3. PROCESSOR 아코디언의 PROCESSOR 입력란이 CPU 인 것을 확인한다. 기본값이며 바꾸지 않는다.

    OS 를 POSIX 로 입력한 MACHINE 탭

    그림 2-3. MACHINE 탭. ① OS = POSIX, ② PROCESSOR = CPU, ③ CORE / CORE ID 표 헤더와 오른쪽 끝의 + 버튼. 표에는 아직 Core0 / 0 한 줄뿐이다. TRUSTED PLATFORM 은 NO SUPPORT, DESCRIPTION 은 빈 값, REFERENCED HPC 는 HPC Ecu 이다.

주의. OS 입력란에서 Tab 을 누르면 키보드 포커스가 TRUSTED PLATFORM 의 STRICT 버튼으로 옮겨가 주황 테두리가 보인다. 선택값은 NO SUPPORT 그대로이다. 그 상태에서 Space 나 Enter 를 누르지 말고 다음 단계로 넘어간다.

코어 추가하기​

  1. CORE / CORE ID 표 헤더 오른쪽 끝의 + 버튼(툴팁 Add Core)을 클릭한다.

  2. 표에 Core1 / 1 행이 자동으로 추가된다. 이름과 ID 를 입력할 필요가 없다.

    + 버튼을 한 번 눌러 Core1 이 추가된 표

    그림 2-4. + 버튼을 한 번 누른 뒤의 CORE 표. ① + 버튼(Add Core), ② 새로 생긴 행 Core1 / 1.

  3. 같은 + 버튼을 두 번 더 클릭한다. Core2 / 2, Core3 / 3 이 차례로 추가된다.

    코어 4개가 있는 CORE 표

    그림 2-5. 코어 4개가 모두 추가된 CORE 표. ① Core0 / 0, Core1 / 1, Core2 / 2, Core3 / 3 네 줄. REFERENCED HPC 는 표 아래로 밀려 일부만 보인다.

새 코어는 지금 있는 코어 ID 중 가장 큰 값에 1 을 더해 이름 Core<N> 과 ID N 으로 만들어진다. 셀을 클릭하면 이름과 ID 를 고칠 수 있고 행 오른쪽의 × 로 지울 수 있지만, 이 튜토리얼에서는 쓰지 않는다.

FUNCTION GROUP 탭 — MachineFG 확인하기​

이 탭에서는 값을 바꾸지 않는다. 이후 장에서 프로세스를 함수 그룹 상태에 묶을 때 쓸 MachineFG 가 기본값 그대로 있는지만 확인한다.

  1. FUNCTION GROUP 탭을 클릭한다.

  2. 왼쪽 FUNCTION GROUPS 목록에 MachineFG 하나가 있고 선택된 상태인 것을 확인한다.

    FUNCTION GROUP 탭의 MachineFG

    그림 2-6. FUNCTION GROUP 탭. ① FUNCTION GROUPS 목록의 MachineFG, ② GROUP NAME = MachineState, ③ INITIAL MODE = Off, ④ STATE MACHINE 다이어그램. 초기 상태 표식(점과 화살표)이 Off 를 가리킨다.

가운데 CONFIGURATION 패널의 값은 다음과 같다.

항목값
NAMEMachineFG
DESCRIPTION비어 있음
FUNCTION GROUP › GROUP NAMEMachineState
FUNCTION GROUP › INITIAL MODEOff
MODE DECLARATION 표 (NAME / VALUE / DESCRIPTION)Off, Startup, Shutdown, Restart, Verify 5행 (VALUE 와 DESCRIPTION 은 모두 빈 값)

오른쪽 STATE MACHINE 다이어그램에는 상태 박스 5개(Off, Shutdown, Verify, Restart, Startup)와 전이 화살표가 그려져 있다. 전이는 8개로 Off→Startup, Startup→Shutdown, Startup→Restart, Startup→Verify, Startup→Off, Shutdown→Off, Restart→Off, Verify→Off 이다.

MODULE 탭 — Log and Trace 의 ECU ID​

  1. MODULE 탭을 클릭한다. 왼쪽 MODULES 목록의 첫 항목 Log and Trace 가 선택되어 있고, 가운데에 서브탭 DLT 하나와 그 아래 섹션 DLT ECU, DLT APPLICATION 이 보인다.

  2. DLT ECU 섹션의 ECU ID 입력란을 클릭한다. 비어 있으며 안내 e.g. ECU1 이 보인다.

  3. ECU1 을 입력하고 Tab 키를 누른다.

    Log and Trace 모듈의 ECU ID 에 ECU1 을 입력한 화면

    그림 2-7. MODULE 탭의 Log and Trace. ① MODULES 목록의 Log and Trace, ② ECU ID = ECU1. DLT APPLICATION 은 No processes configured, 오른쪽 DLT HIERARCHY 는 No DLT applications 이다. 프로세스는 아직 없으므로 정상이다.

이 값은 ARXML 익스포트에서 DLT ECU 요소 /DLT/Ecu/Ecu 의 ECU-ID 가 된다. 모듈 자체의 이름은 다이얼로그 기본값 LOG 로 나간다.

MODULE 탭 — State Management 의 Max Action List Duration​

  1. MODULES 목록에서 State Management 를 클릭한다. 가운데 패널 맨 위에 서브탭 NOTIFICATIONS, REQUESTS, ACTION ITEMS 가 있고, 처음에는 NOTIFICATIONS 가 열려 있다.

  2. 서브탭 ACTION ITEMS 를 클릭한다.

    State Management 의 ACTION ITEMS 서브탭

    그림 2-8. State Management 모듈의 ACTION ITEMS 서브탭. ① MODULES 목록의 State Management, ② ACTION ITEMS 서브탭, ③ 비어 있는 MAX ACTION LIST DURATION 입력란(안내 Time Value (≥0), 오른쪽 단위 s). 아래 ACTION LISTS 에는 No StateMachine states available. Add a StateMachine in the Notifications sub-tab first., NM HANDLE FUNCTION GROUP STATES 에는 No NM handle function group state., 오른쪽 ACTION SEQUENCE 에는 Select an action list to view its sequence. 가 보인다.

  3. 맨 위 MAX ACTION LIST DURATION 입력란에 1000 을 입력하고 Tab 키를 누른다. 오른쪽 단위는 s 그대로 둔다.

    MAX ACTION LIST DURATION 에 1000 을 입력한 화면

    그림 2-9. 값을 입력한 뒤의 ACTION ITEMS 서브탭. ① MAX ACTION LIST DURATION = 1000, 단위 s. 나머지 안내문은 그대로이다.

ACTION LISTS, NM HANDLE FUNCTION GROUP STATES, ACTION SEQUENCE 는 이 튜토리얼에서 쓰지 않으므로 그대로 둔다. 단위 선택지는 ns, us, ms, s 이며 s 를 유지한다.

저장하고 닫기​

  1. 다이얼로그 안에서 Ctrl+S 를 누른다. 어느 탭에서 눌러도 된다. 머신 파일 design/Module/Machine/Ecu.machine.io.model 이 갱신된다.
  2. 오른쪽 아래 Close 버튼을 클릭한다.
  3. PROJECT › Save All 을 클릭한다.

주의. Close 만으로는 머신 파일이 저장되지 않는다. 반드시 다이얼로그 안에서 Ctrl+S 를 누른 뒤 Close 를 누른다. Close 를 눌렀을 때 저장 확인이 뜨면 Save 를 클릭한다.

검증 결과 보기​

  1. 푸터의 V 아이콘을 본다. 빨간 배지 1 이 사라졌다.

  2. VALIDATION 패널을 본다. 닫혀 있으면 푸터의 V 아이콘을 클릭한다.

    No validation issues. 가 보이는 Validation 패널

    그림 2-10. 저장 뒤의 VALIDATION 패널. 헤더에 배지가 없고 본문은 No validation issues. 한 줄인다.

constr_10641 이 사라졌다. 이후 장도 설계대로 따라가면 모두 이 상태로 끝난다. 편집하는 동안 잠시 검증 결과가 나오는 장도 있으며, 그런 장은 언제 나오는지 안내한다.

참고. 건수가 0으로 돌아오면 V 아이콘의 배지는 사라지지만, V 아이콘의 툴팁에는 마지막 건수 Validation: 1 error(s), 0 warning(s), 0 info(s) 가 그대로 남는다. 현재 결과는 VALIDATION 패널에서 확인한다.

왜 이렇게 설계하는가​

  • OS 이름은 POSIX 이다. 익스포트되는 ARXML 의 OS-MODULE-INSTANTIATION 이름이 된다. 이 값은 MACHINE 탭의 머신 속성으로 저장되며, MODULE 탭의 모듈 목록에는 OS 모듈 항목이 생기지 않는다.
  • 코어는 Core0Core3 네 개, ID 는 03 이다. + 버튼이 이름과 ID 를 자동으로 매기므로 손으로 맞출 필요가 없다. 프로세서 이름은 기본값 CPU 이다.
  • ECU1 은 DLT ECU 의 식별자이다. 로그와 DLT에서 각 Adaptive Application 의 DLT 애플리케이션이 이 ECU 아래에 모인다.
  • Max Action List Duration 은 PAIO 검증이 요구하는 값이다. 다이얼로그가 기본으로 넣는 State Management 모듈 SM 에 이 값이 없으면 constr_10641 이 난다. 값 자체는 이 설계에서 달리 쓰이지 않으므로 1000 처럼 타당한 값이면 된다.
  • MachineFG 는 기본값 그대로 쓴다. Executable 과 Process에서 프로세스를 MachineFG 의 Startup 같은 상태에 묶을 때 이 함수 그룹이 후보로 나온다. 익스포트에는 Ecu_FunctionGroup/MachineFG 와 전이 8개가 함께 나온다.
  • 머신 이름은 입력란이 없다. 머신 이름과 머신 파일 이름은 System 편집기의 노드 이름 Ecu 를 따른다. MACHINE 탭에는 WAIT-FOR-SHUTDOWN 같은 관리 데이터 입력란도 없고, Communication Management 모듈에는 서브탭 ACCESS CONTROL(TRUE / FALSE 스위치 세 개, GRANTS, REMOTE SUBJECTS)과 IPC 만 있어 타임아웃류 파라미터를 넣을 수 없다. 이 장에서는 그 모듈을 열지 않는다.

확인하기​

  • Machine Configuration [HPC] 다이얼로그 MACHINE 탭에서 OS 가 POSIX 이고 빨간 Name is required 안내가 없다.
  • PROCESSOR 가 CPU 이고, CORE 표에 Core0 / 0, Core1 / 1, Core2 / 2, Core3 / 3 네 줄이 있다.
  • TRUSTED PLATFORM 은 NO SUPPORT, REFERENCED HPC 는 HPC Ecu 이다.
  • FUNCTION GROUP 탭에 MachineFG 하나가 있고 GROUP NAME 은 MachineState, INITIAL MODE 는 Off, 모드 선언은 Off, Startup, Shutdown, Restart, Verify 이다.
  • MODULE › Log and Trace 의 ECU ID 가 ECU1 이다.
  • MODULE › State Management › ACTION ITEMS 의 MAX ACTION LIST DURATION 이 1000, 단위 s 이다.
  • PROJECT › Save All 뒤에 수정됨 표시가 남은 탭이 없다.
  • VALIDATION 패널에 No validation issues. 가 보이고 헤더에 배지가 없다.

다음 단계​

토폴로지 — Ethernet 커넥터와 엔드포인트에서 System 편집기로 돌아가 노드 Ecu 에 Ethernet 커넥터와 네트워크 엔드포인트를 만든다.