This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Component Implementation

1 - CurrMeas_IntegrationManual

Integration Manual

For

CURRENT MEASUREMENT

VERSION: 4.0

DATE: 30-Mar-2016

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USA


Location:
The official version of this document is stored in the Nexteer Configuration Management System.

Revision History

: ARM Cortex R4 Memory Usage

Sl. No.DescriptionAuthorVersionDate
1Initial versionSelva Sengottaiyan1.04-May-2015
2Added fault injectionNick Saxton2.010-Aug-2015
3Updated to v 3.1.0 of FDDSelva Sengottaiyan3.029-Sep-2015
4Updated per design rev. 4.2.0Rijvi Ahmed4.030-Mar-2016


Table of Contents

1 Abbrevations And Acronyms 4

2 References 5

3 Dependencies 6

3.1 SWCs 6

3.2 Global Functions(Non RTE) to be provided to Integration Project 6

4 Configuration REQUIREMeNTS 7

4.1 Build Time Config 7

4.2 Configuration Files to be provided by Integration Project 7

4.3 Da Vinci Parameter Configuration Changes 7

4.4 DaVinci Interrupt Configuration Changes 7

4.5 Manual Configuration Changes 7

5 Integration DATAFLOW REQUIREMENTS 8

5.1 Required Global Data Inputs 8

5.2 Required Global Data Outputs 8

5.3 Specific Include Path present 8

6 Runnable Scheduling 9

7 Memory Map REQUIREMENTS 10

7.1 Mapping 10

7.2 Usage 10

7.3 Non RTE NvM Blocks 10

7.4 RTE NvM Blocks 10

8 Compiler Settings 11

8.1 Preprocessor MACRO 11

8.2 Optimization Settings 11

9 Appendix 12

Abbrevations And Acronyms

AbbreviationDescription
DFDDesign functional diagram
MDDModule design Document
<ADD more to the table if applicable>

References

This section lists the title & version of all the documents that are referred for development of this document

Sr. No.TitleVersion
<1>FDD – ES200A Current MeasurementSee synergy subversion

Dependencies

SWCs

ModuleRequired Feature
NoneN/A

Note : Referencing the external components should be avoided in most cases. Only in unavoidable circumstance external components should be referred. Developer should track the references.

Global Functions(Non RTE) to be provided to Integration Project

CurrMeasPer2()

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
FLTINJENASet to STD_ON for Fault Injection

Configuration Files to be provided by Integration Project

None

Da Vinci Parameter Configuration Changes

ParameterNotesSWC
N/A

DaVinci Interrupt Configuration Changes

ISR NameVIM #Priority DependencyNotes
N/A

Manual Configuration Changes

ConstantNotesSWC
N/A

Integration DATAFLOW REQUIREMENTS

Required Global Data Inputs

Refer DataDict.m file

Required Global Data Outputs

Refer DataDict.m file

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
CurrMeasInit1NoneRTE
RunnableScheduling RequirementsTrigger
CurrMeasPer1None2ms(RTE)
CurrMeasPer2NoneMOTCTRL ISR*2
CurrMeasPer3None2ms(RTE)
CurrMeasEolGainReqNoneOn Event
CurrMeasEolGainStsReqNoneOn Event
CurrMeasEolOffsReqNoneOn Event
CurrMeasEolOffsStsReqNoneOn Event
CurrMeasGainWrReqNoneOn Event
CurrMeasGainReadReqNoneOn Event
CurrMeasOffsWrReqNoneOn Event
CurrMeasOffsReadReqNoneOn Event

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
MotCtrl_START_SEC_CODECode section for Motor Control scheduled functions

* Each …START_SEC… constant is terminated by a …STOP_SEC… constant as specified in the AUTOSAR Memory Mapping requirements.

Usage

FeatureRAMROM
None

Non RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name

CurrMeasEolGainCalSet

CurrMeasEolOffsCalSet

Note : Size of the NVM block if configured in developer

The NVM block needs not used.

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

None

2 - CurrMeas_MDD

Module Design Document

For

Current Measurement

October 5, 2016

Prepared For:

Software Engineering

Nexteer Automotive,

Saginaw, MI, USA

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USAChange History

Sl. No.DescriptionAuthorVersionDate
1Initial VersionSelva1.04- May-2015
2.0Updated to v 3.1.0 of the FDD (Merged CurrMeas_MDD and CurrMeas_MotCtrl_MDD)Selva2.029-Sep-2015
3.0Updated per design rev. 4.2.0Rijvi Ahmed3.030-Mar-2016
4.0Added design limitation and unit test consideration. Design rev. 4.5.0Rijvi Ahmed4.005-October-2016

Table of Contents

1 Introduction 5

1.1.1 Purpose 5

2 Current Measurement & High-Level Description 6

3 Design details of software module 7

3.1.1 Data Flow Diagram 7

3.1.2 Component level DFD 7

3.1.3 Function level DFD 7

4 Constant Data Dictionary 8

4.1.1 Program (fixed) Constants 8

4.1.2 Embedded Constants 8

5 Software Component Implementation 9

5.1 Sub-Module Functions 9

5.2 INIT: CurrMeasInit1 9

5.3 PERIODIC FUNCTIONS 9

5.3.2 Per: CurrMeasPer2 10

5.3.3 Per: CurrMeasPer3 10

5.4 Server Runables 10

5.4.1 Serverrunnable: CurrMeasEolGainSTsReq 10

5.4.2 Serverrunnable: CurrMeasEoloffsSTsReq 10

5.4.3 Serverrunnable: CurrMeasEoloffsReq 10

5.4.4 Serverrunnable: CurrMeasEolGainReq 11

5.4.5 Serverrunnable: CurrMeasGainReadReq 11

5.4.6 Serverrunnable: CurrMeasGainWrReq 11

5.4.7 Serverrunnable: CurrMeasOffsReadReq 11

5.4.8 Serverrunnable: CurrMeasOffsWrReq 11

5.5 Module Internal (Local) Functions 12

5.5.1 Local Function #1 PerformGainCalibration 12

5.5.2 Local Function #2 SigMaxMinGain 12

5.5.3 Local Function #3 SigMaxMinOffs 12

5.5.4 Local Function #4 ProtocolChkWI 12

5.5.5 Local Function #1 ProtocolChkEn 13

5.5.6 Local Function #2 CalcMotCurrMotAgCorrd 13

5.5.7 Local Function #3 OffsCalcABC 13

5.5.8 Local Function #4 OffsCalcDEF 14

5.5.9 Local Function #5 CalMotCurrCorrdABC 14

5.5.10 Local Function #6 CalMotCurrCorrdDEF 15

6 GLOBAL Function/Macro Definitions 16

7 Known Limitations with Design 17

8 UNIT TEST CONSIDERATION 18

Appendix A Abbreviations and Acronyms 19

Appendix B Glossary 20

Appendix C References 22

Introduction

Purpose

None

Current Measurement & High-Level Description

Refer FDD Design for High level description

Design details of software module

Graphical representation of Current Measurement

Data Flow Diagram

Component level DFD

None

Function level DFD

None

Constant Data Dictionary

Program (fixed) Constants

Embedded Constants

Local Constants

Constant NameResolutionUnitsValue
CALPROCNOTSTRTD_CNT_U081Cnt0
CALPROCSTRTD_CNT_U081Cnt1
CALPROCPASS_CNT_U081Cnt2
CALPROCPHAABCEOLOUTOFRNG_CNT_U081Cnt4
CALPROCPHADEFEOLOUTOFRNG_CNT_U081Cnt8
CALPROCPHAABCDEFEOLOUTOFRNG_CNT_U081Cnt12
CALPROCVEHSPDCNDNOTMET_CNT_U081Cnt16
CALPROCMOTVELMRFCNDNOTMET_CNT_U081Cnt32
CALPROCBOTHIVTRINACTV_CNT_U081Cnt64
DIFOFFSRNGCHKMAX_VOLT_F32Single precision floatAmpr1.0
DIFOFFSRNGCHKMIN_VOLT_F32Single precision floatAmpr-1.0
NANOSECTOSEC_ULS_F32float32Uls0.000000001
Refer DataDict.m file for other local constantsRefer DataDict.m file for other local constantsRefer DataDict.m file for other local constantsRefer DataDict.m file for other local constants

Software Component Implementation

<The detailed design of the function is provided in the FDD. The detail design shall only be added to the MDD when it is not provided in the FDD or the FDD is not adequate and clarification is needed.>

Sub-Module Functions

The sub-module functions are grouped based on similar functionality that needs to be executed in a given “State” of the system (refer States and Modes). For a given module, the MDD will identify the type and number of sub-modules required. The sub-module types are described below.

<(Note: For multiple init or per functions, insert new headers at the “Header 3” level – subset of “Sub-Module Functions section above” and follow the same sub-section design shown below . If none required, place the text “None”))>

INIT: CurrMeasInit1

Design Rationale

Init1 function is created so that it will allow a RTE model to be created in the AUTOSAR tools which allows Per-Instance Memory and calibration definition needs. The initialization function is doing nothing

Store Module Inputs to Local copies

None

(Processing of function)………

None

Store Local copy of outputs into Module Outputs

None

PERIODIC FUNCTIONS

(Note: For multiple periodic functions, insert new headers at the “Header 2” level – subset of “ Periodic Functions” and follow the same sub-section design shown below). If none required, place the text “None”)>

Per: CurrMeasPer1

Design Rationale

Refer the FDD

Store Module Inputs to Local copies

(Processing of function)………

Refer the FDD

Store Local copy of outputs into Module Outputs

Refer the FDD

Per: CurrMeasPer2

Design Rationale

Refer to FDD

Store Module Inputs to Local copies

Refer to FDD

(Processing of function)………

Refer to FDD

Store Local copy of outputs into Module Outputs

Refer to FDD

Per: CurrMeasPer3

Design Rationale

Refer to FDD

Store Module Inputs to Local copies

Refer to FDD

(Processing of function)………

Refer to FDD

Store Local copy of outputs into Module Outputs

Refer to FDD

Server Runables

Serverrunnable: CurrMeasEolGainSTsReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasEoloffsSTsReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasEoloffsReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasEolGainReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasGainReadReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasGainWrReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasOffsReadReq

Design Rationale

Refer the FDD

Serverrunnable: CurrMeasOffsWrReq

Design Rationale

Refer the FDD

Module Internal (Local) Functions

Local Function #1 PerformGainCalibration

Function NamePerformGainCalibrationTypeMinMax
ArgumentsNone
Return ValueNone

Description

Refer FDD.

Local Function #2 SigMaxMinGain

Function NameSigMaxMinGainTypeMinMax
ArgumentsNone
Return ValueNone

Description

Refer FDD.

Local Function #3 SigMaxMinOffs

Function NameSigMaxMinOffsTypeMinMax
ArgumentsNone
Return ValueNone

Description

Refer FDD.

Local Function #4 ProtocolChkWI

Function NameProtocolChkWITypeMinMax
MotCtrlMotCurrAdcVly1_Volt_T_f32float320.34.8
MotCtrlMotCurrAdcVly2_Volt_T_f32float320.34.8
MotCtrlMotCurrAdcVly3_Volt_T_f32float320.34.8
Return ValueProtocolChk_Cnt_T_loglbooleanFALSETRUE

Description

Refer FDD.

Local Function #1 ProtocolChkEn

Function NameProtocolChkEnTypeMinMax
Arguments PassedMotCtrlMotCurrAdcVly1AdcFaild_Cnt_T_loglbooleanFALSETRUE
MotCtrlMotCurrAdcVly2AdcFaild_Cnt_T_loglbooleanFALSETRUE
MotCtrlMotCurrAdcVly3AdcFaild_Cnt_T_loglbooleanFALSETRUE
Return ValueProtocolChkEn_Cnt_T_loglbooleanFALSETRUE

Description

Refer FDD.

Local Function #2 CalcMotCurrMotAgCorrd

Function NameCalcMotCurrMotAgCorrdTypeMinMax
MotCtrlMotAgElec_Rev_T_u0p16u0p16065535
MotCtrlMotElecMeclPolarity_Uls_T_s08Sint8-11
MotCtrlMotVelMrf_MtrRadpS_T_f32float32-13501350
Return ValueMotCtrlCurrMeasMotAgCorrd_Rad_T_f32float32-6.286.28

Description

Refer FDD.

MotCtrlMotElecMeclPolarity_Uls_T_s08 takes -1 and +1 as its values

Local Function #3 OffsCalcABC

Function NameOffsCalcABCTypeMinMax
ArgumentsMotCtrlBrdgVltg_Volt_T_f32float32626.5
MotCtrlPhaOnTiA_NanoSec_T_u32uint32071429
MotCtrlPhaOnTiB_NanoSec_T_u32uint32071429
MotCtrlPhaOnTiC_NanoSec_T_u32uint32071429
Return Value*MotCurrOffsA_Volt_T_f32float3205
*MotCurrOffsB_Volt_T_f32float3205
*MotCurrOffsC_Volt_T_f32float3205

Description

Refer FDD.

Local Function #4 OffsCalcDEF

Function NameOffsCalcDEFTypeMinMax
ArgumentsMotCtrlBrdgVltg_Volt_T_f32float32626.5
MotCtrlPhaOnTiA_NanoSec_T_u32uint32071429
MotCtrlPhaOnTiB_NanoSec_T_u32uint32071429
MotCtrlPhaOnTiC_NanoSec_T_u32uint32071429
Return Value*MotCurrOffsD_Volt_T_f32float3205
*MotCurrOffsE_Volt_T_f32float3205
*MotCurrOffsF_Volt_T_f32float3205

Description

Refer FDD.

Local Function #5 CalMotCurrCorrdABC

Function NameCalMotCurrCorrdABCTypeMinMax
MotCurrOffsA_Volt_T_f32float3205
MotCurrOffsB_Volt_T_f32float3205
MotCurrOffsC_Volt_T_f32float3205
Return ValueMotCtrlMotCurrCorrdAfloat32-200200
MotCtrlMotCurrCorrdBfloat32-200200
MotCtrlMotCurrCorrdCfloat32-200200

Description

Refer FDD.

Note: MotCtrlMotCurrCorrdA, MotCtrlMotCurrCorrdB, MotCtrlMotCurrCorrdC are not updated every runnable loop as Motor Control Manager should retain its last known good value.

Local Function #6 CalMotCurrCorrdDEF

Function NameCalMotCurrCorrdDEFTypeMinMax
MotCurrOffsD_Volt_T_f32float3205
MotCurrOffsE_Volt_T_f32float3205
MotCurrOffsF_Volt_T_f32float3205
Return ValueMotCtrlMotCurrCorrdDfloat32-200200
MotCtrlMotCurrCorrdEfloat32-200200
MotCtrlMotCurrCorrdFfloat32-200200

Description

Note: MotCtrlMotCurrCorrdA, MotCtrlMotCurrCorrdB, MotCtrlMotCurrCorrdC are not updated every runnable loop as Motor Control Manager should retain its last known good value.

GLOBAL Function/Macro Definitions

None

Known Limitations with Design

  1. In the implementation of Simulink block “CurrMeasPer2” the source code has made a decision to implement the protocol checks first then the motor control based timing checks. This leads to a scenario where the counter PhaOnTiErrCnt will only get incremented when the ABC passes the protocol check, whereas the model will increment it regardless of protocol check status. This counter is in effect used for display purposes only. So it’s okay to keep this mismatch.

UNIT TEST CONSIDERATION

  1. In the function CalMotCurrCorrdABC variables MotCtrlPhaOnTiA_NanoSec_T_u32, MotCtrlPhaOnTiB_NanoSec_T_u32 and MotCtrlPhaOnTiC_NanoSec_T_u32 are a percentage of MotCtrlPwmPerd_NanoSec_T_u32, 100% is the maximum. Therefore never use a value for MotCtrlPhaOnTiA_NanoSec_T_u32, MotCtrlPhaOnTiB_NanoSec_T_u32 and MotCtrlPhaOnTiC_NanoSec_T_u32 which is greater than MotCtrlPwmPerd_NanoSec_T_u32.

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 GuidelineEA4 01.00.00
3Software Naming Conventions.doc1.0
4Software Design and Coding Standards.doc2.0
5Current Meaurement Design ES200A_CurrMeas_DesignSee Synergy subversion

3 - CurrMeas_Review


Overview

Summary Sheet
Synergy Project
Source Code (2)
PolySpace
MDD


Sheet 1: Summary Sheet
























Rev 1.28-Jun-15

Peer Review Summary Sheet


























Synergy Project Name:


kzshz2: Intended Use: Identify which component is being reviewed. This should be the Module Short Name from Synergy Rationale: Required for traceability. It will help to ensure this form is not attaced to the the wrong change request. ES200A_CurrMeas_Impl
Revision / Baseline:


kzshz2: Intended Use: Identify which Synergy revision of this component is being reviewed Rationale: Required for traceability. It will help to ensure this form is not attaced to the the wrong change request. 4.2.0

























Change Owner:


kzshz2: Intended Use: Identify the developer who made the change(s) Rationale: A change request may have more than one resolver, this will help identify who made what change. Change owner identification may be required by indusrty standards. Rijvi Ahmed
Work CR ID:


EA4#7810





























kzshz2: Intended Use: Intended to identify at a high level to the reviewers which areas of the component have been changed. Rationale: This will be good information to know when ensuring appropriate reviews have been completed. Modified File Types:















































































































































































kzshz2: Intended Use: Identify who where the reviewers, what they reviewed, and if the reviewed changes have been approved to release the code for testing. Comments here should be at a highlevel, the specific comments should be present on the specific review form sheet. Rationale: Since this Form will be attached to the Change Request it will confirm the approval and provides feedback in case of audits. ADD DR Level Move reviewer and approval to individual checklist form Review Checklist Summary:






















































Reviewed:































YesMDD


YesSource Code


YesPolySpace









































N/AIntegration Manual


N/ADavinci Files








































































Comments:






























































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request.
- New components should include FDD Owner and Integrator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Enter any rework required into the comment field and select No. When the rework is complete, review again using this same review sheet and select Yes. Add date and additional comment stating that the rework is completed.
- To review a component with multiple source code files use the "Add Source" button to create a Source code tab for each source file.
- .h file should be reviewed with the source file as part of the source file.





















Sheet 2: Synergy Project

Peer Review Meeting Log (Component Synergy Project Review)



















































Quality Check Items:




































Rationale is required for all answers of No










New baseline version name from Summary Sheet follows








Yes
Comments:



naming convention





































Project contains necessary subprojects








Yes
Comments:










































Project contains the correct version of subprojects








Yes
Comments:










































Design subproject is correct version








Yes
Comments:











































General Notes / Comments:


























Reviewed only for the changes































LN: Intended Use: Identify who were the reviewers and if the reviewed changes have been approved. Rationale: Since this Form will be attached to the Change Request it will confirm the approval and provides feedback in case of audits. KMC: Group Review Level removed in Rev 4.0 since the design review is not checked in until approved, so it would always be DR4. Review Board:


























Change Owner:

Rijvi Ahmed


Review Date :

10/05/16
































Lead Peer Reviewer:


Selva Sengottaiyan


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: Source Code (2)






















Rev 1.28-Jun-15
Peer Review Meeting Log (Source Code Review)

























Source File Name:


CDD_CurrMeas.c

Source File Revision:


8
Header File Name:


CDD_CurrMeas.h

Header File Revision:


kzshz2: Intended Use: Identify which version of the source file is being review. Rationale: Required for traceability between source code and review. Auditors will likely require this. 3

























MDD Name:

CurrMeas_MotCtrl_MDD.doc

Revision:
4

























FDD/SCIR/DSR/FDR/CM Name:




ES200A_CurrMeas_Design

Revision:
4.5.0


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







Yes
Comments:
















Reviewed only for the changes

























for constant names







Yes
Comments:
















Reviewed only for the changes

























for function names







N/A
Comments:
















Reviewed only for the changes

























for other names (component, memory







N/A
Comments:




mapping handles, typedefs, etc.)










Reviewed only for the changes
























All paths assign a value to outputs, ensuring








N/A
Comments:



all outputs are initialized prior to being written











Reviewed only for the changes
























Requirements Tracability tags in code match the requirements tracability in the FDD








Yes
Comments:









requirements tracability in the FDD





































All variables are declared at the function level.








N/A
Comments:
















Reviewed only for the changes
Synergy version matches change history





kzshz2: Intended Use: Indicate that the the versioning was confirmed by the peer reviewer(s). Rationale: There have been many occassions where versions were not updated in files and as a result Unit Test were referencing wrong versions. This often time leads to the need to re-run of batch tests.


Yes
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








Yes
Comments:



and Work CR number





































Code accurately implements FDD (Document or Model)








Yes
Comments:
















Reviewed only for the changes
























Verified no Compiler Errors or Warnings


KMC: Intended Use: To confirm no compiler errors or warnings exist for the code under review (warnings from contract header files may be ignored). Rationale: This is needed to ensure there will be no errors discovered at the time of integration. A Sandox project should be used; QAC can find compiler errors but not warnings.





Yes
Comments:
















































Component.h is included








Yes
Comments:


















All other includes are actually needed. (System includes








Yes
Comments:









only allowed in Nexteer library components)











Reviewed only for the changes
























Software Design and Coding Standards followed:











Version: 2.1

























Code comments are clear, correct, and adequate







Yes
Comments:










and have been updated for the change: [N40] and










Reviewed only for the changes

all other rules in the same section as rule [N40],






















plus [N75], [N12], [N23], [N33], [N37], [N38],






















[N48], [N54], [N77], [N79], [N72]














































Source file (.c and .h) comment blocks are per







Yes
Comments:




standards and contain correct information: [N41], [N42]










Reviewed only for the changes

























Function comment blocks are per standards and







Yes
Comments:




contain correct information: [N43]










Reviewed only for the changes

























Code formatting (indentation, placement of







Yes
Comments:










braces, etc.) is per standards: [N5], [N55], [N56],










Reviewed only for the changes

[N57], [N58], [N59]














































Embedded constants used per standards; no







N/A
Comments:




"magic numbers": [N12]










Reviewed only for the changes

























Memory mapping for non-RTE code







N/A
Comments:




is per standard










Reviewed only for the changes

























All execution-order-dependent code can be







N/A
Comments:










recognized by the compiler: [N80]










Reviewed only for the changes

























All loops have termination conditions that ensure







N/A
Comments:




finite loop iterations: [N63]










Reviewed only for the changes

























All divides protect against divide by zero







N/A
Comments:




if needed: [N65]










Reviewed only for the changes

























All integer division and modulus operations







N/A
Comments:




handle negative numbers correctly: [N76]










Reviewed only for the changes

























All typecasting and fixed point arithmetic,







N/A
Comments:




including all use of fixed point macros and










Reviewed only for the changes

timer functions, is correct and has no possibility






















of unintended overflow or underflow: [N66]














































All float-to-unsiged conversions ensure the.







N/A
Comments:




float value is non-negative: [N67]










Reviewed only for the changes

























All conversions between signed and unsigned







N/A
Comments:




types handle msb==1 as intended: [N78]










Reviewed only for the changes

























All pointer dereferencing protects against







N/A
Comments:




null pointer if needed: [N70]










Reviewed only for the changes

























Component outputs are limited to the legal range







N/A
Comments:




defined in the FDD DataDict.m file : [N53]










Reviewed only for the changes

























All code is mapped with FDD (all FDD







Yes
Comments:










subfunctions and/or model blocks identified










Reviewed only for the changes

with code comments; all code corresponds to






















some FDD subfunction and/or model block): [N40]













































Review did not identify violations of other








Yes
Comments:









coding standard rules





































Anomaly or Design Work CR created








N/A
Comments: List Anomaly or CR numbers









for any FDD corrections needed































































General Notes / Comments:
















































Reviewed only for the changes































LN: Intended Use: Identify who were the reviewers and if the reviewed changes have been approved. Rationale: Since this Form will be attached to the Change Request it will confirm the approval and provides feedback in case of audits. KMC: Group Review Level removed in Rev 4.0 since the design review is not checked in until approved, so it would always be DR4. Review Board:


























Change Owner:

Rijvi Ahmed


Review Date :

10/05/16
































Lead Peer Reviewer:


Selva Sengottaiyan

Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 4: PolySpace






















Rev 1.28-Jun-15
Peer Review Meeting Log (QAC/PolySpace Review)


























Source File Name:


CDD_CurrMeas_MotCtrl.cSource File Revision:


8

Source File Name:


CDD_CurrMeas.cSource File Revision:


8

Source File Name:















Source File Revision:






























EA4 Static Analysis Compliance Guideline version:







01.01.00







Poly Space version:


Windows User: eg. 2013b 2013b
Polyspace sub project version:




Windows User: eg. TL108a_PolyspaceSuprt_1.0.0 Not yet in Synergy

QAC version:


Windows User: eg 8.1.1-R 8.1.1-R
QAC sub project version:




Windows User: eg. TL_100A_1.1.0 1.2.0


























Quality Check Items:




































Rationale is required for all answers of No



































Contract Folder's header files are appropriate and





kzshz2: Intended Use: Identify that the contract folder contains only the information required for this component. All other variables, constants, function prototypes, etc. should be removed. Rationale: This will help avoid unit testers having to considers object not used. It will also avoid having other files required for QAC.


Yes
Comments:




function prototypes match the latest component version







































100% Compliance to the EA4 Static AnalysisYes
Comments:





Compliance Guideline





























Are previously added justification and deviation








Yes
Comments:





comments still appropriate






































Do all MISRA deviation comments use approved








Yes
Comments:





deviation tags






































Cyclomatic complexity and Static path count OK






Creager, Kathleen: use Browse Function Metrics, STCYC and STPTH

No
Comments:

See comment below


for all functions in the component per Design














and Coding Standards rule [N47]

































































































General Notes / Comments:


























Found cyclomatic complexity 16 for the functions CurrMeasPer1() and PerformGainCalibration(). This cycomatic complexity is because of the switch case used, No change needed - this is conceptually less complex than splitting up the function.































LN: Intended Use: Identify who were the reviewers and if the reviewed changes have been approved. Rationale: Since this Form will be attached to the Change Request it will confirm the approval and provides feedback in case of audits. KMC: Group Review Level removed in Rev 4.0 since the design review is not checked in until approved, so it would always be DR4. Review Board:


























Change Owner:

Rijvi Ahmed


Review Date :

10/05/16
































Lead Peer Reviewer:


Selva Sengottaiyan

Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 5: MDD






















Rev 1.28-Jun-15
Peer Review Meeting Log (MDD Review)


























MDD Name:


CurrMeas_MDD.doc




MDD Revision:

4


























Source File Name:



CDD_CurrMeas_MotCtrl.c



Source File Revision:


8

Source File Name:



CDD_CurrMeas.c



Source File Revision:


8

Source File Name:















Source File Revision:






























Quality Check Items:




































Rationale is required for all answers of No










Synergy version matches document








Yes
Comments:













































Change log contains detailed description of changes








Yes
Comments:













































Changes Highlighted (for Unit Tester)








Yes
Comments:













































Diagrams have been included per MDD Guideline








Yes
Comments:











and reviewed






































All Design Exceptions and Limitations are listed








Yes
Comments:



















































Design rationale given for all global








N/A
Comments:











data not communicated through RTE ports, per














Design and Coding Standards rules [N9] and [N10].















































All implementation details that differ from the FDD are








Yes
Comments:











noted and explained in Design Rationale






































All Unit Test Considerations have been described








Yes
Comments:



















































General Notes / Comments:


























Reviewed only for the changes































LN: Intended Use: Identify who were the reviewers and if the reviewed changes have been approved. Rationale: Since this Form will be attached to the Change Request it will confirm the approval and provides feedback in case of audits. KMC: Group Review Level removed in Rev 4.0 since the design review is not checked in until approved, so it would always be DR4. Review Board:


























Change Owner:

Rijvi Ahmed


Review Date :

10/05/16
































Lead Peer Reviewer:


Selva Sengottaiyan

Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































4 - requirements

FDDIDSourceFunctionLine(s)StatusComment
.SwFileName.SwFuncName.SwLines.SwStatus.SwComment
ES200A215CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21577,1581,1625,156,166I
ES200A213CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21570,1577,1581,1619,1625,145I
ES200A132CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21570,1577,1581,1619,1625,156,166,181,189I
ES200A135CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer1,CurrMeasPer21309-1462,121-210I
ES200A138CDD_CurrMeas.cSigMaxMinOffs1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801I
ES200A223CDD_CurrMeas.cCurrMeasPer31588,1595,1599,1637,1643I
ES200A289CDD_CurrMeas.cCurrMeasPer31555I
ES200A288CDD_CurrMeas.cCurrMeasPer31554I
ES200A97CDD_CurrMeas.cCurrMeasPer31678I
ES200A281CDD_CurrMeas_MotCtrl.cCurrMeasPer2133I
ES200A280CDD_CurrMeas.cCurrMeasOffsReadReq_Oper,CurrMeasOffsWrReq_Oper1112-1126,1165-1214I
ES200A283CDD_CurrMeas.cCurrMeasPer31556I
ES200A282CDD_CurrMeas.cCurrMeasPer31557I
ES200A285CDD_CurrMeas_MotCtrl.cCurrMeasPer2202I
ES200A284CDD_CurrMeas_MotCtrl.cCurrMeasPer2201I
ES200A287CDD_CurrMeas.cCurrMeasPer11296I
ES200A286CDD_CurrMeas.cCurrMeasPer11303I
ES200A262CDD_CurrMeas.cSigMaxMinGain1838-1930I
ES200A260CDD_CurrMeas.cSigMaxMinGain,PerformGainCalibration1911,1916,1926,2132I
ES200A267CDD_CurrMeas_MotCtrl.cCurrMeasPer2171,195I
ES200A266CDD_CurrMeas.cSigMaxMinGain,PerformGainCalibration1926,2132I
ES200A264CDD_CurrMeas.cSigMaxMinOffs,SigMaxMinGain1811,1851-1865,1918,1924,1925I
ES200A269CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC321-377I
ES200A91CDD_CurrMeas_MotCtrl.cCurrMeasPer2128I
ES200A298CDD_CurrMeas.cPerformGainCalibration1981-2135I
ES200A299CDD_CurrMeas.cSigMaxMinGain1874-1888I
ES200A296CDD_CurrMeas.cSigMaxMinOffs1752-1773I
ES200A297CDD_CurrMeas.cCurrMeasPer11311-1460I
ES200A290CDD_CurrMeas.cCurrMeasPer31564I
ES200A291CDD_CurrMeas.cCurrMeasGainReadReq_Oper,CurrMeasGainWrReq_Oper967,974,1013-1042I
ES200A146CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF424-482I
ES200A147CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF423-481I
ES200A312CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC320-376I
ES200A311CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC319-375I
ES200A310CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF427-485I
ES200A270CDD_CurrMeas_MotCtrl.cCurrMeasPer2150I
ES200A88CDD_CurrMeas.cCurrMeasPer11305I
ES200A89CDD_CurrMeas.cCurrMeasPer11304I
ES200A274CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31298,1559I
ES200A275CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31299,1560I
ES200A276CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31300,1561I
ES200A277CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31301,1562I
ES200A278CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31302,1563I
ES200A83CDD_CurrMeas_MotCtrl.cCurrMeasPer2130I
ES200A86CDD_CurrMeas_MotCtrl.cCurrMeasPer2132I
ES200A84CDD_CurrMeas_MotCtrl.cCurrMeasPer2131I
ES200A251CDD_CurrMeas.cCurrMeasPer1,SigMaxMinOffs1449,1457,1804,1809,1816I
ES200A308CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF425-483I
ES200A309CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF426-484I
ES200A300CDD_CurrMeas.cSigMaxMinGain,PerformGainCalibration1916,1926,2132I
ES200A301CDD_CurrMeas.cCurrMeasPer1,SigMaxMinOffs1449,1457,1809,1816I
ES200A302CDD_CurrMeas_MotCtrl.cCurrMeasPer2137I
ES200A303CDD_CurrMeas_MotCtrl.cCurrMeasPer2136I
ES200A304CDD_CurrMeas_MotCtrl.cCurrMeasPer2135I
ES200A305CDD_CurrMeas_MotCtrl.cCurrMeasPer2140I
ES200A306CDD_CurrMeas_MotCtrl.cCurrMeasPer2139I
ES200A307CDD_CurrMeas_MotCtrl.cCurrMeasPer2138I
ES200A245CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21588,1637,187-192I
ES200A109CDD_CurrMeas.cCurrMeasPer31679I
ES200A102CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC329,332,343,355,366I
ES200A103CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC328,331,342,354,365I
ES200A100CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF435,438,450,462,473I
ES200A101CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF434,437,449,461,472I
ES200A104CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC327,330,341,353,364I
ES200A246CDD_CurrMeas_MotCtrl.cCurrMeasPer2122-209I
ES200A176CDD_CurrMeas.cSigMaxMinGain1903,1904,1905,1906,1907,1908,1909I
ES200A61CDD_CurrMeas_MotCtrl.cCurrMeasPer2123I
ES200A65CDD_CurrMeas_MotCtrl.cCurrMeasPer2129I
ES200A179CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21631-1649,179-185I
ES200A177CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21570,1619,164-168I
ES200A253CDD_CurrMeas.cCurrMeasPer11310I
ES200A174CDD_CurrMeas.cPerformGainCalibration1969-2134I
ES200A257CDD_CurrMeas.cSigMaxMinOffs1721-1813I
ES200A255CDD_CurrMeas.cCurrMeasPer1,SigMaxMinOffs1448,1456,1723-1744,1814-1821I
ES200A99CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF436,439,451,463,474I
ES200A227CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21595,1599,1643,181,189I
ES200A225CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21588,1595,1599,1632,1637,1643,175I
ES200A92CDD_CurrMeas_MotCtrl.cCurrMeasPer2126I
ES200A95CDD_CurrMeas_MotCtrl.cCurrMeasPer2205I
ES200A162CDD_CurrMeas_MotCtrl.cCurrMeasPer2,CalMotCurrCorrdDEF175,428-486I
ES200A15CDD_CurrMeas_MotCtrl.cCurrMeasPer2120I
ES200A273CDD_CurrMeas.cCurrMeasPer1,CurrMeasPer31297,1558I
ES200A110CDD_CurrMeas_MotCtrl.cCurrMeasPer2206I
ES200A151CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC316-372I
ES200A150CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC317-373I
ES200A157CDD_CurrMeas.c,CDD_CurrMeas_MotCtrl.cCurrMeasPer3,CurrMeasPer21612-1629,154-162I
ES200A158CDD_CurrMeas_MotCtrl.cCurrMeasPer2175I
ES200A201CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC314I
ES200A200CDD_CurrMeas_MotCtrl.cCurrMeasPer2127I
ES200A203CDD_CurrMeas.cCurrMeasPer11475I
ES200A202CDD_CurrMeas_MotCtrl.cCurrMeasPer2200I
ES200A204CDD_CurrMeas.cCurrMeasPer31677I
ES200A207CDD_CurrMeas_MotCtrl.cCurrMeasPer2125I
ES200A208CDD_CurrMeas_MotCtrl.cCurrMeasPer2124I
ES200A148CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdDEF422-480I
ES200A149CDD_CurrMeas_MotCtrl.cCalMotCurrCorrdABC318-374I