DEENESPTFRRUARHIKOZHNL

EEPROM Abstraction (Ea)

ModulEa (EEPROM Abstraction)
BSW-Modul-ID40
Standard-Header#include "Ea.h"
SWS-SpezifikationAUTOSAR_SWS_EEPROMAbstraction.pdf
ClusterMemory Services

모듈 가이드AI 생성

논리적 메모리 블록을 EEPROM 주소에 매핑하고 읽기 및 쓰기 작업을 비동기적으로 처리한다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 55a6c103b1ca 출처 열린 질문 (4)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

논리적 메모리 블록을 EEPROM 주소에 매핑하고 읽기 및 쓰기 작업을 비동기적으로 처리한다.

EEPROM Abstraction은 NvM의 논리 블록을 EEPROM 주소에 매핑하며 R20-11에서는 Eep 드라이버를 사용한다. 읽기, 쓰기, 무효화 및 삭제 작업은 동기식으로 수락되고 주기적으로 호출되는 Main Function에서 비동기식으로 실행된다([SWS_Ea_00096]). 모듈은 완료 또는 실패를 NvM에 콜백을 통해 알리거나 작업 결과를 통해 보고한다. 쓰기는 항상 전체 블록에 영향을 미친다. R20-11에서만 Ea_SetMode 및 동기식 Ea_Cancel이(가) 여전히 존재한다([SWS_Ea_00088]).

EEPROM Abstraction(Ea)은 논리 블록을 EEPROM 주소에 매핑한다. 이는 MemIf와 EEPROM 드라이버 Eep 사이에 위치하며, 블록 번호는 동시에 블록의 시작 주소를 나타낸다([SWS_Ea_00087]). 하위 방향으로 Ea는 R20-11에서 읽기, 쓰기, 삭제, 취소 및 모드 전환을 위해 Eep 서비스를 사용한다([SWS_Ea_00097]). R21-11부터 MemAcc가 드라이버 Eep를 대체하고 Ea_SetMode이(가) 생략된다(SWS EA 1쪽).

ea_kontext EcuM EcuM Ea Ea EcuM->Ea Ea_Init(ConfigPtr) SchM BSW Scheduler SchM->Ea Ea_MainFunction() Diag Diagnose-/Systemdienst Diag->Ea Ea_EraseImmediateBlock NvM NvM MemIf MemIf NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode MemIf->Ea Ea_Read, Ea_Write, Ea_Cancel, Ea_SetMode Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep Eep Ea->Eep Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_SetMode, Eep_GetStatus, Eep_GetJobResult Det DET Ea->Det Det_ReportRuntimeError, Det_ReportError (optional) Eep->Ea Ea_JobEndNotification / Ea_JobErrorNotification

컨텍스트 다이어그램: NvM/MemIf와 Eep 사이에 위치하며, EcuM에 의해 초기화되고 BSW Scheduler에 의해 구동되는 Ea. 출처: [SWS_Ea_00084], [SWS_Ea_00096], [SWS_Ea_00097]

구성 세트([SWS_Ea_00084])에 대한 포인터와 함께 Ea_Init을(를) 수행한 후, Ea_GetStatus은(는) MEMIF_IDLE, MEMIF_BUSY 또는 MEMIF_BUSY_INTERNAL 상태 중 하나를 보고한다([SWS_Ea_00089]). 마지막 상태는 가비지 컬렉션(garbage collection)과 같은 내부 관리를 나타낸다(SWS EA 28쪽).

읽기, 쓰기, 무효화 및 즉시 삭제는 비동기식이다. E_OK은(는) 작업이 수락되었음만을 확인한다. 실행은 주기적으로 호출되는 Ea_MainFunction에서 수행된다([SWS_Ea_00086], [SWS_Ea_00096]). 읽기는 임의의 오프셋과 임의의 길이로 가능하다. 쓰기는 오프셋 0으로 항상 전체 블록에 적용된다(SWS EA 25쪽). 쓰기 작업 역시 Main Function에서 시작된다는 것은 해석이다.

Ea를 통한 쓰기 작업NvMMemIfEaEepBSW SchedulerUse Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Ea_Write(BlockNumber, DataBufferPtr)BlockNumber로부터의 주소, 오프셋 0길이 = 구성된 블록 길이Block als inkonsistent markierenE_OKE_OKUse Case: Asynchrone AbarbeitungEa_MainFunction()Eep_Write(...)가정: 드라이버 작업은 Ea_MainFunction에서 시작됨loopbis Treiberauftrag beendetEep_MainFunction()Ea_JobEndNotification()Block als konsistent markierenJobergebnis MEMIF_JOB_OKNvM_JobEndNotification()

시퀀스 다이어그램: 동기 수락, Eep를 통한 비동기 실행 및 NvM으로의 콜백 피드백. 출처: SWS Eep 50쪽, [SWS_Ea_00094], [SWS_Ea_00099]

Ea_Cancel은(는) R20-11에서 동기식이다([SWS_Ea_00088]). 모듈은 EA_E_UNINIT부터 EA_E_INVALID_CANCEL까지의 코드를 통해 오류를 보고한다([SWS_Ea_91001], [SWS_Ea_91002]). 하드웨어 오류는 구성에 따라 두 가지 경로 중 하나를 통해 NvM에 전달된다:

  • 작업 결과 MEMIF_JOB_FAILED 쿼리를 통해,
  • 콜백 NvM_JobErrorNotification을(를) 통해.

복구는 각각 NvM이 담당한다(ErrorDescription 48쪽).

메모리 스택에서의 역할: 논리 블록에서 EEPROM 주소로

EEPROM Abstraction(Ea)은 메모리 스택에서 Memory Abstraction Interface(MemIf)와 EEPROM 드라이버(Eep) 사이에 위치한다. 상위 방향으로는 블록 지향 서비스를 제공한다. 블록 번호는 논리 블록과 동시에 EEPROM 내 해당 블록의 시작 주소를 나타낸다([SWS_Ea_00086], [SWS_Ea_00087]). MemIf는 읽기 및 쓰기 작업을 매개변수 DeviceIndex이(가) 선택한 추상화 모듈로 전달하고 해당 반환값을 그대로 전달한다(SWS MemIf 18쪽, SWS MemIf 19쪽).

하위 방향으로 Ea는 R20-11에서 EEPROM 드라이버의 서비스(Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_GetStatus, Eep_GetJobResult 및 Eep_SetMode)를 사용한다. 여기에 Det_ReportRuntimeError이(가) 추가된다([SWS_Ea_00097]). Det_ReportError은(는) 선택적 인터페이스이다([SWS_Ea_00098]). 가져온 유형 Eep_AddressType, Eep_LengthType, MemIf_StatusType, MemIf_JobResultType 및 MemIf_ModeType은(는) 이러한 임베딩을 반영한다([SWS_Ea_00083]).

릴리스 분류 관련: 변경 이력에 따르면 R21-11부터 Ea_SetMode이(가) 제외된다. 또한 Ea_Cancel이(가) 비동기화되고, 버퍼 정렬이 추가되며, MemAcc가 Eep를 대체하여 하위 계층이 된다(SWS EA 1쪽). 따라서 R20-11의 경우 Eep가 하위 계층으로, Ea_SetMode이(가) 서비스로 여전히 유효하다. 버퍼 정렬에 대한 규칙(SWS EA 19쪽)은 R20-11에 적용되지 않는다.

ea_kontext EcuM EcuM Ea Ea EcuM->Ea Ea_Init(ConfigPtr) SchM BSW Scheduler SchM->Ea Ea_MainFunction() Diag Diagnose-/Systemdienst Diag->Ea Ea_EraseImmediateBlock NvM NvM MemIf MemIf NvM->MemIf MemIf_Read / MemIf_Write / MemIf_Cancel / MemIf_SetMode MemIf->Ea Ea_Read, Ea_Write, Ea_Cancel, Ea_SetMode Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep Eep Ea->Eep Eep_Read, Eep_Write, Eep_Erase, Eep_Cancel, Eep_SetMode, Eep_GetStatus, Eep_GetJobResult Det DET Ea->Det Det_ReportRuntimeError, Det_ReportError (optional) Eep->Ea Ea_JobEndNotification / Ea_JobErrorNotification

컨텍스트 다이어그램: Ea는 상위의 NvM/MemIf와 하위의 드라이버 Eep 사이를 중개한다. EcuM은 모듈을 초기화하고, BSW Scheduler는 이를 주기적으로 구동하며, DET는 오류 보고를 수신한다. 출처: [SWS_Ea_00084], [SWS_Ea_00096], [SWS_Ea_00097], [SWS_Ea_00098], [SWS_Ea_00099], [SWS_Ea_00100], SWS EA 34쪽

시동 및 모듈 상태

Ea_Init은(는) 모듈을 동기식으로 초기화하며 재진입이 불가능하다(non-reentrant). ConfigPtr은(는) 선택된 구성 세트를 가리킨다([SWS_Ea_00084]). Ea_ConfigType은(는) 구현별 요소를 포함하는 구조체이다([SWS_Ea_00190]). 명세서의 시퀀스 다이어그램에 따르면, ECU State Manager는 시동 시 Ea_Init을(를) 호출한다(SWS EA 47쪽). 이는 단일 호출이므로 아래 상태 다이어그램에는 전이(transition)로 표시된다.

Ea_GetStatus은(는) 동작 상태를 MemIf_StatusType(으)로 동기식으로 반환한다([SWS_Ea_00089]):

  • MEMIF_UNINIT: 초기화 전.
  • MEMIF_IDLE: 작업이나 내부 관리가 모두 실행되고 있지 않음.
  • MEMIF_BUSY: 상위 계층의 작업이 처리 중임.
  • MEMIF_BUSY_INTERNAL: EEPROM 메모리 재구성(가비지 컬렉션)과 같은 내부 관리 작업이 실행 중임. 이 동안 드라이버도 일시적으로 점유될 수 있음.

해당 상태들은 SWS EA 28쪽에 설명되어 있다. 모듈은 MEMIF_IDLE 상태뿐만 아니라 MEMIF_BUSY_INTERNAL 상태에서도 쓰기 작업을 수락한다(SWS EA 25쪽).

ea_status start MEMIF_UNINIT MEMIF_UNINIT start->MEMIF_UNINIT MEMIF_IDLE MEMIF_IDLE MEMIF_UNINIT->MEMIF_IDLE Ea_Init(ConfigPtr) MEMIF_BUSY MEMIF_BUSY MEMIF_IDLE->MEMIF_BUSY Auftrag angenommen (Ea_Read, Ea_Write, ...) MEMIF_BUSY_INTERNAL MEMIF_BUSY_INTERNAL MEMIF_IDLE->MEMIF_BUSY_INTERNAL interne Verwaltung startet (z. B. Garbage Collection) MEMIF_BUSY->MEMIF_IDLE 작업 종료됨 (성공/오류) 또는 Ea_Cancel MEMIF_BUSY_INTERNAL->MEMIF_IDLE interne Verwaltung beendet MEMIF_BUSY_INTERNAL->MEMIF_BUSY Ea_Write angenommen

상태 다이어그램: MEMIF_UNINIT에서 MEMIF_IDLE을(를) 거쳐 MEMIF_BUSY 또는 MEMIF_BUSY_INTERNAL(으)로 이어지는 모듈 상태의 수명 주기. 내부 관리 상태에서도 쓰기 작업이 수락된다. 출처: [SWS_Ea_00084], [SWS_Ea_00089], SWS EA 28쪽, SWS EA 25쪽, SWS EA 27쪽

작업 수락 및 Ea_MainFunction에서의 처리

Ea_Read, Ea_Write, Ea_InvalidateBlock 및 Ea_EraseImmediateBlock은(는) 비동기식이다. E_OK은(는) 모듈이 작업을 수락했음을 의미할 뿐이다. E_NOT_OK은(는) 작업을 거부했음을 의미한다([SWS_Ea_00086], [SWS_Ea_00087], [SWS_Ea_00091], [SWS_Ea_00093]). 결과가 나올 때까지 Ea_GetJobResult은(는) MEMIF_JOB_PENDING 값을 보고한다([SWS_Ea_00090]).

실제 작업은 SchM_Ea.h을(를) 통해 사용할 수 있는 Ea_MainFunction이(가) 수행한다([SWS_Ea_00096]). Basic Software Scheduler가 이 함수를 직접 호출한다. 매개변수와 반환값이 없으며 재진입이 불가능하다(SWS EA 36쪽).

ea_annahme start d1 Modul initialisiert? (Status ≠ MEMIF_UNINIT) start->d1 d2 Status MEMIF_BUSY? d1->d2 예 e1 EA_E_UNINIT 보고 E_NOT_OK 반환 d1->e1 아니요 d3 블록 번호, 오프셋, 길이, 포인터가 유효한가? d2->d3 아니요 (IDLE 또는 BUSY_INTERNAL) e2 EA_E_BUSY 보고 E_NOT_OK 반환 d2->e2 예 e3 EA_E_INVALID_BLOCK_NO / _OFS / _LEN 또는 EA_E_PARAM_POINTER 보고 E_NOT_OK 반환 d3->e3 아니요 ok 매개변수 인수 상태 MEMIF_BUSY 작업 결과 MEMIF_JOB_PENDING E_OK 반환 d3->ok 예 mf Abarbeitung in Ea_MainFunction ok->mf hinweis 가정: 검사 순서 hinweis->d1 betrifft

활동 다이어그램: 작업 수락 시의 검사 및 해당 오류 코드. 검사 순서는 가정이다. 출처: [SWS_Ea_91001], [SWS_Ea_91002], [SWS_Ea_00089], [SWS_Ea_00090], SWS EA 25쪽

Ea_Read은(는) 블록 번호와 오프셋으로부터 읽기 주소를 계산한다. 오프셋과 길이는 해당 유형 범위의 모든 값을 가질 수 있으므로, 블록 내의 임의 위치부터 임의의 바이트 수를 읽을 수 있다. 읽기 작업은 명시적으로 Main Function에서 비동기식으로 실행된다(SWS EA 24쪽).

Ea_Write은(는) 고정 오프셋 0과 블록 번호로부터 쓰기 주소를 계산한다. 이 함수는 길이를 해당 블록에 대해 구성된 길이로 설정한다(SWS EA 25쪽). 따라서 쓰기는 항상 전체 블록에 영향을 미친다([SWS_Ea_00087]). 쓰기 작업에 대한 다이어그램은 Eep_Write, 주기적인 Eep_MainFunction, Ea_JobEndNotification 및 NvM_JobEndNotification을(를) 거치는 추가 경로를 보여준다(SWS Eep 50쪽).

해석: 읽기의 경우 Ea_MainFunction에서 드라이버 작업의 시작이 명시적으로 요구된다. 질문 Q-50dcdf4156855a99 (열림) Ea_MainFunction이(가) 요청된 작업을 처리하므로 쓰기의 경우에도 동일하게 적용될 것으로 보인다([SWS_Ea_00096]). 공급업체별 라이브러리의 경우, 시퀀스 다이어그램은 호출 모듈과의 관계에 대해서만 구속력을 가지며 드라이버 호출에 대해서는 구속력을 갖지 않는다(SWS EA 45쪽).

Ea를 통한 쓰기 작업NvMMemIfEaEepBSW SchedulerUse Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr)Ea_Write(BlockNumber, DataBufferPtr)BlockNumber로부터의 주소, 오프셋 0길이 = 구성된 블록 길이Block als inkonsistent markierenE_OKE_OKUse Case: Asynchrone AbarbeitungEa_MainFunction()Eep_Write(...)가정: 드라이버 작업은 Ea_MainFunction에서 시작됨loopbis Treiberauftrag beendetEep_MainFunction()Ea_JobEndNotification()Block als konsistent markierenJobergebnis MEMIF_JOB_OKNvM_JobEndNotification()

시퀀스 다이어그램: 쓰기 작업이 동기식으로 수락되고, 드라이버를 통해 비동기식으로 실행되며, 콜백을 통해 NvM에 보고된다. 출처: SWS Eep 50쪽, SWS MemIf 19쪽, [SWS_Ea_00087], [SWS_Ea_00094], [SWS_Ea_00099]

블록 관리: 주소 매핑, 일관성 및 무효화

그림 7.1은 가상 메모리와 물리 메모리를 비교한다. 블록 번호(16비트)와 오프셋(16비트)은 가상 주소를 구성하므로 블록은 최대 64KiB를 포함할 수 있다. 물리적으로 블록은 구성된 가상 페이지 크기 EA_VIRTUAL_PAGE_SIZE에 정렬되며, 사용되지 않는 가상 공간은 메모리를 차지하지 않는다(SWS EA 23쪽).

Ea는 각 블록마다 고유한 일관성 정보를 유지한다. 쓰기 작업이 시작되면 블록은 불일치 상태로 간주되고, 성공적으로 종료된 후 다시 일관된 상태로 간주된다. Ea는 불일치 블록과 의도적으로 무효화된 블록을 구별할 수 있어야 한다(SWS EA 19쪽, R24-11 버전). 호출자에게 두 경우는 작업 결과 MEMIF_BLOCK_INCONSISTENT 및 MEMIF_BLOCK_INVALID을(를) 통해 가시화된다([SWS_Ea_00090]).

Ea_InvalidateBlock은(는) 블록 BlockNumber을(를) 무효화합니다([SWS_Ea_00091]). 구현에 따라 이는 드라이버의 삭제 기능을 통해 수행되거나, 비휘발성으로 저장되어야 하는 내부 관리 정보를 통해 수행됩니다(SWS EA 31쪽).

Ea_EraseImmediateBlock은(는) 블록을 삭제합니다([SWS_Ea_00093]). 이 함수는 Immediate 데이터 영역을 사전에 삭제하는 진단 또는 유사한 시스템 서비스를 위한 것입니다. 주소는 오프셋 0으로 계산합니다. 이는 Ea가 Immediate 데이터를 쓸 수 있도록 보장합니다(SWS EA 34쪽).

동작 모드, 취소 및 알림

R20-11에서 Ea_SetMode은(는) MemIf_ModeType 타입의 파라미터 Mode을(를) 사용하여 EEPROM 드라이버의 모드를 전환합니다. 이 서비스는 비동기식이며 재진입이 불가능합니다([SWS_Ea_00085]). API 요소에서 파라미터가 생략된 단축 시그니처는 이와 차이가 있으며, 서비스 설명이 우선합니다. 다이어그램은 NvM → MemIf_SetMode → Ea_SetMode → Eep_SetMode 체인을 보여줍니다(SWS EA 42쪽). R21-11부터 이 서비스는 제거되었습니다(SWS EA 1쪽).

Ea_SetMode를 사용한 모드 전환 (R20-11)NvMMemIfEaEepMemIf_SetMode(MemIf_ModeType)Ea_SetMode(MemIf_ModeType)Eep_SetMode(MemIf_ModeType)Eep_SetMode()Ea_SetMode()MemIf_SetMode()Ea_SetMode는 R20-11까지만 지원, R21-11부터 제거됨

시퀀스 다이어그램: 모드 변경이 NvM에서 MemIf 및 Ea를 거쳐 드라이버까지 전달됨(R20-11까지만 해당). 출처: [SWS_Ea_00085], SWS EA 52쪽, SWS EA 42쪽

Ea_Cancel은(는) 실행 중인 비동기 작업을 취소하며 R20-11에서는 동기식입니다([SWS_Ea_00088]). 이후 문서 위치에서는 이 서비스를 비동기식으로 기술하지만, R20-11의 경우 해당 요구사항이 적용됩니다. 이 문서 위치에 따른 내용상 규정은 다음과 같습니다. MEMIF_BUSY 상태에서 Ea는 드라이버의 취소 함수를 호출하고 내부 변수를 재설정합니다. 이때 작업 결과는 MEMIF_JOB_CANCELED이(가) 됩니다(SWS EA 27쪽). MemIf는 취소를 전달합니다(SWS MemIf 20쪽). 대기 중인 작업이 없는 상태에서의 취소는 EA_E_INVALID_CANCEL을(를) 반환합니다([SWS_Ea_91002]).

Ea_Cancel을 사용한 작업 취소NvMMemIfEaEepMemIf_Cancel(DeviceIndex)Ea_Cancel()altStatus MEMIF_UNINIT (DET aktiv)EA_E_UNINIT melden내부 변수 변경되지 않음Status MEMIF_BUSYEep_Cancel()복귀내부 변수 재설정Jobergebnis MEMIF_JOB_CANCELED새 작업 준비 완료대기 중인 작업 없음EA_E_INVALID_CANCEL melden복귀복귀

시퀀스 다이어그램: Ea_Cancel이(가) 모듈 상태에 따라 드라이버에서의 취소, 오류 보고 또는 변경 없는 반환으로 분기함. 출처: [SWS_Ea_00088], [SWS_Ea_91002], [SWS_Ea_00097], SWS EA 27쪽, SWS MemIf 20쪽

하위 계층은 비동기 작업의 성공 또는 실패를 Ea_JobEndNotification 또는 Ea_JobErrorNotification을(를) 통해 보고합니다([SWS_Ea_00094], [SWS_Ea_00095]). 그런 다음 Ea는 NvM에 NvM_MemIf.h의 NvM_JobEndNotification 또는 NvM_JobErrorNotification을(를) 신호합니다([SWS_Ea_00099], [SWS_Ea_00100]). MemIf 자체는 콜백을 제공하지 않습니다(SWS MemIf 24쪽).

콜백은 인터럽트 레벨에서 실행될 수 있습니다. 따라서 실행 시간이 짧게 유지되어야 하며, 시스템 설계 시 구성을 이에 맞추어야 합니다(SWS EA 35쪽). Ea_GetVersionInfo은(는) 유일하게 재진입이 가능한 서비스입니다([SWS_Ea_00092]).

오류가 발생한 경우의 동작

오류 코드는 두 개의 테이블에 나열되어 있습니다.

  • 첫 번째 테이블([SWS_Ea_91001]): EA_E_UNINIT(0x01), EA_E_INVALID_BLOCK_NO(0x02), EA_E_INVALID_BLOCK_OFS(0x03), EA_E_PARAM_POINTER(0x04) 및 EA_E_INVALID_BLOCK_LEN(0x05).
  • 두 번째 테이블([SWS_Ea_91002]): EA_E_BUSY(0x06) 및 EA_E_INVALID_CANCEL(0x08).

EA_E_INIT_FAILED은(는) R20-11에서 제거되었습니다(SWS EA 1쪽). 해석: 첫 번째 테이블은 선택적 Det_ReportError을(를) 통한 개발 오류를 다루고, 두 번째 테이블은 Det_ReportRuntimeError을(를) 통한 런타임 오류를 다루는 것으로 보입니다([SWS_Ea_00097], [SWS_Ea_00098]). 질문 Q-8443a03d306e4143 (열림)

개발 오류 감지가 활성화된 경우 초기화되지 않은 상태에서 다음이 적용됩니다. Ea_GetJobResult은(는) EA_E_UNINIT을(를) 보고하고 MEMIF_JOB_FAILED을(를) 반환합니다(SWS EA 30쪽). Ea_Cancel은(는) EA_E_UNINIT을(를) 보고하고 내부 변수를 변경하지 않은 채 반환합니다(SWS EA 27쪽). Ea_GetVersionInfo은(는) NULL 포인터 시 EA_E_PARAM_POINTER을(를) 보고합니다(SWS EA 32쪽). Ea_InvalidateBlock 및 Ea_EraseImmediateBlock은(는) DET가 활성화된 경우에만 E_NOT_OK을(를) 반환합니다([SWS_Ea_00091], [SWS_Ea_00093]).

하드웨어 오류는 EEPROM 드라이버가 감지합니다. Ea의 대응은 구현에 따라 다릅니다. 구성에 따라 두 가지 경로 중 하나로 보고됩니다. 즉, 작업 결과 MEMIF_JOB_FAILED을(를) 사용한 폴링을 통해 보고되거나 콜백 NvM_JobErrorNotification을(를) 통해 보고됩니다. 복구는 NvM이 담당합니다(ErrorDescription 48쪽, [SWS_Ea_00095], [SWS_Ea_00100]). 폴링 경로에 대해 오류 설명에서는 Eep_GetJobResult을(를) 명시합니다. Ea가 Main Function에서 이 함수를 폴링하는 것은 의도된 동작으로 추정되나, 명시적으로 규정되어 있지는 않습니다. 질문 (열림)

작업 결과는 오류 유형을 세부적으로 구분합니다([SWS_Ea_00090]):

  • MEMIF_JOB_CANCELED: 취소되었으며 실패한 것으로 간주됩니다.
  • MEMIF_JOB_FAILED: 작업이 실패했습니다.
  • MEMIF_BLOCK_INCONSISTENT: 블록에 손상된 데이터가 포함되어 있을 수 있습니다.
  • MEMIF_BLOCK_INVALID: 블록이 무효화되었으므로 작업을 실행할 수 없습니다.
드라이버 오류 보고NvMEaEepEep가 비동기 작업에서 오류 감지altKonfiguration: Callback-BenachrichtigungEa_JobErrorNotification()implementierungsspezifische ReaktionNvM_JobErrorNotification()Konfiguration: PollingEep_GetJobResult()MEMIF_JOB_FAILEDAnnahme: Abfrage in Ea_MainFunctionEa_GetJobResult()MEMIF_JOB_FAILED복구: NvM의 작업

시퀀스 다이어그램: 드라이버 오류가 구성에 따라 콜백 또는 작업 결과 조회를 통해 NvM에 도달함. 출처: ErrorDescription 48쪽, [SWS_Ea_00095], [SWS_Ea_00100], [SWS_Ea_00090], [SWS_Ea_00097]

더 자세한 증거

페이로드에 제공된 R20-11 요구사항 및 문서 위치를 기반으로 AI가 생성한 가이드입니다. 이후 릴리스의 문서 위치는 별도로 표시되어 있으며, 차이가 있는 경우 요구사항이 우선합니다. 해석으로 표시된 진술은 규범적이지 않습니다.

EEPROM Abstraction (Ea)

Provides uniform access to external and internal EEPROM devices.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Ea_Init [SWS_Ea_00084] 📄 PDF

void Ea_Init (const Ea_ConfigType* ConfigPtr);

Initializes the EEPROM abstraction module.

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

함수 Ea_Init은(는) EEPROM Abstraction([SWS_Ea_00084]) 모듈을 초기화하는 데 사용됩니다. 이 함수는 헤더 파일 Ea.h을(를) 통해 제공되며 모듈을 작동 준비 상태([SWS_Ea_00084])(으)로 전환합니다.

[SWS_Ea_00084]의 인터페이스 사양에 따라 호출에는 다음과 같은 속성과 제약 조건이 적용됩니다:

  • 시맨틱 및 서비스 ID: 호출은 동기식으로 수행됩니다. 서비스에는 서비스 ID 0x00이(가) 할당됩니다.
  • 재진입성: 이 함수는 재진입 불가(Non Reentrant)(으)로 지정되어 있으므로 동시에 실행해서는 안 됩니다.
  • 매개변수: 입력 매개변수로는 선택된 구성 데이터 세트를 참조하는 ConfigPtr(유형 const Ea_ConfigType*)이(가) 사용됩니다. 입출력 매개변수나 출력 매개변수는 존재하지 않습니다.
  • 반환값: 이 함수는 반환값을 제공하지 않습니다(void).

호출 컨텍스트와 관련하여 본 항목에는 명시적인 규정이 포함되어 있지 않습니다. 초기화는 일반적으로 다른 모듈 함수가 실행되기 전 제어기 시동 단계에서 중앙 집중식으로 수행될 것으로 추정됩니다. 특정 오류 코드, 오류 시 반응 또는 DET 및 DEM으로의 보고는 [SWS_Ea_00084]에 나열되어 있지 않습니다. 질문 Q-b2b40930e5fd0ee7 (열림)

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

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

함수 Ea_SetMode [SWS_Ea_00085] 📄 PDF

void Ea_SetMode (MemIf_ModeType Mode);

Function to switch the mode of the underlying EEPROM Driver

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

사용법 및 의미론

함수 Ea_SetMode은(는) 하위 EEPROM 드라이버([SWS_Ea_00085])의 작동 모드를 전환하는 데 사용됩니다. 이 함수는 원하는 모드인 MemIf_ModeType 유형의 Mode을(를) 입력 매개변수로 받습니다([SWS_Ea_00085]). 함수는 반환값을 갖지 않으며(void), 헤더 파일 Ea.h을(를) 통해 서비스 ID 0x01(으)로 제공됩니다([SWS_Ea_00085]).

실행은 비동기식으로 수행되므로(Asynchronous), 호출 후 드라이버의 실제 전환은 백그라운드에서 계속 처리됩니다([SWS_Ea_00085]).

동시성 및 제약사항

  • 재진입성: 이 함수는 재진입 불가(Non Reentrant)(으)로 지정되어 있습니다([SWS_Ea_00085]). 서로 다른 태스크나 컨텍스트에서의 병렬 호출은 호출자 측에서 방지해야 합니다.
  • 호출 컨텍스트 및 매개변수: 입출력 또는 순수 출력 매개변수는 전달되어서는 안 되며, 오직 입력 매개변수 Mode만 제공됩니다([SWS_Ea_00085]).

이 텍스트는 AUTOSAR 명세를 바탕으로 AI에 의해 작성되었습니다.

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

함수 Ea_Read [SWS_Ea_00086] 📄 PDF

Std_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);

Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.

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

사용법 및 의미론

함수 Ea_Read은(는) 헤더 Ea.h을(를) 통해 지정된 논리적 EEPROM 블록에서 사용자 데이터를 읽어오는 데 사용됩니다[SWS_Ea_00086]. 매개변수 Block Number을(를) 통해 논리적 블록이 주소 지정되며, 이는 동시에 EEPROM에서의 시작 주소를 결정합니다[SWS_Ea_00086]. 매개변수 Block Offset은(는) 블록 내의 상대적 읽기 오프셋을 정의하고, Length은(는) 읽을 바이트 수를 정의합니다[SWS_Ea_00086]. 대상 데이터는 Data Buffer Ptr에 의해 참조되는 버퍼에 기록됩니다[SWS_Ea_00086].

호출은 비동기식(Asynchronous)으로 동작합니다: 반환값 E_OK은(는) EA 모듈이 작업 요청을 수락했음만을 나타내는 반면, E_NOT_OK은(는) 요청이 거부되었음을 나타냅니다[SWS_Ea_00086]. 해석: 데이터 전송이 백그라운드에서 비동기식으로 수행되므로, 작업이 완전히 실행될 때까지 참조된 버퍼가 변경되지 않고 유효하게 유지되어야 할 것으로 보입니다. 질문 Q-34c9b29f373bd6cf (열림)

동시성 및 제약사항

이 인터페이스는 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_Ea_00086]. 따라서 서로 다른 실행 컨텍스트에서의 병렬 호출은 허용되지 않으며 호출자 측에서 동기화되어야 합니다.

이 사용 지침은 R20-11 명세를 기반으로 자동 생성되었습니다.

함수 Ea_Write [SWS_Ea_00087] 📄 PDF

Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);

Writes the contents of the Data Buffer Ptr to the block Block Number.

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

함수 Ea_Write은(는) 버퍼의 데이터를 논리적 EEPROM 블록에 비동기식으로 쓰는 작업을 시작합니다[SWS_Ea_00087]. 이 함수는 헤더 파일 Ea.h을(를) 통해 선언되며 서비스 ID 0x03을(를) 갖습니다[SWS_Ea_00087].

매개변수 및 반환값

  • BlockNumber(입력, uint16): 논리적 블록 번호를 지정하며 동시에 EEPROM에서의 시작 주소를 나타냅니다[SWS_Ea_00087].
  • DataBufferPtr(입력, const uint8*): 기록할 데이터를 포함하는 버퍼에 대한 포인터입니다[SWS_Ea_00087].
  • 반환값(Std_ReturnType): E_OK은(는) 쓰기 작업이 실행을 위해 EA 모듈에 의해 수락되었음을 나타내고, E_NOT_OK은(는) 요청이 거부되었음을 의미합니다[SWS_Ea_00087].

동시성 및 제약사항

이 함수는 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_Ea_00087]. 따라서 사전 외부 동기화 없이 조정되지 않은 동시 호출을 수행해서는 안 될 것으로 보입니다. 질문 Q-a52fbcca6963c760 (열림) 쓰기 프로세스가 비동기식(Asynchronous)으로 실행되므로[SWS_Ea_00087], 호출자는 작업이 완전히 완료될 때까지 제공된 버퍼 DataBufferPtr을(를) 메모리에서 변경 없이 유지해야 할 것으로 보입니다. 특정 DET 또는 DEM 오류 코드는 함수의 명세 발췌본에 명시되어 있지 않습니다.

이 사용 지침은 AUTOSAR 릴리스 R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

함수 Ea_Cancel [SWS_Ea_00088] 📄 PDF

void Ea_Cancel (void);

Cancels the ongoing asynchronous operation.

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

함수 Ea_Cancel은(는) EEPROM-Abstraction 모듈의 현재 실행 중인 비동기 작업을 중단합니다([SWS_Ea_00088]). 이 서비스는 헤더 파일 Ea.h을(를) 통해 제공되며 서비스 ID 0x04을(를) 갖습니다([SWS_Ea_00088]).

호출 동작 및 인터페이스 정의와 관련하여 다음과 같은 특성이 적용됩니다([SWS_Ea_00088]):

  • 시맨틱: 진행 중인 비동기 작업을 중단함에도 불구하고([SWS_Ea_00088]), 호출 자체는 동기식으로 수행됩니다(Synchronous).
  • 매개변수 및 반환: 시그니처는 void Ea_Cancel(void)입니다. 이 함수는 입력, 출력 또는 전달 매개변수를 필요로 하지 않으며 반환값을 갖지 않습니다([SWS_Ea_00088]).
  • 재진입성: 이 인터페이스는 재진입 불가(Non Reentrant)(으)로 정의됩니다([SWS_Ea_00088]). 따라서 여러 실행 컨텍스트나 인터럽트 태스크에서 동시에 호출해서는 안 됩니다.

Ea_Cancel은(는) 작업 또는 블록 식별자를 받지 않으므로, 중단은 현재 처리 중인 전체 비동기 작업에 직접 적용됩니다([SWS_Ea_00088]). 특정 오류 코드나 감지 메커니즘으로의 피드백은 사양 데이터에 포함되어 있지 않습니다. 일반적으로 시간이 오래 걸리는 읽기, 쓰기 또는 지우기 작업을 조기에 선별적으로 종료하기 위해 Memory Abstraction Interface(MemIf)와 같은 상위 계층에 의해 호출이 이루어질 것으로 추정됩니다. 질문 Q-e441cbf6a5097568 (열림)

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

함수 Ea_GetStatus [SWS_Ea_00089] 📄 PDF

MemIf_StatusType Ea_GetStatus (void);

Service to return the Status.

함수 Ea_GetJobResult [SWS_Ea_00090] 📄 PDF

MemIf_JobResultType Ea_GetJobResult (void);

Service to return the Job Result.

함수 Ea_InvalidateBlock [SWS_Ea_00091] 📄 PDF

Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);

Invalidates the block Block Number.

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

사용

함수 Ea_InvalidateBlock은(는) 논리 블록 번호로 지정된 블록을 무효화하는 데 사용됩니다 [SWS_Ea_00091]. 이 함수는 서비스 ID 0x07을(를) 가지며 헤더 파일 Ea.h을(를) 통해 제공됩니다 [SWS_Ea_00091]. 입력 매개변수로 유형 uint16의 Block Number을(를) 받으며, 이는 논리 블록 번호를 나타내고 동시에 EEPROM에서 해당 블록의 시작 주소를 나타냅니다 [SWS_Ea_00091]. 이 서비스에는 입출력 매개변수나 순수 출력 매개변수가 정의되어 있지 않습니다 [SWS_Ea_00091].

호출은 비동기 작업(Asynchronous)(으)로 실행됩니다 [SWS_Ea_00091]. 유형 Std_ReturnType의 반환값 E_OK은(는) EA 모듈이 추가 처리를 위해 작업 요청을 수락했음을 호출자에게 확인해 줍니다 [SWS_Ea_00091].

오류 처리

EA 모듈이 요청된 작업을 수락할 수 없는 경우 오류 값 E_NOT_OK이(가) 반환됩니다 [SWS_Ea_00091]. 그러나 사양에 따르면 E_NOT_OK의 이러한 반환은 DET가 활성화된 경우에만 발생합니다 [SWS_Ea_00091].

동시성 및 제약사항

이 인터페이스는 재진입 불가(Non Reentrant)(으)로 지정되어 있습니다 [SWS_Ea_00091]. 해석: 모듈 측의 재진입성이 보장되지 않으므로, 결과적으로 호출자는 이 함수를 병렬로 또는 인터럽트 방식으로 호출해서는 안 될 것으로 추정됩니다 [SWS_Ea_00091]. 질문 Q-81d805517d2eac88 (열림)

이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 작성되었습니다.

함수 Ea_EraseImmediateBlock [SWS_Ea_00093] 📄 PDF

Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);

Erases the block Block Number.

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

함수 Ea_EraseImmediateBlock은(는) [SWS_Ea_00093]에 따라 EEPROM의 논리 블록을 삭제하는 데 사용됩니다.

  • 사용법 및 시맨틱: 호출은 비동기식으로 수행됩니다([SWS_Ea_00093]). 입력 매개변수 Block Number을(를) 통해 논리 블록의 번호가 전달되며, 이는 동시에 EEPROM에서 해당 블록의 시작 주소를 나타냅니다([SWS_Ea_00093]). 반환값은 Std_ReturnType 유형입니다. E_OK은(는) 요청된 작업이 모듈에 의해 수락되었음을 나타냅니다([SWS_Ea_00093]).
  • 오류 처리: Default Error Tracer(DET)가 활성화되어 있는 경우, EA 모듈이 작업을 수락할 수 없을 때 함수는 E_NOT_OK을(를) 반환합니다([SWS_Ea_00093]). DET가 활성화되어 있지 않은 경우 사양의 문구에 따르면 오류 발생 시 E_NOT_OK이(가) 반환되지 않을 것으로 보입니다. 질문 Q-5015a2135dbd4723 (열림)
  • 동시성 및 제한 사항: 이 함수는 재진입 불가(Non Reentrant)(으)로 지정되어 있습니다([SWS_Ea_00093]). 따라서 호출자는 병렬 또는 중복 호출이 발생하지 않도록 해야 합니다. 선언은 헤더 파일 Ea.h을(를) 통해 확인할 수 있으며, 서비스 ID는 0x09입니다([SWS_Ea_00093]).

이 텍스트는 AUTOSAR 명세를 바탕으로 AI에 의해 작성되었습니다.

함수 Ea_JobEndNotification [SWS_Ea_00094] 📄 PDF

void Ea_JobEndNotification (void);

Service to report to this module the successful end of an asynchronous operation.

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

함수 Ea_JobEndNotification은(는) 이전에 시작된 비동기 작업이 성공적으로 완료되었음을 모듈 Ea에 알리는 데 사용됩니다 [SWS_Ea_00094]. 이 인터페이스는 헤더 Ea.h을(를) 통해 제공되며 서비스 ID 0x10을(를) 갖습니다 [SWS_Ea_00094].

시맨틱 및 인터페이스 정의와 관련하여 [SWS_Ea_00094]에 따라 다음 속성이 적용됩니다:

  • 시그니처 및 매개변수: 이 함수는 전달 매개변수를 필요로 하지 않으며(void) 반환값을 반환하지 않습니다(void).
  • 동기성: 호출은 동기식으로 처리됩니다.
  • 오류 처리: 이 인터페이스는 성공적인 완료만을 알립니다. 이 알림에 대해 요소 내에 특정 오류 코드나 오류 메시지는 정의되어 있지 않습니다.

동시성과 관련하여 Ea_JobEndNotification은(는) 재진입 불가(Non Reentrant)(으)로 지정되어 있습니다 [SWS_Ea_00094]. 따라서 호출자는 병렬 호출이나 중첩 호출이 발생하지 않도록 해야 합니다. 해석: 이 함수는 일반적으로 하위 드라이버의 비동기 처리가 완료되는 즉시 해당 드라이버에 의해 호출될 것으로 보이며, 호출 컨텍스트는 상호 선점 없는 순차적 순서를 보장해야 할 것으로 추정됩니다. 질문 Q-296b61b743e7c9b8 (열림)

본 사용 지침은 AUTOSAR R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

함수 Ea_JobErrorNotification [SWS_Ea_00095] 📄 PDF

void Ea_JobErrorNotification (void);

Service to report to this module the failure of an asynchronous operation.

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

함수 Ea_JobErrorNotification은(는) 이전에 시작된 비동기 작업의 오류를 Ea 모듈에 보고하기 위한 알림 인터페이스 역할을 합니다[SWS_Ea_00095]. 이 함수는 헤더 파일 Ea.h을(를) 통해 사용 가능하며 서비스 ID 0x11을(를) 갖습니다[SWS_Ea_00095].

인터페이스 명세 및 사용과 관련하여 다음 특성이 적용됩니다:

  • 매개변수 및 반환값: 이 함수는 전달 매개변수(in, out, inout 모두 없음)와 반환값이 없습니다(시그니처 void Ea_JobErrorNotification(void))[SWS_Ea_00095].
  • 실행 동작 및 재진입성: 호출은 동기식으로 처리되지만 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_Ea_00095]. 따라서 호출자는 호출이 순차적으로 이루어지고 병렬 컨텍스트에 의해 겹치지 않도록 보장해야 합니다.
  • 상호작용: 이 함수는 비동기 작업의 실패를 알리므로, 작업이 실패하는 즉시 하위 하드웨어 추상화 모듈 또는 메모리 드라이버에 의해 호출이 일반적으로 수행될 것으로 보입니다(해석). 질문 Q-810e76dee987a5a1 (열림)

이 서비스에 대해 특정 오류 코드, 개발 오류(DET) 또는 프로덕션 오류(DEM)는 정의되어 있지 않으며, 호출 자체에 대한 별도의 오류 동작은 해당 요소에 명세되어 있지 않습니다.

이 텍스트는 AI에 의해 작성되었습니다. 모든 전문적인 기술적 내용은 AUTOSAR R20-11의 명세 데이터만을 기반으로 합니다.

함수 Ea_MainFunction [SWS_Ea_00096] 📄 PDF

void Ea_MainFunction (void);

Service to handle the requested jobs and the internal management operations.

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

사용

함수 Ea_MainFunction은(는) EEPROM-Abstraction 모듈 내에서 요청된 작업의 처리 및 내부 관리 작업의 수행에 사용됩니다 [SWS_Ea_00096]. 인터페이스 정의 void Ea_MainFunction(void)에 따라 함수는 전달 매개변수를 받지 않으며 호출자에게 반환값을 반환하지 않습니다 [SWS_Ea_00096].

호출 컨텍스트 및 동시성

이 인터페이스는 서비스 ID 0x12을(를) 가지며 헤더 파일 SchM_Ea.h을(를) 통해 선언됩니다 [SWS_Ea_00096]. 해석: SchM_Ea.h을(를) 통한 제공으로 인해, 백그라운드에서 지속적으로 메모리 작업의 비동기 처리를 이어가기 위해 태스크 컨텍스트에서 Schedule Manager(BSW Scheduler)에 의해 일반적으로 주기적으로 호출이 수행될 것으로 추정됩니다. 질문 Q-23f33a40a1e08c34 (열림)

오류 처리

Ea_MainFunction은(는) 반환값을 제공하지 않으므로 함수 호출을 통해 오류 상태나 작업 진행 상황이 직접 전달되지 않습니다 [SWS_Ea_00096]. 본 사양 발췌문에는 개발 인터페이스 모듈(DET)이나 진단 모듈(DEM)로의 보고를 위한 특정 오류 코드 및 요구 사항이 이 서비스에 대해 정의되어 있지 않습니다.

이 텍스트는 자동으로 생성되었습니다. 모든 정보는 릴리스 R20-11의 사양 데이터에만 기반합니다.

함수 NvM_JobEndNotification [SWS_Ea_00099] 📄 PDF

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job without error.

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

사용법 및 의미론

콜백 함수 NvM_JobEndNotification은(는) [SWS_Ea_00099]에 따라 기본 메모리 추상화에서 작업이 오류 없이 성공적으로 종료되었음을 상위 모듈에 신호하는 데 사용됩니다. 이 서비스는 시그니처 void NvM_JobEndNotification(void)을(를) 갖습니다. 입력 또는 입출력 매개변수를 필요로 하지 않으며 값을 반환하지 않습니다 [SWS_Ea_00099]. 실행은 동기식으로 지정되어 있으며, 인터페이스는 헤더 파일 NvM_MemIf.h을(를) 통해 제공됩니다 [SWS_Ea_00099].

동시성 및 호출 조건

런타임 동작과 관련하여 NvM_JobEndNotification은(는) 재진입 불가(Non Reentrant)(으)로 분류됩니다 [SWS_Ea_00099]. 따라서 호출하는 인스턴스는 여러 컨텍스트에서 중단되거나 병렬로 알림이 호출되지 않도록 보장해야 합니다. 해석: 메모리 추상화 계층은 작업이 오류 없이 완료된 것이 확인되는 즉시 주기적 메인 함수 내에서 또는 비동기 드라이버 작업 완료 후 일반적으로 이 함수를 실행할 것으로 추정됩니다. 질문 Q-adabc07be0a3e7d2 (열림)

오류 처리 및 상호 작용

이 알림 함수에 대해 [SWS_Ea_00099]에는 특정 오류 코드나 개발 오류(DET) 또는 프로덕션 오류(DEM)가 정의되어 있지 않습니다. 이는 호출이 오직 작업의 오류 없는 완료만을 나타내기 때문입니다 [SWS_Ea_00099]. 메모리 작업 중 오류가 발생하면 이 알림은 호출되지 않습니다.

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

함수 NvM_JobErrorNotification [SWS_Ea_00100] 📄 PDF

void NvM_JobErrorNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

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

알림 함수 NvM_JobErrorNotification은(는) 작업의 오류 완료를 NVRAM Manager에 보고하기 위해 하위 메모리 추상화(Memory Abstraction)에 의해 사용됩니다 [SWS_Ea_00100]. 이 인터페이스의 선언은 헤더 파일 NvM_MemIf.h을(를) 통해 제공됩니다 [SWS_Ea_00100].

인터페이스의 호출 및 통합에 대해 사양 [SWS_Ea_00100]에 따라 다음 속성이 적용됩니다:

  • 시그니처 및 구문: 함수는 시그니처 void NvM_JobErrorNotification (void)을(를) 갖습니다 [SWS_Ea_00100].
  • 매개변수 및 반환값: 이 함수는 입력 매개변수(Parameters (in): None), 입출력 매개변수(Parameters (inout): None), 출력 매개변수(Parameters (out): None)를 모두 갖지 않으며 값을 반환하지 않습니다(Return value: None) [SWS_Ea_00100].
  • 동기성: 호출은 동기식(Synchronous)(으)로 지정되어 있습니다 [SWS_Ea_00100].
  • 동시성: 이 함수는 재진입 불가(Non Reentrant)(으)로 설정되어 있습니다 [SWS_Ea_00100]. 따라서 메모리 추상화에서의 해당 호출은 동시에 발생하거나 중복되어 실행되어서는 안 됩니다.

특정 오류 코드, 오류 구분을 위한 매개변수 또는 Default Error Tracer(DET)나 Diagnostic Event Manager(DEM) 모듈에 대한 알림 요구 사항은 정의에 포함되어 있지 않습니다 [SWS_Ea_00100]. 이 함수는 오류로 종료된 작업 결과에 대한 순수한 상태 보고 역할만을 수행합니다 [SWS_Ea_00100].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic R20-11 사양에만 기반합니다.

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

Record
AUTOSAR/AP/record/CP_MOD_Ea
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Ea@rel:R20-11#821d32e3
Content hash
821d32e3
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EEPROMAbstraction.pdf#nameddest=SWS_Ea_00084

초기화 및 상태

Service to return the Status.

MemIf_StatusType Ea_GetStatus (void);

Service to get the version information of this module.

void Ea_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Ea_Init 함수

Initializes the EEPROM abstraction module.

void Ea_Init (const Ea_ConfigType* ConfigPtr);

서비스

Ea_Cancel 함수

Cancels the ongoing asynchronous operation.

void Ea_Cancel (void);

Erases the block Block Number.

Std_ReturnType Ea_EraseImmediateBlock (uint16 BlockNumber);

Service to return the Job Result.

MemIf_JobResultType Ea_GetJobResult (void);

Invalidates the block Block Number.

Std_ReturnType Ea_InvalidateBlock (uint16 BlockNumber);

Service to report to this module the successful end of an asynchronous operation.

void Ea_JobEndNotification (void);

Service to report to this module the failure of an asynchronous operation.

void Ea_JobErrorNotification (void);
Ea_Read 함수

Reads Length bytes of block Blocknumber at offset Block Offset into the buffer Data Buffer Ptr.

Std_ReturnType Ea_Read (uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
Ea_SetMode 함수

Function to switch the mode of the underlying EEPROM Driver

void Ea_SetMode (MemIf_ModeType Mode);
Ea_Write 함수

Writes the contents of the Data Buffer Ptr to the block Block Number.

Std_ReturnType Ea_Write (uint16 BlockNumber, const uint8* DataBufferPtr);

Function to be used by the underlying memory abstraction to signal end of job without error.

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

void NvM_JobErrorNotification (void);

주기적

Service to handle the requested jobs and the internal management operations.

void Ea_MainFunction (void);

타입

Configuration data structure of the Ea module.