DEENESPTFRRUARHIKOZHNL

Memory Abstraction Interface (MemIf)

ModulMemIf (Memory Abstraction Interface)
BSW-Modul-ID22
Standard-Header#include "MemIf.h"
SWS-SpezifikationAUTOSAR_SWS_MemoryAbstractionInterface.pdf
ClusterMemory Services

모듈 가이드AI 생성

NVRAM 관리자의 메모리 작업을 디바이스 인덱스를 통해 플래시 EEPROM 에뮬레이션 또는 EEPROM 추상화로 전달합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 423eb9cf4c9b 출처 열린 질문 (5)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

NVRAM 관리자의 메모리 작업을 디바이스 인덱스를 통해 플래시 EEPROM 에뮬레이션 또는 EEPROM 추상화로 전달합니다.

MemIf는 NVRAM Manager의 메모리 작업을 Fee 또는 Ea 모듈로 전달하고, 통합 API 뒤에 해당 모듈 수를 숨깁니다 SWS MemIf 7쪽. 파라미터 DeviceIndex은 모듈을 선택합니다. 하나만 구성된 경우 이는 무시되고 MemIf는 매크로 세트로 구현됩니다 SWS MemIf 17쪽. 서비스는 동기식으로 작업을 수락하고 반환값을 전달하며, 메모리 작업은 그 아래에서 비동기식으로 실행됩니다. 상태와 결과는 MemIf_GetStatus 및 MemIf_GetJobResult가 제공합니다. 개발 오류 감지가 활성화된 경우 잘못된 호출은 각각 E_NOT_OK 또는 MEMIF_JOB_FAILED을 반환합니다.

Memory Abstraction Interface는 플래시 및 EEPROM용 기존 드라이버 인터페이스 계층을 대체합니다. 이를 통해 NVRAM Manager는 단일 API를 통해 여러 추상화 모듈, 즉 Flash EEPROM Emulation(Fee) 및 EEPROM Abstraction(Ea)에 액세스할 수 있습니다 SRS MemHwAb 5쪽. MemIf는 이러한 모듈 수를 숨기고 선형 주소 공간에서 가상 세그먼테이션을 제공합니다 SWS MemIf 7쪽.

kontext cluster_services Services Layer cluster_abstraktion Memory Hardware Abstraction cluster_treiber Memory Drivers NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / ... (DeviceIndex) Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_* Ea Ea (EEPROM Abstraction) MemIf->Ea Ea_* Lib Herstellerspezifische Bibliothek (statt Fee/Ea + Treiber) MemIf->Lib Fee/Ea와 동일한 API Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

컨텍스트 다이어그램: MemIf는 NvM과 Fee/Ea 사이를 중개하며, 완료 보고는 Fee/Ea에서 NvM으로 직접 전달됩니다. 출처: SWS Fee 6쪽, [SWS_MemIf_00047]

MemIf에는 자체 메모리 로직이 없습니다. 파라미터 DeviceIndex은 모듈을 선택합니다. 하나만 구성된 경우 이는 무시되고 MemIf는 매크로 세트로 구현됩니다. 모듈이 여러 개인 경우 함수 포인터 테이블 등을 통해 분배가 수행됩니다 SWS MemIf 17쪽. R20-11에서 DeviceIndex는 uint8 [SWS_MemIf_00039] 유형입니다. 이후 버전에서는 uint16를 사용합니다.

서비스는 작업을 동기식으로 수락하고 모듈의 반환값을 전달합니다 [SWS_MemIf_00040]. 메모리 작업은 이후 하위 계층의 메인 함수에서 비동기식으로 실행됩니다. NvM은 Fee/Ea의 콜백을 통해 또는 MemIf_GetJobResult SWS Fee 48쪽의 폴링을 통해 완료를 인식합니다. MemIf_GetStatus은 UNINIT, IDLE, BUSY 또는 BUSY_INTERNAL을 보고합니다 [SWS_MemIf_00064]. 작업 결과는 항상 마지막 작업과 관련되며, 무엇보다도 중단된 블록, 일관되지 않은 블록 및 유효하지 않은 블록을 구분합니다 [SWS_MemIf_00065]. MemIf_SetMode은 모든 모듈에 동시에 작용합니다 [SWS_MemIf_00038].

MemIf를 통한 쓰기 작업 (예: Ea/Eep)NvMMemIfEaEepBSW 태스크 (OS 태스크 또는 주기적 호출)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)DeviceIndex로 모듈 선택Ea_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (변경 없음)Use Case: 실행 (비동기식)완료될 때까지 GetJobResult가 반환함MEMIF_JOB_PENDINGloop작업이 완료될 때까지Eep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

시퀀스 다이어그램: MemIf를 통한 동기식 수락, 드라이버에서의 비동기식 실행, 콜백 또는 폴링을 통한 완료. 출처: SWS Ea 41쪽, [SWS_MemIf_00040]

오류 발생 시 MemIf는 유효하지 않은 디바이스 인덱스 및 NULL 포인터를 개발 오류로 보고합니다 [SWS_MemIf_00006]. 그러면 서비스는 E_NOT_OK을 반환하고, MemIf_GetJobResult는 MEMIF_JOB_FAILED SWS MemIf 21쪽를 반환합니다. 메모리의 런타임 오류는 Fee 또는 Ea가 감지합니다. NvM은 폴링 모드에서 이를 MEMIF_JOB_FAILED로 읽으며 복구를 담당합니다 ErrorDescription 58쪽.

메모리 스택에서의 역할: NvM과 Fee/Ea 사이의 스위치

Memory Abstraction Interface(MemIf)는 플래시 및 EEPROM용 기존 드라이버 인터페이스 계층을 대체합니다. 이를 통해 NVRAM Manager(NvM)는 단일 API를 통해 여러 메모리 추상화 모듈, 즉 Flash EEPROM Emulation(Fee) 및 EEPROM Abstraction(Ea)에 액세스할 수 있습니다 SRS MemHwAb 5쪽. 상위에 대해 MemIf는 그 아래에 몇 개의 Fee 및 Ea 모듈이 있는지 숨깁니다. 이는 균일한 선형 주소 공간에서 가상 세그먼테이션을 제공합니다 SWS MemIf 7쪽. Fee 및 Ea는 블록 기반 어드레싱과 “가상으로 무제한인” 소거-기록 주기 횟수를 제공합니다. 따라서 드라이버나 디바이스가 변경되더라도 NvM을 수정할 필요가 없습니다 SRS MemHwAb 5쪽.

MemIf 자체에는 메모리 로직이 포함되어 있지 않습니다. 해당 API는 추상화 모듈의 API에 매핑되어야 하며, 기능적 동작은 해당 사양 또는 메모리 드라이버 사양에 의해 정의됩니다 SWS MemIf 17쪽. 따라서 MemIf는 추상화 모듈의 서비스를 필요로 하며, Ea의 경우 예를 들어 Ea_Read, Ea_Cancel, Ea_GetStatus 및 Ea_GetJobResult가 있습니다 [SWS_MemIf_00047]. 선택적으로 Det_ReportError [SWS_MemIf_00048]을 사용합니다. MemIf.h에 정의된 유형 MemIf_StatusType, MemIf_JobResultType 및 MemIf_ModeType은 스택의 공통 어휘를 형성합니다 [SWS_MemIf_00064] [SWS_MemIf_00065] [SWS_MemIf_00066]. 따라서 예를 들어 Fls_GetJobResult는 MemIf_JobResultType SWS Fls 36쪽을 직접 반환합니다.

최신 릴리스의 그림에서는 Ea 및 Fee 아래에 추가로 MemAcc 및 Mem 모듈을 보여줍니다 SWS Ea 42쪽. R20-11의 경우 Fee가 플래시 드라이버를 기반으로 하고 Ea가 EEPROM 드라이버를 기반으로 하는 이전 개요가 결정적일 것으로 보입니다 SWS Fee 6쪽. MemIf는 추상화 수준까지만 전달하므로 이 차이는 중요하지 않습니다 SWS MemIf 17쪽. 질문 Q-3c74a6029dd0d159 (열림)

kontext cluster_services Services Layer cluster_abstraktion Memory Hardware Abstraction cluster_treiber Memory Drivers NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / ... (DeviceIndex) Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_* Ea Ea (EEPROM Abstraction) MemIf->Ea Ea_* Lib Herstellerspezifische Bibliothek (statt Fee/Ea + Treiber) MemIf->Lib Fee/Ea와 동일한 API Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

컨텍스트 다이어그램: MemIf는 NvM과 추상화 모듈 Fee/Ea 사이에 위치하며, 완료 보고는 Fee/Ea에서 NvM에 직접 도달합니다. 출처: SWS Fee 6쪽, SRS MemHwAb 5쪽, [SWS_MemIf_00047], [SWS_MemIf_00048]

DeviceIndex를 통한 디바이스 선택: 매크로 또는 분배 테이블

파라미터 DeviceIndex은 추상화 모듈과 이에 따른 메모리 디바이스를 선택합니다. 모듈이 하나만 구성된 경우 이는 무시됩니다 SWS MemIf 17쪽. 이 경우 MemIf는 #define MemIf_Write(DeviceIndex, BlockNumber, DataPtr) Fee_Write(BlockNumber, DataPtr)와 같은 매크로 세트로 구현되어야 합니다. 여러 모듈의 경우 효율적인 메커니즘을 통해 호출을 분배해야 합니다. 사양에서는 하나의 해결책으로 DeviceIndex을 통해 인덱싱되는 함수 포인터 테이블을 언급합니다 SWS MemIf 17쪽. 공급업체 고유의 라이브러리가 필요한 모든 Fee 및 Ea 모듈을 대체하는 경우 MemIf는 매크로로만 구성됩니다 SRS MemHwAb 5쪽.

R20-11에서 DeviceIndex은 uint8 [SWS_MemIf_00039] [SWS_MemIf_00041] 유형입니다. 사양의 이후 버전에서는 이를 uint16 SWS MemIf 18쪽로 나열합니다. 이 릴리스의 규범적 내용은 uint8입니다.

abbildung start Konfiguration von MemIf q0 제조사 라이브러리가 모든 Fee 및 Ea 모듈을 대체하는가? start->q0 lib MemIf는 라이브러리 API에 대한 매크로로만 구성됨 q0->lib 예 q1 몇 개의 추상화 모듈이 구성되어 있는가? q0->q1 아니요 ende 모듈의 함수가 호출되고, 반환값이 그대로 전달됨 lib->ende ein 매크로가 MemIf API를 매핑함 (예: MemIf_Write -> Fee_Write) q1->ein 정확히 하나 mehr Effiziente Verteilung, z. B. Funktionszeigertabelle q1->mehr mehrere ign DeviceIndex는 무시됨 ein->ign ign->ende idx DeviceIndex가 모듈을 선택함 (Fee 또는 Ea) mehr->idx idx->ende

액티비티 다이어그램: 구성된 추상화 모듈 수는 매크로 매핑과 DeviceIndex를 통한 분배 사이를 결정합니다. 출처: SWS MemIf 17쪽, SRS MemHwAb 5쪽

작업 흐름: 동기식 수락, 비동기식 실행

모든 MemIf 서비스는 동기식으로 명시되어 있습니다. 각 서비스는 선택된 모듈의 동일한 이름의 함수를 호출하고 그 반환값을 반환합니다(예: Read, Write 및 InvalidateBlock) [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044]. 실제 메모리 작업은 이후 하위 계층의 주기적으로 호출되는 메인 함수에서 비동기식으로 실행됩니다. Ea 시퀀스는 이를 위해 BSW 태스크 SWS Ea 41쪽에서 Eep_MainFunction에 대한 루프를 보여줍니다. Fee 사양에 따르면 이 패턴은 다른 비동기 서비스에도 적용됩니다 SWS Fee 48쪽.

NvM은 스택 구성에 따라 두 가지 방법 중 하나로 작업 완료를 확인합니다. 추상화 모듈이 NvM_JobEndNotification 또는 NvM_JobErrorNotification과 같은 콜백을 호출하거나, NvM이 MemIf_GetJobResult SWS Fee 48쪽 EXP ErrorDescription 45쪽를 폴링합니다. MemIf 자체는 콜백 함수를 제공하지 않으며, 해당 API는 다음 서비스로 구성됩니다 [SWS_MemIf_00038] [SWS_MemIf_00046].

서비스서비스 ID반품영향
MemIf_SetMode0x01–모든 추상화 모듈의 SetMode를 호출합니다 [SWS_MemIf_00038]
MemIf_Read0x02Std_ReturnType블록의 BlockOffset부터 Length 바이트를 DataBufferPtr로 읽음 [SWS_MemIf_00039]
MemIf_Write0x03Std_ReturnType블록을 씀 [SWS_MemIf_00040]
MemIf_Cancel0x04–진행 중인 작업을 취소함 [SWS_MemIf_00041]
MemIf_GetStatus0x05MemIf_StatusType모듈 상태 [SWS_MemIf_00042]
MemIf_GetJobResult0x06MemIf_JobResultType마지막 작업의 결과 [SWS_MemIf_00043]
MemIf_InvalidateBlock0x07Std_ReturnType블록을 무효화함 [SWS_MemIf_00044]
MemIf_GetVersionInfo0x08–버전 정보, 재진입 가능(reentrant) [SWS_MemIf_00045]
MemIf_EraseImmediateBlock0x09Std_ReturnType블록을 삭제함 [SWS_MemIf_00046]
MemIf를 통한 쓰기 작업 (예: Ea/Eep)NvMMemIfEaEepBSW 태스크 (OS 태스크 또는 주기적 호출)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)DeviceIndex로 모듈 선택Ea_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (변경 없음)Use Case: 실행 (비동기식)완료될 때까지 GetJobResult가 반환함MEMIF_JOB_PENDINGloop작업이 완료될 때까지Eep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

시퀀스 다이어그램: 쓰기 작업이 MemIf를 통해 동기적으로 수락되고, 드라이버에서 비동기적으로 실행되며, 콜백 또는 폴링을 통해 완료됨. 출처: SWS Ea 41쪽, SWS Fee 48쪽, ErrorDescription 60쪽, [SWS_MemIf_00040]

상태, 작업 결과 및 작동 모드

MemIf_GetStatus은(는) 선택된 모듈의 상태를 반환함 [SWS_MemIf_00042]. 가능한 값은 MEMIF_UNINIT, MEMIF_IDLE, MEMIF_BUSY 및 MEMIF_BUSY_INTERNAL임. MEMIF_BUSY_INTERNAL의 경우 추상화 모듈이 내부 관리에 관여하고 있는 반면, 드라이버는 busy 또는 idle 상태일 수 있음 [SWS_MemIf_00064]. Fee 명세는 조건을 구체화하며 내부 관리의 예로 플래시 재구성(가비지 컬렉션)을 언급함 SWS Fee 30쪽. 플래시 드라이버의 경우 초기화 전에도 상태를 쿼리할 수 있으며, 이 경우 상태는 MEMIF_UNINIT임 SWS Fls 35쪽.

status start Start UNINIT MEMIF_UNINIT start->UNINIT IDLE MEMIF_IDLE UNINIT->IDLE Modul initialisiert BUSY MEMIF_BUSY IDLE->BUSY 상위 계층의 작업 처리 중 BUSYINT MEMIF_BUSY_INTERNAL IDLE->BUSYINT interne Verwaltung (z. B. Garbage Collection) BUSY->IDLE Auftrag beendet BUSYINT->IDLE interne Verwaltung beendet

상태 다이어그램: MemIf_GetStatus를 통해 볼 수 있는 모듈 상태의 수명 주기. 출처: [SWS_MemIf_00064], SWS Fee 30쪽

MemIf_GetJobResult은(는) 마지막 작업의 결과를 반환함 [SWS_MemIf_00043] [SWS_MemIf_00065]. 읽기, 쓰기 및 삭제는 단 하나의 작업 결과만 공유하므로 마지막 작업의 결과만 쿼리할 수 있음. 새 작업이 수락되면 이 결과는 MEMIF_JOB_PENDING(으)로 설정됨 SWS Fls 36쪽. Fee는 마지막으로 수락된 작업에 대해 언급함 SWS Fee 31쪽. OK, FAILED, CANCELED 외에도 두 가지 블록 관련 결과가 있음. MEMIF_BLOCK_INCONSISTENT은(는) 블록이 손상되었거나 발견되지 않았음을 의미하고, MEMIF_BLOCK_INVALID은(는) 블록이 유효하지 않은 것으로 표시되었음을 의미함 [SWS_MemIf_00065].

jobergebnis neu Neuer Auftrag angenommen PENDING MEMIF_JOB_PENDING neu->PENDING OK MEMIF_JOB_OK PENDING->OK erfolgreich beendet FAILED MEMIF_JOB_FAILED PENDING->FAILED 성공하지 않음 CANCELED MEMIF_JOB_CANCELED PENDING->CANCELED abgebrochen INCONS MEMIF_BLOCK_INCONSISTENT PENDING->INCONS 블록 손상됨 또는 찾을 수 없음 INVALID MEMIF_BLOCK_INVALID PENDING->INVALID 블록이 유효하지 않은 것으로 표시됨 OK->neu 다음 작업 FAILED->neu 다음 작업 CANCELED->neu 다음 작업 INCONS->neu 다음 작업 INVALID->neu 다음 작업

상태 다이어그램: 수락된 작업은 PENDING 상태에 있으며 정확히 하나의 최종 결과로 종료됨. 출처: [SWS_MemIf_00065], SWS Fls 36쪽, SWS Fee 31쪽

MemIf_SetMode은(는) 유일하게 DeviceIndex이(가) 없는 서비스이며 모든 추상화 모듈의 SetMode를 호출함 [SWS_MemIf_00038]. 모드는 MEMIF_MODE_SLOW 및 MEMIF_MODE_FAST임 [SWS_MemIf_00066]. 드라이버의 경우 이는 한편으로는 느린 읽기 액세스 또는 일반 SPI 액세스를 나타내고, 다른 한편으로는 빠른 읽기 액세스 또는 SPI 버스트를 나타냄. Eep_SetMode은(는) 진행 중인 작업 중에 호출해서는 안 됨 SWS Eep 34쪽. Fls_SetMode은(는) 검사가 활성화된 경우 Busy 상태에서의 요청을 거부함 SWS Fls 42쪽. 해석: MemIf_SetMode은(는) 모든 모듈에 전달되므로 모든 장치가 MEMIF_IDLE을(를) 보고할 때만 호출해야 함. 질문 Q-d6ee630fca619042 (열림)

진행 중인 작업 취소

MemIf_Cancel은(는) 선택된 모듈의 Cancel 함수를 호출함 [SWS_MemIf_00041]. 취소 자체는 동기적이지만 하드웨어와 관련해서는 비동기적임: 호출이 이미 반환된 후에도 하드웨어가 여전히 후속 작업을 수행 중일 수 있음 SWS Fee 45쪽 SWS Ea 44쪽. 그 후 작업 결과는 MEMIF_JOB_CANCELED이(가) 되며 [SWS_MemIf_00065], Fee는 이를 명시적으로 실패로 간주함 SWS Fee 31쪽.

플래시 경로의 경우 드라이버 명세는 후속 오류 알림과 함께 MemIf_Cancel → Fee_Cancel → Fls_Cancel 체인을 보여줌. 또한 진행 중인 Fls_MainFunction 도중에 Fls_Cancel을(를) 호출하지 않도록 요구함. 이를 위한 두 가지 방법이 있음: NvM과 플래시 드라이버의 작업 함수를 동기화하거나, Fls_MainFunction의 태스크가 중단되지 않도록 하는 것임 SWS Fls 58쪽.

실행 중인 플래시 작업 취소NvMMemIfFeeFlsMemIf_Cancel(DeviceIndex)Fee_Cancel()Fls_Cancel()진행 중 Fls_Cancel 호출 불가:laufender Fls_MainFunction복귀복귀복귀 (동기식)취소는 비동기식임하드웨어로optFehlerbenachrichtigung konfiguriertFee_JobErrorNotification()NvM_JobErrorNotification()MemIf_GetJobResult(DeviceIndex)Fee_GetJobResult()MEMIF_JOB_CANCELEDMEMIF_JOB_CANCELED

시퀀스 다이어그램: 취소는 모든 계층을 통해 동기적으로 실행되고 오류 알림이 이어지며, 그 후 GetJobResult가 CANCELED를 보고함. 출처: SWS Fls 58쪽, SWS Fee 45쪽, [SWS_MemIf_00041]

호출 규칙, 재진입성 및 BSW로의 임베딩

MemIf_GetVersionInfo을(를) 제외하고 모든 서비스는 재진입이 불가능함(nicht reentrant) [SWS_MemIf_00045] [SWS_MemIf_00040]. 따라서 여러 컨텍스트에서의 병렬 호출은 배제되어야 함. 모듈당 상태와 작업 결과는 마지막 작업만을 반영하므로, 호출자는 이전 작업이 완료된 후에만 새 작업을 실행해야 함 SWS Fls 36쪽.

ICC2 클러스터 “MEM”의 메모리 매핑 예시는 MemIf를 NvM과 함께 나열함. 거기서 MemIf_SetMode은(는) BswCalledEntity(으)로 모델링되며, MemIf는 섹션 접두사 MEMIF을(를) 가짐 SWS MemoryMapping 50쪽. BSW Distribution Guide는 FLS 및 FEE와 함께 MEMIF를 “Type I”의 예로 언급함. 적용 범위는 SwAddrMethod을(를) 통해 로컬 스코프로 하나의 코어로 제한될 수 있음 EXP BSWDistributionGuide 31쪽. 따라서 멀티코어 시스템에서 MemIf는 코어 로컬로 작동해야 할 것으로 추정됨. 질문 Q-d998fdc58e0bcddd (열림)

오류가 발생한 경우의 동작

MemIf에는 두 가지 개발 오류가 있음. MEMIF_E_PARAM_DEVICE (0x01)은 잘못된 DeviceIndex를 나타내고, MEMIF_E_PARAM_POINTER (0x02)는 NULL 포인터를 나타냄 [SWS_MemIf_00006]. 이들은 선택적 Det_ReportError을(를) 통해 보고됨 [SWS_MemIf_00048]. 추적 테이블에 따르면 특정 오류 코드는 API를 통해 반환되지 않음 SWS MemIf 12쪽.

개발 오류 감지가 활성화되어 있고 오류가 감지되면 Read, Write, InvalidateBlock 및 EraseImmediateBlock은 E_NOT_OK을(를) 반환함 [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044] [SWS_MemIf_00046]. 이 경우 MemIf_GetJobResult은(는) MEMIF_JOB_FAILED을(를) 반환함 SWS MemIf 21쪽. 그렇지 않으면 모듈의 값이 변경 없이 그대로 전달됨.

fehlerpruefung aufruf MemIf 서비스 호출 (DeviceIndex, 필요한 경우 포인터) q1 Entwicklungsfehlererkennung aktiviert? aufruf->q1 q2 매개변수가 유효한가? q1->q2 예 weiter DeviceIndex로 선택된 모듈의 함수 호출 q1->weiter 아니요 det MEMIF_E_PARAM_DEVICE (0x01) 또는 MEMIF_E_PARAM_POINTER (0x02)로 Det_ReportError 호출 q2->det 아니요 q2->weiter 예 fehl E_NOT_OK 반환 (MemIf_GetJobResult: MEMIF_JOB_FAILED) det->fehl rueck 모듈의 반환값을 변경 없이 반환 weiter->rueck

활동 다이어그램: 개발 오류 감지가 활성화된 경우의 매개변수 검사 및 모듈 결과 전달. 출처: [SWS_MemIf_00006], [SWS_MemIf_00048], SWS MemIf 18쪽, SWS MemIf 21쪽

메모리의 런타임 오류는 MemIf가 아니라 Fee 또는 Ea가 감지함. MemIf 자체는 이에 응답하지 않음(“N/A”). 폴링 작동에서 NvM은 MemIf_GetJobResult을(를) 통해 오류를 MEMIF_JOB_FAILED(으)로 읽으며, 해결은 NvM에 달려 있음 ErrorDescription 58쪽 ErrorDescription 60쪽. 이후 버전에서는 이 해결 방식을 더 자세히 설명함. 이에 따르면 NvM은 쓰기 작업 시 재시도 카운터를 증가시키고, 초과 시 중단하며 DEM에 NVM_E_REQ_FAILED을(를) 보고함 EXP ErrorDescription 45쪽. R20-11의 경우 이 세부 사항은 여기서 규범적으로 입증되지 않음.

더 자세한 증거

프롬프트에 제공된 명세 발췌본을 기반으로 AI가 생성한 가이드. 릴리스 R20-11의 참조된 요구사항이 규범적임. 해석은 그에 맞게 표시됨.

Memory Abstraction Interface (MemIf)

Abstracts underlying Flash and EEPROM memory drivers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 MemIf_SetMode [SWS_MemIf_00038] 📄 PDF

void MemIf_SetMode (MemIf_ModeType Mode);

Invokes the "Set Mode" functions of all underlying memory abstraction modules.

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

함수 MemIf_SetMode은 메모리 인터페이스를 통해 작동 모드를 동기식으로 전환하는 데 사용됩니다[SWS_MemIf_00038]. 호출 시 이 함수는 요청된 모드를 모든 하위 메모리 추상화 모듈의 개별 “Set Mode” 함수로 전달합니다[SWS_MemIf_00038]. 매개변수로 대상 모드 Mode이 전달되는 반면, 함수는 반환값을 제공하지 않습니다[SWS_MemIf_00038]. 이 인터페이스는 서비스 ID 0x01를 가지며 헤더 MemIf.h에 정의되어 있습니다[SWS_MemIf_00038].

동시성과 관련하여 MemIf_SetMode은 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_MemIf_00038]. 해석: 호출자는 여러 태스크나 인터럽트 서비스 루틴에서 이 함수를 동시에 또는 중단 방식으로 호출해서는 안 될 것으로 보이며, 따라서 동시 접근은 필요한 경우 외부 보호 메커니즘을 통해 조정되어야 할 것으로 추정됩니다. 질문 Q-02b14e9cb4b05dc9 (열림)

동기 실행 시맨틱으로 인해 호출은 요청이 메모리 추상화 모듈로 전달된 후에만 호출자에게 반환됩니다[SWS_MemIf_00038]. 오류 표시를 위한 특정 반환값이나 별도의 DET 또는 DEM 오류 메시지는 요소 명세에서 이 함수에 대해 정의되어 있지 않습니다[SWS_MemIf_00038].

이 사용 지침은 자동으로 생성되었으며 전적으로 AUTOSAR R20-11 명세의 정보를 기반으로 합니다.

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

함수 MemIf_Read [SWS_MemIf_00039] 📄 PDF

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

Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.

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

함수 MemIf_Read은 매개변수 DeviceIndex을 통해 선택된 하위 메모리 추상화 모듈로 읽기 요청을 동기식으로 전달합니다 [SWS_MemIf_00039]. 이 함수는 헤더 MemIf.h에 선언되어 있으며 논리적 메모리 블록의 데이터를 읽어오는 역할을 합니다.

매개변수 및 인터페이스

MemIf_Read 호출에는 다음 입력 및 출력 매개변수가 포함됩니다 [SWS_MemIf_00039]:

  • DeviceIndex: 대상 모듈을 선택하기 위한 대상 장치 인덱스.
  • BlockNumber: 읽을 메모리 블록의 논리 블록 번호.
  • BlockOffset: 읽기가 시작되는 논리 블록 내의 바이트 오프셋.
  • DataBufferPtr: 읽은 데이터를 저장하기 위한 버퍼를 가리키는 포인터.
  • Length: 읽을 데이터 바이트 수.

오류 처리 및 반환값

개발 오류 감지(Development Error Detection)가 활성화되어 있고 개발 오류가 감지되면 함수는 E_NOT_OK을 반환합니다 [SWS_MemIf_00039]. 그렇지 않으면 호출된 하위 모듈 읽기 함수의 반환값이 Std_ReturnType(으)로 전달됩니다 [SWS_MemIf_00039].

동시성 및 제약사항

이 함수는 동기식 및 재진입 불가(Non Reentrant)로 명시되어 있습니다 [SWS_MemIf_00039]. 따라서 호출은 일반적으로 태스크 컨텍스트에서 수행될 것으로 보이며, 병렬 또는 중첩 호출은 호출자에 의해 방지되거나 직렬화되어야 합니다. 질문 Q-b774bf07a69e28af (열림)

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

함수 MemIf_Write [SWS_MemIf_00040] 📄 PDF

Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);

Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.

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

사용법 및 호출 컨텍스트

인터페이스 함수 MemIf_Write은 추상화 계층 역할을 하며 매개변수 DeviceIndex을 통해 선택되는 하위 Memory Abstraction 모듈의 Write 함수를 호출합니다 [SWS_MemIf_00040]. 동기 호출 시 세 개의 입력 매개변수가 전달됩니다. 대상 드라이버를 선택하기 위한 장치 인덱스 DeviceIndex, 논리 블록 번호 BlockNumber, 그리고 쓸 데이터가 포함된 버퍼를 가리키는 포인터 DataBufferPtr입니다 [SWS_MemIf_00040]. 이 함수는 서비스 ID 0x03 아래에 명시되어 있으며 헤더 파일 MemIf.h을 통해 제공됩니다 [SWS_MemIf_00040].

오류 처리 및 반환값

반환값의 유형은 Std_ReturnType입니다 [SWS_MemIf_00040]. Memory Abstraction Interface에 대한 개발 오류 감지(Development Error Detection)가 활성화되어 있고 [SWS_MemIf_00022]에 따라 개발 오류가 감지되면 MemIf_Write은 오류 코드 E_NOT_OK을 반환합니다 [SWS_MemIf_00040]. 오류가 없으면 함수는 호출된 하위 모듈의 반환값을 호출자에게 변경 없이 전달합니다 [SWS_MemIf_00040].

동시성 및 제약 조건

동시성 동작과 관련하여 MemIf_Write은 동기식 및 재진입 불가(Non Reentrant)(으)로 정의됩니다 [SWS_MemIf_00040].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

함수 MemIf_Cancel [SWS_MemIf_00041] 📄 PDF

void MemIf_Cancel (uint8 DeviceIndex);

Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.

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

동기 함수 MemIf_Cancel은 매개변수 Device Index을 통해 선택되는 하위 Memory Abstraction 모듈의 Cancel 함수를 호출하는 데 사용됩니다 [SWS_MemIf_00041]. 이 서비스는 반환값이 없으며 취소 작업을 지정된 추상화 인스턴스로 즉시 전달합니다 [SWS_MemIf_00041].

호출 및 통합에는 다음의 기술적 특성이 적용됩니다:

  • 호출 컨텍스트 및 동시성: 이 함수는 재진입 불가(Non Reentrant)(으)로 정의됩니다 [SWS_MemIf_00041]. 호출자는 다른 컨텍스트에 의해 동시 실행되거나 중단되지 않도록 해야 합니다.
  • 시그니처 및 식별: 인터페이스 void MemIf_Cancel (uint8 Device Index)은 서비스 ID 0x04을 가지며 헤더 파일 MemIf.h을 통해 제공됩니다 [SWS_MemIf_00041].
  • 매개변수: 입력 매개변수 Device Index(유형 uint8)은 대상 모듈을 선택하며, 입출력 또는 반환 매개변수는 없습니다 [SWS_MemIf_00041].
  • 오류 처리: 사양에는 이 함수에 대한 특정 오류 코드, 반환값 또는 DET 메시지가 설명되어 있지 않습니다 [SWS_MemIf_00041](해석: 유효하지 않은 장치 인덱스에 대한 검사는 상위 시스템 아키텍처 또는 하위 모듈에 맡겨지는 것으로 보입니다). 질문 Q-4a5d989ce611ba89 (열림)

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 작성되었습니다.

함수 MemIf_GetStatus [SWS_MemIf_00042] 📄 PDF

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.

함수 MemIf_GetJobResult [SWS_MemIf_00043] 📄 PDF

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index. Available v ia Mem If.h

함수 MemIf_InvalidateBlock [SWS_MemIf_00044] 📄 PDF

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Invalidate Block" function of the underlying memory abstraction module AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface selected by the parameter Device Index.

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

동기 함수 MemIf_InvalidateBlock은 논리 블록의 무효화 요청을 매개변수 DeviceIndex을 통해 선택된 하위 메모리 추상화 모듈로 전달합니다[SWS_MemIf_00044]. 이 인터페이스는 헤더 MemIf.h을 통해 제공되며 서비스 ID 0x07를 가집니다[SWS_MemIf_00044].

사용법 및 매개변수

호출은 동기식으로 이루어지며 다음 입력 매개변수를 주소 지정 대상으로 전달합니다[SWS_MemIf_00044]:

  • DeviceIndex: 기반이 되는 메모리 추상화 모듈의 숫자 인덱스[SWS_MemIf_00044].
  • BlockNumber: 무효화할 메모리 블록의 고유 식별자[SWS_MemIf_00044].

오류 처리 및 반환값

이 함수는 Std_ReturnType 타입의 상태 값을 반환합니다[SWS_MemIf_00044]:

  • Memory Abstraction Interface에 대해 개발 오류 감지(Development Error Detection)가 활성화되어 있고 SWS_MemIf_00022에 따른 오류가 발생하는 경우, 함수는 E_NOT_OK을 반환합니다[SWS_MemIf_00044].
  • 개발 오류가 감지되지 않으면 인터페이스는 하위 모듈의 호출된 함수 결과를 반환합니다[SWS_MemIf_00044].

동시성

이 함수는 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_MemIf_00044].

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

함수 MemIf_EraseImmediateBlock [SWS_MemIf_00046] 📄 PDF

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.

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

사용

동기 함수 MemIf_EraseImmediateBlock은 하위 메모리 추상화 모듈에서 즉시 블록으로 분류된 블록의 삭제를 트리거합니다[SWS_MemIf_00046]. 이 호출은 헤더 MemIf.h를 통해 제공되며 서비스 ID 0x09을 가집니다[SWS_MemIf_00046]. 입력 매개변수로는 특정 메모리 디바이스 또는 추상화 모듈을 주소 지정하기 위한 DeviceIndex와 대상 블록을 식별하기 위한 BlockNumber이 사용됩니다[SWS_MemIf_00046]. 추가적인 Inout 또는 Out 매개변수는 존재하지 않습니다[SWS_MemIf_00046].

반환값 및 오류 처리

이 함수는 Std_ReturnType 타입의 상태 값을 반환합니다[SWS_MemIf_00046]. Memory Abstraction Interface에 대한 개발 오류 감지가 활성화되어 있고 [SWS_MemIf_00022]에 따른 해당 오류가 감지되면, 호출은 고정된 반환값 E_NOT_OK을 반환합니다[SWS_MemIf_00046]. 이러한 오류가 발생하지 않으면 하위 모듈의 호출된 함수에서 나온 즉각적인 결과가 호출자에게 그대로 전달됩니다[SWS_MemIf_00046].

동시성 및 제약사항

MemIf_EraseImmediateBlock의 실행은 동기식으로 이루어지며 비재진입(Non Reentrant)으로 명세되어 있습니다[SWS_MemIf_00046]. 해석: 인터페이스의 병렬 호출은 허용되지 않으므로, 하위 메모리 드라이버에서의 데이터 불일치를 방지하기 위해 전체 시스템에서 이 함수는 태스크 수준의 동기화된 컨텍스트에서만 호출될 수 있을 것으로 추정됩니다. 질문 Q-4fce518bab0115db (열림)

이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 자동으로 생성되었습니다.

타입 MemIf_StatusType [SWS_MemIf_00064] 📄 PDF

Denotes the current status of the underlying abstraction module and device drive. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface

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

열거형 MemIf_StatusType은 [SWS_MemIf_00064]에 따라 하위 메모리 추상화 모듈 및 관련 디바이스 드라이버의 현재 작동 및 실행 상태를 나타냅니다. 이 타입은 Memory Abstraction Interface에 정의되어 있으며 헤더 파일 MemIf.h를 통해 호출자가 사용할 수 있습니다[SWS_MemIf_00064].

열거형에는 작동 준비 상태를 나타내기 위한 네 가지 고유한 상태가 포함됩니다[SWS_MemIf_00064]:

  • MEMIF_UNINIT: 하위 추상화 모듈 또는 관련 디바이스 드라이버가 (아직) 초기화되지 않았습니다[SWS_MemIf_00064].
  • MEMIF_IDLE: 추상화 모듈 또는 디바이스 드라이버가 작동 준비 상태이며 현재 어떠한 작업도 실행하고 있지 않습니다[SWS_MemIf_00064].
  • MEMIF_BUSY: 하위 모듈 또는 디바이스 드라이버가 현재 작업을 처리 중입니다[SWS_MemIf_00064].
  • MEMIF_BUSY_INTERNAL: 드라이버가 유휴 상태이거나 사용 중인 동안 추상화 모듈이 내부 관리 작업을 처리하고 있습니다[SWS_MemIf_00064].

호출 계층은 작업 할당 전에 메모리 계층이 작동 준비 상태인지 또는 내부 관리 프로세스가 실행 중인지 동기식으로 확인하기 위해 이 상태를 사용합니다[SWS_MemIf_00064]. MemIf_StatusType은 순수 데이터 타입 정의이므로 DET 또는 DEM 메시지, 재진입 규칙 또는 호출 컨텍스트와 같은 기능적 측면은 명세 요소에 별도로 표시되지 않습니다.

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

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

타입 MemIf_JobResultType [SWS_MemIf_00065] 📄 PDF

Denotes the result of the last job.

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

열거형 MemIf_JobResultType은 메모리 인터페이스에 대해 가장 최근에 처리된 작업의 결과를 설명하며 헤더 파일 MemIf.h을 통해 제공됩니다[SWS_MemIf_00065].

열거형은 실행 상태뿐만 아니라 특정 오류 및 블록 상태를 정의합니다[SWS_MemIf_00065]:

  • MEMIF_JOB_OK: 요청된 작업이 성공적으로 종료되었습니다[SWS_MemIf_00065].
  • MEMIF_JOB_PENDING: 작업이 아직 완료되지 않았습니다[SWS_MemIf_00065]. 해석: 이는 작업이 비동기식으로 처리되며 호출자가 이 중간 상태를 통해 완료 여부를 확인함을 나타냅니다. 질문 Q-31078cf25506334e (열림)
  • MEMIF_JOB_FAILED: 작업이 성공적으로 완료되지 않았습니다[SWS_MemIf_00065].
  • MEMIF_JOB_CANCELED: 작업이 취소되었습니다[SWS_MemIf_00065].
  • MEMIF_BLOCK_INCONSISTENT: 요청된 블록이 일관되지 않거나, 손상된 데이터를 포함하고 있거나, 발견되지 않았습니다[SWS_MemIf_00065].
  • MEMIF_BLOCK_INVALID: 요청된 블록이 유효하지 않은 것으로 표시되어 원하는 작업을 수행할 수 없습니다[SWS_MemIf_00065].

작업 결과를 평가할 때 이 타입은 일반적인 실행 오류(MEMIF_JOB_FAILED)와 블록 관련 문제(MEMIF_BLOCK_INCONSISTENT, MEMIF_BLOCK_INVALID)를 구분하는 데 사용됩니다[SWS_MemIf_00065].

이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다.

타입 MemIf_ModeType [SWS_MemIf_00066] 📄 PDF

Denotes the operation mode of the underlying abstraction mod ules and device drivers.

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

열거형 MemIf_ModeType은 하위 메모리 추상화 모듈 및 디바이스 드라이버의 작동 모드를 정의합니다[SWS_MemIf_00066]. 이는 헤더 파일 MemIf.h를 통해 제공되며 메모리 접근의 속도 및 작동 동작을 제어하는 데 사용됩니다[SWS_MemIf_00066].

[SWS_MemIf_00066]에 따르면 값 범위에는 두 가지 상태가 포함됩니다:

  • MEMIF_MODE_SLOW: 하위 추상화 모듈 및 디바이스 드라이버가 느린 모드(Slow Mode)로 작동합니다[SWS_MemIf_00066].
  • MEMIF_MODE_FAST: 하위 추상화 모듈 및 디바이스 드라이버가 빠른 모드(Fast Mode)로 작동합니다[SWS_MemIf_00066].

오류 처리, 재진입성 또는 특정 호출 컨텍스트와 관련하여 해당 타입의 명세에는 별도의 규정이 포함되어 있지 않으며, 모드의 전달 및 평가는 메모리 인터페이스 또는 하위 드라이버의 해당 인터페이스를 통해 동기식으로 수행됩니다[SWS_MemIf_00066].

이 텍스트는 AI에 의해 생성되었으며 기술적 오리엔테이션을 목적으로 합니다.

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

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

Record
AUTOSAR/AP/record/CP_MOD_MemIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_MemIf@rel:R20-11#126e6698
Content hash
126e6698
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_MemoryAbstractionInterface.pdf#nameddest=SWS_MemIf_00038

초기화 및 상태

Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

Returns version information.

void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);

서비스

Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.

void MemIf_Cancel (uint8 DeviceIndex);

Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index. Available v ia Mem If.h

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

Invokes the "Invalidate Block" function of the underlying memory abstraction module AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface selected by the parameter Device Index.

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);
MemIf_Read 함수

Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.

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

Invokes the "Set Mode" functions of all underlying memory abstraction modules.

void MemIf_SetMode (MemIf_ModeType Mode);

Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.

Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);

타입

Denotes the result of the last job.

Denotes the operation mode of the underlying abstraction mod ules and device drivers.

Denotes the current status of the underlying abstraction module and device drive. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface