Fee manages flash in sectors. Each sector has virtual pages. When active sector is full, GC copies valid blocks to a new sector and erases the old one. Fee guarantees data consistency even on power loss (immediate data / write-once blocks preserved).
Memory Stack Trace
AUTOSAR Memory Stack initialized. Select a block and perform operations.
📑 Detail
Select a block and perform an operation to see details.
SECTOR ERASE COUNT HEATMAP
Low (0)High (100k+)
NvM CRC Modes:
• NVM_CRC8: CRC-8/SAE-J1850 (poly=0x1D) - small blocks
• NVM_CRC16: CRC-16/CCITT (poly=0x1021) - medium blocks
• NVM_CRC32: CRC-32/IEEE (poly=0x04C11DB7) - large blocks
CRC is computed over RAM block data and stored alongside the block in Fee. On NvM_ReadBlock, CRC is recalculated and compared. Mismatch → NVM_REQ_INTEGRITY_FAILED.
NvM API (AUTOSAR 4.x)
• NvM_ReadBlock(BlockId, *DstPtr) - async read from NV to RAM
• NvM_WriteBlock(BlockId, *SrcPtr) - async write from RAM to NV
• NvM_RestoreBlockDefaults(BlockId, *DstPtr) - copy ROM defaults to RAM
• NvM_InvalidateNvBlock(BlockId) - mark block as invalid in NV
• NvM_EraseNvBlock(BlockId) - erase block in NV
• NvM_ReadAll() - read all permanent blocks at startup (EcuM)
• NvM_WriteAll() - write all changed blocks at shutdown (EcuM)
• NvM_GetErrorStatus(BlockId, *StatusPtr) - poll job result