DEENESPTFRRUARHIKOZHNL

SPI Handler Driver (Spi)

ModulSpi (SPI Handler Driver)
BSW-Modul-ID83
Standard-Header#include "Spi.h"
SWS-SpezifikationAUTOSAR_CP_SWS_SPIHandlerDriver.pdf, AUTOSAR_SWS_SPIHandlerDriver.pdf, AUTOSAR_SWS_SPI_HandlerDriver.pdf
Umfang128 Records · 5 Snippets
ClusterMikrocontroller-Abstraktion (MCAL & I/O)

SPI Handler Driver (Spi)

AUTOSAR Classic Communication Drivers-Modul SPI Handler Driver (Spi, Spezifikation: AUTOSAR_CP_SWS_SPIHandlerDriver.pdf, AUTOSAR_SWS_SPIHandlerDriver.pdf, AUTOSAR_SWS_SPI_HandlerDriver.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

función Spi_Init [SWS_Spi_00175] 📄 PDF

void Spi_Init(const Spi_ConfigType* ConfigPtr);

Service for SPI initialization.

función Spi_WriteIB [SWS_Spi_00177] 📄 PDF

Std_ReturnType Spi_WriteIB(Spi_ChannelType Channel, const Spi_DataBufferType* DataBufferPtr);

Service for writing one or more data to an IB SPI Handler/ Driver Channel specified by parameter.

función Spi_ReadIB [SWS_Spi_00179] 📄 PDF

Std_ReturnType Spi_ReadIB(Spi_ChannelType Channel, Spi_DataBufferType* DataBufferPointer);

Service for reading synchronously one or more data from an IB SPI Handler/ Driver Channel specified by parameter.

función Spi_SetupEB [SWS_Spi_00180] 📄 PDF

Std_ReturnType Spi_SetupEB(Spi_ChannelType Channel, const Spi_DataBufferType* SrcDataBufferPtr, Spi_DataBufferType* DesDataBufferPtr, Spi_NumberOfDataType Length);

Service to setup the buffers and the length of data for the EB SPI Handle r/ Driver Channel specified.

función Spi_GetStatus [SWS_Spi_00181] 📄 PDF

Spi_StatusType Spi_GetStatus(void);

Service returns the SPI Handler/ Driver software module status.

función Spi_GetJobResult [SWS_Spi_00182] 📄 PDF

Spi_JobResultType Spi_GetJobResult(Spi_JobType Job);

This service returns the last transmission result of the specified Job.

función Spi_GetSequenceResult [SWS_Spi_00183] 📄 PDF

Spi_SeqResultType Spi_GetSequenceResult(Spi_SequenceType Sequence);

This service returns the last transmission result of the specified Sequence.

función Spi_GetHWUnitStatus [SWS_Spi_00186] 📄 PDF

Spi_StatusType Spi_GetHWUnitStatus(Spi_HWUnitType HWUnit);

This service returns the status of the specified SPI Hardware microcontroller peripheral.

función Spi_Cancel [SWS_Spi_00187] 📄 PDF

void Spi_Cancel(Spi_SequenceType Sequence);

Service cancels the specified on - going sequence transmission.

función Spi_SetAsyncMode [SWS_Spi_00188] 📄 PDF

Std_ReturnType Spi_SetAsyncMode(Spi_AsyncModeType Mode);

Service to set the asynchronous mechanism mode for SPI busses handled asynchronously.

función JobEnd [SWS_Spi_00192] 📄 PDF

void(* Spi_JobEndNotification); ⚠️

Callback routine provided by the user for each Job to notify the caller that a job has been finished.

función SeqEnd [SWS_Spi_00193] 📄 PDF

void(* Spi_SeqEndNotification); ⚠️

Callback routine provided by the user for each Sequence to notify the caller that a sequence has been finished.

tipo Spi_ConfigType [SWS_Spi_00372] 📄 PDF

This type of the external data structure shall contain the initialization data for the SPI Handler/ Driver.

tipo Spi_JobResultType [SWS_Spi_00374] 📄 PDF

This type defines a range of specific Jobs status for SPI Handler/ Driver.

tipo Spi_SeqResultType [SWS_Spi_00375] 📄 PDF

This type defines a range of specific Sequences status for SPI Handler/ Driver.

tipo Spi_NumberOfDataType [SWS_Spi_00377] 📄 PDF

Type for defining the number of data elements of the type Spi_ Data Buffer Type to send and / or receive by Channel

tipo Spi_HWUnitType [SWS_Spi_00381] 📄 PDF

Specifies the identification (ID) for a SPI Hardware microcontroller peripheral (unit).

tipo Spi_AsyncModeType [SWS_Spi_00382] 📄 PDF

Specifies the asynchronous mechanism mode for SPI busses handled asynchronously.

requirement SWS_Spi_00004 [SWS_Spi_00004] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_CHANNEL when API ser vice called with wrong param e- ter.

requirement SWS_Spi_00016 [SWS_Spi_00016] 📄 PDF

[SWS_Spi_00016] ⌈The function Spi_ReadIB shall read synchronously one or more data from an IB SPI Handler/Driver Channel specified by the respective parameter.⌋(SRS_Spi_12099, SRS_Spi_12152)

requirement SWS_Spi_00018 [SWS_Spi_00018] 📄 PDF

[SWS_Spi_00018] ⌈The function Spi_WriteIB shall write one or more data to an IB SPI Handler/Driver Channel specified by the respective parame- ter.⌋(SRS_Spi_12101, SRS_Spi_12153)

requirement SWS_Spi_00020 [SWS_Spi_00020] 📄 PDF

[SWS_Spi_00020] ⌈The function Spi_AsyncTransmit shall take over the given parameter, initiate a transmission, set the SPI Handler/Driver status to SPI_BUSY, set the sequence result to SPI_SEQ_PENDING and return. ⌋(SRS_Spi_12099, SRS_Spi_12101, SRS_Spi_12103)

requirement SWS_Spi_00021 [SWS_Spi_00021] 📄 PDF

[SWS_Spi_00021] ⌈The function Spi_DeInit shall de-initialize SPI Han- dler/Driver.⌋(SRS_BSW_00336, SRS_SPAL_12163, SRS_SPAL_12064)

requirement SWS_Spi_00022 [SWS_Spi_00022] 📄 PDF

[SWS_Spi_00022] ⌈After the module de-initialization using the function Spi_DeInit, the SPI Handler/Driver shall set its state to SPI_UNINIT.⌋(SRS_BSW_00336, SRS_SPAL_12163) The SPI Handler/Driver shall have been initialized before the function Spi_DeInit is called, otherwise see [SWS_Spi_00046].

requirement SWS_Spi_00023 [SWS_Spi_00023] 📄 PDF

[SWS_Spi_00023] ⌈If the given parameter “DataBufferPtr” is null, the function Spi_WriteIB shall assume that the data to be transmitted is not relevant and the default transmit value of the given channel shall be used instead.⌋()

requirement SWS_Spi_00024 [SWS_Spi_00024] 📄 PDF

[SWS_Spi_00024] ⌈The function Spi_WriteIB shall take over the given parame- ters, and save the pointed data to the internal buffer defined with the function Spi_Init.⌋()

requirement SWS_Spi_00027 [SWS_Spi_00027] 📄 PDF

[SWS_Spi_00027] ⌈The SPI Handler/Driver’s environment shall call the function Spi_ReadIB after a Transmit method call to have relevant data within IB Channel.⌋()

requirement SWS_Spi_00030 [SWS_Spi_00030] 📄 PDF

[SWS_Spi_00030] ⌈When the function Spi_SetupEB is called with the parameter DesDataBufferPtr being a Null pointer, the SPI Handler/Driver shall ignore the received data after a Transmit method is requested.(See also [SWS_Spi_00036])⌋()

requirement SWS_Spi_00031 [SWS_Spi_00031] 📄 PDF

The API parameter Channel shall have a value within the d e- fined channels in the initialization data structure, and the cor rect type of channel (IB or EB) has to be used with services. Related error value: SPI_E_PARAM_CHANNEL . Otherwise, the service is not done and the return value shall be E_NOT_OK .

requirement SWS_Spi_00032 [SWS_Spi_00032] 📄 PDF

The API parameters Sequence and Job shall have values within the specified range of values. Related errors values: SPI_E_PARAM_SEQ or SPI_E_PARAM_JOB.

requirement SWS_Spi_00035 [SWS_Spi_00035] 📄 PDF

[SWS_Spi_00035] ⌈When the function Spi_AsyncTransmit is used with EB and the source data pointer has been provided as NULL using the Spi_SetupEB method, the default transmit data configured for each channel shall be transmitted. (See also

requirement SWS_Spi_00036 [SWS_Spi_00036] 📄 PDF

[SWS_Spi_00036] ⌈When the function Spi_AsyncTransmit is used with EB and the destination data pointer has been provided as NULL using the Spi_SetupEB method, the SPI Handler/Driver shall ignore receiving data (See also

requirement SWS_Spi_00037 [SWS_Spi_00037] 📄 PDF

[SWS_Spi_00037] ⌈The SPI Handler/Driver’s environment shall call the Spi_SetupEB function once for each Channel with EB declared before the SPI Handler/Driver’s environment calls a Transmit method on them.⌋()

requirement SWS_Spi_00046 [SWS_Spi_00046] 📄 PDF

If development error detection for the SPI mod ule is enabled and the SPI Handler/Driver’s env i ronment calls any API function before initialization, an error should be reported to the DET with the error value SPI_E_UNINIT according to the configur a tion.

requirement SWS_Spi_00055 [SWS_Spi_00055] 📄 PDF

[SWS_Spi_00055] ⌈When the function Spi_AsyncTransmit is used for a Se- quence with linked Jobs, the function shall transmit from the first Job up to the last Job in the sequence.⌋(SRS_Spi_12181)

requirement SWS_Spi_00057 [SWS_Spi_00057] 📄 PDF

[SWS_Spi_00057] ⌈ At the end of a sequence transmission initiated by the function Spi_AsyncTransmit and if configured, the SPI Handler/Driver shall invoke the se- quence notification call-back function after the last Job end notification if this one is also configured.⌋(SRS_SPAL_00157, SRS_Spi_12108)

requirement SWS_Spi_00058 [SWS_Spi_00058] 📄 PDF

[SWS_Spi_00058] ⌈The function Spi_SetupEB shall set up the buffers and the length of data for the specific EB SPI Handler/Driver Channel.⌋(SRS_Spi_12103)

requirement SWS_Spi_00060 [SWS_Spi_00060] 📄 PDF

The API parameter Length of data shall have a value within the specified buffer maximum value. Related error va lue: SPI_E_PARAM_LENGTH.

requirement SWS_Spi_00067 [SWS_Spi_00067] 📄 PDF

[SWS_Spi_00067] ⌈The function Spi_SetupEB shall update the buffer pointers and length attributes of the specified Channel with the provided val- ues.⌋(SRS_Spi_12103) As these attributes are persistent, they will be used for all succeeding calls to a Transmit method (for the specified Channel).

requirement SWS_Spi_00081 [SWS_Spi_00081] 📄 PDF

[SWS_Spi_00081] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence is already in state SPI_SEQ_PENDING, the SPI Handler/Driver shall not take in account this new request and this function shall return with value E_NOT_OK, in this case.⌋()

requirement SWS_Spi_00086 [SWS_Spi_00086] 📄 PDF

[SWS_Spi_00086] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence shares Jobs with another sequence that is in the state SPI_SEQ_PENDING, the SPI Handler/Driver shall not take into account this new re- quest and this function shall return the value E_NOT_OK. In this case and according to [SWS_BSW_00042] and [SWS_BSW_00045], the SPI Handler/Driver shall report the SPI_E_SEQ_PENDING error.⌋()

requirement SWS_Spi_00114 [SWS_Spi_00114] 📄 PDF

[SWS_Spi_00114]). In this case, the SPI Han- dler/Driver shall report the SPI_E_SEQ_IN_PROCESS error according to

requirement SWS_Spi_00133 [SWS_Spi_00133] 📄 PDF

[SWS_Spi_00133] ⌈The function Spi_AsyncTransmit is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 1 and LEVEL 2.⌋()

requirement SWS_Spi_00134 [SWS_Spi_00134] 📄 PDF

[SWS_Spi_00134] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the SPI Handler/Driver status to SPI_BUSY can be ob- tained calling the API service SPI_GetStatus.⌋(SRS_Spi_12152, SRS_Spi_12153, SRS_Spi_12154)

requirement SWS_Spi_00135 [SWS_Spi_00135] 📄 PDF

[SWS_Spi_00135] ⌈When the function Spi_SyncTransmit is called while a se- quence is on transmission and SPI_SUPPORT_CONCURRENT_SYNC_TRANSMIT is disabled or another sequence is on transmission on same bus, the SPI Han- dler/Driver shall not take into account this new transmission request and the function shall return the value E_NOT_OK (see [SWS_Spi_00114]). In this case, the SPI Han- dler/Driver shall report the SPI_E_SEQ_IN_PROCESS error according to

requirement SWS_Spi_00136 [SWS_Spi_00136] 📄 PDF

[SWS_Spi_00136] ⌈The function Spi_SyncTransmit is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 0 and LEVEL 2.⌋() Parameters of the function Spi_SyncTransmit shall be checked as it is explained in section API parameter checking

requirement SWS_Spi_00137 [SWS_Spi_00137] 📄 PDF

[SWS_Spi_00137] ⌈The function Spi_WriteIB shall be pre-compile time configu- rable by the parameter SpiChannelBuffersAllowed. This function is only rele- vant for Channels with IB.⌋() Parameters of the function Spi_WriteIB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_WriteIB is called, otherwise see [SWS_Spi_00046].

requirement SWS_Spi_00138 [SWS_Spi_00138] 📄 PDF

[SWS_Spi_00138] ⌈The function Spi_ReadIB is pre-compile time configurable by the parameter SpiChannelBuffersAllowed. This function is only relevant for Channels with IB.⌋() Parameters of the function Spi_ReadIB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_ReadIB is called otherwise see [SWS_Spi_00046].

requirement SWS_Spi_00139 [SWS_Spi_00139] 📄 PDF

[SWS_Spi_00139] ⌈The function Spi_SetupEB is pre-compile time configurable by the parameter SpiChannelBuffersAllowed. This function is only relevant for Channels with EB.⌋() Parameters of the function Spi_SetupEB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_SetupEB is called otherwise see [SWS_Spi_00046].

requirement SWS_Spi_00143 [SWS_Spi_00143] 📄 PDF

The API parameter HWUnit shall have a value within the spe c i- fied range of valu es. Related error value: SPI_E_PARAM_UNIT.

requirement SWS_Spi_00154 [SWS_Spi_00154] 📄 PDF

[SWS_Spi_00154] ⌈The function Spi_SetAsyncMode is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 1 and 2.⌋()

requirement SWS_Spi_00156 [SWS_Spi_00156] 📄 PDF

Both the polling mechanism and inte r rupt mechanism modes for SPI busses shall be selectable during execution time (see [ SWS_Spi_00188 ]).

requirement SWS_Spi_00157 [SWS_Spi_00157] 📄 PDF

[SWS_Spi_00157] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_PENDING when the transmission of Jobs is started.⌋()

requirement SWS_Spi_00171 [SWS_Spi_00171] 📄 PDF

[SWS_Spi_00171] ⌈If the function Spi_SetAsyncMode is called while the SPI Han- dler/Driver status is SPI_BUSY and an asynchronous transmission is in progress, the SPI Handler/Driver shall not change the AsyncModeType and keep the mode type as it is. The function shall return the value E_NOT_OK.⌋()

requirement SWS_Spi_00172 [SWS_Spi_00172] 📄 PDF

[SWS_Spi_00172] ⌈If Spi_SetAsyncMode is called while a synchronous transmis- sion is in progress, the SPI Handler/Driver shall set the AsyncModeType according to parameter 'Mode', even if the SPI Handler/Driver status is SPI_BUSY. The function shall return the value E_OK.⌋()

requirement SWS_Spi_00173 [SWS_Spi_00173] 📄 PDF

[SWS_Spi_00173] ⌈The SPI Handler/Driver’s environment shall call the function Spi_AsyncTransmit after a function call of Spi_SetupEB for EB Channels or a function call of Spi_WriteIB for IB Channels but before the function call Spi_ReadIB.⌋() Parameters of the function Spi_AsyncTransmit shall be checked as explained in section API parameter checking The SPI Handler/Driver shall have been initialized before the function Spi_AsyncTransmit is called otherwise see [SWS_Spi_00046].

requirement SWS_Spi_00194 [SWS_Spi_00194] 📄 PDF

[SWS_Spi_00194] ⌈When the function Spi_AsyncTransmit is called, shall take over the given parameter and set the Job status to SPI_JOB_QUEUED, which can be ob- tained by calling the API service Spi_GetJobResult.⌋()

requirement SWS_Spi_00195 [SWS_Spi_00195] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_HARDWARE_ERROR when an hardware error occur during asy n chronous or synchronous transmit. Please see also SWS_Spi_00267 and SWS_Spi_ 00384 .

requirement SWS_Spi_00233 [SWS_Spi_00233] 📄 PDF

If development error detection for the SPI module is enabled, the calling of the ro u- tine SPI_Init() while the SPI driver is a l ready initialized will cause a development error SPI_E_ALREADY_INITIALIZED and the desired functiona l ity shall be left without any action.

requirement SWS_Spi_00235 [SWS_Spi_00235] 📄 PDF

If not applicable, the SPI Handler/Driver module’s environment shall pass a NULL pointer to the fun c tion Spi_Init.

requirement SWS_Spi_00237 [SWS_Spi_00237] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_JOB when API service called with wrong parameter.

requirement SWS_Spi_00238 [SWS_Spi_00238] 📄 PDF

SPI Handler/driver sha ll be able to detect the error SPI_E_PARAM_SEQ when API service called with wrong parameter.

requirement SWS_Spi_00240 [SWS_Spi_00240] 📄 PDF

SPI Handler/driver shall be able to detect th e error SPI_E_PARAM_LENGTH when API service called with wrong parameter.

requirement SWS_Spi_00241 [SWS_Spi_00241] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_UNIT when API service called with wrong parameter.

requirement SWS_Spi_00242 [SWS_Spi_00242] 📄 PDF

SPI Handler/driver shall be able to det ect the error SPI_E_UNINIT when API service used without module initialization.

requirement SWS_Spi_00243 [SWS_Spi_00243] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_ SEQ_PENDING when services called in a wrong sequence.

requirement SWS_Spi_00245 [SWS_Spi_00245] 📄 PDF

SPI Handler/driver shall be able to detect the error SPI_E_SEQ_IN_PROCESS when synchronous tran s mission service called at wrong time.

requirement SWS_Spi_00246 [SWS_Spi_00246] 📄 PDF

SPI Handler/dri ver shall be able to detect the error SPI_E_ALREADY_INITIALIZED when API SPI_Init service called while the SPI dri v- er has already been initialized time.

requirement SWS_Spi_00252 [SWS_Spi_00252] 📄 PDF

[SWS_Spi_00252] ⌈In case of the SPI Handler/Driver state is not SPI_BUSY, the deInitialization function shall put all already initialized microcontroller SPI peripherals into the same state such as Power On Reset.⌋()

requirement SWS_Spi_00253 [SWS_Spi_00253] 📄 PDF

[SWS_Spi_00253] ⌈The function call Spi_DeInit shall be rejected if the status of SPI Handler/Driver is SPI_BUSY.⌋()

requirement SWS_Spi_00254 [SWS_Spi_00254] 📄 PDF

If the Sequence and Job related service is not done and, d e- pending on services, either the return value shall be E_NOT_OK or a failed result (SPI_JOB_FAILED or SPI_SEQ_FAILED).

requirement SWS_Spi_00256 [SWS_Spi_00256] 📄 PDF

The SPI Handler/Driver shall not pr o cess the invoked function but, depending on the invo ked function, shall either return the value E_NOT_OK or a failed result (SPI_JOB_FAILED or SPI_SEQ_FAILED).

requirement SWS_Spi_00258 [SWS_Spi_00258] 📄 PDF

If the API parameter Length related service is not done and the return value shall be E_NOT_OK.

requirement SWS_Spi_00266 [SWS_Spi_00266] 📄 PDF

[SWS_Spi_00266] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence is already in state SPI_SEQ_PENDING the SPI Handler/Driver shall report the SPI_E_SEQ_PENDING error according to [SWS_BSW_00042] and

requirement SWS_Spi_00285 [SWS_Spi_00285] 📄 PDF

[SWS_Spi_00285] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the Sequence status to SPI_SEQ_PENDING can be obtained calling the API service Spi_GetSequenceResult.⌋()

requirement SWS_Spi_00286 [SWS_Spi_00286] 📄 PDF

[SWS_Spi_00286] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the Job status to SPI_JOB_PENDING can be obtained calling the API service Spi_GetJobResult.⌋()

requirement SWS_Spi_00288 [SWS_Spi_00288] 📄 PDF

If HWUnit related service is not done and the return value shall be SPI_UNINIT.

requirement SWS_Spi_00292 [SWS_Spi_00292] 📄 PDF

[SWS_Spi_00292] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_OK when the transmission of Jobs is success.⌋()

requirement SWS_Spi_00293 [SWS_Spi_00293] 📄 PDF

[SWS_Spi_00293] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_FAILED when the transmission of Jobs is failed.⌋()

requirement SWS_Spi_00300 [SWS_Spi_00300] 📄 PDF

[SWS_Spi_00300] ⌈The operation Std_ReturnType Spi_DeInit( ) is Non Re- entrant.⌋()

requirement SWS_Spi_00301 [SWS_Spi_00301] 📄 PDF

[SWS_Spi_00301] ⌈When the API Spi_DeInit has been accepted the return value of this function shall be E_OK.⌋()

requirement SWS_Spi_00302 [SWS_Spi_00302] 📄 PDF

[SWS_Spi_00302] ⌈When the API Spi_DeInit has not been accepted the return val- ue of this function shall be E_NOT_OK.⌋()

requirement SWS_Spi_00303 [SWS_Spi_00303] 📄 PDF

[SWS_Spi_00303] ⌈The function Spi_DeInit provides the service for SPI de- initialization.⌋()

requirement SWS_Spi_00304 [SWS_Spi_00304] 📄 PDF

[SWS_Spi_00304] ⌈The operation Spi_WriteIB is Re-entrant.⌋()

requirement SWS_Spi_00305 [SWS_Spi_00305] 📄 PDF

[SWS_Spi_00305] ⌈When the API Spi_WriteIB command has been accepted the function returns the value E_OK.⌋()

requirement SWS_Spi_00306 [SWS_Spi_00306] 📄 PDF

[SWS_Spi_00306] ⌈When the API Spi_WriteIB command has not been accepted the function returns the value E_NOT_OK.⌋()

requirement SWS_Spi_00307 [SWS_Spi_00307] 📄 PDF

[SWS_Spi_00307] ⌈The function Spi_WriteIB provides the service for writing one or more data to an IB SPI Handler/Driver Channel by the respective parameter.⌋()

requirement SWS_Spi_00308 [SWS_Spi_00308] 📄 PDF

[SWS_Spi_00308] ⌈The operation Std_ReturnType Spi_AsyncTransmit( Spi_SequenceType Sequence ) is Re-entrant.⌋()

requirement SWS_Spi_00309 [SWS_Spi_00309] 📄 PDF

[SWS_Spi_00309] ⌈When the API Spi_AsyncTransmit command has been accept- ed the function shall return the value E_OK.⌋()

requirement SWS_Spi_00310 [SWS_Spi_00310] 📄 PDF

[SWS_Spi_00310] ⌈When the API Spi_AsyncTransmit command has not been ac- cepted the function shall return the value E_NOT_OK.⌋()

requirement SWS_Spi_00311 [SWS_Spi_00311] 📄 PDF

[SWS_Spi_00311] ⌈The function Spi_AsyncTransmit provides service to transmit data on the SPI bus.⌋()

requirement SWS_Spi_00313 [SWS_Spi_00313] 📄 PDF

[SWS_Spi_00313] ⌈The function Spi_ReadIB return values E_OK: read command has been accepted.⌋()

requirement SWS_Spi_00314 [SWS_Spi_00314] 📄 PDF

[SWS_Spi_00314] ⌈The function Spi_ReadIB return values E_NOT_OK: read com- mand has not been accepted.⌋()

requirement SWS_Spi_00315 [SWS_Spi_00315] 📄 PDF

[SWS_Spi_00315] ⌈The function Spi_ReadIB provides the service for reading syn- chronously one or more data from an IB SPI Handler/Driver Channel specified by parameter.⌋()

requirement SWS_Spi_00316 [SWS_Spi_00316] 📄 PDF

[SWS_Spi_00316] ⌈The operation Spi_SetupEB is Re-entrant.⌋()

requirement SWS_Spi_00317 [SWS_Spi_00317] 📄 PDF

[SWS_Spi_00317] ⌈Return values of the function Spi_SetupEB are E_OK: Setup command has been accepted and E_NOT_OK: Setup command has not been ac- cepted.⌋()

requirement SWS_Spi_00318 [SWS_Spi_00318] 📄 PDF

[SWS_Spi_00318] ⌈The function Spi_SetupEB provides the service to setup the buffers and the length of data for the EB SPI Handler/Driver Channel specified.⌋()

requirement SWS_Spi_00327 [SWS_Spi_00327] 📄 PDF

[SWS_Spi_00327] ⌈The operation Spi_SyncTransmit is Re-entrant.⌋()

requirement SWS_Spi_00328 [SWS_Spi_00328] 📄 PDF

[SWS_Spi_00328] ⌈The function Spi_SyncTransmit returns E_OK if the transmis- sion request has been successful.⌋()

requirement SWS_Spi_00329 [SWS_Spi_00329] 📄 PDF

[SWS_Spi_00329] ⌈The function Spi_SyncTransmit returns E_NOT_OK if the transmission request failed.⌋()

requirement SWS_Spi_00330 [SWS_Spi_00330] 📄 PDF

[SWS_Spi_00330] ⌈The function Spi_SyncTransmit provides the service to transmit data on the SPI bus.⌋()

requirement SWS_Spi_00335 [SWS_Spi_00335] 📄 PDF

[SWS_Spi_00335] ⌈The operation Spi_SetAsyncMode is Non Re-entrant.⌋()

requirement SWS_Spi_00336 [SWS_Spi_00336] 📄 PDF

[SWS_Spi_00336] ⌈Return value of the function Spi_SetAsyncMode is E_OK: Set- ting command has been done.⌋()

requirement SWS_Spi_00337 [SWS_Spi_00337] 📄 PDF

[SWS_Spi_00337] ⌈Return value of the function Spi_SetAsyncMode is E_NOT_OK: setting command has not been accepted.⌋()

requirement SWS_Spi_00338 [SWS_Spi_00338] 📄 PDF

[SWS_Spi_00338] ⌈The function Spi_SetAsyncMode service to set the asynchro- nous mechanism mode for SPI buses handled asynchronously.⌋()

requirement SWS_Spi_00339 [SWS_Spi_00339] 📄 PDF

Dem _ Set - Event Status Dem.h Called by SW - Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_ Set Event Status can safely ignore the return value. This API will be available only if ({Dem/ Dem Config Set/ Dem Event Parameter/ Dem Event Reporting Type} == STANDARD_ REPORTING) Det _ - Report Error Det.h Service to report development errors.

requirement SWS_Spi_00384 [SWS_Spi_00384] 📄 PDF

When a hardware error is detected, the SPI Handler /Driver shall stop the current s equence, report an error to the DEM as configured and set the state of the Job to SPI_JOB_FAILED and the state of the Sequence to SPI_SEQ_FAILED.

requirement SWS_Spi_00385 [SWS_Spi_00385] 📄 PDF

When any error bit inside the SPI transmit status register is set, the SPI transmit status register information shall b e reported to DEM as Dem_SetEventStatus (SPI_E_HARDWARE _ERROR, DEM_EVENT_STATUS_FAILED)

requirement SWS_Spi_00386 [SWS_Spi_00386] 📄 PDF

When no error bit inside the SPI transmit status register is set , t he SPI transmit status register information shall be reported to DEM as Dem_SetE ventStatus (SPI_E_HARDWARE_ERROR, DEM_EVENT_STATUS_PASSED)

requirement SWS_Spi_00389 [SWS_Spi_00389] 📄 PDF

Det _ Report - Runtime Error Det.h Service to report runtime errors. If a callout has been configured then this callout shall be called.

requirement SWS_Spi_00390 [SWS_Spi_00390] 📄 PDF

The SPI module shall reject configurations w ith partition ma p- pings which are not supported by the implementation.

requirement SWS_Spi_91001 [SWS_Spi_91001] 📄 PDF

Type of error Related error code Error value API service called with wrong channel SPI_ E_ PARAM_ CHANNEL 0x0A API service called with wrong job SPI_ E_ PARAM_ JOB 0x0B API service called with wrong sequence SPI_ E_ PARAM_ SEQ 0x0C API service called with wrong lenghth for EB SPI_ E_ PARAM_ LENGTH 0x0D API service called with wrong hardware unit SPI_ E_ PARAM_ UNIT 0x0E APIs called with an unexpected value for the pointer SPI_ E_ PARAM_ POINTER 0x10 API service used without module initialization SPI_ E_ UNINIT 0x1A API SPI_ Init service called while the SPI driver has been already initialized SPI_ E_ ALREADY_ INITIALIZED 0x4A

requirement SWS_Spi_91002 [SWS_Spi_91002] 📄 PDF

Type of error Related error code Erro r value API Spi_ Async Transmit service called in a wrong order SPI_ E_ SEQ_ PENDING 0x2A API Spi_ Sync Transmit service called at wrong time SPI_ E_ SEQ_ IN_ PROCESS 0x3A

requirement SWS_Spi_CONSTR_00001 [SWS_Spi_CONSTR_00001] 📄 PDF

The ECUC partitions referenced by Spi - K ernelEcucPartitionRef shall be a subset of the ECUC partitions referenced by SpiEcucPartitionRef.

requirement SWS_Spi_CONSTR_00002 [SWS_Spi_CONSTR_00002] 📄 PDF

The ECUC partitions referenced by Sp i- DeviceEcucPartitionRef shall be a subset of the ECUC partitions referenced by SpiEcucPartitionRef.

requirement SWS_Spi_CONSTR_00003 [SWS_Spi_CONSTR_00003] 📄 PDF

If SpiEcucPartitionRef references one or more ECUC partitions, SpiKernelEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

requirement SWS_Spi_CONSTR_00004 [SWS_Spi_CONSTR_00004] 📄 PDF

If SpiEcucPartitionRef references one or more ECUC partitions, SpiDeviceEcucPartitionRef shall have a multiplicity of greater than zero and reference one or several of these ECUC partitions as well.

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

Record
AUTOSAR/AP/record/CP_MOD_Spi
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Spi@rel:R20-11#749ed9f1
Content hash
749ed9f1
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_SPIHandlerDriver.pdf#nameddest=SWS_Spi_00175

Mapa de temas

Vista de detalle

Selecciona una entrada en el índice.

Inicialización y estado

Spi_DeInit función

Service for SPI de - initialization.

Std_ReturnType Spi_DeInit(void);
Spi_GetStatus función

Service returns the SPI Handler/ Driver software module status.

Spi_StatusType Spi_GetStatus(void);

This service returns the version information of this module.

void Spi_GetVersionInfo(Std_VersionInfoType* versioninfo);
Spi_Init función

Service for SPI initialization.

void Spi_Init(const Spi_ConfigType* ConfigPtr);

Servicios

JobEnd función

Callback routine provided by the user for each Job to notify the caller that a job has been finished.

void(* Spi_JobEndNotification); ⚠️

This service returns the last transmission result of the specified Job.

Spi_JobResultType Spi_GetJobResult(Spi_JobType Job);

This service returns the last transmission result of the specified Sequence.

Spi_SeqResultType Spi_GetSequenceResult(Spi_SequenceType Sequence);
SeqEnd función

Callback routine provided by the user for each Sequence to notify the caller that a sequence has been finished.

void(* Spi_SeqEndNotification); ⚠️

Service to transmit data on the SPI bus.

Std_ReturnType Spi_AsyncTransmit(Spi_SequenceType Sequence);
Spi_Cancel función

Service cancels the specified on - going sequence transmission.

void Spi_Cancel(Spi_SequenceType Sequence);

This service returns the status of the specified SPI Hardware microcontroller peripheral.

Spi_StatusType Spi_GetHWUnitStatus(Spi_HWUnitType HWUnit);
Spi_ReadIB función

Service for reading synchronously one or more data from an IB SPI Handler/ Driver Channel specified by parameter.

Std_ReturnType Spi_ReadIB(Spi_ChannelType Channel, Spi_DataBufferType* DataBufferPointer);

Service to set the asynchronous mechanism mode for SPI busses handled asynchronously.

Std_ReturnType Spi_SetAsyncMode(Spi_AsyncModeType Mode);
Spi_SetupEB función

Service to setup the buffers and the length of data for the EB SPI Handle r/ Driver Channel specified.

Std_ReturnType Spi_SetupEB(Spi_ChannelType Channel, const Spi_DataBufferType* SrcDataBufferPtr, Spi_DataBufferType* DesDataBufferPtr, Spi_NumberOfDataType Length);

Service to transmit data on the SPI bus

Std_ReturnType Spi_SyncTransmit(Spi_SequenceType Sequence);
Spi_WriteIB función

Service for writing one or more data to an IB SPI Handler/ Driver Channel specified by parameter.

Std_ReturnType Spi_WriteIB(Spi_ChannelType Channel, const Spi_DataBufferType* DataBufferPtr);

Cíclico

-

void Spi_MainFunction_Handling(void);

Tipos

Specifies the asynchronous mechanism mode for SPI busses handled asynchronously.

Specifies the identification (ID) for a Channel.

This type of the external data structure shall contain the initialization data for the SPI Handler/ Driver.

Type of application data buffer elements.

Specifies the identification (ID) for a SPI Hardware microcontroller peripheral (unit).

This type defines a range of specific Jobs status for SPI Handler/ Driver.

Specifies the identification (ID) for a Job.

Type for defining the number of data elements of the type Spi_ Data Buffer Type to send and / or receive by Channel

This type defines a range of specific Sequences status for SPI Handler/ Driver.

Specifies the identification (ID) for a sequence of jobs.

This type defines a range of specific status for SPI Handler/ Driver.

Requisitos

SWS_Spi_00004 requirement

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_CHANNEL when API ser vice called with wrong param e- ter.

SWS_Spi_00016 requirement

[SWS_Spi_00016] ⌈The function Spi_ReadIB shall read synchronously one or more data from an IB SPI Handler/Driver Channel specified by the respective parameter.⌋(SRS_Spi_12099, SRS_Spi_12152)

SWS_Spi_00018 requirement

[SWS_Spi_00018] ⌈The function Spi_WriteIB shall write one or more data to an IB SPI Handler/Driver Channel specified by the respective parame- ter.⌋(SRS_Spi_12101, SRS_Spi_12153)

SWS_Spi_00020 requirement

[SWS_Spi_00020] ⌈The function Spi_AsyncTransmit shall take over the given parameter, initiate a transmission, set the SPI Handler/Driver status to SPI_BUSY, set the sequence result to SPI_SEQ_PENDING and return. ⌋(SRS_Spi_12099, SRS_Spi_12101, SRS_Spi_12103)

SWS_Spi_00021 requirement

[SWS_Spi_00021] ⌈The function Spi_DeInit shall de-initialize SPI Han- dler/Driver.⌋(SRS_BSW_00336, SRS_SPAL_12163, SRS_SPAL_12064)

SWS_Spi_00022 requirement

[SWS_Spi_00022] ⌈After the module de-initialization using the function Spi_DeInit, the SPI Handler/Driver shall set its state to SPI_UNINIT.⌋(SRS_BSW_00336, SRS_SPAL_12163) The SPI Handler/Driver shall have been initialized before the function Spi_DeInit is called, otherwise see [SWS_Spi_00046].

SWS_Spi_00023 requirement

[SWS_Spi_00023] ⌈If the given parameter “DataBufferPtr” is null, the function Spi_WriteIB shall assume that the data to be transmitted is not relevant and the default transmit value of the given channel shall be used instead.⌋()

SWS_Spi_00024 requirement

[SWS_Spi_00024] ⌈The function Spi_WriteIB shall take over the given parame- ters, and save the pointed data to the internal buffer defined with the function Spi_Init.⌋()

SWS_Spi_00027 requirement

[SWS_Spi_00027] ⌈The SPI Handler/Driver’s environment shall call the function Spi_ReadIB after a Transmit method call to have relevant data within IB Channel.⌋()

SWS_Spi_00030 requirement

[SWS_Spi_00030] ⌈When the function Spi_SetupEB is called with the parameter DesDataBufferPtr being a Null pointer, the SPI Handler/Driver shall ignore the received data after a Transmit method is requested.(See also [SWS_Spi_00036])⌋()

SWS_Spi_00031 requirement

The API parameter Channel shall have a value within the d e- fined channels in the initialization data structure, and the cor rect type of channel (IB or EB) has to be used with services. Related error value: SPI_E_PARAM_CHANNEL . Otherwise, the service is not done and the return value shall be E_NOT_OK .

SWS_Spi_00032 requirement

The API parameters Sequence and Job shall have values within the specified range of values. Related errors values: SPI_E_PARAM_SEQ or SPI_E_PARAM_JOB.

SWS_Spi_00035 requirement

[SWS_Spi_00035] ⌈When the function Spi_AsyncTransmit is used with EB and the source data pointer has been provided as NULL using the Spi_SetupEB method, the default transmit data configured for each channel shall be transmitted. (See also

SWS_Spi_00036 requirement

[SWS_Spi_00036] ⌈When the function Spi_AsyncTransmit is used with EB and the destination data pointer has been provided as NULL using the Spi_SetupEB method, the SPI Handler/Driver shall ignore receiving data (See also

SWS_Spi_00037 requirement

[SWS_Spi_00037] ⌈The SPI Handler/Driver’s environment shall call the Spi_SetupEB function once for each Channel with EB declared before the SPI Handler/Driver’s environment calls a Transmit method on them.⌋()

SWS_Spi_00046 requirement

If development error detection for the SPI mod ule is enabled and the SPI Handler/Driver’s env i ronment calls any API function before initialization, an error should be reported to the DET with the error value SPI_E_UNINIT according to the configur a tion.

SWS_Spi_00055 requirement

[SWS_Spi_00055] ⌈When the function Spi_AsyncTransmit is used for a Se- quence with linked Jobs, the function shall transmit from the first Job up to the last Job in the sequence.⌋(SRS_Spi_12181)

SWS_Spi_00057 requirement

[SWS_Spi_00057] ⌈ At the end of a sequence transmission initiated by the function Spi_AsyncTransmit and if configured, the SPI Handler/Driver shall invoke the se- quence notification call-back function after the last Job end notification if this one is also configured.⌋(SRS_SPAL_00157, SRS_Spi_12108)

SWS_Spi_00058 requirement

[SWS_Spi_00058] ⌈The function Spi_SetupEB shall set up the buffers and the length of data for the specific EB SPI Handler/Driver Channel.⌋(SRS_Spi_12103)

SWS_Spi_00060 requirement

The API parameter Length of data shall have a value within the specified buffer maximum value. Related error va lue: SPI_E_PARAM_LENGTH.

SWS_Spi_00067 requirement

[SWS_Spi_00067] ⌈The function Spi_SetupEB shall update the buffer pointers and length attributes of the specified Channel with the provided val- ues.⌋(SRS_Spi_12103) As these attributes are persistent, they will be used for all succeeding calls to a Transmit method (for the specified Channel).

SWS_Spi_00081 requirement

[SWS_Spi_00081] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence is already in state SPI_SEQ_PENDING, the SPI Handler/Driver shall not take in account this new request and this function shall return with value E_NOT_OK, in this case.⌋()

SWS_Spi_00086 requirement

[SWS_Spi_00086] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence shares Jobs with another sequence that is in the state SPI_SEQ_PENDING, the SPI Handler/Driver shall not take into account this new re- quest and this function shall return the value E_NOT_OK. In this case and according to [SWS_BSW_00042] and [SWS_BSW_00045], the SPI Handler/Driver shall report the SPI_E_SEQ_PENDING error.⌋()

SWS_Spi_00114 requirement

[SWS_Spi_00114]). In this case, the SPI Han- dler/Driver shall report the SPI_E_SEQ_IN_PROCESS error according to

SWS_Spi_00133 requirement

[SWS_Spi_00133] ⌈The function Spi_AsyncTransmit is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 1 and LEVEL 2.⌋()

SWS_Spi_00134 requirement

[SWS_Spi_00134] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the SPI Handler/Driver status to SPI_BUSY can be ob- tained calling the API service SPI_GetStatus.⌋(SRS_Spi_12152, SRS_Spi_12153, SRS_Spi_12154)

SWS_Spi_00135 requirement

[SWS_Spi_00135] ⌈When the function Spi_SyncTransmit is called while a se- quence is on transmission and SPI_SUPPORT_CONCURRENT_SYNC_TRANSMIT is disabled or another sequence is on transmission on same bus, the SPI Han- dler/Driver shall not take into account this new transmission request and the function shall return the value E_NOT_OK (see [SWS_Spi_00114]). In this case, the SPI Han- dler/Driver shall report the SPI_E_SEQ_IN_PROCESS error according to

SWS_Spi_00136 requirement

[SWS_Spi_00136] ⌈The function Spi_SyncTransmit is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 0 and LEVEL 2.⌋() Parameters of the function Spi_SyncTransmit shall be checked as it is explained in section API parameter checking

SWS_Spi_00137 requirement

[SWS_Spi_00137] ⌈The function Spi_WriteIB shall be pre-compile time configu- rable by the parameter SpiChannelBuffersAllowed. This function is only rele- vant for Channels with IB.⌋() Parameters of the function Spi_WriteIB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_WriteIB is called, otherwise see [SWS_Spi_00046].

SWS_Spi_00138 requirement

[SWS_Spi_00138] ⌈The function Spi_ReadIB is pre-compile time configurable by the parameter SpiChannelBuffersAllowed. This function is only relevant for Channels with IB.⌋() Parameters of the function Spi_ReadIB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_ReadIB is called otherwise see [SWS_Spi_00046].

SWS_Spi_00139 requirement

[SWS_Spi_00139] ⌈The function Spi_SetupEB is pre-compile time configurable by the parameter SpiChannelBuffersAllowed. This function is only relevant for Channels with EB.⌋() Parameters of the function Spi_SetupEB shall be checked as it is explained in sec- tion API parameter checking. The SPI Handler/Driver shall have been initialized before the function Spi_SetupEB is called otherwise see [SWS_Spi_00046].

SWS_Spi_00143 requirement

The API parameter HWUnit shall have a value within the spe c i- fied range of valu es. Related error value: SPI_E_PARAM_UNIT.

SWS_Spi_00154 requirement

[SWS_Spi_00154] ⌈The function Spi_SetAsyncMode is pre-compile time se- lectable by the configuration parameter SpiLevelDelivered. This function is only relevant for LEVEL 1 and 2.⌋()

SWS_Spi_00156 requirement

Both the polling mechanism and inte r rupt mechanism modes for SPI busses shall be selectable during execution time (see [ SWS_Spi_00188 ]).

SWS_Spi_00157 requirement

[SWS_Spi_00157] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_PENDING when the transmission of Jobs is started.⌋()

SWS_Spi_00171 requirement

[SWS_Spi_00171] ⌈If the function Spi_SetAsyncMode is called while the SPI Han- dler/Driver status is SPI_BUSY and an asynchronous transmission is in progress, the SPI Handler/Driver shall not change the AsyncModeType and keep the mode type as it is. The function shall return the value E_NOT_OK.⌋()

SWS_Spi_00172 requirement

[SWS_Spi_00172] ⌈If Spi_SetAsyncMode is called while a synchronous transmis- sion is in progress, the SPI Handler/Driver shall set the AsyncModeType according to parameter 'Mode', even if the SPI Handler/Driver status is SPI_BUSY. The function shall return the value E_OK.⌋()

SWS_Spi_00173 requirement

[SWS_Spi_00173] ⌈The SPI Handler/Driver’s environment shall call the function Spi_AsyncTransmit after a function call of Spi_SetupEB for EB Channels or a function call of Spi_WriteIB for IB Channels but before the function call Spi_ReadIB.⌋() Parameters of the function Spi_AsyncTransmit shall be checked as explained in section API parameter checking The SPI Handler/Driver shall have been initialized before the function Spi_AsyncTransmit is called otherwise see [SWS_Spi_00046].

SWS_Spi_00194 requirement

[SWS_Spi_00194] ⌈When the function Spi_AsyncTransmit is called, shall take over the given parameter and set the Job status to SPI_JOB_QUEUED, which can be ob- tained by calling the API service Spi_GetJobResult.⌋()

SWS_Spi_00195 requirement

SPI Handler/driver shall be able to detect the error SPI_E_HARDWARE_ERROR when an hardware error occur during asy n chronous or synchronous transmit. Please see also SWS_Spi_00267 and SWS_Spi_ 00384 .

SWS_Spi_00233 requirement

If development error detection for the SPI module is enabled, the calling of the ro u- tine SPI_Init() while the SPI driver is a l ready initialized will cause a development error SPI_E_ALREADY_INITIALIZED and the desired functiona l ity shall be left without any action.

SWS_Spi_00235 requirement

If not applicable, the SPI Handler/Driver module’s environment shall pass a NULL pointer to the fun c tion Spi_Init.

SWS_Spi_00237 requirement

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_JOB when API service called with wrong parameter.

SWS_Spi_00238 requirement

SPI Handler/driver sha ll be able to detect the error SPI_E_PARAM_SEQ when API service called with wrong parameter.

SWS_Spi_00240 requirement

SPI Handler/driver shall be able to detect th e error SPI_E_PARAM_LENGTH when API service called with wrong parameter.

SWS_Spi_00241 requirement

SPI Handler/driver shall be able to detect the error SPI_E_PARAM_UNIT when API service called with wrong parameter.

SWS_Spi_00242 requirement

SPI Handler/driver shall be able to det ect the error SPI_E_UNINIT when API service used without module initialization.

SWS_Spi_00243 requirement

SPI Handler/driver shall be able to detect the error SPI_E_ SEQ_PENDING when services called in a wrong sequence.

SWS_Spi_00245 requirement

SPI Handler/driver shall be able to detect the error SPI_E_SEQ_IN_PROCESS when synchronous tran s mission service called at wrong time.

SWS_Spi_00246 requirement

SPI Handler/dri ver shall be able to detect the error SPI_E_ALREADY_INITIALIZED when API SPI_Init service called while the SPI dri v- er has already been initialized time.

SWS_Spi_00252 requirement

[SWS_Spi_00252] ⌈In case of the SPI Handler/Driver state is not SPI_BUSY, the deInitialization function shall put all already initialized microcontroller SPI peripherals into the same state such as Power On Reset.⌋()

SWS_Spi_00253 requirement

[SWS_Spi_00253] ⌈The function call Spi_DeInit shall be rejected if the status of SPI Handler/Driver is SPI_BUSY.⌋()

SWS_Spi_00254 requirement

If the Sequence and Job related service is not done and, d e- pending on services, either the return value shall be E_NOT_OK or a failed result (SPI_JOB_FAILED or SPI_SEQ_FAILED).

SWS_Spi_00256 requirement

The SPI Handler/Driver shall not pr o cess the invoked function but, depending on the invo ked function, shall either return the value E_NOT_OK or a failed result (SPI_JOB_FAILED or SPI_SEQ_FAILED).

SWS_Spi_00258 requirement

If the API parameter Length related service is not done and the return value shall be E_NOT_OK.

SWS_Spi_00266 requirement

[SWS_Spi_00266] ⌈When the function Spi_AsyncTransmit is called and the re- quested Sequence is already in state SPI_SEQ_PENDING the SPI Handler/Driver shall report the SPI_E_SEQ_PENDING error according to [SWS_BSW_00042] and

SWS_Spi_00285 requirement

[SWS_Spi_00285] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the Sequence status to SPI_SEQ_PENDING can be obtained calling the API service Spi_GetSequenceResult.⌋()

SWS_Spi_00286 requirement

[SWS_Spi_00286] ⌈When the function Spi_SyncTransmit is called, shall take over the given parameter and set the Job status to SPI_JOB_PENDING can be obtained calling the API service Spi_GetJobResult.⌋()

SWS_Spi_00288 requirement

If HWUnit related service is not done and the return value shall be SPI_UNINIT.

SWS_Spi_00292 requirement

[SWS_Spi_00292] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_OK when the transmission of Jobs is success.⌋()

SWS_Spi_00293 requirement

[SWS_Spi_00293] ⌈When the function Spi_AsyncTransmit is called, the SPI Han- dler/Driver shall handle the Job results. Result shall be SPI_JOB_FAILED when the transmission of Jobs is failed.⌋()

SWS_Spi_00300 requirement

[SWS_Spi_00300] ⌈The operation Std_ReturnType Spi_DeInit( ) is Non Re- entrant.⌋()

SWS_Spi_00301 requirement

[SWS_Spi_00301] ⌈When the API Spi_DeInit has been accepted the return value of this function shall be E_OK.⌋()

SWS_Spi_00302 requirement

[SWS_Spi_00302] ⌈When the API Spi_DeInit has not been accepted the return val- ue of this function shall be E_NOT_OK.⌋()

SWS_Spi_00303 requirement

[SWS_Spi_00303] ⌈The function Spi_DeInit provides the service for SPI de- initialization.⌋()

SWS_Spi_00304 requirement

[SWS_Spi_00304] ⌈The operation Spi_WriteIB is Re-entrant.⌋()

SWS_Spi_00305 requirement

[SWS_Spi_00305] ⌈When the API Spi_WriteIB command has been accepted the function returns the value E_OK.⌋()

SWS_Spi_00306 requirement

[SWS_Spi_00306] ⌈When the API Spi_WriteIB command has not been accepted the function returns the value E_NOT_OK.⌋()

SWS_Spi_00307 requirement

[SWS_Spi_00307] ⌈The function Spi_WriteIB provides the service for writing one or more data to an IB SPI Handler/Driver Channel by the respective parameter.⌋()

SWS_Spi_00308 requirement

[SWS_Spi_00308] ⌈The operation Std_ReturnType Spi_AsyncTransmit( Spi_SequenceType Sequence ) is Re-entrant.⌋()

SWS_Spi_00309 requirement

[SWS_Spi_00309] ⌈When the API Spi_AsyncTransmit command has been accept- ed the function shall return the value E_OK.⌋()

SWS_Spi_00310 requirement

[SWS_Spi_00310] ⌈When the API Spi_AsyncTransmit command has not been ac- cepted the function shall return the value E_NOT_OK.⌋()

SWS_Spi_00311 requirement

[SWS_Spi_00311] ⌈The function Spi_AsyncTransmit provides service to transmit data on the SPI bus.⌋()

SWS_Spi_00312 requirement

[SWS_Spi_00312] ⌈The operation Spi_ReadIB is Re-entrant.⌋()

SWS_Spi_00313 requirement

[SWS_Spi_00313] ⌈The function Spi_ReadIB return values E_OK: read command has been accepted.⌋()

SWS_Spi_00314 requirement

[SWS_Spi_00314] ⌈The function Spi_ReadIB return values E_NOT_OK: read com- mand has not been accepted.⌋()

SWS_Spi_00315 requirement

[SWS_Spi_00315] ⌈The function Spi_ReadIB provides the service for reading syn- chronously one or more data from an IB SPI Handler/Driver Channel specified by parameter.⌋()

SWS_Spi_00316 requirement

[SWS_Spi_00316] ⌈The operation Spi_SetupEB is Re-entrant.⌋()

SWS_Spi_00317 requirement

[SWS_Spi_00317] ⌈Return values of the function Spi_SetupEB are E_OK: Setup command has been accepted and E_NOT_OK: Setup command has not been ac- cepted.⌋()

SWS_Spi_00318 requirement

[SWS_Spi_00318] ⌈The function Spi_SetupEB provides the service to setup the buffers and the length of data for the EB SPI Handler/Driver Channel specified.⌋()

SWS_Spi_00327 requirement

[SWS_Spi_00327] ⌈The operation Spi_SyncTransmit is Re-entrant.⌋()

SWS_Spi_00328 requirement

[SWS_Spi_00328] ⌈The function Spi_SyncTransmit returns E_OK if the transmis- sion request has been successful.⌋()

SWS_Spi_00329 requirement

[SWS_Spi_00329] ⌈The function Spi_SyncTransmit returns E_NOT_OK if the transmission request failed.⌋()

SWS_Spi_00330 requirement

[SWS_Spi_00330] ⌈The function Spi_SyncTransmit provides the service to transmit data on the SPI bus.⌋()

SWS_Spi_00335 requirement

[SWS_Spi_00335] ⌈The operation Spi_SetAsyncMode is Non Re-entrant.⌋()

SWS_Spi_00336 requirement

[SWS_Spi_00336] ⌈Return value of the function Spi_SetAsyncMode is E_OK: Set- ting command has been done.⌋()

SWS_Spi_00337 requirement

[SWS_Spi_00337] ⌈Return value of the function Spi_SetAsyncMode is E_NOT_OK: setting command has not been accepted.⌋()

SWS_Spi_00338 requirement

[SWS_Spi_00338] ⌈The function Spi_SetAsyncMode service to set the asynchro- nous mechanism mode for SPI buses handled asynchronously.⌋()

SWS_Spi_00339 requirement

Dem _ Set - Event Status Dem.h Called by SW - Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_ Set Event Status can safely ignore the return value. This API will be available only if ({Dem/ Dem Config Set/ Dem Event Parameter/ Dem Event Reporting Type} == STANDARD_ REPORTING) Det _ - Report Error Det.h Service to report development errors.

SWS_Spi_00384 requirement

When a hardware error is detected, the SPI Handler /Driver shall stop the current s equence, report an error to the DEM as configured and set the state of the Job to SPI_JOB_FAILED and the state of the Sequence to SPI_SEQ_FAILED.

SWS_Spi_00385 requirement

When any error bit inside the SPI transmit status register is set, the SPI transmit status register information shall b e reported to DEM as Dem_SetEventStatus (SPI_E_HARDWARE _ERROR, DEM_EVENT_STATUS_FAILED)

SWS_Spi_00386 requirement

When no error bit inside the SPI transmit status register is set , t he SPI transmit status register information shall be reported to DEM as Dem_SetE ventStatus (SPI_E_HARDWARE_ERROR, DEM_EVENT_STATUS_PASSED)

SWS_Spi_00389 requirement

Det _ Report - Runtime Error Det.h Service to report runtime errors. If a callout has been configured then this callout shall be called.

SWS_Spi_00390 requirement

The SPI module shall reject configurations w ith partition ma p- pings which are not supported by the implementation.

SWS_Spi_91001 requirement

Type of error Related error code Error value API service called with wrong channel SPI_ E_ PARAM_ CHANNEL 0x0A API service called with wrong job SPI_ E_ PARAM_ JOB 0x0B API service called with wrong sequence SPI_ E_ PARAM_ SEQ 0x0C API service called with wrong lenghth for EB SPI_ E_ PARAM_ LENGTH 0x0D API service called with wrong hardware unit SPI_ E_ PARAM_ UNIT 0x0E APIs called with an unexpected value for the pointer SPI_ E_ PARAM_ POINTER 0x10 API service used without module initialization SPI_ E_ UNINIT 0x1A API SPI_ Init service called while the SPI driver has been already initialized SPI_ E_ ALREADY_ INITIALIZED 0x4A

SWS_Spi_91002 requirement

Type of error Related error code Erro r value API Spi_ Async Transmit service called in a wrong order SPI_ E_ SEQ_ PENDING 0x2A API Spi_ Sync Transmit service called at wrong time SPI_ E_ SEQ_ IN_ PROCESS 0x3A

The ECUC partitions referenced by Spi - K ernelEcucPartitionRef shall be a subset of the ECUC partitions referenced by SpiEcucPartitionRef.

The ECUC partitions referenced by Sp i- DeviceEcucPartitionRef shall be a subset of the ECUC partitions referenced by SpiEcucPartitionRef.

If SpiEcucPartitionRef references one or more ECUC partitions, SpiKernelEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

If SpiEcucPartitionRef references one or more ECUC partitions, SpiDeviceEcucPartitionRef shall have a multiplicity of greater than zero and reference one or several of these ECUC partitions as well.