DEENESPTFRRUARHIKOZHNL

Standard Types (Std_Types)

ModulStd (Standard Types)
BSW-Modul-ID197
Standard-Header#include "Std_Types.h"
SWS-SpezifikationAUTOSAR_SWS_StandardTypes.pdf
ClusterGeneral & Standard Types

모듈 가이드AI 생성

모든 Classic 모듈을 위한 통일된 반환, 버전, 트랜스포머 및 상수 타입을 제공함.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 4fcc802ced39 출처 열린 질문 (4)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

모든 Classic 모듈을 위한 통일된 반환, 버전, 트랜스포머 및 상수 타입을 제공함.

모듈 std은(는) Std_Types.h을(를) 통해 플랫폼 전체에서 통일된 타입과 상수를 제공하지만 코드나 구성을 포함하지는 않음. 핵심은 E_OK 및 E_NOT_OK을(를) 갖는 Std_ReturnType (uint8)임. 비트 7과 비트 8은 RTE 전용으로 예약되어 있으므로, 모듈은 0x02–0x3F 범위에서만 모듈 접두사를 붙여 고유한 값을 정의할 수 있음 [SWS_Std_00011]. 또한 이 모듈은 상수 STD_HIGH/STD_LOW, STD_ON/STD_OFF 및 STD_ACTIVE/STD_IDLE, 버전 쿼리를 위한 타입 Std_VersionInfoType, 그리고 클라이언트-서버 통신을 위한 트랜스포머 및 메시지 타입을 제공함. R20-11에서는 헤더가 Compiler.h도 포함함 SRS BSWGeneral 62쪽.

모듈 std은(는) 순수한 타입 헤더임. Std_Types.h을(를) 통해 타입과 심볼을 제공하지만 함수는 제공하지 않음 [SWS_Std_00005]. R20-11에서 헤더는 Platform_Types.h 및 Compiler.h을(를) 포함하고 Std_ReturnType뿐만 아니라 값 E_OK/E_NOT_OK 및 STD_* 상수를 정의함. 이러한 타입을 사용하는 모든 모듈은 이를 포함함 SRS BSWGeneral 62쪽. 이후의 명세 버전에 따르면 구성 및 자체 오류 처리는 존재하지 않으며, 이는 R20-11에도 동일하게 적용될 것으로 보임(해석) SWS StandardTypes 27쪽. 질문 (열림)

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte Std_ReturnType / transformerError를 사용하는 RTE API

컨텍스트 다이어그램: BSW 모듈, CDD, RTE 및 트랜스포머를 위한 공통 타입 기반으로서의 Std_Types.h. 출처: SRS BSWGeneral 62쪽, CDD Guideline 14쪽

모듈의 핵심은 값 E_OK (0) 및 E_NOT_OK (1)을(를) 갖는 Std_ReturnType (uint8)임. 0x02–0x3F 범위는 모듈 접두사가 있는 모듈별 오류용으로 지정됨. 비트 7과 비트 8은 RTE 명세에서 정의함 [SWS_Std_00011]. 이러한 확장의 예로는 CAN_BUSY 및 Csm_ReturnType이(가) 있음 BSWUML Guide 29쪽. E_OK은(는) OSEK으로 인해 STATUSTYPEDEFINED을(를) 통해 보호됨 [SWS_Std_00006].

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F 모듈별 값 (하위 6비트, 모듈 접두사) rt->user erweiterbar rtebits 비트 7 및 비트 8 예약됨, RTE 사양에 따라 결정됨 rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

컨텍스트 다이어그램(타입 구조): Std_ReturnType의 표준 값, 모듈별 범위 및 RTE 예약 비트. 출처: [SWS_Std_00005], [SWS_Std_00011], SWS StandardTypes 15쪽

여기에 각각 0x01u/0x00u를 갖는 세 쌍의 상수가 추가됨: 물리적 레벨을 위한 STD_HIGH/STD_LOW, 스위치로서의 STD_ON/STD_OFF, 논리적 상태를 위한 STD_ACTIVE/STD_IDLE ([SWS_Std_00007], [SWS_Std_00010], [SWS_Std_00013]). Std_VersionInfoType은(는) 동기적이고 재진입 가능한 함수 <Ma>_GetVersionInfo을(를) 위해 제조업체 ID, 모듈 ID 및 소프트웨어 버전을 전달함 [SWS_Std_00015].

데이터 변환을 위해 std은(는) 트랜스포머 오류를 위한 두 가지 타입을 정의함: 오류 코드와 트랜스포머 클래스로 구성된 구조체인 Std_TransformerError, 그리고 Std_TransformerClass임 [SWS_Std_00021]. RTE는 선택적 매개변수 transformerError을(를) 통해 이 오류를 전달함 SWS RTE 731쪽. 클라이언트-서버 통신의 경우 Std_MessageTypeType 및 Std_MessageResultType은(는) 요청/응답 및 OK/ERROR를 인코딩함. Std_ExtractProtocolHeaderFieldsType 타입의 함수 포인터는 트랜스포머 헤더에서 두 값을 읽음 [SWS_Std_91003]. 포워드 타입은 R20-11에서 아직 초안임 [SWS_Std_00029].

역할 및 시스템 경계: 런타임 동작이 없는 순수 타입 헤더

모듈 std (Standard Types)에는 함수가 포함되어 있지 않음. Std_Types.h을(를) 통해 사용할 수 있는 타입과 심볼만 독점적으로 제공함. 모듈의 모든 요구사항은 [SWS_Std_00005] 및 [SWS_Std_00015]과(와) 같이 이 헤더를 소스로 명시함. 명세에서는 다음과 같이 명시적으로 명시함: 헤더는 코드를 제공하지 않으며 다른 BSW 모듈을 필요로 하지도 않고, 구성과 자체 오류 처리가 없음 SWS StandardTypes 27쪽. 이러한 표현은 R23-11 이후 버전에서 비롯된 것임. R20-11 요구사항에는 타입 및 심볼 정의만 포함되어 있으므로 R20-11에도 동일하게 적용될 것으로 보임(해석). 질문 Q-8e4c66ae80752d38 (열림)

목적은 표준 타입에 대한 통일된 플랫폼 전체 액세스임. 따라서 표준 타입 헤더에 대한 BSW 요구사항은 다음을 요구함: AUTOSAR 정수 타입 또는 표준 반환 타입을 사용하는 모든 모듈은 Std_Types.h을(를) 포함해야 함 SRS BSWGeneral 62쪽. 반환 타입 Std_ReturnType은(는) RTE와 BSW 모듈 간에 명시적으로 공유됨 [SWS_Std_00005]. 방법론에서 표준 타입은 ARXML 아티팩트인 “AUTOSAR Standard Types”로 추가 설명됨 Methodology 400쪽.

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte Std_ReturnType / transformerError를 사용하는 RTE API

컨텍스트 다이어그램: Std_Types.h은(는) 플랫폼 및 컴파일러 헤더를 포함하며, BSW 모듈, CDD, RTE 및 트랜스포머에서 공통 타입 기반으로 사용됨. 출처: SRS BSWGeneral 62쪽, CDD Guideline 14쪽, [SWS_Std_00005], [SWS_Std_00021]

Std_Types.h의 구조 및 헤더 트리에 포함

R20-11의 경우 BSW 요구사항은 Std_Types.h이(가) 수행해야 하는 작업을 정의함 SRS BSWGeneral 62쪽:

  • 플랫폼별 타입 헤더 Platform_Types.h 포함,
  • 컴파일러별 헤더 Compiler.h 포함,
  • Std_ReturnType 정의,
  • E_OK, E_NOT_OK, STD_ON, STD_OFF, STD_HIGH, STD_LOW, STD_ACTIVE 및 STD_IDLE에 대한 값 정의.

동일한 요구사항의 이후 버전에는 Compiler.h 포함이 누락됨 RS BSWGeneral 60쪽. 이는 변경 이력과 일치함: R22-11에서는 사용되지 않는 컴파일러 추상화가 Std 요구사항에서 제거되었으며, NULL_PTR은(는) R21-11에 이르러서야 추가되었음 SWS StandardTypes 1쪽. 따라서 R20-11의 경우 Compiler.h은(는) 인클루드 체인에 속하지만, Std_Types.h의 NULL_PTR은(는) 아직 속하지 않음.

한 가지 특이점은 E_OK에 관한 것임. 이 심볼은 OSEK에 이미 정의되어 있으므로 공유되어야 함. [SWS_Std_00006]은(는) STATUSTYPEDEFINED을(를) 통한 보호를 규정함: 보호 내부에서 E_OK (0x00u) 및 StatusType이(가) 정의되고, E_NOT_OK (0x01u)은(는) 외부에 위치함. BSW 요구사항에는 ISO 17356-3을 참조하는 동일한 구현 참고사항이 포함되어 있음 SRS BSWGeneral 62쪽. Complex Device Driver가 헤더를 인클루드 구조에 어떻게 배치하는지는 CDD 헤더 구조에 대한 다이어그램에 나와 있음 CDD Guideline 14쪽.

Std_ReturnType: 값 범위, 비트 레이아웃 및 모듈별 확장

Std_ReturnType은(는) uint8에서 파생됨. 표준 값은 E_OK (0) 및 E_NOT_OK (1)이며, 0x02–0x3F 범위는 사용자 정의 오류에 사용할 수 있음 [SWS_Std_00005]. [SWS_Std_00011]은(는) 이 규칙을 구체화함:

  • 일반적으로 이 타입은 E_OK 또는 E_NOT_OK과(와) 함께 사용됨.
  • 이 값들로 충분하지 않은 경우 모듈 접두사가 지정된 고유한 값을 하위 6비트에 정의할 수 있음.
  • 비트 7과 비트 8은 예약되어 있음. 전체 레이아웃과 마찬가지로 RTE 명세에 의해 결정됨.

레이아웃에 대한 다이어그램은 바로 이러한 분할을 보여줌 SWS StandardTypes 15쪽.

RTE 명세는 Std_ReturnType을(를) API 함수의 상태 및 오류 값을 위한 타입으로 설명하며, 값 0은 “오류가 발생하지 않음”용으로 예약되어 있음 SWS RTE 675쪽. BSW 모델링 가이드에 따르면 이는 서비스 인터페이스의 클라이언트-서버 작업에서 허용되는 유일한 반환 타입임 BSWUML Guide 28쪽. 모듈별 확장의 한 예는 CAN 드라이버의 CAN_BUSY (0x02)임. 전송 객체가 비어 있지 않은 경우 Can_Write()은(는) 이 값을 반환함 SWS CANDriver 54쪽.

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F 모듈별 값 (하위 6비트, 모듈 접두사) rt->user erweiterbar rtebits 비트 7 및 비트 8 예약됨, RTE 사양에 따라 결정됨 rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

컨텍스트 다이어그램(타입 구조): Std_ReturnType은(는) 표준 값, 모듈별 범위 0x02–0x3F 및 RTE에 의해 예약된 2개의 비트로 나뉘며, Csm_ReturnType 또는 CAN_BUSY과(와) 같은 모듈 확장은 여유 범위만 차지함. 출처: [SWS_Std_00005], [SWS_Std_00011], SWS StandardTypes 15쪽, BSWUML Guide 29쪽, SWS CANDriver 54쪽

BSW의 UML 모델에서 이러한 확장은 «extra_literals» 스테레오타입이 있는 클래스 <Ma>_ReturnType(으)로 모델링됨. 해당 값에는 모듈 접두사가 붙으며 0x02–0x3f 범위에 속함 BSWUML Guide 28쪽. CSM_E_BUSY, CSM_E_SMALL_BUFFER, CSM_E_ENTROPY_EXHAUSTION을(를) 포함하는 예제 Csm_ReturnType이(가) 패턴을 보여줌 BSWUML Guide 29쪽. 한 스택의 여러 모듈에 동일한 확장이 필요한 경우 각 모듈에 대해 별도로 정의할 필요가 없음 BSWUML Guide 33쪽. R23-11 버전에서는 이를 위해 모듈별 확장이 파생되는 «generic_type»이 있는 제네릭 클래스를 제공함 TR BSWUML Guide 37쪽.

erweiterung start 시작: 모듈이 반환값을 정의함 q1 E_OK / E_NOT_OK로 충분한가? start->q1 std E_OK / E_NOT_OK와 함께 Std_ReturnType 사용 q1->std 예 q2 스택 내 여러 모듈에 동일한 확장이 필요한가? q1->q2 아니요 ende 종료: 비트 7/8은 RTE용으로 예약됨 std->ende gen generische Erweiterung «extra_literals» «generic_type» (Fassung R23-11) q2->gen 예 own <Ma>_ReturnType als Klasse «extra_literals» modellieren q2->own 아니요 derive 이를 기반으로 <Ma>_ReturnType 파생, 필요 시 고유 리터럴 추가 gen->derive lit 0x02–0x3F 범위에서 모듈 접두사가 있는 리터럴 정의 derive->lit own->lit lit->ende

활동 다이어그램: 모듈이 Std_ReturnType을(를) 고유한 값으로 확장할지 여부 및 확장 방법에 대한 결정. 출처: [SWS_Std_00011], BSWUML Guide 28쪽, BSWUML Guide 33쪽, TR BSWUML Guide 37쪽

레벨, 스위치 및 상태에 대한 기호 상수

반환값 외에도 Std_Types.h은 세 개의 상수 쌍을 정의합니다. 세 쌍 모두 숫자 값 0x01u 및 0x00u를 사용하지만, 주석은 서로 다르게 작성되어 있습니다 ([SWS_Std_00007], [SWS_Std_00010], [SWS_Std_00013]):

쌍가치정의에 따른 의미
STD_HIGH / STD_LOW0x01u / 0x00u물리적 상태 5 V 또는 3.3 V / 0 V
STD_ON / STD_OFF0x01u / 0x00u추가 주석 없는 On/Off
STD_ACTIVE / STD_IDLE0x01u / 0x00u논리적 상태 활성 / 유휴

STD_HIGH/STD_LOW의 전형적인 사용자는 DIO 드라이버입니다. 해당 읽기 서비스는 이 두 레벨 중 정확히 하나를 반환합니다 SWS DIO 37쪽. STD_ON/STD_OFF는 사전 컴파일(pre-compile) 스위치 역할을 합니다. 일반 BSW 사양의 EEP_21_LDEXT_VERSION_INFO_API STD_ON가 한 예이며 SWS BSWGeneral 76쪽, 또 다른 예로는 GPT 드라이버의 선택적 API 스위치가 있습니다 SWS GPT 48쪽.

Std_VersionInfoType을 통한 버전 조회

Std_VersionInfoType은 다음 멤버를 갖는 구조체입니다: vendorID 및 moduleID(각각 uint16), 그리고 sw_major_version, sw_minor_version, sw_patch_version(각각 uint8). 따라서 <Module name>_GetVersionInfo()을 통해 BSW 모듈의 버전을 조회합니다 [SWS_Std_00015]. 일반 BSW 사양은 이 함수에 대해 다음 사항을 규정합니다 SWS BSWGeneral 76쪽:

  • 동기식으로 동작하며 재진입(reentrant)이 가능합니다.
  • 이 유형의 매개변수를 정확히 하나 가집니다.
  • 가용성은 모듈별로 사전 컴파일 시점에 <Ma>VersionInfoApi을 통해 구성됩니다.

명명 규칙 GetVersionInfo은 예시 Eep_21_LDExt_GetVersionInfo과 함께 BSW 요구사항을 명시합니다 SRS BSWGeneral 60쪽.

구체적인 구현은 여러 모듈에 존재합니다. Can_GetVersionInfo은 개발 오류 감지가 활성화된 경우 널 포인터를 CAN_E_PARAM_POINTER과 함께 거부합니다 SWS CANDriver 57쪽. Adc_GetVersionInfo은 이에 대응하여 ADC_E_PARAM_POINTER를 검사합니다 SWS ADCDriver 80쪽. NVRAM 관리자는 이 호출을 사용자와 모듈 간의 단순한 동기식 교환으로 보여줍니다 SWS NvM 158쪽.

Std_VersionInfoType을 사용한 버전 쿼리NutzerBSW-Modul <Ma>Det다음 경우에만 API 제공:<Ma>VersionInfoApi = STD_ON (Pre-compile)<Ma>_GetVersionInfo(&versioninfo)altversioninfo == NULL 및 개발 오류 감지 활성화됨Entwicklungsfehler melden(z. B. CAN_E_PARAM_POINTER)유효한 포인터vendorID, moduleID,sw_major/minor/patch_version eintragen반환 (void; 동기식, 재진입 가능)

시퀀스 다이어그램: 사용자가 모듈의 버전을 동기식으로 조회합니다. 널 포인터이고 개발 오류 감지가 활성화된 경우 모듈은 오류를 보고하며, 그렇지 않으면 Std_VersionInfoType을 채웁니다. 출처: [SWS_Std_00015], SWS BSWGeneral 76쪽, SWS CANDriver 57쪽, SWS NvM 158쪽

데이터 변환을 위한 트랜스포머 및 메시지 유형

트랜스포머 체인을 위해 std은 여러 유형을 제공합니다. R20-11에서 Std_TransformerError은 errorCode(uint8)와 Std_TransformerClass 유형의 transformerClass로 구성된 구조체입니다 [SWS_Std_00021]. Std_TransformerClass은 uint8에서 파생되며 다섯 가지 값을 가집니다 [SWS_Std_00024]: STD_TRANSFORMER_UNSPECIFIED (0x00), STD_TRANSFORMER_SERIALIZER (0x01), STD_TRANSFORMER_SAFETY (0x02), STD_TRANSFORMER_SECURITY (0x03) 및 STD_TRANSFORMER_CUSTOM (0xFF).

API 디렉터리의 짧은 시그니처에는 Std_TransformerError이 typedef uint8로 기재되어 있습니다. 그러나 요구사항의 구조체 정의가 기준이 됩니다. 이후 버전에서는 errorCode를 자체 유형인 Std_TransformerErrorCode으로 유형화하며, 그 의미는 트랜스포머 체인별로 정의됩니다 SWS StandardTypes 17쪽.

RTE는 Rte_Call SWS RTE 731쪽, Rte_Read SWS RTE 720쪽, Rte_Result SWS RTE 750쪽 등과 같은 API에 이 유형을 선택적 OUT 매개변수 transformerError으로 전달합니다. 플러그인 인터페이스에서는 이를 트랜스포머 체인 실행 중에 발생한 오류로 설명합니다 SWS RTE 969쪽.

Std_TransformerForward 및 Std_TransformerForwardCode은 R20-11에서 초안(draft)으로 표시되어 있습니다. 포워드 코드는 E_OK, E_SAFETY_INVALID_REP, E_SAFETY_INVALID_SEQ, E_SAFETY_INVALID_CRC를 알고 있습니다([SWS_Std_00027], [SWS_Std_00029]). 이후 버전에서 Rte_Send은 이 유형의 선택적 forwardedCode를 받습니다 SWS RTE 704쪽. 이는 E2E 포워드 함수에서 설명하는 바와 같이, 전달 시 수신된 Safety 오류를 다시 매핑하는 데 사용되는 것으로 추정됩니다 SWS E2ELibrary 107쪽 (해석). 변경 이력에 따르면 구조체 Std_TransformerForward는 R22-11에서 제거되었습니다 SWS StandardTypes 1쪽. 질문 Q-f0d374b3b793c868 (열림)

Std_TransformerError를 통해 트랜스포머 오류 보고SW-CRTETransformer-KettetransformerError는 다음 경우에만 존재함:errorHandling = transformerErrorHandlingRte_Call_<p>_<o>(…, OUT transformerError)트랜스포머 체인 실행altTransformer meldet FehlerFehlercode (Interpretation)Std_TransformerError 채우기:errorCode, transformerClass (z. B. STD_TRANSFORMER_SAFETY)Std_ReturnType + transformerErrorkein Transformer-Fehler오류 없는 결과Std_ReturnType (z. B. E_OK)

시퀀스 다이어그램: 트랜스포머 오류는 Std_ReturnType 외에도 오류 코드 및 트랜스포머 클래스를 포함한 Std_TransformerError로서 SW-C로 전달됩니다. 출처: [SWS_Std_00021], [SWS_Std_00024], SWS RTE 731쪽, SwCluster Guideline 245쪽, SWS RTE 774쪽

클라이언트-서버 통신을 위해 두 가지 인코딩 유형이 제공되며, 각각 0x02–0x3F는 향후 값을 위해 예약되어 있습니다:

  • Std_MessageTypeType은 요청(STD_MESSAGETYPE_REQUEST, 0x00)과 응답(STD_MESSAGETYPE_RESPONSE, 0x01)을 구분합니다 ([SWS_Std_91001], [SWS_Std_00017]).
  • Std_MessageResultType은 응답 결과를 인코딩합니다: STD_MESSAGERESULT_OK (0x00) 또는 STD_MESSAGERESULT_ERROR (0x01) ([SWS_Std_91002], [SWS_Std_00019]).

함수 포인터 유형 Std_ExtractProtocolHeaderFieldsType은 동기식 재진입 가능 함수를 기술합니다. 이 함수는 버퍼 내 트랜스포머의 프로토콜 헤더에서 두 값을 추출하고 Std_ReturnType을 반환합니다 [SWS_Std_91003]. 트랜스포머는 역함수의 인수로 이러한 포인터를 선택적으로 받습니다 ASWS TransformerGeneral 40쪽. SOME/IP 트랜스포머는 SomeIpXf_ExtractProtocolHeaderFields를 통해 적절한 구현을 제공합니다 SWS SOMEIPTransformer 61쪽. E2E 프로파일 4m, 7m, 8m, 44m은 검사 함수에서 이 두 값을 평가합니다 SWS E2ELibrary 108쪽.

Protokoll-Header-Felder extrahieren (E2E, Profil PXXm)RTEE2EXf (inverse Funktion)SomeIpXfE2E-BibliothekE2EXf_Inv_<transformerId>(extractProtocolHeaderFields,buffer, bufferLength, …)optProfile == PXXmextractProtocolHeaderFields(buffer, bufferLength,&messageType, &messageResult)= SomeIpXf_ExtractProtocolHeaderFields (Beispiel)Std_ReturnType ok,Std_MessageTypeType, Std_MessageResultTypealtok == E_OKsourceID = config->sourceIDE2E_P04mSourceCheck(…, SourceID,MessageType, MessageResult, …) (Beispiel)Std_ReturnTypeok == E_NOT_OK (z. B. falsche Protokollversion, Puffer zu kurz)오류 종료와 함께 처리 중단uint8 (역변환 결과)

시퀀스 다이어그램: E2E 트랜스포머는 PXXm 프로파일에 대해 전달된 함수 포인터를 통해 메시지 유형 및 결과를 추출하고, E_OK인 경우에만 검사를 계속합니다. 출처: [SWS_Std_91003], ASWS TransformerGeneral 40쪽, SWS E2ETransformer 45쪽, SWS SOMEIPTransformer 61쪽, SWS E2ELibrary 108쪽

오류가 발생한 경우의 동작

모듈 자체는 오류를 감지하거나 보고하지 않습니다. R23-11 이후 버전에서는 표준 유형이 오류 처리를 제공하지 않으며 Security 이벤트를 지원하지 않는다고 명시하고 있습니다 SWS StandardTypes 27쪽. R20-11의 경우에도 동일하게 적용될 것입니다 (해석). 따라서 오류 동작은 해당 유형을 사용하는 모듈에서만 발생합니다. 기본 신호는 E_NOT_OK [SWS_Std_00006]이며, 그 구체적인 의미는 각 API가 정의합니다. Adc_ReadGroup의 경우 “사용 가능한 결과가 없거나 개발 오류” SWS ADCDriver 61쪽를 의미하며, CanIf_Transmit의 경우 “전송 요청이 수락되지 않음” SWS CANInterface 87쪽을 의미합니다. 질문 (열림)

더 세분화된 오류 상황은 0x02–0x3F 범위의 모듈별 값을 통해 보고됩니다 [SWS_Std_00011] (예: CAN_BUSY SWS CANDriver 54쪽). 따라서 호출자는 Std_ReturnType이 두 개 이상의 값을 취할 수 있음을 고려해야 합니다. RTE를 통해 AUTOSAR 서비스로 라우팅되는 콜백은 특수한 경우입니다. 호출자가 E_OK를 가정할 수는 있지만, 파티션된 시스템 등에서는 이러한 콜백이 실패할 수 있습니다 SWS BSWGeneral 69쪽.

트랜스포머 체인에서 오류는 반환값 외에도 오류 코드 및 트랜스포머 클래스를 포함한 Std_TransformerError을 통해 보고됩니다 [SWS_Std_00021]. RTE는 포트에 대해 오류 처리 transformerErrorHandling이 구성된 경우에만 선택적 매개변수 transformerError를 생성합니다 SWS RTE 774쪽. 헤더 필드 추출에 실패하면 SomeIpXf_ExtractProtocolHeaderFields는 잘못된 프로토콜 버전이나 너무 짧은 버퍼 등의 경우 E_NOT_OK을 반환합니다 SWS SOMEIPTransformer 61쪽. E2E 트랜스포머 로직은 E_OK인 경우에만 검사를 계속합니다 SWS E2ETransformer 45쪽.

더 자세한 증거

autodocs 페이로드만을 기반으로 작성된 std(classic, R20-11)용 AI 생성 모듈 가이드입니다. 문서의 많은 부분이 다른 릴리스에서 파생되었으며, 규범적 기준은 R20-11 요구사항입니다. 구속력 있는 사용 전에 사양과 대조하십시오.

Standard Types (Std_Types)

Standard types, return codes (Std_ReturnType, E_OK, E_NOT_OK), version info structures, and error codes shared across the entire AUTOSAR architecture.

Typen — Übersicht

Typen — Detailansicht

타입 Std_ReturnType [SWS_Std_00005] 📄 PDF

typedef uint8 Std_ReturnType;

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6f8f9add55f9 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

타입 Std_ReturnType은(는) API 함수를 위한 표준화된 반환 타입 역할을 하며 RTE와 BSW 모듈에서 공통으로 사용됩니다([SWS_Std_00005]). 헤더 Std_Types.h을(를) 통해 사용할 수 있으며 uint8(으)로 정의됩니다([SWS_Std_00005]).

기본적으로 Std_ReturnType에는 E_OK(값 0) 또는 E_NOT_OK(값 1) 값이 할당됩니다([SWS_Std_00005], [SWS_Std_00011]). 이 두 가지 표준 반환값으로 충분하지 않은 경우, 표준에서는 모듈별 오류 값 정의를 허용합니다:

  • 사용자 오류의 값 범위: 사용자 정의 오류 코드에는 0x02부터 0x3F까지의 범위를 사용할 수 있습니다([SWS_Std_00005]). 이때 최하위 6개 비트가 사용됩니다([SWS_Std_00011]).
  • 명명 규칙: 사용자 정의 오류 값의 명명 시 BSW 지침에 따라 반드시 각 모듈 접두사를 앞에 붙여야 합니다([SWS_Std_00011]).
  • RTE 예약: 비트 7과 비트 8은 예약되어 있으며, 반환 타입의 일반 레이아웃도 따르는 RTE 사양에 의해 지정됩니다([SWS_Std_00011]). 해석: 이는 하위 6비트와 함께 1바이트를 완성하는 8비트 표현의 최상위 2개 비트를 가리키는 것으로 추정됩니다. 질문 Q-d97256956c510f58 (열림)

DET 또는 DEM과 같은 특정 오류 처리 메커니즘 및 재진입성 지침은 소스에서 기본 타입 자체에 대해 정의되지 않으며, 이 타입을 반환값으로 사용하는 해당 API에 위임됩니다.

이 사용 지침은 AI에 의해 작성되었으며 AUTOSAR Classic 릴리스 R20-11의 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 Std_TransformerError [SWS_Std_00021] 📄 PDF

typedef uint8 Std_TransformerError;

-

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 534a10ed1c56 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 Std_TransformerError은(는) 요구사항 [SWS_Std_00021]에 따라 AUTOSAR Classic 플랫폼용 헤더 파일 Std_Types.h을(를) 통해 표준화된 타입으로 제공됩니다. 구조적으로 이 요소는 사양에서 구조체(Structure)로 정의되며, 기본 타입 uint8을(를) 갖는 요소 errorCode 및 타입 Std_TransformerClass을(를) 갖는 요소 transformerClass의 두 컴포넌트로 구성됩니다 [SWS_Std_00021].

실제 사용과 관련하여 사양에는 구체적인 함수 시그니처, 매개변수 설명 또는 반환값이 포함되어 있지 않습니다. 이 구조체 타입은 데이터 변환 시 발생하는 오류를 구조화하여 전송하기 위한 통일된 데이터 컨테이너 역할을 하는 것으로 보입니다(해석). 질문 Q-6e0938f276d60fd3 (열림) 이때 errorCode 필드는 실제 숫자 오류 키를 전달하고, transformerClass은(는) 원인이 되거나 할당된 트랜스포머 클래스를 식별할 것으로 추정됩니다(해석). 질문 Q-d8806698683ec00e (열림)

DET 또는 DEM 메시지와 같은 특정 오류 처리 메커니즘은 [SWS_Std_00021]에 정의되어 있지 않습니다. 또한 동시성, 재진입성 또는 동기식/비동기식 시맨틱에 대한 지침도 원본 자료에 없습니다. Std_Types.h의 순수한 타입 정의이므로 타입 자체에는 런타임 제약 조건이 적용되지 않으며, 이는 전적으로 이를 사용하는 모듈의 해당 컨텍스트에서 비롯됩니다.

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

타입 Std_MessageType [SWS_Std_91001] 📄 PDF

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3a61d74dd0cf 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

표준 타입 Std_MessageType은(는) [SWS_Std_91001]에 따라 다양한 메시지 타입을 인코딩하는 데 사용됩니다. 본 사양에서 이 인코딩은 클라이언트/서버 통신 프레임워크 내에서 요청(Request)과 응답(Response) 간의 구분으로 제한됩니다([SWS_Std_91001]).

이 데이터 타입은 기본 타입 uint8에서 파생되며, 헤더 파일 Std_Types.h을(를) 통해 소프트웨어 컴포넌트 및 기본 소프트웨어 모듈에 제공됩니다([SWS_Std_91001]). 할당 및 평가를 위해 다음 값과 상수가 지정되어 있습니다:

  • STD_MESSAGETYPE_REQUEST(값 0x00): 요청 메시지를 나타냅니다([SWS_Std_91001]).
  • STD_MESSAGETYPE_RESPONSE(값 0x01): 응답 메시지를 나타냅니다([SWS_Std_91001]).
  • 값 범위 0x02 ~ 0x3F: 이 범위는 향후 메시지 타입을 위해 예약되어 있습니다([SWS_Std_91001]).

적용 및 제약 조건과 관련하여, 구현 모듈은 정의된 식별자만 사용해야 합니다. 0x02부터 0x3F까지의 값은 향후 AUTOSAR 확장을 위해 예약되어 있으므로 다른 목적으로 임의 할당해서는 안 됩니다([SWS_Std_91001]). 특정 오류 코드, 반환값, 비동기 시퀀스 또는 DET나 DEM으로의 메시지는 사양에서 이 데이터 타입에 대해 정의되어 있지 않습니다([SWS_Std_91001]).

이 텍스트는 AI 큐레이션 어시스턴트에 의해 생성되었으며 AUTOSAR R20-11 사양을 기반으로 합니다.

타입 Std_MessageResultType [SWS_Std_91002] 📄 PDF

typedef uint8 Std_MessageResultType;

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 48b18d78d865 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

기본 데이터 유형 Std_MessageResultType은(는) AUTOSAR Classic 플랫폼에서 응답 메시지(Response Messages)에 대한 다양한 결과 유형을 인코딩하는 데 사용됩니다 [SWS_Std_00019]. 이 유형은 표준 헤더 파일 Std_Types.h을(를) 통해 제공되며 uint8 기반의 스칼라 유형으로 정의됩니다 [SWS_Std_91002].

사용 및 값 범위

사양에서는 응답 메시지의 통일된 식별을 위해 Std_MessageResultType의 사용을 요구합니다 [SWS_Std_00019]. 현재 이 인코딩의 예정된 기능 범위는 성공적인 응답과 오류 응답 간의 기본적인 구분으로 제한됩니다 [SWS_Std_91002]. 이를 위해 다음과 같은 고정 결과값이 정의되어 있습니다:

  • STD_MESSAGERESULT_OK(값 0x00): 응답 메시지의 정상적이고 오류 없는 결과를 나타냅니다 [SWS_Std_91002].
  • STD_MESSAGERESULT_ERROR(값 0x01): 오류가 발생한 응답 메시지(Error Response)의 결과를 알립니다 [SWS_Std_91002].

제한 사항 및 향후 확장

0x02부터 0x3F까지의 값 범위는 향후 메시지 결과를 위해 명시적으로 예약되어 있습니다 [SWS_Std_91002]. 해석: 사양에서 현재 유효한 다른 반환값을 정의하지 않으므로, 평가 모듈은 이 범위의 예상치 못한 값이나 아직 할당되지 않은 값을 안전하게 포착할 수 있도록 방어적으로 프로그래밍되어야 할 것으로 보입니다 [SWS_Std_00019]. 질문 Q-5f652f73800b7d94 (열림)

이 텍스트는 AI에 의해 작성되었으며 개발자를 위해 AUTOSAR 사양의 규정을 요약한 것입니다.

타입 Std_ExtractProtocolHeaderFieldsType [SWS_Std_91003] 📄 PDF

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

타입 E_OK / E_NOT_OK [SWS_Std_00006] 📄 PDF

#define E_OK 0x00u #define E_NOT_OK 0x01u

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

타입 STD_HIGH / STD_LOW [SWS_Std_00007] 📄 PDF

#define STD_HIGH 0x01u #define STD_LOW 0x00u

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

타입 STD_ACTIVE / STD_IDLE [SWS_Std_00013] 📄 PDF

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

타입 STD_ON / STD_OFF [SWS_Std_00010] 📄 PDF

#define STD_ON 0x01u #define STD_OFF 0x00u

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Std
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Std@rel:R20-11#11a59b4f
Content hash
11a59b4f
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_StandardTypes.pdf#nameddest=SWS_Std_00005

타입

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

#define E_OK 0x00u #define E_NOT_OK 0x01u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

#define STD_HIGH 0x01u #define STD_LOW 0x00u

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

#define STD_ON 0x01u #define STD_OFF 0x00u

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

- Tags: atp.Status=draft

- Tags: atp.Status=draft

This type shall be used to request the version of a BSW module using the _ Get Version Info() function.

typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType;