DEENESPTFRRUARHIKOZHNL

ICU Driver (Icu)

ModulIcu (ICU Driver)
BSW-Modul-ID122
Standard-Header#include "Icu.h"
SWS-SpezifikationAUTOSAR_CP_SWS_ICUDriver.pdf, AUTOSAR_SWS_ICUDriver.pdf, AUTOSAR_SWS_ICU_Driver.pdf
Umfang75 Records · 13 Snippets
ClusterMikrocontroller-Abstraktion (MCAL & I/O)

ICU Driver (Icu)

AUTOSAR Classic I/O Drivers-Modul ICU Driver (Icu, Spezifikation: AUTOSAR_CP_SWS_ICUDriver.pdf, AUTOSAR_SWS_ICUDriver.pdf, AUTOSAR_SWS_ICU_Driver.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

fonction Icu_Init [SWS_Icu_00191] 📄 PDF

void Icu_Init(const Icu_ConfigType* ConfigPtr);

This function initializes the driver.

fonction Icu_SetMode [SWS_Icu_00194] 📄 PDF

void Icu_SetMode(Icu_ModeType Mode);

This function sets the ICU mode.

fonction Icu_DisableWakeup [SWS_Icu_00195] 📄 PDF

void Icu_DisableWakeup(Icu_ChannelType Channel);

This function disables the wakeup capability of a single ICU channel.

fonction Icu_EnableWakeup [SWS_Icu_00196] 📄 PDF

void Icu_EnableWakeup(Icu_ChannelType Channel);

This function (re - )enables the wakeup capability of the given ICU channel.

fonction Icu_SetActivationCondition [SWS_Icu_00197] 📄 PDF

void Icu_SetActivationCondition(Icu_ChannelType Channel, Icu_ActivationType Activation);

This function sets the activation - edge for the given channel.

fonction Icu_DisableNotification [SWS_Icu_00198] 📄 PDF

void Icu_DisableNotification(Icu_ChannelType Channel);

This function disables the notification of a channel.

fonction Icu_EnableNotification [SWS_Icu_00199] 📄 PDF

void Icu_EnableNotification(Icu_ChannelType Channel);

This function enables the notification on the given channel.

fonction Icu_GetInputState [SWS_Icu_00200] 📄 PDF

Icu_InputStateType Icu_GetInputState(Icu_ChannelType Channel);

This function returns the status of the ICU input.

fonction Icu_StartTimestamp [SWS_Icu_00201] 📄 PDF

void Icu_StartTimestamp(Icu_ChannelType Channel, Icu_ValueType* BufferPtr, uint16 BufferSize, uint16 NotifyInterval);

This function starts the capturing of timer values on the edges.

fonction Icu_StopTimestamp [SWS_Icu_00202] 📄 PDF

void Icu_StopTimestamp(Icu_ChannelType Channel);

This function stops the timestamp measurement of the given channel.

fonction Icu_GetTimestampIndex [SWS_Icu_00203] 📄 PDF

Icu_IndexType Icu_GetTimestampIndex(Icu_ChannelType Channel);

This function reads the timestamp index of the given channel.

fonction Icu_ResetEdgeCount [SWS_Icu_00204] 📄 PDF

void Icu_ResetEdgeCount(Icu_ChannelType Channel);

This function resets the value of the counted edges to zero.

fonction Icu_EnableEdgeCount [SWS_Icu_00205] 📄 PDF

void Icu_EnableEdgeCount(Icu_ChannelType Channel);

This function enables the counting of edges of the given channel.

fonction Icu_DisableEdgeCount [SWS_Icu_00206] 📄 PDF

void Icu_DisableEdgeCount(Icu_ChannelType Channel);

This function disables the counting of edges of the given channel.

fonction Icu_GetEdgeNumbers [SWS_Icu_00207] 📄 PDF

Icu_EdgeNumberType Icu_GetEdgeNumbers(Icu_ChannelType Channel);

This function reads the number of counted edges.

fonction Icu_StartSignalMeasurement [SWS_Icu_00208] 📄 PDF

void Icu_StartSignalMeasurement(Icu_ChannelType Channel);

This function starts the measurement of signals.

fonction Icu_StopSignalMeasurement [SWS_Icu_00209] 📄 PDF

void Icu_StopSignalMeasurement(Icu_ChannelType Channel);

This function stops the measurement of signals of the given channel.

fonction Icu_GetTimeElapsed [SWS_Icu_00210] 📄 PDF

Icu_ValueType Icu_GetTimeElapsed(Icu_ChannelType Channel);

Description This function reads the elapsed Signal Low Time for the given channel.

fonction Icu_GetDutyCycleValues [SWS_Icu_00211] 📄 PDF

void Icu_GetDutyCycleValues(Icu_ChannelType Channel, Icu_DutyCycleType* DutyCycleValues);

This function reads the coherent active time and period time for the given ICU Channel.

fonction Icu_SignalNotification_<Channel> [SWS_Icu_00214] 📄 PDF

void Icu_SignalNotification_<Channel>(void);

According to the last call of Icu_ Enable Notification, this notification function to be called if the requested signal edge (rising / falling / both edges) occurs (once per edge).

fonction Icu_TimestampNotification_<Channel> [SWS_Icu_00215] 📄 PDF

void Icu_TimestampNotification_<Channel>(void);

This notification to be called if the number of requested timestamps (Notification interval > 0) are acquired and if the notification has been enabled by the call of Icu_ Enable Notification().

fonction Icu_CheckWakeup [SWS_Icu_00358] 📄 PDF

void Icu_CheckWakeup(EcuM_WakeupSourceType WakeupSource);

Checks if a wakeup capable ICU channel is the source for a wakeup event and calls the ECU state manager service Ecu M_ Set Wakeup Event in case of a valid ICU channel wakeup event.

fonction Icu_EnableEdgeDetection [SWS_Icu_00364] 📄 PDF

void Icu_EnableEdgeDetection(Icu_ChannelType Channel);

This function enables / re - enables the detection of edges of the given channel.

fonction Icu_DisableEdgeDetection [SWS_Icu_00377] 📄 PDF

void Icu_DisableEdgeDetection(Icu_ChannelType Channel);

This function disables the detection of edges of the given channel.

fonction Icu_DisableNotificationAsync [SWS_Icu_91002] 📄 PDF

void Icu_DisableNotificationAsync(Icu_ChannelType Channel);

This function disables the notification of a channel.

fonction Icu_EnableNotificationAsync [SWS_Icu_91003] 📄 PDF

void Icu_EnableNotificationAsync(Icu_ChannelType Channel);

This function enables the notification on the given channel.

type Icu_ModeType [SWS_Icu_00277] 📄 PDF

Allow enabling / disabling of all interrupts which are not required for the ECU wakeup.

type Icu_ValueType [SWS_Icu_00290] 📄 PDF

Width of the buffer for timestamp ticks and measured elapsed timeticks.

type Icu_DutyCycleType [SWS_Icu_00291] 📄 PDF

Type which shall contain the values, needed for calculating duty cycles.

type Icu_IndexType [SWS_Icu_00292] 📄 PDF

Type, to abstract the return value of the service Icu_ Get Timestamp Index().Since circular buffer handling is supported and Icu_ Get Timestamp Index can return '0' as a legally true value ( not as an error according to ICU107 and ICU135), Icu_ Index Type may be implemented to have values 1..xyz.

type Icu_EdgeNumberType [SWS_Icu_00293] 📄 PDF

Type, to abstract the return value of the service Icu_ Get Edge Numbers().

requirement SWS_Icu_00018 [SWS_Icu_00018] 📄 PDF

[SWS_Icu_00018] Upstream requirements: SRS_SPAL_12056 ⌈The Icu notification functions shall be configurable as function pointers within the ini- tialization data structure (Icu_ConfigType).⌋

requirement SWS_Icu_00021 [SWS_Icu_00021] 📄 PDF

[SWS_Icu_00021] Upstream requirements: SRS_SPAL_00157, SRS_Icu_12369 ⌈According to the last call of Icu_EnableNotification, the Icu module shall call the notification function Icu_SignalNotification_<Channel> if the requested signal edge (rising / falling / both edges) occurs (once per edge).⌋

requirement SWS_Icu_00042 [SWS_Icu_00042] 📄 PDF

[SWS_Icu_00042] Upstream requirements: SRS_Icu_12305 ⌈After a call of Icu_DisableNotification, the Icu module shall not call the notifi- cation function Icu_SignalNotification_<Channel>.⌋

requirement SWS_Icu_00044 [SWS_Icu_00044] 📄 PDF

[SWS_Icu_00044] Upstream requirements: SRS_Icu_12305 ⌈Only those edge notifications shall be provided, which are supported by hardware.⌋

requirement SWS_Icu_00055 [SWS_Icu_00055] 📄 PDF

[SWS_Icu_00055] Upstream requirements: SRS_SPAL_12069, SRS_BSW_00410 ⌈The static configuration parameter IcuReportWakeupSource is set to "ON"⌋ • [SWS_Icu_00056] Upstream requirements: SRS_SPAL_12069 ⌈The module is in mode ICU_MODE_SLEEP⌋ • [SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

requirement SWS_Icu_00056 [SWS_Icu_00056] 📄 PDF

[SWS_Icu_00056] Upstream requirements: SRS_SPAL_12069 ⌈The module is in mode ICU_MODE_SLEEP⌋ • [SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

requirement SWS_Icu_00057 [SWS_Icu_00057] 📄 PDF

[SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

requirement SWS_Icu_00119 [SWS_Icu_00119] 📄 PDF

[SWS_Icu_00119] Upstream requirements: SRS_SPAL_12129 ⌈The ISRs shall reset the interrupt flags (if needed by hardware) and call the corre- sponding notification functions.⌋

requirement SWS_Icu_00187 [SWS_Icu_00187] 📄 PDF

[SWS_Icu_00187] Upstream requirements: SRS_BSW_00359 ⌈The Icu module’s notification functions shall have no parameters and no return value.⌋

requirement SWS_Icu_00213 [SWS_Icu_00213] 📄 PDF

Det _ Report - Error Det.h Service to report development errors. Ecu M _ - Check - Wakeup Ecu M.h This function can be called to check the given wakeup sources. It will pass the argument to the integrator function Ecu M_ Check Wakeup Hook. It can also be called by the ISR of a wakeup s ource to set up the PLL and check other wakeup sources that may be connected to the same interrupt. Ecu M _ Set - Wakeup - Event Ecu M.h Sets the wakeup event.

requirement SWS_Icu_00216 [SWS_Icu_00216] 📄 PDF

[SWS_Icu_00216] ⌈The Icu module shall call the notification Icu_TimestampNotification_<Channel> if the number of requested timestamps (Notification interval > 0) are acquired and if the notification has been enabled by the call of Icu_EnableNotification.⌋

requirement SWS_Icu_00217 [SWS_Icu_00217] 📄 PDF

[SWS_Icu_00217] ⌈After a call of Icu_DisableNotification the Icu module shall NOT call the notification Icu_TimestampNotification_<Channel>.⌋

requirement SWS_Icu_00218 [SWS_Icu_00218] 📄 PDF

[SWS_Icu_00218] ⌈The Icu module’s notification Icu_TimestampNotification_<Channel> depends on pre-processor switch IcuTimestampApi.⌋

requirement SWS_Icu_00228 [SWS_Icu_00228] 📄 PDF

[SWS_Icu_00228] ⌈EcuM_CheckWakeup shall be called within the Interrupt Service Routine servicing the ICU channel wakeup event on wakeup-capable channel.⌋

requirement SWS_Icu_00229 [SWS_Icu_00229] 📄 PDF

[SWS_Icu_00229] ⌈The ISR’s, providing the wakeup events, shall be responsible for resetting the interrupt flags if required by hardware.⌋

requirement SWS_Icu_00276 [SWS_Icu_00276] 📄 PDF

Module Header File Imported Type Ecu M Ecu M.h Ecu M _ Wakeup Source Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

requirement SWS_Icu_00348 [SWS_Icu_00348] 📄 PDF

[SWS_Icu_00348] ⌈Re-entrancy of operation Icu_SignalNotification_<Channel> is not relevant for this module (In general it is in this case not re-entrant).⌋

requirement SWS_Icu_00349 [SWS_Icu_00349] 📄 PDF

[SWS_Icu_00349] ⌈Re-entrancy of the Icu_TimestampNotification_<Channel> is not relevant for this module (in general it is in this case not re-entrant).⌋

requirement SWS_Icu_00356 [SWS_Icu_00356] 📄 PDF

[SWS_Icu_00356] ⌈If development error detection for the Icu module is enabled: The function Icu_GetVersionInfo shall check the parameter versioninfo for not being NULL and shall raise the development error code ICU_E_PARAM_VINFO if the check fails.⌋

requirement SWS_Icu_00359 [SWS_Icu_00359] 📄 PDF

[SWS_Icu_00359] ⌈The function Icu_CheckWakeup shall check if a wakeup capable ICU channel is the source for a wakeup event and call EcuM_SetWakeupEvent to indicate a valid timer wakeup event to the ECU State Manager.⌋

requirement SWS_Icu_00360 [SWS_Icu_00360] 📄 PDF

[SWS_Icu_00360] ⌈The function Icu_CheckWakeup is only feasible, if IcuReport- WakeupSource is statically configured available.⌋

requirement SWS_Icu_00361 [SWS_Icu_00361] 📄 PDF

[SWS_Icu_00361] ⌈The ICU module’s environment shall only use the re-entrant capa- bility of the function Icu_CheckWakeup if the ICU module’s environment takes care that there is no simultaneous usage of the same channel.⌋

requirement SWS_Icu_00362 [SWS_Icu_00362] 📄 PDF

[SWS_Icu_00362] ⌈The function Icu_CheckWakeup shall be pre compile time con- figurable On/Off by the configuration parameter: IcuWakeupFunctionalityApi⌋

requirement SWS_Icu_00363 [SWS_Icu_00363] 📄 PDF

[SWS_Icu_00363] ⌈If development error detection for the ICU module is enabled: if the function Icu_CheckWakeup is called before the ICU module was initialized, the function Icu_CheckWakeup shall raise the development error ICU_E_UNINIT.⌋

requirement SWS_Icu_00382 [SWS_Icu_00382] 📄 PDF

Type of error Related error code Error value API IS called with invalid pointer. ICU_ E_ PARAM_ POINTER 0x0A API service used with an invalid channel identifier or channel was not configured for the functionality of the calling API. ICU_ E_ PARAM_ CHANNEL 0x0B API service used with an invalid or not feasible activation. ICU_ E_ PARAM_ ACTIVATION 0x0C Init funct ion failed. ICU_ E_ INIT_ FAILED 0x0D API service used with an invalid buffer size. ICU_ E_ PARAM_ BUFFER_ SIZE 0x0E API service Icu_ Set Mode used with an invalid mode. ICU_ E_ PARAM_ MODE 0x0F API service used without module initialization. ICU_ E_ UNINIT 0x14 API service Icu_ Set Mode is called while a running operation. ICU_ E_ BUSY_ OPERATION 0x16 API Icu_ Init service is called and when the ICU driver and the Hardware are already initialized. ICU_ E_ ALREADY_ INITIALIZED 0x17 API Icu_ Start Time Stamp is called and the parameter Notify Interval is invalid (e.g."0", Notify Interval < 1) ICU_ E_ PARAM_ NOTIFY_ INTERVAL 0x18 API Icu_ Get Version Info is called and the parameter versioninfo is is invalid ( e.g. NULL ) ICU_ E_ PARAM_ VINFO 0x19

requirement SWS_Icu_00384 [SWS_Icu_00384] 📄 PDF

The Icu module shall reject configurations with partition mappings which are not supported by the implementation.

requirement SWS_Icu_00389 [SWS_Icu_00389] 📄 PDF

If development error detection for the Icu module is enabled: This function shall raise development error ICU_E_UNINIT when the function Icu_Init has not been called .

requirement SWS_Icu_00391 [SWS_Icu_00391] 📄 PDF

If development error detection for the Icu module is enabled: This function shall raise development error ICU_E_U NINIT when the function Icu_Init has not been called .

requirement SWS_Icu_00395 [SWS_Icu_00395] 📄 PDF

If development error detection fo r the Icu module is enabled: This function shall raise development error ICU_E_UNINIT when the function Icu_Init has not been called .

requirement SWS_Icu_91001 [SWS_Icu_91001] 📄 PDF

File 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_Icu_91004 [SWS_Icu_91004] 📄 PDF

Type of error Related error code Error value API service Icu_ Stop Timestamp called on a channel which was not started or already stopped ICU_ E_ NOT_ STARTED 0x15

requirement SWS_Icu_CONSTR_00001 [SWS_Icu_CONSTR_00001] 📄 PDF

The ECUC partitions referenced by IcuKernelEcucPar- titionRef shall be a subset of the ECUC partitions referenced by IcuEcucPartitionRef.

requirement SWS_Icu_CONSTR_00002 [SWS_Icu_CONSTR_00002] 📄 PDF

The ECUC partitions referenced by IcuChannelEcuc PartitionRef shall be a subset of the ECUC partitions referenced by IcuEcucPartition Ref.

requirement SWS_Icu_CONSTR_00003 [SWS_Icu_CONSTR_00003] 📄 PDF

If IcuEcucPartitionRef reference s one or more ECUC partitions, IcuKernelEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

requirement SWS_Icu_CONSTR_00004 [SWS_Icu_CONSTR_00004] 📄 PDF

If IcuEcucPartitionRef references one or more ECUC partitions, IcuChannelEcucPartitionRef shall have a multiplicity of greater than one 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_Icu
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Icu@rel:R20-11#6490f5bd
Content hash
6490f5bd
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_ICUDriver.pdf#nameddest=SWS_Icu_00191

Initialisation et état

Icu_DeInit fonction

This function de - initializes the ICU module.

void Icu_DeInit(void);

This function returns the version information of this module.

void Icu_GetVersionInfo(Std_VersionInfoType* versioninfo);
Icu_Init fonction

This function initializes the driver.

void Icu_Init(const Icu_ConfigType* ConfigPtr);

Services

Checks if a wakeup capable ICU channel is the source for a wakeup event and calls the ECU state manager service Ecu M_ Set Wakeup Event in case of a valid ICU channel wakeup event.

void Icu_CheckWakeup(EcuM_WakeupSourceType WakeupSource);

This function disables the counting of edges of the given channel.

void Icu_DisableEdgeCount(Icu_ChannelType Channel);

This function disables the detection of edges of the given channel.

void Icu_DisableEdgeDetection(Icu_ChannelType Channel);

This function disables the notification of a channel.

void Icu_DisableNotification(Icu_ChannelType Channel);

This function disables the notification of a channel.

void Icu_DisableNotificationAsync(Icu_ChannelType Channel);

This function disables the wakeup capability of a single ICU channel.

void Icu_DisableWakeup(Icu_ChannelType Channel);

This function enables the counting of edges of the given channel.

void Icu_EnableEdgeCount(Icu_ChannelType Channel);

This function enables / re - enables the detection of edges of the given channel.

void Icu_EnableEdgeDetection(Icu_ChannelType Channel);

This function enables the notification on the given channel.

void Icu_EnableNotification(Icu_ChannelType Channel);

This function enables the notification on the given channel.

void Icu_EnableNotificationAsync(Icu_ChannelType Channel);

This function (re - )enables the wakeup capability of the given ICU channel.

void Icu_EnableWakeup(Icu_ChannelType Channel);

This function reads the coherent active time and period time for the given ICU Channel.

void Icu_GetDutyCycleValues(Icu_ChannelType Channel, Icu_DutyCycleType* DutyCycleValues);

This function returns the status of the ICU input.

Icu_InputStateType Icu_GetInputState(Icu_ChannelType Channel);

Description This function reads the elapsed Signal Low Time for the given channel.

Icu_ValueType Icu_GetTimeElapsed(Icu_ChannelType Channel);

This function reads the timestamp index of the given channel.

Icu_IndexType Icu_GetTimestampIndex(Icu_ChannelType Channel);

This function resets the value of the counted edges to zero.

void Icu_ResetEdgeCount(Icu_ChannelType Channel);

This function sets the activation - edge for the given channel.

void Icu_SetActivationCondition(Icu_ChannelType Channel, Icu_ActivationType Activation);
Icu_SetMode fonction

This function sets the ICU mode.

void Icu_SetMode(Icu_ModeType Mode);

According to the last call of Icu_ Enable Notification, this notification function to be called if the requested signal edge (rising / falling / both edges) occurs (once per edge).

void Icu_SignalNotification_<Channel>(void);

This function starts the measurement of signals.

void Icu_StartSignalMeasurement(Icu_ChannelType Channel);

This function starts the capturing of timer values on the edges.

void Icu_StartTimestamp(Icu_ChannelType Channel, Icu_ValueType* BufferPtr, uint16 BufferSize, uint16 NotifyInterval);

This function stops the measurement of signals of the given channel.

void Icu_StopSignalMeasurement(Icu_ChannelType Channel);

This function stops the timestamp measurement of the given channel.

void Icu_StopTimestamp(Icu_ChannelType Channel);

This notification to be called if the number of requested timestamps (Notification interval > 0) are acquired and if the notification has been enabled by the call of Icu_ Enable Notification().

void Icu_TimestampNotification_<Channel>(void);

This function reads the number of counted edges.

Icu_EdgeNumberType Icu_GetEdgeNumbers(Icu_ChannelType Channel);

Types

Definition of the type of activation of an ICU channel.

Numeric identifier of an ICU channel Avail able via Icu.h

This type contains initialization data.

Type which shall contain the values, needed for calculating duty cycles.

Type, to abstract the return value of the service Icu_ Get Edge Numbers().

Type, to abstract the return value of the service Icu_ Get Timestamp Index().Since circular buffer handling is supported and Icu_ Get Timestamp Index can return '0' as a legally true value ( not as an error according to ICU107 and ICU135), Icu_ Index Type may be implemented to have values 1..xyz.

Input state of an ICU channel

Definition of the measurement mode type

Allow enabling / disabling of all interrupts which are not required for the ECU wakeup.

Def inition of the measurement property type

Definition of the timestamp measurement property type

Width of the buffer for timestamp ticks and measured elapsed timeticks.

Exigences

SWS_Icu_00018 requirement

[SWS_Icu_00018] Upstream requirements: SRS_SPAL_12056 ⌈The Icu notification functions shall be configurable as function pointers within the ini- tialization data structure (Icu_ConfigType).⌋

SWS_Icu_00021 requirement

[SWS_Icu_00021] Upstream requirements: SRS_SPAL_00157, SRS_Icu_12369 ⌈According to the last call of Icu_EnableNotification, the Icu module shall call the notification function Icu_SignalNotification_<Channel> if the requested signal edge (rising / falling / both edges) occurs (once per edge).⌋

SWS_Icu_00042 requirement

[SWS_Icu_00042] Upstream requirements: SRS_Icu_12305 ⌈After a call of Icu_DisableNotification, the Icu module shall not call the notifi- cation function Icu_SignalNotification_<Channel>.⌋

SWS_Icu_00044 requirement

[SWS_Icu_00044] Upstream requirements: SRS_Icu_12305 ⌈Only those edge notifications shall be provided, which are supported by hardware.⌋

SWS_Icu_00055 requirement

[SWS_Icu_00055] Upstream requirements: SRS_SPAL_12069, SRS_BSW_00410 ⌈The static configuration parameter IcuReportWakeupSource is set to "ON"⌋ • [SWS_Icu_00056] Upstream requirements: SRS_SPAL_12069 ⌈The module is in mode ICU_MODE_SLEEP⌋ • [SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

SWS_Icu_00056 requirement

[SWS_Icu_00056] Upstream requirements: SRS_SPAL_12069 ⌈The module is in mode ICU_MODE_SLEEP⌋ • [SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

SWS_Icu_00057 requirement

[SWS_Icu_00057] Upstream requirements: SRS_SPAL_12069 ⌈A wakeup event occurs on a wakeup capable ICU channel.⌋

SWS_Icu_00119 requirement

[SWS_Icu_00119] Upstream requirements: SRS_SPAL_12129 ⌈The ISRs shall reset the interrupt flags (if needed by hardware) and call the corre- sponding notification functions.⌋

SWS_Icu_00187 requirement

[SWS_Icu_00187] Upstream requirements: SRS_BSW_00359 ⌈The Icu module’s notification functions shall have no parameters and no return value.⌋

SWS_Icu_00213 requirement

Det _ Report - Error Det.h Service to report development errors. Ecu M _ - Check - Wakeup Ecu M.h This function can be called to check the given wakeup sources. It will pass the argument to the integrator function Ecu M_ Check Wakeup Hook. It can also be called by the ISR of a wakeup s ource to set up the PLL and check other wakeup sources that may be connected to the same interrupt. Ecu M _ Set - Wakeup - Event Ecu M.h Sets the wakeup event.

SWS_Icu_00216 requirement

[SWS_Icu_00216] ⌈The Icu module shall call the notification Icu_TimestampNotification_<Channel> if the number of requested timestamps (Notification interval > 0) are acquired and if the notification has been enabled by the call of Icu_EnableNotification.⌋

SWS_Icu_00217 requirement

[SWS_Icu_00217] ⌈After a call of Icu_DisableNotification the Icu module shall NOT call the notification Icu_TimestampNotification_<Channel>.⌋

SWS_Icu_00218 requirement

[SWS_Icu_00218] ⌈The Icu module’s notification Icu_TimestampNotification_<Channel> depends on pre-processor switch IcuTimestampApi.⌋

SWS_Icu_00228 requirement

[SWS_Icu_00228] ⌈EcuM_CheckWakeup shall be called within the Interrupt Service Routine servicing the ICU channel wakeup event on wakeup-capable channel.⌋

SWS_Icu_00229 requirement

[SWS_Icu_00229] ⌈The ISR’s, providing the wakeup events, shall be responsible for resetting the interrupt flags if required by hardware.⌋

SWS_Icu_00276 requirement

Module Header File Imported Type Ecu M Ecu M.h Ecu M _ Wakeup Source Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

SWS_Icu_00348 requirement

[SWS_Icu_00348] ⌈Re-entrancy of operation Icu_SignalNotification_<Channel> is not relevant for this module (In general it is in this case not re-entrant).⌋

SWS_Icu_00349 requirement

[SWS_Icu_00349] ⌈Re-entrancy of the Icu_TimestampNotification_<Channel> is not relevant for this module (in general it is in this case not re-entrant).⌋

SWS_Icu_00356 requirement

[SWS_Icu_00356] ⌈If development error detection for the Icu module is enabled: The function Icu_GetVersionInfo shall check the parameter versioninfo for not being NULL and shall raise the development error code ICU_E_PARAM_VINFO if the check fails.⌋

SWS_Icu_00359 requirement

[SWS_Icu_00359] ⌈The function Icu_CheckWakeup shall check if a wakeup capable ICU channel is the source for a wakeup event and call EcuM_SetWakeupEvent to indicate a valid timer wakeup event to the ECU State Manager.⌋

SWS_Icu_00360 requirement

[SWS_Icu_00360] ⌈The function Icu_CheckWakeup is only feasible, if IcuReport- WakeupSource is statically configured available.⌋

SWS_Icu_00361 requirement

[SWS_Icu_00361] ⌈The ICU module’s environment shall only use the re-entrant capa- bility of the function Icu_CheckWakeup if the ICU module’s environment takes care that there is no simultaneous usage of the same channel.⌋

SWS_Icu_00362 requirement

[SWS_Icu_00362] ⌈The function Icu_CheckWakeup shall be pre compile time con- figurable On/Off by the configuration parameter: IcuWakeupFunctionalityApi⌋

SWS_Icu_00363 requirement

[SWS_Icu_00363] ⌈If development error detection for the ICU module is enabled: if the function Icu_CheckWakeup is called before the ICU module was initialized, the function Icu_CheckWakeup shall raise the development error ICU_E_UNINIT.⌋

SWS_Icu_00382 requirement

Type of error Related error code Error value API IS called with invalid pointer. ICU_ E_ PARAM_ POINTER 0x0A API service used with an invalid channel identifier or channel was not configured for the functionality of the calling API. ICU_ E_ PARAM_ CHANNEL 0x0B API service used with an invalid or not feasible activation. ICU_ E_ PARAM_ ACTIVATION 0x0C Init funct ion failed. ICU_ E_ INIT_ FAILED 0x0D API service used with an invalid buffer size. ICU_ E_ PARAM_ BUFFER_ SIZE 0x0E API service Icu_ Set Mode used with an invalid mode. ICU_ E_ PARAM_ MODE 0x0F API service used without module initialization. ICU_ E_ UNINIT 0x14 API service Icu_ Set Mode is called while a running operation. ICU_ E_ BUSY_ OPERATION 0x16 API Icu_ Init service is called and when the ICU driver and the Hardware are already initialized. ICU_ E_ ALREADY_ INITIALIZED 0x17 API Icu_ Start Time Stamp is called and the parameter Notify Interval is invalid (e.g."0", Notify Interval < 1) ICU_ E_ PARAM_ NOTIFY_ INTERVAL 0x18 API Icu_ Get Version Info is called and the parameter versioninfo is is invalid ( e.g. NULL ) ICU_ E_ PARAM_ VINFO 0x19

SWS_Icu_00384 requirement

The Icu module shall reject configurations with partition mappings which are not supported by the implementation.

SWS_Icu_00389 requirement

If development error detection for the Icu module is enabled: This function shall raise development error ICU_E_UNINIT when the function Icu_Init has not been called .

SWS_Icu_00391 requirement

If development error detection for the Icu module is enabled: This function shall raise development error ICU_E_U NINIT when the function Icu_Init has not been called .

SWS_Icu_00395 requirement

If development error detection fo r the Icu module is enabled: This function shall raise development error ICU_E_UNINIT when the function Icu_Init has not been called .

SWS_Icu_91001 requirement

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

SWS_Icu_91004 requirement

Type of error Related error code Error value API service Icu_ Stop Timestamp called on a channel which was not started or already stopped ICU_ E_ NOT_ STARTED 0x15

The ECUC partitions referenced by IcuKernelEcucPar- titionRef shall be a subset of the ECUC partitions referenced by IcuEcucPartitionRef.

The ECUC partitions referenced by IcuChannelEcuc PartitionRef shall be a subset of the ECUC partitions referenced by IcuEcucPartition Ref.

If IcuEcucPartitionRef reference s one or more ECUC partitions, IcuKernelEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

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