1 Component History
2 Introduction
2.1 How to Read this Document
2.1.1 API Definitions
2.1.2 Configuration References
2.2 Architecture Overview
3 Functional Description
3.1 Features
3.2 Dem Module Architecture
3.2.1 Dem Satellite(s)
3.2.2 Dem Master
3.2.3 Communication constraints
3.3 Initialization
3.3.1 Initialization States
3.4 Diagnostic Event Processing
3.4.1 Event De-bouncing
3.4.1.1 Counter Based Algorithm
3.4.1.2 Time Based Algorithm
3.4.1.3 Monitor internal de-bouncing
3.4.2 Event Reporting
3.4.3 Monitor Status
3.4.4 Event Status
3.4.4.1 Event Storage modifying Status Bits
3.4.4.2 Lightweight Multiple Trips (FailureCycleCounterThreshold)
3.5 Event Displacement
3.6 Event Aging
3.6.1 Aging Target ‘0’
3.6.2 Aging Counter Reallocation
3.6.3 Aging of Environmental Data
3.6.4 Aging of TestFailedSinceLastClear
3.6.5 Aging and Healing
3.7 Operation Cycles
3.7.1 Persistent Storage of Operation Cycle State
3.7.2 Automatic Operation Cycle Restart
3.8 Enable Conditions and Control DTC Setting
3.8.1 Effects on de-bouncing and FDC
3.9 Storage Conditions
3.10 DTC Suppression
3.10.1 Event Availability
3.10.2 Suppress DTC
3.11 Environmental Data
3.11.1 Storage Trigger
3.11.1.1 Snapshot Records
3.11.1.2 Extended Data Records
3.11.1.3 Storage Trigger ‘FDC Threshold’
3.11.2 Internal Data Elements
3.11.3 External Data Elements
3.11.3.1 NVRAM storage
3.12 Freeze Frame Pre-Storage
3.12.1 Multi-partition setup
3.13 Combined Events
3.13.1 Configuration
3.13.2 Event Reporting
3.13.3 DTC Status
3.13.4 Environmental Data Update
3.13.5 Aging
3.13.6 Clear DTC
3.14 Non-Volatile Data Management
3.14.1 NvM Interaction
3.14.2 NVRAM Write Frequency
3.14.3 Data Recovery
3.15 Diagnostic Interfaces
3.16 Notifications
3.16.1 Monitor Status Changed
3.16.2 Event Status Changed
3.16.3 DTC Status Changed
3.16.4 Event Data Changed
3.16.5 Monitor Re-Initialization
3.16.6 ClearDTC Notification
3.16.7 ControlDTCSetting Changed
3.17 Indicators
3.17.1 User Controlled WarningIndicatorRequest
3.18 Interface to the Runtime Environment
3.19 Error Handling
3.19.1 Development Error Reporting
3.19.1.1 Parameter Checking
3.19.1.2 SilentBSW run-time checks
3.19.2 Production Code Error Reporting
3.20 J1939
3.20.1 J1939 Freeze Frame and J1939 Expanded Freeze Frame
3.20.2 Indicators
3.20.3 Clear DTC
3.20.4 Service Only DTCs
3.21 Clear DTC APIs
4 Integration
4.1 Scope of Delivery
4.1.1 Static Files
4.1.2 Dynamic Files
4.2 Include Structure
4.3 Compiler Abstraction and Memory Mapping
4.3.1 Copy Routines
4.3.2 Memory Map with multiple partitions
4.4 Synchronization
4.4.1 Atomic Compare/Exchange
4.4.2 Critical Sections
4.4.2.1 Exclusive Area 0
4.4.2.2 Exclusive Area 1
4.4.2.3 Exclusive Area 2
4.4.2.4 Exclusive Area 3
4.4.2.5 Exclusive Area 4
4.5 NvM Integration
4.5.1 NVRAM Demand
4.5.2 NVRAM Initialization
4.5.2.1 Controlled Re-initialization
4.5.2.2 Manual Re-initialization
4.5.2.3 Initialization and ECU Reset
4.5.2.4 Common Errors
4.5.3 Expected NvM Behavior
4.5.4 Flash Lifetime Considerations
4.6 Rte Integration
4.6.1 Runnable Entities
4.6.2 Application Port Interface
4.6.3 DcmIf
4.7 Post-Run requirements
4.8 Run-Time limitation
4.9 Split main function
4.10 Multi-Partition setup
5 Measurement and Calibration
5.1 Measurable Data
5.1.1 Dem_Cfg_StatusData
5.1.2 Dem_Cfg_EventMaxDebounceValues
5.1.3 Dem_Cfg_PrimaryEntry_
5.2 Post-Build Support
5.2.1 Initialization
5.2.2 Post-Build Loadable
5.2.3 Post-Build Selectable
5.3 Calibration
6 API Description
6.1 Type Definitions
6.2 Services provided by Dem
6.2.1 Dem_GetVersionInfo()
6.2.2 Dem_MasterMainFunction()
6.2.3 Dem_SatelliteMainFunction()
6.2.4 Dem_MainFunction()
6.2.5 Interface EcuM
6.2.5.1 Dem_MasterPreInit()
6.2.5.2 Dem_SatellitePreInit()
6.2.5.3 Dem_PreInit()
6.2.5.4 Dem_MasterInit()
6.2.5.5 Dem_SatelliteInit()
6.2.5.6 Dem_Init()
6.2.5.7 Dem_InitMemory()
6.2.5.8 Dem_Shutdown()
6.2.6 Interface SWC and CDD
6.2.6.1 Dem_SetEventStatus()
6.2.6.2 Dem_ResetEventStatus()
6.2.6.3 Dem_ResetEventDebounceStatus()
6.2.6.4 Dem_PrestoreFreezeFrame()
6.2.6.5 Dem_ClearPrestoredFreezeFrame()
6.2.6.6 Dem_SetOperationCycleState()
6.2.6.7 Dem_GetOperationCycleState()
6.2.6.8 Dem_GetEventUdsStatus()
6.2.6.9 Dem_GetMonitorStatus()
6.2.6.10 Dem_GetEventFailed()
6.2.6.11 Dem_GetEventTested()
6.2.6.12 Dem_GetDTCOfEvent()
6.2.6.13 Dem_GetEventAvailable()
6.2.6.14 Dem_SetEnableCondition()
6.2.6.15 Dem_SetStorageCondition()
6.2.6.16 Dem_GetFaultDetectionCounter()
6.2.6.17 Dem_GetIndicatorStatus()
6.2.6.18 Dem_GetEventFreezeFrameDataEx()
6.2.6.19 Dem_GetEventExtendedDataRecordEx()
6.2.6.20 Dem_GetEventEnableCondition()
6.2.6.21 Dem_GetEventMemoryOverflow()
6.2.6.22 Dem_GetNumberOfEventMemoryEntries()
6.2.6.23 Dem_PostRunRequested()
6.2.6.24 Dem_SetWIRStatus()
6.2.6.25 Dem_GetWIRStatus()
6.2.6.26 Dem_SetDTCSuppression()
6.2.6.27 Dem_SetEventAvailable()
6.2.6.28 Dem_ClearDTC()
6.2.6.29 Dem_RequestNvSynchronization()
6.2.6.30 Dem_GetDebouncingOfEvent()
6.2.6.31 Dem_SelectDTC()
6.2.6.32 Dem_GetDTCSelectionResult()
6.2.6.33 Dem_GetEventIdOfDTC()
6.2.6.34 Dem_GetDTCSuppression()
6.2.7 Interface BSW
6.2.7.1 Dem_ReportErrorStatus()
6.2.8 Interface Dcm
6.2.8.1 Dem_SetDTCFilter()
6.2.8.2 Dem_GetNumberOfFilteredDTC()
6.2.8.3 Dem_GetNextFilteredDTC()
6.2.8.4 Dem_GetNextFilteredDTCAndFDC()
6.2.8.5 Dem_GetNextFilteredDTCAndSeverity()
6.2.8.6 Dem_SetFreezeFrameRecordFilter()
6.2.8.7 Dem_GetNextFilteredRecord()
6.2.8.8 Dem_GetStatusOfDTC()
6.2.8.9 Dem_GetDTCStatusAvailabilityMask()
6.2.8.10 Dem_GetDTCByOccurrenceTime()
6.2.8.11 Dem_GetTranslationType()
6.2.8.12 Dem_GetSeverityOfDTC()
6.2.8.13 Dem_GetFunctionalUnitOfDTC()
6.2.8.14 Dem_DisableDTCRecordUpdate()
6.2.8.15 Dem_EnableDTCRecordUpdate()
6.2.8.16 Dem_SelectFreezeFrameData()
6.2.8.17 Dem_GetNextFreezeFrameData()
6.2.8.18 Dem_GetSizeOfFreezeFrameSelection()
6.2.8.19 Dem_SelectExtendedDataRecord()
6.2.8.20 Dem_GetNextExtendedDataRecord()
6.2.8.21 Dem_GetSizeOfExtendedDataRecordSelection()
6.2.8.22 Dem_DisableDTCSetting()
6.2.8.23 Dem_EnableDTCSetting()
6.2.9 Interface J1939Dcm
6.2.9.1 Dem_J1939DcmClearDTC()
6.2.9.2 Dem_J1939DcmFirstDTCwithLampStatus()
6.2.9.3 Dem_J1939DcmGetNextDTCwithLampStatus ()
6.2.9.4 Dem_J1939DcmGetNextFilteredDTC()
6.2.9.5 Dem_J1939DcmGetNextFreezeFrame()
6.2.9.6 Dem_J1939DcmGetNextSPNInFreezeFrame()
6.2.9.7 Dem_J1939DcmGetNumberOfFilteredDTC ()
6.2.9.8 Dem_J1939DcmSetDTCFilter()
6.2.9.9 Dem_J1939DcmSetFreezeFrameFilter()
6.2.9.10 Dem_J1939DcmReadDiagnosticReadiness1()
6.3 Services used by Dem
6.3.1 EcuM_BswErrorHook()
6.4 Callback Functions
6.4.1 Dem_NvM_JobFinished()
6.4.2 Dem_NvM_InitAdminData()
6.4.3 Dem_NvM_InitStatusData()
6.4.4 Dem_NvM_InitDebounceData()
6.4.5 Dem_NvM_InitEventAvailableData()
6.5 Configurable Interfaces
6.5.1 Callouts
6.5.1.1 CBClrEvt_()
6.5.1.2 CBDataEvt_()
6.5.1.3 CBFaultDetectCtr_()
6.5.1.4 CBInitEvt_()
6.5.1.5 CBInitFct_()
6.5.1.6 CBReadData_()
6.5.1.7 CBStatusDTC_()
6.5.1.8 CBEventUdsStatusChanged__()
6.5.1.9 GeneralCBDataEvt()
6.5.1.10 GeneralCBStatusEvt()
6.5.1.11 _ClearDtcNotification __()
6.5.1.12 _DemTriggerOnMonitorStatus()
6.5.1.13 ApplDem_SyncCompareAndSwap()
6.6 Service Ports
6.6.1 Client Server Interface
6.6.1.1 Provide Ports on Dem Side
6.6.1.1.1 DiagnosticMonitor
6.6.1.1.2 DiagnosticInfo and GeneralDiagnosticInfo
6.6.1.1.3 OperationCycle
6.6.1.1.4 AgingCycle
6.6.1.1.5 ExternalAgingCycle
6.6.1.1.6 EnableCondition
6.6.1.1.7 StorageCondition
6.6.1.1.8 IndicatorStatus
6.6.1.1.9 EventStatus
6.6.1.1.10 EvMemOverflowIndication
6.6.1.1.11 DTCSuppression
6.6.1.1.12 DemServices
6.6.1.1.13 DcmIf
6.6.1.1.14 ClearDTC
6.6.1.1.15 EventAvailable
6.6.1.2 Require Ports on Dem Side
6.6.1.2.1 CBInitEvt_
6.6.1.2.2 CBInitFct__
6.6.1.2.3 CBEventUdsStatusChanged __
6.6.1.2.4 GeneralCBStatusEvt
6.6.1.2.5 CBStatusDTC_
6.6.1.2.6 CBDataEvt_
6.6.1.2.7 GeneralCBDataEvt
6.6.1.2.8 CBClrEvt_
6.6.1.2.9 CBReadData_
6.6.1.2.10 CBFaultDetectCtr_
6.6.1.2.11 CBControlDTCSetting
6.6.1.2.12 DemSc
6.6.1.2.13 ClearDtcNotification __
6.7 Not Supported APIs
7 Configuration
7.1 Configuration Variants
7.2 Configurable Attributes
7.3 Configuration of Post-Build Loadable
7.3.1 Supported Variance
7.4 SWC configuration with Master/Satellite
8 AUTOSAR Standard Compliance
8.1 Deviations
8.2 Additions/ Extensions
8.3 Limitations
8.4 Not Supported Service Interfaces
9 Glossary and Abbreviations
9.1 Glossary
9.2 Abbreviations
10 Contact