AUTOSAR SWS FlashEEPROMEmulation
AUTOSAR SWS FlashEEPROMEmulation
AUTOSAR CP R22-11
Disclaimer
This work (specification and/or software implementation) and the material contained
in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR
and the companies that have contributed to it shall not be liable for any use of the
work.
The material contained in this work is protected by copyright and other types of
intellectual property rights. The commercial exploitation of the material contained in
this work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the
work may be utilized or reproduced, in any form or by any means, without permission
in writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
List of Figures
MemServices
«module»
NvM
«use»
MemHwA
«module»
MemIf
«use» «use»
«module» «module»
Fee Ea
«use» «use»
MemAcc
«module»
MemAcc
«module» «module»
Mem_Fls Mem_Eep
«use» «use»
Hardware
«Peripheral» «Peripheral»
Flash Memory EEPROM
The Flash EEPROM Emulation (FEE) shall abstract from the device specific
addressing scheme and segmentation and provide the upper layers with a virtual
addressing scheme and segmentation as well as a “virtually” unlimited number of
erase cycles.
Abbreviation / Description:
Acronym:
EA EEPROM Abstraction
Address Area Contiguous memory area in the logical address space
Typically multiple physical memory sectors are combined to one
logical address area.
EEPROM Electrically Erasable and Programmable ROM (Read Only Memory)
FEE Flash EEPROM Emulation
LSB Least significant bit / byte (depending on context). Here, “bit” is meant.
Mem Memory Driver
MemAcc Memory Access
MemIf Memory Abstraction Interface
MSB Most significant bit / byte (depending on context). Here, “bit” is meant.
NvM NVRAM Manager
NVRAM Non-volatile RAM (Random Access Memory)
NVRAM block Management unit as seen by the NVRAM Manager
(Logical) block Smallest writable / erasable unit as seen by the modules user. Consists of one or
more virtual pages.
Virtual page May consist of one or several physical pages to ease handling of logical blocks and
address calculation.
Internal residue Unused space at the end of the last virtual page if the configured block size isn’t an
integer multiple of the virtual page size (see Figure 3)).
Virtual address Consisting of 16 bit block number and 16 bit offset inside the logical block.
Physical Address information in device specific format (depending on the underlying
address EEPROM driver and device) that is used to access a logical block.
Dataset Concept of the NVRAM manager: A user addressable array of blocks of the same
size.
E.g. could be used to provide different configuration settings for the CAN driver
(CAN IDs, filter settings, …) to an ECU which has otherwise identical application
software (e.g. door module).
Redundant copy Concept of the NVRAM manager: Storing the same information twice to enhance
reliability of data storage.
3 Related documentation
Thus, the specification SWS BSW General shall be considered as additional and
required specification for Flash EEPROM Emulation.
4.1 Limitations
No limitations.
6 Requirements traceability
7 Functional specification
The Flash EEPROM Emulation (FEE) module provides upper layers with a 32bit
virtual linear address space and uniform segmentation scheme. This virtual 32bit
addresses shall consist of
a 16bit block number – allowing a (theoretical) number of 65536 logical blocks
a 16bit block offset – allowing a (theoretical) block size of 64KByte per block
The 16bit block number represents a configurable (virtual) paging mechanism. The
values for this address alignment can be derived from that of the underlying flash
driver and device. This virtual paging shall be configurable via the parameter
FeeVirtualPageSize.
[SWS_Fee_00076] ⌈ The configuration of the Fee module shall be such that the
virtual page size (defined in FeeVirtualPageSize) is an integer multiple of the
physical page size, i.e. it is not allowed to configure a smaller virtual page than the
actual physical page size. ⌋(SRS_MemHwAb_14001, SRS_MemHwAb_14005)
Note: This specification requirement allows the physical start address of a logical
block to be calculated rather than making a lookup table necessary for the address
mapping.
Example:
The size of a virtual page is configured to be eight bytes, thus the address alignment
is eight bytes. The logical block with block number 1 is placed at physical address x.
The logical block with the block number 2 then would be placed at x+8, block number
3 would be placed at x+16.
Example:
The address alignment / virtual paging is configured to be eight bytes by setting the
parameter FeeVirtualPageSize accordingly. The logical block number 1 is
configured to have a size of 32 bytes (seeFigure 2). This logical block would use
exactly 4 virtual pages. The next logical block thus would get the block number 5,
since block numbers 2, 3 and 4 are “blocked” by the first logical block. This second
block is configured to have a size of 100 bytes, taking up 13 virtual pages and
23 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
leaving 4 bytes of the last page unused. The next available logical block number thus
would be 17.
Virtual address space Physical address space
Page size: 64 KBytes Page size: 8 Bytes
16 Bit Block Number 32 Bytes 32 Bytes Block #1 with 32 byte
uses 4 pages, no
internal residue
100 Bytes Block #5 with 100 byte
uses 13 pages, 4 byte
internal residue
100 Bytes
Block 2
38 Bytes
Block 3
[SWS_Fee_00071] ⌈ Logical blocks must not overlap each other and must not be
contained within one another. ⌋(SRS_MemHwAb_14001)
Note: The exact address format needed by the underlying flash driver and therefore
the mechanism how to derive the physical flash address from the given 16bit block
number and 16bit address offset depends on the flash device and the implementation
of this module and shall therefore not be standardized.
[SWS_Fee_00100] ⌈ Only those bits of the 16bit block number, that do not denote a
specific dataset or redundant copy shall be used for address calculation.
⌋(SRS_MemHwAb_14009)
Note: Since this information is needed by the NVRAM manager, the number of bits to
encode this can be configured for the NVRAM manager with the parameter
NVM_DATASET_SELECTION_BITS.
Example:
Dataset information is configured to be encoded in the four LSB’s of the 16bit block
number (allowing for a maximum of 16 datasets per NVRAM block and a total of
4094 NVRAM blocks). An implementer decides to store all datasets of a NVRAM
block directly adjacent and using the length of the block and a pointer to access each
dataset. To calculate the start address of the block (the address of the first dataset)
she/he uses only the 12 MSB’s, to access a specific dataset she/he adds the size of
the block multiplied by the dataset index (the four LSB’s) to this start address (Figure
3).
NVM_DATASET_SELECTION_BITS configured
to be four (bits), leaving twelve bit for the block
number. Each NVRAM block thus can be
subdivided in up to 16 datasets.
[SWS_Fee_00102] ⌈ The configuration of the FEE module shall define the expected
number of erase/write cycles for each logical block in the configuration parameter
FeeNumberOfWriteCycles. ⌋(SRS_MemHwAb_14002, SRS_MemHwAb_14012)
[SWS_Fee_00103] ⌈ If the underlying flash device or device driver does not provide
at least the configured number of erase/write cycles per physical memory cell, the
FEE module shall provide mechanisms to spread the write access such that the
physical device is not overstressed. This shall also apply to all management data
used internally by the FEE module. ⌋(SRS_MemHwAb_14002,
SRS_MemHwAb_14012)
Example:
The logical block number 1 is configured for an expected 500.000 write cycles, the
underlying flash device and device driver are only specified for 100.000 erase cycles.
In this case, the FEE module has to provide (at least) five separate memory areas
and alternate the access between those areas internally so that each physical
memory location is only erased for a maximum of the specified 100.000 cycles.
26 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
Note: An ongoing lower priority read / erase / write or compare job shall be canceled
by the NVRAM manager before immediate data is written. The FEE module has only
to ensure that this write request can be performed immediately.
Note: A running operation on the hardware (e.g. writing one page or erasing one
sector) can usually not be aborted once it has been started. The maximum time of
the longest hardware operation thus has to be accepted as delay even for immediate
data.
Example:
Three blocks with 10 bytes each have been configured for immediate data. The FEE
module / configuration tool reserves these 30 bytes (plus the implementation specific
overhead per block / page if needed) for use by this immediate data only. That is, this
memory area shall not be used for storage of other data blocks.
Now, the NVRAM manager has requested the FEE module to write a data block of
100 bytes. While this block is being written, a situation occurs that one (or several) of
the immediate data blocks need to be written. Therefore the NVRAM manager
cancels the ongoing write request and subsequently issues the write request for the
(first) block containing immediate data. The cancelation of the ongoing write request
is performed synchronously by the FEE module and the underlying flash driver (i.e.
the write request for the immediate data) can be started without any further delay.
However, before the first bytes of immediate data can be written, the FEE module or
rather the underlying flash driver have to wait for the end of an ongoing hardware
access from the previous write request (e.g. writing of a page, erasing of a sector,
transfer via SPI, …).
[SWS_Fee_00049] ⌈ The FEE module shall manage for each block the information,
whether this block is correct (i.e. “not corrupted”) from the point of view of the FEE
module or not. This information shall only concern the internal handling of the block,
not the block’s contents. ⌋(SRS_MemHwAb_14014)
[SWS_Fee_00153] ⌈ When a block write operation is started, the FEE module shall
mark the corresponding block as “corrupted”1. ⌋(SRS_MemHwAb_14014)
1
This does not necessarily mean a write operation on the physical device, if there are other means to
detect the consistency of a logical block.
27 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
[SWS_Fee_00154] ⌈ Upon the successful end of the block write operation, the block
shall be marked as “not corrupted” (again). ⌋(SRS_MemHwAb_14014)
Note: This internal management information should not be mixed up with the validity
information of a block which can be manipulated by using the Fee_InvalidateBlock
service, i.e. the FEE shall be able to distinguish between a corrupted block and a
block that has been deliberately invalidated by the upper layer.
Based on this foundation, the following section specifies particular errors arranged in
the respective subsections below.
[SWS_Fee_00010]⌈
Type of error Related error code Error value
API service called when module was not initialized FEE_E_UNINIT 0x01
[SWS_Fee_91002]⌈
Error
Type of error Related error code
value
FEE_E_INVALID_
Fee_Cancel called while no job was pending. 0x08
CANCEL
⌋()
8 API specification
MemAcc_GeneralTypes.h MemAcc_AddressAreaIdType
MemAcc_GeneralTypes.h MemAcc_AddressType
MemAcc_GeneralTypes.h MemAcc_JobResultType
MemAcc_GeneralTypes.h MemAcc_LengthType
Std_Types.h Std_ReturnType
Std
Std_Types.h Std_VersionInfoType
⌋(SRS_BSW_00392)
Kind Structure
implementation specific
Elements Type --
Comment --
⌋(SRS_BSW_00414)
30 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
8.3.1 Fee_Init
[SWS_Fee_00085]⌈
Service Name Fee_Init
void Fee_Init (
Syntax const Fee_ConfigType* ConfigPtr
)
Sync/Async Asynchronous
⌋(SRS_BSW_00101)
Note: The FEE module’s environment shall not call the function Fee_Init during a
running operation of the FEE module.
8.3.2 Fee_Read
[SWS_Fee_00087]⌈
Service Name Fee_Read
Std_ReturnType Fee_Read (
uint16 BlockNumber,
uint16 BlockOffset,
Syntax
uint8* DataBufferPtr,
uint16 Length
)
Sync/Async Asynchronous
Parameters
None
(inout)
⌋(SRS_MemHwAb_14029)
[SWS_Fee_00021] ⌈ The function Fee_Read shall take the block start address and
offset and calculate the corresponding memory read address.
⌋(SRS_MemHwAb_14007)
Note: The address offset and length parameter can take any value within the given
types range. This allows reading of an arbitrary number of bytes from an arbitrary
start address inside a logical block.
case, the function Fee_Read shall raise the development error FEE_E_UNINIT.
⌋(SRS_BSW_00406)
8.3.3 Fee_Write
[SWS_Fee_00088]⌈
Service Name Fee_Write
Std_ReturnType Fee_Write (
uint16 BlockNumber,
Syntax
const uint8* DataBufferPtr
)
Sync/Async Asynchronous
Parameters
None
(inout)
⌋(SRS_MemHwAb_14010)
[SWS_Fee_00024] ⌈ The function Fee_Write shall take the block start address and
calculate the corresponding memory write address. The block address offset shall be
fixed to zero. ⌋(SRS_MemHwAb_14006)
8.3.4 Fee_Cancel
[SWS_Fee_00089]⌈
Service Name Fee_Cancel
void Fee_Cancel (
Syntax void
)
Sync/Async Asynchronous
Description Service to call the cancel function of the underlying flash driver.
⌋(SRS_MemHwAb_14031)
8.3.5 Fee_GetStatus
[SWS_Fee_00090]⌈
36 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
MemIf_StatusType Fee_GetStatus (
Syntax void
)
Sync/Async Synchronous
Parameters
None
(inout)
Parameters
None
(out)
⌋(SRS_BSW_00406)
Note: Internal management operation may e.g. be a re-organization of the used flash
memory (garbage collection). This may imply that the underlying device driver is – at
least temporarily – busy.
8.3.6 Fee_GetJobResult
[SWS_Fee_00091]⌈
Service Name Fee_GetJobResult
MemIf_JobResultType Fee_GetJobResult (
Syntax void
)
Service ID
0x06
[hex]
Sync/Async Synchronous
Parameters
None
(in)
Parameters
None
(inout)
Parameters
None
(out)
Service to query the result of the last accepted job issued by the upper layer
Description
software.
⌋(RS_BRF_01048)
[SWS_Fee_00035] ⌈ The function Fee_GetJobResult shall return MEMIF_JOB_OK
if the last job has been finished successfully. ⌋(RS_BRF_01048)
[SWS_Fee_00155] ⌈ Only those jobs which have been requested directly by the
upper layer shall have influence on the job result returned by the function
Fee_GetJobResult. I.e. jobs which are issued by the FEE module itself in the
course of internal management operations shall not alter the job result.
⌋(RS_BRF_01048)
8.3.7 Fee_InvalidateBlock
[SWS_Fee_00092]⌈
Service Name Fee_InvalidateBlock
Std_ReturnType Fee_InvalidateBlock (
Syntax uint16 BlockNumber
)
Sync/Async Asynchronous
Parameters
None
(inout)
Parameters
None
(out)
⌋(SRS_MemHwAb_14028)
Note: How exactly the requested block is invalidated depends on the module’s
implementation and will not be further detailed in this specification. The internal
management information has to be stored in NV memory since it has to be resistant
against resets. What this information is and how it is stored will not be further detailed
in this specification.
[SWS_Fee_00193]⌈ The FEE module shall execute the block invalidation request
asynchronously within the FEE module’s main function.⌋(RS_BRF_01812)
40 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
8.3.8 Fee_GetVersionInfo
[SWS_Fee_00093]⌈
Service Name Fee_GetVersionInfo
void Fee_GetVersionInfo (
Syntax Std_VersionInfoType* VersionInfoPtr
)
Sync/Async Synchronous
Reentrancy Reentrant
⌋(SRS_BSW_00407)
8.3.9 Fee_EraseImmediateBlock
[SWS_Fee_00094]⌈
Service Name Fee_EraseImmediateBlock
Std_ReturnType Fee_EraseImmediateBlock (
Syntax uint16 BlockNumber
)
Sync/Async Asynchronous
Parameters
None
(inout)
Parameters
None
(out)
⌋(SRS_MemHwAb_14032)
8.4.1 Fee_JobEndNotification
[SWS_Fee_00095]⌈
Service Name Fee_JobEndNotification
void Fee_JobEndNotification (
Syntax void
)
Sync/Async Synchronous
Parameters
None
(inout)
⌋(RS_BRF_01064)
8.5.1 Fee_MainFunction
[SWS_Fee_00097]⌈
Service Name Fee_MainFunction
void Fee_MainFunction (
Syntax void
)
Service ID
0x12
[hex]
Service to handle the requested read / write / erase jobs and the internal
Description
management operations.
⌋(RS_BRF_01048)
Note: In this case, the upper layer must not use the contents of the data buffer.
This chapter defines all interfaces which are required to fulfill the core functionality of
the module.
[SWS_Fee_00105]⌈
API Header
Description
Function File
Det_Report-
Service to report runtime errors. If a callout has been configured then this
Runtime- Det.h
callout shall be called.
Error
Triggers a cancel operation of the pending job for the address area
MemAcc_- Mem
referenced by the addressAreaId. Cancelling affects only jobs in pending
Cancel Acc.h
state. For any other states, the request will be ignored.
Triggers a job to compare the passed data to the memory content of the
provided address area. The job terminates, if all bytes matched or a
MemAcc_-
Mem difference was detected. The result of this service can be retrieved using
Compare
Acc.h the MemAcc_GetJobResult() API. If the compare operation determined a
(draft)
mismatch, the result code is MEMACC_MEM_INCONSISTENT.
Tags: atp.Status=draft
MemAcc_-
Mem Returns the consolidated job result of the address area referenced by
GetJob-
Acc.h addressAreaId.
Result
Triggers a read job to copy data from the source address into the
referenced destination data buffer. The result of this service can be
retrieved using the MemAcc_GetJobResult API. If the read operation was
MemAcc_- Mem successful, the result of the job is MEMACC_MEM_OK. If the read
Read Acc.h operation failed, the result of the job is either MEMACC_MEM_FAILED in
case of a general error or MEMACC_MEM_ECC_CORRECTED/MEMACC_
MEM_ECC_UNCORRECTED in case of a correctable/uncorrectable ECC
error.
Triggers a write job to store the passed data to the provided address area
with given address and length. The result of this service can be retrieved
MemAcc_- Mem
using the MemAcc_GetJobResult API. If the write operation was successful,
Write Acc.h
the job result is MEMACC_MEM_OK. If there was an issue writing the data,
the result is MEMACC_MEM_FAILED.
⌋(SRS_BSW_00384)
This chapter defines all interfaces which are required to fulfill an optional functionality
of the module.
46 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
[SWS_Fee_00104]⌈
API Header
Description
Function File
Det_-
Det.h Service to report development errors.
ReportError
Checks if the passed address space is blank, i.e. erased and writeable. The
result of this service can be retrieved using the MemAcc_GetJobResult API.
MemAcc_- Mem
If the address area defined by targetAddress and length is blank, the result
BlankCheck Acc.h
is MEMACC_MEM_OK, otherwise the result is MEMACC_MEM_
INCONSISTENT.
⌋(SRS_BSW_00384)
In this chapter all interfaces are listed where the target function could be configured.
The target function is usually a callback function. The names of this kind of interfaces
are not fixed because they are configurable.
[SWS_Fee_00055] ⌈ The FEE module shall call the function defined in the
configuration parameter FeeNvmJobEndNotification upon successful end of an
asynchronous operation and after performing all necessary internal management
operations:
- Read job finished & OK
- Write job finished & OK & block marked as valid
- Erase job for immediate data finished & OK (see SWS_Fee_00067)
- Invalidation of memory block finished & OK ⌋(RS_BRF_01064)
[SWS_Fee_00056] ⌈The FEE module shall call the function defined in the
configuration parameter FeeNvmJobErrorNotification upon failure of an
47 of 66 Document ID 286: AUTOSAR_SWS_FlashEEPROMEmulation
Specification of Flash EEPROM Emulation
AUTOSAR CP R22-11
asynchronous operation and after performing all necessary internal management and
error handling operations:
- Read job finished & failed (e.g. block invalid or inconsistent)
- Write job finished & failed & block marked as invalid
- Erase job for immediate data finished & failed (see SWS_Fee_00067)
- Invalidation of memory block finished & failed ⌋(RS_BRF_01064)
9 Sequence diagrams
Note: For a vendor specific library, the following sequence diagrams are valid only
insofar as they show the relation to the calling modules (Ecu_StateManager and
memory abstraction interface). The calling relations from a memory abstraction
module to an underlying driver are not relevant / binding for a vendor specific library.
9.1 Fee_Init
The following figure shows the call sequence for the Fee_Init routine. It is different
from that of all other services of this module as it is not called by the NVRAM
manager and not called via the memory abstraction interface.
alt
Fee_Init()
[asynchronous initialization]
loop Fee_MainFunction()
Module initialization ongoing,
Fee_MainFunction() module status still
MEMIF_BUSY_INTERNAL
Fee_MainFunction()
Module initialization finished,
Fee_MainFunction() module status set to
MEMIF_IDLE
9.2 Fee_Write
The following figure shows exemplarily the call sequence for the Fee_Write service.
This sequence diagram also applies to the other asynchronous services of this
module.
MemAcc_Write()
Fee_Write()
MemIf_Write()
loop MemAcc_MainFunction
Mem_Write(Std_ReturnType,
MemAcc_MainFunction() Mem_InstanceIdType,
Mem_AddressType, const
Mem_DataType*,
Mem_LengthType)
Mem_Write()
Mem_MainFunction()
Mem_MainFunction()
Mem_GetJobResult
(Mem_JobResultType,
Mem_InstanceIdType)
Mem_GetJobResult()
MemAcc_MainFunction()
MemAcc_MainFunction()
Fee_JobEndNotification()
NvM_JobEndNotification()
NvM_JobEndNotification()
Fee_JobEndNotification()
MemAcc_MainFunction()
9.3 Fee_Cancel
The following figure shows as an example the call sequence for a canceled
Fee_Write service and a subsequent new Fee_Write request. This sequence
diagram shows that Fee_Cancel is asynchronous w.r.t. the underlying hardware
while itself being synchronous.
MemAcc_Write(Std_ReturnType,
Fee_Write(uint16, uint8*) MemAcc_AddressAreaIdType,
MemAcc_AddressType, const
MemAcc_DataType*,
MemAcc_LengthType)
MemAcc_Write()
Fee_Write()
MemIf_Write()
loop MemAcc_MainFunction
Mem_Write(Std_ReturnType,
MemAcc_MainFunction()
Mem_InstanceIdType, check if hardware is free
Mem_AddressType, const (idle);
Mem_DataType*, if so, issue first write
Mem_LengthType) command
Mem_Write()
Mem_MainFunction()
Mem_MainFunction()
Mem_GetJobResult
(Mem_JobResultType,
Mem_InstanceIdType)
Mem_GetJobResult()
check HW status,
check job status,
MemAcc_MainFunction()
if HW is finished and
job is not finished issue
next write command
MemIf_Cancel(DeviceIndex)
Fee_Cancel(void)
MemAcc_Cancel
(MemAcc_AddressAreaIdType)
MemAcc_Cancel()
Fee_JobEndNotification()
Fee_Cancel()
MemIf_Cancel()
MemAcc_MainFunction()
MemIf_Write(Std_ReturnType, uint16,
uint16, const uint8*)
Fee_Write
MemAcc_Write(Std_ReturnType,
(Std_ReturnType, uint16,
MemAcc_AddressAreaIdType,
const uint8*)
MemAcc_AddressType, const
MemAcc_DataType*,
MemAcc_LengthType)
MemAcc_Write()
Fee_Write()
MemIf_Write()
Mem_Write(Std_ReturnType,
Mem_InstanceIdType,
MemAcc_MainFunction()
Mem_AddressType, const check if hardware is
Mem_DataType*, free (idle);
Mem_LengthType) if so, issue first write
command
Mem_Write()
Mem_MainFunction()
Mem_MainFunction()
Mem_GetJobResult
(Mem_JobResultType,
Mem_InstanceIdType)
Mem_GetJobResult()
MemAcc_MainFunction()
check HW status,
check job status,
if HW is finished and
job is not finished issue
next write command
10 Configuration specification
10.1.1 Fee
Included Containers
FeeGeneral:
+parameter FeeMainFunctionPeriod:
EcucParamConfContainerDef
EcucFloatParamDef
min = 0
max = INF
Fee: EcucModuleDef
defaultValue = false
FeeVirtualPageSize:
+parameter EcucIntegerParamDef
max = 65535
min = 0
FeeVersionInfoApi:
+parameter
EcucBooleanParamDef
defaultValue = false
FeeMinimumReadPageSize:
+parameter EcucIntegerParamDef
lowerMultiplicity = 0
FeeNvmJobErrorNotification: upperMultiplicity = 1
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1
+parameter FeePollingMode:
EcucBooleanParamDef
+reference FeeBufferAlignmentValue:
EcucReferenceDef
requiresSymbolicNameValue = true
+destination
MemAccAddressAreaConfiguration:
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 65535
FeePublishedInformation:
FeeBlockOverhead:
EcucParamConfContainerDef
EcucIntegerParamDef
+parameter
+container min = 0
max = 65535 FeePageOverhead:
EcucIntegerParamDef
+parameter
min = 0
max = 65535
FeeBlockConfiguration:
EcucParamConfContainerDef
+container
upperMultiplicity = *
lowerMultiplicity = 1
10.1.2 FeeGeneral
Description Container for general parameters. These parameters are not specific to a block.
Configuration Parameters
Multiplicity 1
Type EcucBooleanParamDef
Post-build time --
Description The period between successive calls to the main function in seconds.
Multiplicity 1
Type EcucFloatParamDef
Range ]0 .. INF[
Default value --
Post-build time --
Minimum Page size will be a multiple of the minimum page size. Fee shall
Description align read requests to this size.
Tags: atp.Status=draft
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant
false
Value
Mapped to the job end notification routine provided by the upper layer
Description
module (NvM_JobEndNotification).
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
Regular Expression --
Post-Build Variant
false
Multiplicity
Mapped to the job error notification routine provided by the upper layer
Description
module (NvM_JobErrorNotification).
Multiplicity 0..1
Type EcucFunctionNameDef
Default value --
Regular Expression --
Post-Build Variant
false
Multiplicity
Post-Build Variant
false
Value
Pre-processor switch to enable and disable the polling mode for this
module.
true: Polling mode enabled, callback functions (provided to MemAcc
Description
module) disabled.
false: Polling mode disabled, callback functions (provided to MemAcc
module) enabled.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant
false
Value
Pre-processor switch to enable / disable the API to read out the modules
Description version information.
true: Version info API enabled. false: Version info API disabled.
Multiplicity 1
Type EcucBooleanParamDef
Post-Build Variant
false
Value
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-build time --
Parameter determines the alignment of the start address that Fee buffers
need to have.
Description
Value shall be inherited from MemAccBufferAlignmentValue.
Tags: atp.Status=draft
Multiplicity 1
Post-Build Variant
false
Value
No Included Containers
10.1.3 FeeBlockConfiguration
Parent
Fee
Container
Configuration Parameters
0x0000 and 0xFFFF shall not be used for block numbers (see FEE006).
Range: min = 2^NVM_DATASET_SELECTION_BITS max = 0xFFFF -
2^NVM_DATASET_SELECTION_BITS
Note: Depending on the number of bits set aside for dataset selection several
other block numbers shall also be left out to ease implementation.
Multiplicity 1
Range 1 .. 65534
Default value --
Post-Build Variant
false
Value
Scope /
scope: ECU
Dependency
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 65535
Default value --
Post-build time --
true: Block contains immediate data. false: Block does not contain
immediate data.
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant
false
Value
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 4294967295
Default value --
Post-build time --
Multiplicity 0..1
Post-build time --
Post-build time --
No Included Containers
FeeBlockSize:
FeeBlockConfiguration:
+parameter EcucIntegerParamDef
EcucParamConfContainerDef
max = 65535 FeeBlockNumber:
upperMultiplicity = *
min = 1 EcucIntegerParamDef
lowerMultiplicity = 1
+parameter
max = 65534
min = 1
symbolicNameValue = true
FeeNumberOfWriteCycles:
+parameter
EcucIntegerParamDef
min = 0
max = 4294967295
FeeImmediateData:
+parameter EcucBooleanParamDef
MemAccAddressAreaId:
EcucIntegerParamDef
min = 0
max = 65535
defaultValue = 0
lowerMultiplicity = 1
upperMultiplicity = 1
symbolicNameValue = true
+parameter
10.2.1 FeePublishedInformation
Container
FeePublishedInformation
Name
Parent
Fee
Container
Configuration Parameters
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build
false
Variant Value
Value
Configuration Published Information X All Variants
Class
Scope /
scope: local
Dependency
Multiplicity 1
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build
false
Variant Value
Value
Configuration Published Information X All Variants
Class
Scope /
scope: local
Dependency
No Included Containers