ExcpnHndlg Module Design Document

Module Design Document

For

ExcpnHndlg

Mar 11, 2018

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USA
Change History

DescriptionAuthorVersionDate
Initial VersionAvinash James1.011-Dec-2017
Updated local constantsAvinash James2.011-Mar-2018


Table of Contents

1 Introduction 4

1.1.1 Purpose 4

2 ExcpnHndlg & High-Level Description 5

3 Design details of software module 6

3.1.1 Graphical representation of ExcpnHndlg 6

3.1.2 Data Flow Diagram 6

3.1.3 Component level DFD 6

3.1.4 Function level DFD 6

4 Constant Data Dictionary 7

4.1.1 Program (fixed) Constants 7

4.1.2 Embedded Constants 7

5 Software Component Implementation 11

5.1.1 Sub-Module Functions 11

5.1.2 Per: ExcpnHndlgPer1 11

5.1.3 Server Runables 11

5.1.4 Interrupt Functions 17

5.1.5 Module Internal (Local) Functions 17

5.1.6 GLOBAL Function/Macro Definitions 18

5.1.7 GLOBAL Function #1 18

5.1.8 Design Rationale 18

5.1.9 processing 18

6 Known Limitations with Design 19

7 UNIT TEST CONSIDERATION 20

Appendix A Abbreviations and Acronyms 21

Appendix B Glossary 22

Appendix C References 23

Introduction

Purpose

This document details the design in the FDD and also lists out any deviations which were made from the design for the implementation due to any constraints in development. ExcpnHndlg MDD describes the exception handling / reset cause determination for microcontroller diagnostics

ExcpnHndlg & High-Level Description

Refer FDD

Design details of software module

Graphical representation of ExcpnHndlg

Data Flow Diagram

Component level DFD

N/A

Function level DFD

N/A

Constant Data Dictionary

Program (fixed) Constants

Embedded Constants

Local Constants

Constant NameResolutionUnitsValue
FPCFGININVAL_CNT_T_U321Counts0x0000001CU
FPCFGREGID_CNT_S321Counts10
FPCFGSELNID_CNT_S321Counts0
REGFEPCREGID_CNT_S321Counts2
REGFEPCSELNID_CNT_S321Counts0
MEAREGID_CNT_S321Counts6
MEASELNID_CNT_S321Counts2
FPSRREGID_CNT_S321Counts6
FPSRSELNID_CNT_S321Counts0
FPEPCREGID_CNT_S321Counts7
FPEPCSELNID_CNT_S321Counts0
MEIREGID_CNT_S321Counts8
MEISELNID_CNT_S321Counts2
FEICREGID_CNT_S321Counts14
FEICSELNID_CNT_S321Counts0
FPUINVLDOPERSTSBIT_CNT_U321Counts((uint32)(0x00004000U))
FPUDIVBYZEROSTSBIT_CNT_U321Counts((uint32)(0x00002000U))
FPUOVFSTSBIT_CNT_U321Counts((uint32)(0x00001000U))
MEMERRINFOREADWRBIT_CNT_U321Counts((uint32)(0x00000001U))
SEGVPGFMASK_CNT_U161Counts((uint16)(0x0200U))
SEGVCRFMASK_CNT_U161Counts((uint16)(0x0100U))
SEGTCMFMASK_CNT_U161Counts((uint16)(0x0040U))
SEGROMFMASK_CNT_U161Counts((uint16)(0x0020U))
SEGVCIFMASK_CNT_U161Counts((uint16)(0x0010U))
HISPDBUSRESDAREAUPPRADR_CNT_U321Counts((uint32)(0XF2FFFFFFU))
HISPDBUSRESDAREALOWRADR_CNT_U321Counts((uint32)(0x10000000U))
IPGREGAREAUPPRADR_CNT_U321Counts((uint32)(0XFFFEE000U))
IPGREGAREALOWRADR_CNT_U081Counts((uint32)(0xFFFEE024U))
SEGREGAREAUPPRADR_CNT_U321Counts((uint32)(0xFFFEE98BU))
SEGREGAREALOWRADR_CNT_U081Counts((uint32)(0xFFFEE980U))
PRPHLRESDAREALOWRADR_CNT_U081Counts((uint32)(0xFF000000U))
CODFLSINSTRFETCHERRFEICREGVAL1Counts((uint32)0x11U)
CODFLSECCDBLBITORADRPARERR_CNT_U081Counts((uint8)2U)
CODFLSSEQERR_CNT_U081Counts((uint8)4U)
MEMBISTSTRTUPTESTFAILR_CNT_U081Counts1U
LCLRAMECCDBLBIT_CNT_U081Counts((uint8)2U)
GBLRAMECCDBLBIT_CNT_U081Counts((uint8)4U)
GTMRAMRAMECCDBLBIT_CNT_U081Counts((uint8)8U)
INVLDRAMAREA_CNT_U081Counts((uint8)128U)
LCLRAMECCADROVFFLT_CNT_U081Counts((uint8)1U)
GLBRAMECCADROVFFLT_CNT_U081Counts((uint8)2U)
CODFLSECCADROVFFLT_CNT_U081Counts((uint8)4U)
FRRAMECCOVFFLT_CNT_U081Counts((uint8)8U)
CSIHRAMECCOVFFLT_CNT_U081Counts((uint8)16U)
CANRAMECCOVFFLT_CNT_U081Counts((uint8)32U)
GTMRAMECCOVFFLT_CNT_U081Counts((uint8)64U)
GBLRAMILLGLACSBYPROCRFLT_CNT_U081Counts((uint8)1U)
CODFLSILLGLACSBYSYSBUSFLT_CNT_U081Counts((uint8)2U)
GBLRAMILLGLACSBYSYSBUS_CNT_U081Counts((uint8)4U)
RESDAREAILLGLACSBYHISPDBUS_CNT_U081Counts((uint8)8U)
DTSDBLBIT_CNT_U081Counts((uint8)2U)
BISTCODECCFAILR_CNT_U081Counts((uint8)1U)
BISTNOTCMPL_CNT_U081Counts((uint8)2U)
LOGLBISTSTRTUPTESTFAILR_CNT_U081Counts((uint8)4U)
FACIRSTTRFERR_CNT_U081Counts((uint8)128U)
LOCKSTEPCOMP_CNT_U081Counts((uint8)1U)
PROCLOCKSTEPRTERR_CNT_U081Counts((uint8)2U)
DMALOCKSTEPRTORGBLRAMWRBUFERR_CNT_U081Counts((uint8)4U)
ALGNWR_CNT_U081Counts((uint8)8U)
ALGNREAD_CNT_U081Counts((uint8)16U)
RESDOPER_CNT_U081Counts((uint8)32U)
CODFLSINSTRFETCH_CNT_U081Counts((uint8)64U)
NONCODFLSINSTRFETCH_CNT_U081Counts((uint8)128U)
CLKMONR0RTFLT_CNT_U081Counts((uint8)1U)
CLKMONR1RTFLT_CNT_U081Counts((uint8)2U)
CLKMONR2RTFLT_CNT_U081Counts((uint8)4U)
CLKMONR3RTFLT_CNT_U081Counts((uint8)8U)
CLKMONR5RTFLT_CNT_U081Counts((uint8)32U)
MODERRUSRMODINACTV_CNT_U081Counts((uint8)1U)
MODERRPROGMMODACTV_CNT_U081Counts((uint8)2U)
MODERRDBGACTV_CNT_U081Counts((uint8)4U)
MODERRTESTMODACTV_CNT_U081Counts((uint8)8U)
DATAANDINSTRPROTNERR_CNT_U081Counts((uint8)1U)
PRVLGDINSTREXCPN_CNT_U081Counts((uint8)2U)
ECMMSTCHKRSTRTUPTESTFAILR_CNT_U081Counts((uint8)1U)
ECMCONFIGOUTPCTRLFLT_CNT_U081Counts((uint8)4U)
EIINTRPTSTRTUPTESTFAILR_CNT_U081Counts((uint8)8U)
ECMMSTCHKROUTPCTRLFAILR_CNT_U081Counts((uint8)32U)
ECMRTMSTCHKRCOMPFLT_CNT_U081Counts((uint8)128U)
FPUINVLDOPEREXCPN_CNT_U081Counts((uint8)2U)
FPUDIVBYZEROEXCPN_CNT_U081Counts((uint8)4U)
FPUOVFEXCPN_CNT_U081Counts((uint8)8U)
FPUUKWNEXCPN_CNT_U081Counts((uint8)16U)
UKWNECMRST_CNT_U081Counts((uint8)1U)
UKWNRST_CNT_U081Counts((uint8)2U)
FLSBTLDRPREOSSRTUPEXCPN_CNT_U081Counts((uint8)4U)
STRTUPRSTINFOFAILD_CNT_U081Counts((uint8)8U)
UKWNSWRST_CNT_U081Counts((uint8)16U)
PROGFLOW_CNT_U081Counts((uint8)1U)
DEADLINEMONR_CNT_U081Counts((uint8)2U)
ALVMONR_CNT_U081Counts((uint8)4U)
WDGTOUT_CNT_U081Counts((uint8)1U)
PBGGUARDWRERR_CNT_U081Counts((uint8)1U)
IPGRTFLT_CNT_U081Counts((uint8)2U)
PBGGUARDREADERR_CNT_U081Counts((uint8)4U)
HISPDBUSGUARDERR_CNT_U081Counts((uint8)8U)
CODFLSGUARDERR_CNT_U081Counts((uint8)16U)
GBLRAMGUARDERR_CNT_U081Counts((uint8)32U)
PEGERR_CNT_U081Counts((uint8)64U)
SYSERRGENREGWRINUSRMODE_CNT_U081Counts((uint8)1U)
IPGPROTNREGWRINUSRMODE_CNT_U081Counts((uint8)2U)
DBGRST_CNT_U081Counts((uint8)1U)
OSCRITFLT_CNT_U081Counts((uint8)1U)
UKWNEXCPN_CNT_U081Counts((uint8)2U)
DMATRFERR_CNT_U081Counts((uint8)1U)
DMAREGACSPROTCNERR_CNT_U081Counts((uint8)2U)
PRPHLBUSADRDATAECCFLT_CNT_U081Counts((uint8)1U)
PRPHLUMAPDAREAACS_CNT_U081Counts((uint8)2U)
HISPDBUSUMAPDAREAACS_CNT_U081Counts((uint8)4U)
BUSBRDGARBNERR_CNT_U081Counts((uint8)8U)
BUSSNGBITECCERR_CNT_U081Counts((uint8)16U)
INTCVMOVERVLTGMONR_CNT_U081Counts((uint8)1U)
INTCVMUNDERVLTGMONR_CNT_U081Counts((uint8)2U)
EXTVLTGMONRFLT_CNT_U081Counts((uint8)128U)
UPPR16BITMASK_CNT_U321Counts((uint32)(0xFFFF0000U))
LOWR16BITMASK_CNT_U321Counts((uint32)(0x0000FFFFU))
FPCFGININVAL_CNT_T_U321Counts((uint32)0x0000001CU)
MAXBACKUPRAMSIZE_CNT_U161Counts((uint16)1024U)

Software Component Implementation

Sub-Module Functions

Init: ExcpnHndlgInit1

Design Rationale

Non-RTE function because it needs to be called before the OS is started - so that floating point exceptions can be enabled before anything uses floating point

Module Outputs

None

Init: ExcpnHndlgInit2

Design Rationale

RTE function to initialize all the NTCs to pass

Module Outputs

None

Per: ExcpnHndlgPer1

Design Rationale

RTE Periodic function called every 2 ms to check for OS errors

Store Module Inputs to Local copies

Refer MDD

(Processing of function)………

Triggered on Timing Event every 2ms

Store Local copy of outputs into Module Outputs

None

Server Runables

ChkForStrtUpTest

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiClkMonr0RtErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiClkMonr1RtErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiClkMonr2RtErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiClkMonr3RtErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiClkMonr5RtErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiModErrDbgActv

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiModErrProgmModActv
Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiModErrUsrModInactv

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiModErrTestModActv

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiBusBrdgErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiBusSngBitEccErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiCodFlsEccAdrOvfErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiCodFlsIllglAcsBySysBus

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiDmaIllglAcsErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiDmaLockStepErrOrGblRamWrBufErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiDmaTrfErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiDtsRamDblBitEccErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiEcmMstChkrErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiFlsSeqErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiGblRamIllglAcsByProcr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiGblRamIllglAcsBySysBus

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiPrphlRamEccAdrOvfErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiGlbRamEccAdrOvfErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiGtmRamDblBitEccErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiLclRamEccAdrOvfErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiPegErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiProcrLockStepErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiResdAreaIllglAcsByHiSpdBus

Design Rationale

Refer FDD

Processing of function

Refer FDD

FeNmiWdgErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

ProcUkwnExcpnErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

ProcMpuExcpnErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

ProcPrvlgdInstrExcpnErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

ProcPrmntOsErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

ProcNonCritOsErr

Design Rationale

Refer FDD

Processing of function

Refer FDD

GetMcuDiagcIdnData

Design Rationale

Refer FDD

Processing of function

Refer FDD

SetMcuDiagcIdnData

Design Rationale

Refer FDD

Processing of function

Refer FDD

Interrupt Functions

AlgnErrIrq

Design Rationale

Refer FDD

Processing of function

Refer FDD

FpuErrIrq

Design Rationale

Refer FDD

Processing of function

Refer FDD

SysErrIrq

Design Rationale

Refer FDD

Processing of function

Refer FDD

ResdOperIrq

Design Rationale

Refer FDD

Processing of function

Refer FDD

Module Internal (Local) Functions

ProcStrtUpOrSwRst

Function NameProcStrtUpOrSwRstTypeMinMax
Arguments PassedNone
Return ValueNA
Design Rationale

Refer FDD

Processing of function

Refer FDD

McuDiagcRstChk

Function NameMcuDiagcRstChkTypeMinMax
Arguments PassedRstInfo_Cnt_T_enumMcuDiagc1Refer FDD*Refer FDD*
Return ValueMcuDiagcRstChk_Cnt_T_lgcBooleanFALSETRUE
Design Rationale

Checks if the reset cause is power on/Flash Progamming /Hard Reset /Soft Reset.

Processing

Refer the FDD

GLOBAL Function/Macro Definitions

<If these are numerous and defined in a separate source file then reference the source file only.>

GLOBAL Function #1

Function Name(Exact name used)TypeMinMax
Arguments Passed(if none, write None)<Refer MDD guidelines[1]><Refer MDD guidelines[1]><Refer MDD guidelines[1]>
(Insert more rows for additional passed arguments)
Return Value(if no value returned, write N/A)

Design Rationale

processing

(Place flowchart/design for local function)

Known Limitations with Design

None

UNIT TEST CONSIDERATION

The PIMs listed in the Data dictionary file BackUpRam and ExcpnHndlgOsErrCod are non RTE PIMS which need special memory mapping and are not generated through RTE. Hence use the component level variable name as used in the component for these PIMs

Abbreviations and Acronyms

Abbreviation or AcronymDescription

Glossary

Note: Terms and definitions from the source “Nexteer Automotive” take precedence over all other definitions of the same term. Terms and definitions from the source “Nexteer Automotive” are formulated from multiple sources, including the following:

  • ISO 9000

  • ISO/IEC 12207

  • ISO/IEC 15504

  • Automotive SPICE® Process Reference Model (PRM)

  • Automotive SPICE® Process Assessment Model (PAM)

  • ISO/IEC 15288

  • ISO 26262

  • IEEE Standards

  • SWEBOK

  • PMBOK

  • Existing Nexteer Automotive documentation

TermDefinitionSource
MDDModule Design Document
DFDData Flow Diagram

References

Ref. #TitleVersion
1AUTOSAR Specification of Memory Mapping (Link:AUTOSAR_SWS_MemoryMapping.pdf)v1.3.0 R4.0 Rev 2
2MDD GuidelineProcess 04.04.02
3Software Naming Conventions.docProcess 04.04.02
4Software Design and Coding Standards.docProcess 04.04.02
5FDD (CM101B_ExcpnHndlg_Design)See Synergy Subproject version
Last modified October 12, 2025: Initial commit (ddf2e20)