CLASSIC
Modul: fee
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_FEE_SECTION_8_3_2_Fee_Read
Wortlaut
8.3.2 Fee_Read
[SWS_Fee_00087] Definition of API function Fee_Read
Upstream requirements: SRS_MemHwAb_14029
⌈
Service Name
Fee_Read
Syntax
Std_ReturnType Fee_Read (
uint16 BlockNumber,
uint16 BlockOffset,
uint8* DataBufferPtr,
uint16 Length
)
Service ID [hex]
0x02
Sync/Async
Asynchronous
Reentrancy
Non Reentrant
BlockNumber
Number of logical block, also denoting start address of that block
in flash memory.
BlockOffset
Read address offset inside the block
Parameters (in)
Length
Number of bytes to read
Parameters (inout)
None
Parameters (out)
DataBufferPtr
Pointer to data buffer
Return value
Std_ReturnType
E_OK: The requested job has been accepted by the module.
E_NOT_OK: The requested job has not been accepted by the
module.
Description
Service to initiate a read job.
Available via
Fee.h
⌋
[SWS_Fee_00021]
Upstream requirements: SRS_MemHwAb_14007
⌈The function Fee_Read shall take the block start address and offset and calculate the
corresponding memory read address.⌋
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.
[SWS_Fee_00022]
Upstream requirements: SRS_MemHwAb_14029
⌈If the current module status is MEMIF_IDLE or if the current module status is
MEMIF_BUSY_INTERNAL, the function Fee_Read shall accept the read request, copy
the given / computed parameters to module internal variables, initiate a read job, set
the FEE module status to MEMIF_BUSY, set the job result to MEMIF_JOB_PENDING
and return with E_OK.⌋
[SWS_Fee_00172] ⌈If the current module status is MEMIF_UNINIT or MEMIF_BUSY,
the function Fee_Read shall reject the job request and return with E_NOT_OK.⌋
[SWS_Fee_00073] ⌈The FEE module shall execute the read operation asynchronously
within the FEE module’s main function.⌋
[SWS_Fee_00122]
Upstream requirements: SRS_BSW_00406
⌈If development error detection is enabled for the module: the function Fee_Read shall
check if the module state is MEMIF_UNINIT. If this is the case, the function Fee_Read
shall raise the development error FEE_E_UNINIT.⌋
[SWS_Fee_00133] ⌈The function Fee_Read shall check if the module state is
MEMIF_BUSY. If this is the case, the function Fee_Read shall reject the read request,
raise the runtime error FEE_E_BUSY and return with E_NOT_OK.⌋
[SWS_Fee_00134]
Upstream requirements: SRS_BSW_00323
⌈If development error detection is enabled for the module: the function Fee_Read shall
check that the given block number is valid (i.e. it has been configured). If this is not the
case, the function Fee_Read shall raise the development error FEE_E_INVALID_BLOCK_NO.⌋
[SWS_Fee_00135]
Upstream requirements: SRS_BSW_00323
⌈If development error detection is enabled for the module: the function Fee_Read
shall check that the given block offset is valid (i.e. that it is less than the block length
configured for this block). If this is not the case, the function Fee_Read shall raise the
development error FEE_E_INVALID_BLOCK_OFS.⌋
[SWS_Fee_00136]
Upstream requirements: SRS_BSW_00323
⌈If development error detection is enabled for the module: the function Fee_Read shall
check that the given data pointer is valid (i.e. that it is not NULL). If this is not the case,
the function Fee_Read shall raise the development error FEE_E_PARAM_POINTER.⌋
[SWS_Fee_00137]
Upstream requirements: SRS_BSW_00323
⌈If development error detection is enabled for the module: the function Fee_Read shall
check that the given length information is valid, i.e. that the requested length information plus the block offset do not exceed the block end address (block start address plus
configured block length). If this is not the case, the function Fee_Read shall raise the
development error FEE_E_INVALID_BLOCK_LEN.⌋
[SWS_Fee_00162] ⌈If a read request is rejected by the function Fee_Read,
i.e.
requirements
[SWS_Fee_00122],
[SWS_Fee_00133],
[SWS_Fee_00134],
[SWS_Fee_00135], [SWS_Fee_00136] or [SWS_Fee_00137] apply, the function
Fee_Read shall not change the current module status or job result.⌋
[SWS_Fee_00187] ⌈The function Fee_Read shall call the function MemAcc_BlankCheck to determine in advance whether a given memory area can be read
without encountering e.g. ECC errors due to trying to read erased but not programmed
flash cells.⌋
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_FlashEEPROMEmulation.pdf |
|---|---|
| Dokumentseite | Seite 26 |
| Ziel-Modul | fee (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |