AUTOSAR – Memory Abstraction Interface
1. Tổng quan
Memory Abstraction Interface (MemIf) sẽ trừu tượng hóa mô-đun FEE hoặc EA cơ bản và cung cấp cho các lớp trên một virtual segmentation trên không gian địa chỉ tuyến tính thống nhất.

2. Từ viết tắt
EA | EEPROM Abstraction |
EEPROM | Electrically Erasable and Programmable ROM (Read Only Memory) |
FEE | Flash EEPROM Emulation |
LSB | Least significant bit / byte |
Mem | AUTOSAR Basic Software Module Memory Driver |
MemAcc | AUTOSAR Basic Software Module Memory Access |
MemIf | Memory Abstraction Interface |
MSB | Most significant bit / byte |
NvM | NVRAM Manager |
NVRAM | Non-volatile RAM (Random Access Memory) |
3. Development Errors
loại lỗi | Code lỗi liên quan | Giá trị lỗi |
API service gọi sai device index parameter | MEMIF_E_PARAM_DEVICE | 0x01 |
API service gọi con trỏ NULL | MEMIF_E_PARAM_POINTER | 0x02 |
4. Các API
4.1 Imported datatypes of module MemIf
Module | Header file | Imported Type |
Std | Std_Types.h | Std_ReturnType |
Std | Std_Types.h | Std_VersionInfoType |
4.2 Datatype của MemIf_StatusType
Biểu thị trạng thái hiện tại của MemIf
Tên | MemIf_StatusType | |
Loại | Enumeration | |
Range | MEMIF_UNINIT | Chưa được khởi tạo |
MEMIF_IDLE | Nhàn rỗi | |
MEMIF_BUSY | Hiện tại đang bận | |
MEMIF_BUSY_INTERNAL | Bận với các hoạt động quản lý nội bộ | |
Header file | MemIf.h |
4.3 Datatype của MemIf_JobResultType
Tên | MemIf_JobResultType | |
Loại | Enumeration | |
Range | MEMIF_JOB_OK | Job thực hiện thành công |
MEMIF_JOB_FAILED | Job thực hiện không thành công | |
MEMIF_JOB_PENDING | Job chưa kết thúc | |
MEMIF_JOB_CANCELED | Job bị hủy bỏ | |
MEMIF_BLOCK_ INCONSISTENT | 1. Block yêu cầu không nhất quán. 2. Block không tìm thấy | |
MEMIF_BLOCK_INVALID | Block được đánh dấu là invalid do vậy yêu cầu không thể thực hiện được. | |
Header file | MemIf.h |
4.3 Datatype của MemIf_Read [SWS_MemIf_00039]
Service Name | MemIf_Read | |
Syntax | Std_ReturnType MemIf_Read ( uint16 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length ) | |
Service ID | x02 | |
Parameters (in) | DeviceIndex | – |
BlockNumber | – | |
BlockOffset | – | |
Length | – | |
Parameters (inout) | None | |
Parameters (out) | DataBufferPtr | |
Return value | Std_ReturnType | Trong trường hợp phát hiện lỗi, thì hàm sẽ trả về E_NOT_OK, nếu không thì sẽ trả về giá trị. |
Header file | MemIf.h |
Gọi hàm “Read” được chọn bởi tham số DeviceIndex.
[SRS_MemHwAb_14029] Các mô-đun FEE và EA sẽ cung cấp service cho phép đọc toàn bộ hoặc một phần khối logic.
[SRS_MemHwAb_14022] The Memory Abstraction Interface shall preserve the functionality of the underlying memory abstraction module.
4.4 Datatype của MemIf_Write [SWS_MemIf_00040]
Service Name | MemIf_Write | |
Syntax | Std_ReturnType MemIf_Write ( uint16 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr ) | |
Service ID | x03 | |
Parameters (in) | DeviceIndex | – |
BlockNumber | – | |
DataBufferPtr | – | |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | Std_ReturnType | Trong trường hợp phát hiện lỗi, thì hàm sẽ trả về E_NOT_OK, nếu không thì sẽ trả về giá trị. |
Header file | MemIf.h |
Gọi hàm “Write” được chọn bởi tham số DeviceIndex.
[SRS_MemHwAb_14010] Các mô-đun FEE và EA sẽ cung cấp service ghi chỉ hoạt động trên các khối logic được cấu hình hoàn chỉnh.
[SRS_MemHwAb_14022] The Memory Abstraction Interface shall preserve the functionality of the underlying memory abstraction module.
4.4 Datatype của MemIf_Cancel [SWS_MemIf_00041]
Service Name | MemIf_Cancel | |
Syntax | void MemIf_Cancel ( uint16 DeviceIndex ) | |
Service ID | x04 | |
Parameters (in) | DeviceIndex | – |
BlockNumber | – | |
DataBufferPtr | – | |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | None | |
Header file | MemIf.h |
[SRS_MemHwAb_14031] Các mô-đun FEE và EA sẽ cung cấp một service cho phép hủy bỏ một hoạt động không đồng bộ đang diễn ra.
[SRS_MemHwAb_14022] The Memory Abstraction Interface shall preserve the functionality of the underlying memory abstraction module
4.4 Datatype của MemIf_GetStatus [SWS_MemIf_00042]
Service Name | MemIf_GetStatus | |
Syntax | MemIf_StatusType MemIf_GetStatus (uint16 DeviceIndex ) | |
Service ID | x05 | |
Parameters (in) | DeviceIndex | – |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | MemIf_StatusType | |
Header file | MemIf.h |
[RS_BRF_02272] AUTOSAR sẽ cung cấp service theo dõi hành vi của phần mềm ứng dụng
[SWS_MemIf_00035] ⌈Nếu hàm MemIf_GetStatus được gọi với DeviceIndex biểu thị một phát sóng đến tất cả các thiết bị được cấu hình (MEMIF_BROADCAST_ID), mô-đun Memory Abstraction Interface sẽ lần lượt gọi các hàm “GetStatus” của tất cả các thiết bị cơ bản. Nó sẽ trả về giá trị
- MEMIF_IDLE – nếu tất cả các thiết bị cơ bản đã trả về trạng thái này.
- MEMIF_UNINIT – nếu ít nhất một thiết bị trả về trạng thái này, tất cả các trạng thái trả về khác sẽ bị bỏ qua.
- MEMIF_BUSY – if at least one configured device returned this state and no other device returned MEMIF_UNINIT.
- MEMIF_BUSY_INTERNAL – if at least one configured device returned this state and no other device returned MEMIF_BUSY or MEMIF_UNINIT.
[SRS_MemHwAb_14020] Memory Abstraction Interface sẽ cho phép lựa chọn mô-đun trừu tượng bộ nhớ cơ bản bằng cách sử dụng a device index
4.5 Datatype của MemIf_GetJobResult [SWS_MemIf_00043]
Service Name | MemIf_GetJobResult | |
Syntax | MemIf_JobResultType MemIf_GetJobResult ( uint16 DeviceIndex ) | |
Service ID | x06 | |
Parameters (in) | DeviceIndex | – |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | MemIf_JobResultType | Trong trường hợp phát hiện lỗi, thì hàm sẽ trả về MEMIF_JOB_FAILED, nếu không thì sẽ trả về giá trị. |
Header file | MemIf.h |
4.6 Datatype của MemIf_InvalidateBlock [SWS_MemIf_00044]
Service Name | MemIf_InvalidateBlock | |
Syntax | Std_ReturnType MemIf_InvalidateBlock ( uint16 DeviceIndex, uint16 BlockNumber) | |
Service ID | x07 | |
Parameters (in) | DeviceIndex | – |
BlockNumber | – | |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | Std_ReturnType | Trong trường hợp phát hiện lỗi, thì hàm sẽ trả về E_NOT_OK, nếu không thì sẽ trả về giá trị. |
Header file | MemIf.h |
Các mô-đun FEE và EA sẽ cung cấp dịch vụ để vô hiệu hóa một khối logic
4.7 Datatype của MemIf_GetVersionInfo [SWS_MemIf_00045]
Service Name | MemIf_GetVersionInfo | |
Syntax | void MemIf_GetVersionInfo ( Std_VersionInfoType* VersionInfoPtr) | |
Service ID | x08 | |
Parameters (in) | None | – |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | VersionInfoPtr | Pointer to standard version information structure. |
Header file | MemIf.h |
[SRS_BSW_00407] Mỗi mô-đun BSW sẽ cung cấp một chức năng để đọc thông tin phiên bản của mô-đun
4.8 Datatype của MemIf_EraseImmediateBlock [SWS_MemIf_00046]
Service Name | MemIf_EraseImmediateBlock | |
Syntax | Std_ReturnType MemIf_EraseImmediateBlock ( uint16 DeviceIndex, uint16 BlockNumber) | |
Service ID | x09 | |
Parameters (in) | DeviceIndex | – |
BlockNumber | – | |
Parameters (inout) | None | |
Parameters (out) | None | |
Return value | Std_ReturnType | Trong trường hợp phát hiện lỗi, thì hàm sẽ trả về E_NOT_OK, nếu không thì sẽ trả về giá trị. |
Header file | MemIf.h |
[SRS_MemHwAb_14032] Các mô-đun FEE và EA sẽ cung cấp service xóa chỉ hoạt động trên các khối logic hoàn chỉnh chứa dữ liệu tức thời.