머신 설정
이 장에서 할 일
이 장에서는 프로젝트와 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 가 자동으로 채워진다.
| 탭 | 항목 | 입력하는 값 |
|---|---|---|
| MACHINE | OS | POSIX |
| MACHINE | PROCESSOR | CPU (기본값, 그대로 둔다) |
| MACHINE | CORE 표 | + 버튼 3회 → Core1 / 1, Core2 / 2, Core3 / 3 자동 추가 |
| FUNCTION GROUP | MachineFG | 바꾸지 않는다 (확인만) |
| MODULE › Log and Trace | ECU ID | ECU1 |
| MODULE › State Management › ACTION ITEMS | MAX ACTION LIST DURATION | 1000 (단위 s) |
참고. 다이얼로그의 입력란은 칸에서 빠져나와야 값이 확정된다. 이 장에서는 값을 입력한 뒤
Tab키를 눌러 확정한다. OS 는 AUTOSAR 이름 규칙(영문자로 시작하고, 이어서 영문자, 숫자,_만)을 어기면 확정되지 않고 원래 값으로 돌아간다.
시작 상태 확인하기
-
화면 아래 푸터의 왼쪽에서 다섯 번째 아이콘인 V 를 본다. 이미 빨간 배지
1이 붙어 있고, 툴팁은Validation: 1 error(s), 0 warning(s), 0 info(s)이다. -
VALIDATION 패널이 닫혀 있으면 V 아이콘을 클릭해 연다.

그림 2-1. 이 장을 시작할 때의 VALIDATION 패널. 헤더 배지는
1이고, ①constr_10641행 하나가 있다.
패널의 한 행은 다음과 같다. ELEMENT TYPE 열과 DESCRIPTION 열은 폭이 좁아 각각 …Instantiati… 와 …missing maxAction… 까지만 보이지만 전체 내용은 아래와 같다.
| ELEMENT TYPE | NAME | DESCRIPTION | CONSTR |
|---|---|---|---|
StateManagementModuleInstantiation | SM | State-Management module "SM" of machine "Ecu" is missing maxActionListDuration. | constr_10641 |
심각도는 error 이고 정확히 1건이다. 머신 다이얼로그가 기본으로 넣은 State Management 모듈 SM 에 Max Action List Duration 이 없다는 뜻이며, 이 장의 마지막 입력에서 해결한다.
다이얼로그 열기
-
푸터의 V 아이콘을 클릭해 VALIDATION 패널을 닫는다. 탭
AADesign:VFB가 이미 열려 있으면 탭의 × 를 클릭해 닫는다. -
EDITOR 뷰의 DESIGN 아래에서 VFB 를 클릭한다. 탭
AADesign:VFB가 열리고, 루트 캔버스(왼쪽 위System)에 컴포지션HPC [Ecu]가 보인다. -
컴포지션 헤더 오른쪽의 파란 3단 막대 모양 머신 아이콘을 클릭한다.
![VFB 루트 캔버스의 HPC [Ecu] 와 머신 아이콘](/docs/ko/assets/images/02-02-vfb-hpc-machine-icon-ac8aa2e2c3eaa1dcfa60890f36ca11de.png)
그림 2-2. EDITOR 뷰의 DESIGN 에서 새로 연 VFB 편집기. ① 컴포지션
HPC [Ecu], ② 헤더 오른쪽의 머신 아이콘. 푸터의 V 아이콘에 배지1이 보인다. -
제목이 Machine Configuration [HPC] 인 다이얼로그가 MACHINE 탭이 선택된 채 열린다. 대괄호 안은 컴포지션 이름이고, 가운데 캔버스의 머신 박스 라벨은
Ecu이다.
참고. EDITOR 뷰에서 새로 연 VFB 탭에서는 머신 아이콘을 클릭하면 바로 다이얼로그가 열린다. 머신 이름을 입력하는 칸은 없다. 머신 이름과 머신 파일 이름은 System 편집기의 HPC 노드 이름
Ecu를 그대로 따른다.
MACHINE 탭 — OS 와 코어
OS 를 POSIX 로 입력하기
-
오른쪽 MACHINE 패널의 OS 입력란을 클릭한다. 비어 있으며, 안내
Name (letter, then A-Z/0-9/_)와 빨간Name is required가 보인다. -
POSIX를 입력하고Tab키를 누른다. 빨간 안내가 사라진다. -
PROCESSOR 아코디언의 PROCESSOR 입력란이
CPU인 것을 확인한다. 기본값이며 바꾸지 않는다.
그림 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 를 누르지 말고 다음 단계로 넘어간다.
코어 추가하기
-
CORE / CORE ID 표 헤더 오른쪽 끝의 + 버튼(툴팁
Add Core)을 클릭한다. -
표에
Core1/1행이 자동으로 추가된다. 이름과 ID 를 입력할 필요가 없다.
그림 2-4. + 버튼을 한 번 누른 뒤의 CORE 표. ① + 버튼(
Add Core), ② 새로 생긴 행Core1/1. -
같은 + 버튼을 두 번 더 클릭한다.
Core2/2,Core3/3이 차례로 추가된다.
그림 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 가 기본값 그대로 있는지만 확인한다.
-
FUNCTION GROUP 탭을 클릭한다.
-
왼쪽 FUNCTION GROUPS 목록에
MachineFG하나가 있고 선택된 상태인 것을 확인한다.
그림 2-6. FUNCTION GROUP 탭. ① FUNCTION GROUPS 목록의
MachineFG, ② GROUP NAME =MachineState, ③ INITIAL MODE =Off, ④ STATE MACHINE 다이어그램. 초기 상태 표식(점과 화살표)이Off를 가리킨다.
가운데 CONFIGURATION 패널의 값은 다음과 같다.
| 항목 | 값 |
|---|---|
| NAME | MachineFG |
| DESCRIPTION | 비어 있음 |
| FUNCTION GROUP › GROUP NAME | MachineState |
| FUNCTION GROUP › INITIAL MODE | Off |
| 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
-
MODULE 탭을 클릭한다. 왼쪽 MODULES 목록의 첫 항목 Log and Trace 가 선택되어 있고, 가운데에 서브탭 DLT 하나와 그 아래 섹션 DLT ECU, DLT APPLICATION 이 보인다.
-
DLT ECU 섹션의 ECU ID 입력란을 클릭한다. 비어 있으며 안내
e.g. ECU1이 보인다. -
ECU1을 입력하고Tab키를 누른다.
그림 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
-
MODULES 목록에서 State Management 를 클릭한다. 가운데 패널 맨 위에 서브탭 NOTIFICATIONS, REQUESTS, ACTION ITEMS 가 있고, 처음에는 NOTIFICATIONS 가 열려 있다.
-
서브탭 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.가 보인다. -
맨 위 MAX ACTION LIST DURATION 입력란에
1000을 입력하고Tab키를 누른다. 오른쪽 단위는s그대로 둔다.
그림 2-9. 값을 입력한 뒤의 ACTION ITEMS 서브탭. ① MAX ACTION LIST DURATION =
1000, 단위s. 나머지 안내문은 그대로이다.
ACTION LISTS, NM HANDLE FUNCTION GROUP STATES, ACTION SEQUENCE 는 이 튜토리얼에서 쓰지 않으므로 그대로 둔다. 단위 선택지는 ns, us, ms, s 이며 s 를 유지한다.
저장하고 닫기
- 다이얼로그 안에서
Ctrl+S를 누른다. 어느 탭에서 눌러도 된다. 머신 파일design/Module/Machine/Ecu.machine.io.model이 갱신된다. - 오른쪽 아래 Close 버튼을 클릭한다.
- PROJECT › Save All 을 클릭한다.
주의. Close 만으로는 머신 파일이 저장되지 않는다. 반드시 다이얼로그 안에서
Ctrl+S를 누른 뒤 Close 를 누른다. Close 를 눌렀을 때 저장 확인이 뜨면 Save 를 클릭한다.
검증 결과 보기
-
푸터의 V 아이콘을 본다. 빨간 배지
1이 사라졌다. -
VALIDATION 패널을 본다. 닫혀 있으면 푸터의 V 아이콘을 클릭한다.
그림 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 커넥터와 네트워크 엔드포인트를 만든다.