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

Return to the regular view of this page.

Libraries

Libraries

1 - Component Design

Component Design

Component Documentation

1.1 - AR999A ArchGlbPrm

Functional Design Document

For

Architecture Global Parameters

VERSION: 1.0

DATE: 05-Mar-2015

Prepared By:

Nexteer Automotive,

Saginaw, MI, USA


Revision History

VersionDescriptionAuthorSection ModifiedDate
1.0Initial VersionKathleen CreagerAll05-Mar-2015


Table of Contents

1 Abbrevations And Acronyms 4

2 References 5

3 Purpose 6

4 ArchGlbPrm Design 7

4.1 constants 7

4.1.1 float32 Constant specification 7

Abbrevations And Acronyms

AbbreviationDescription

References

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

Sr. No.TitleVersion

Purpose

The purpose of this document is to describe the design of the Architecture Global Parameters component including the selection criteria for items to be included in the component and the method used for specifying the values of the items.

ArchGlbPrm Design

constants

The ArchGlbPrm component contains global constants that are either “mathematical” (e.g. the value of pi) or software-oriented (e.g. the value to be used as the zero threshold for float32 comparisons) in nature. The constants are defined in AR999A_ArchGlbPrm_DataDict.m and implemented as #define statements in “ArchGlbPrm.h”.

float32 Constant specification

For each float32 constant, the number of digits was chosen based on the smallest number of digits needed to give the same float32 representation as the value calculated by Excel. Rationale: this gives the most accurate representation possible for float32, while not containing a misleading number of digits beyond the resolution actually possible with float32.

Example procedure for determining the number of digits to use:

Enter the desired constant in Excel as a formula, e.g. “=PI()/2”

Copy the cell and paste as value into another cell

Select the new cell and copy the displayed value to the clipboard

Paste this value in a IEEE floating point conversion tool; record the single precision floating point representation (in hex), both rounded and unrounded.

Val = the pasted Excel value

X = number of digits in Val

Y = X

Do:

Y = Y - 1

Val1 = Val rounded to Y digits

While ((rounded single float representation of Val == rounded single float representation of Val1) AND
(unrounded single float representation of Val == unrounded single float representation of Val1))

Val2 = Val rounded to Y + 1 digits

Use Val2 as the constant value in the .h and .m files

1.2 - AR999A_ArchGlbPrm_PeerReview_Design

Nexteer_Template_V1.0

Overview

Peer Review Instructions
Technical Review Checklist
Template Change Log


Sheet 1: Peer Review Instructions

Instructions for Functional Design Package Peer Review




PRE-MEETING


Function OwnerConfirm that requirements are reviewed and approved PRIOR to the FDP peer review

Function OwnerStart with latest version of the template for any "first reviews" - Continue to use existing temmplate for re-reviews

Function OwnerProvide the functional design package (changed documents) to the invited attendees 1-2 working days in advance of review

Function OwnerNotify the assigned peer reviewer and make sure they are prepared to do their function in the meeting

Function OwnerIdentify necessary attendance and invite to meeting

Function OwnerComplete the "Author" column information for sections 1 through 3 prior to the review

Function OwnerComplete the attendance invitation list in section 5

Function OwnerFor Re-reviews only: Complete the column "remarks by author" to identify actions taken to address items found in earlier reviews.



DURING MEETING


Function OwnerPresent document changes to the review team

Peer ReviewerCapture attendance of the review

Peer ReviewerCapture actions and issues in section 4. Identify issue summary, Document type, Reference (Requirement ID, section number, etc), Defect Type and indicate status as "OPEN"



POST MEETING


Function OwnerFollow up on all "open" items. Update "Summary of Resolution" to indicate what was done or decided.

Function OwnerSchedule follow up review OR review open items with peer reviewer and obtain agreement to close

Peer ReviewerClose change request in system and confirm all associated tasks are complete. Upload peer review checklist (this document) with any FDP updates

Sheet 2: Technical Review Checklist

Technical Review Checklist - Template Version 02.00.00







Product NameElectric Power SteeringElectrical Arch.4Review ScopeDefect TypeNumbers




YesClosedFR
Function IDAR999A_ArchGlbPrm

DataDict.mRequirement0




NoRejectedFDD
Long NameArchitecture Global Parameters

Interface0




NAOpenModel
Version that you started from. NOT the version you hope to release. If this will be v1.0.0, enter NA. Starting Baseline1.1.0EffortDesign0






FMEA
Author
Review Effort(Hrs.)0.00Standards0






*.m File


Corr+Verf effort(Hrs.)
Documentation0






Cal Process


Total Effort (Hrs.)0.00Others0













Total0







Checklist No.Description of CheckAuthor: This column is for Self review. Author shall fill Yes/No/NA against each point in checklist. AuthorAuthor: This column is for reviewer. Reviewer shall fill Yes/No/NA against each point in checklist. ReviewerAuthor: Detailed Description of the finding shall be provided by the reviewer. Description of finding by reviewerAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status







1Section 1: Data Dictionary














Is Filename of Data Dictionary in correct format?Yes













Is the FDD.Version property correctly updated?Yes













Is the Data Dictionary Verification report error free?No


VerifyDD crashedClosed








Does FDD Long Name, Short Name, and Description match requirements?NA













Are all runnables defined?NA













Do runnables have the correct time step?NA













Do server runnables correctly define arguments?NA













Are all clients defined?NA













Do client definitions match the corresponding server runnable?NA













Does name and metadata of every signal match its corresponding interface signal?NA













Do output signal ranges match requirements (check DOOR min/max attributes too)?NA













Are calibration tables named correctly (e.g. AssiX and AssiY)?NA













Do all calibrations have correct values for all metadata?NA













Are calibration tables named correctly (e.g. AssiX and AssiY)?NA













Is NVM defined in the appropriate number of blocks?NA













Are constants defined with proper scope (local vs global)?Yes













Are all dependent constants and calibrations included in one file?NA




























2Section 2: ModelAuthor: This column is for Self review. Author shall fill Yes/No/NA against each point in checklist. AuthorAuthor: This column is for reviewer. Reviewer shall fill Yes/No/NA against each point in checklist. ReviewerAuthor: Detailed Description of the finding shall be provided by the reviewer. Description of finding by reviewerAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status








Is filename of model in correct format?NA













Is Top level of model annotated with Requirements Baseline?NA













Is the Top level of the model annotated with Tool Dependencies?NA













Is Top level of model annotated with Change Log or History?NA













Does the Component shortname match data dictionary FDD metadata?NA













Is the 2nd level of model free from subsystems that are not Function-Call Subsystems?NA













Is the 2nd level of model free from arithmetic and logic operations?NA













Are the Runnable trigger signals named as "call_<Runnable>"?NA













Does 2nd level of model have a properly updated annotation with name, description, and intended baseline number?NA













Are all data flow layers free of Function-Call Subsystems and Memory Store blocks?NA













Does the Model have the confidentiality and copyright information inside all its Subsystems?NA













Are all the Memory Store blocks for PIM and Display Variables located on the 2nd level of model?NA













Do all Memory Store blocks for PIM and Display Variables have the "Data store name must resolve to Simulink signal object" setting checked to true?NA













Is each diagnostic (NTC) capable of being set to "PASS"?NA













Does non-zero intialization of PIM occur in the function's Init runnable?NA













Does design properly include Set Ram Block Status when NVM RAM values change?NA













Does model include appropriate logic for dealing with missing or corrupted NVM data?NA













Does model execute without errors/warnings after loading NxtrMBDConfig configuration set?NA




























3Section 3: Requirements LinkingAuthor: This column is for Self review. Author shall fill Yes/No/NA against each point in checklist. AuthorAuthor: This column is for reviewer. Reviewer shall fill Yes/No/NA against each point in checklist. ReviewerAuthor: Detailed Description of the finding shall be provided by the reviewer. Description of finding by reviewerAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status








Are all requirements links of the format <FDDNumber>_<ObjectID>?NA













Does requirements HTML report reference only the DOORS module of this component for all links in the design?NA













Are linked blocks linked to the correct requirements(s)? (watch for problems due to copy/pasted blocks)NA













Is the list of unlinked blocks acceptable?NA




























4Section 4: Model AdvisorAuthor: This column is for Self review. Author shall fill Yes/No/NA against each point in checklist. AuthorAuthor: This column is for reviewer. Reviewer shall fill Yes/No/NA against each point in checklist. ReviewerAuthor: Detailed Description of the finding shall be provided by the reviewer. Description of finding by reviewerAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status








Was Model Advisor run with the correct configuration settings?NA













Is the Model Advisor rerport free from "Fails".NA













Are Model Advisor report "Warnings" acceptable?NA




























5Section 5: Delivery PackageAuthor: This column is for Self review. Author shall fill Yes/No/NA against each point in checklist. AuthorAuthor: This column is for reviewer. Reviewer shall fill Yes/No/NA against each point in checklist. ReviewerAuthor: Detailed Description of the finding shall be provided by the reviewer. Description of finding by reviewerAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status








Does Design folder contain only the model, data dictionary, and (optionally) a simulation setup script?Yes













Does Doc folder contain a zipped HTML webview model?NA













Does Reports folder contain only the data dictionary verification report, zipped Model Advisor report, and zipped requirements traceability report?Yes




























4Section 6: Other Issus/Actions IdentifiedDocumentReferenceSummary of resolutionAuthor: Defect type to be selected. Defect TypeAuthor: What action is taken to fix the comment & other remarks need to be filled by author. Remarks By AuthorAuthor: Data in this column shall be filled by reviewer after checking whether the rework is completed. Status







4.1














4.2














4.3














4.4














4.5














4.6














4.7














4.8














4.9














4.10














4.11














4.12














4.13














4.14














4.15














4.16














4.17














4.18














4.19














4.20














4.21














4.22














4.23














4.24














4.25














5Section 7: APPROVALS













RoleFirst ReviewDateAttendanceApproval?










Function Owner*Kathleen Creager6/23/2015Yes











Peer Reviewer*Kevin DerryYesYes










Safety<Name - if invited>












Software<Name - if invited>












ESG / Systems<Name - if invited>












EPDT / CSE<Name - if invited>












Hardware<Name - if invited>












Test<Name - if invited>












RoleSecond Review (if required)DateAttendanceApproval?










Function Owner*<Owner Name>













Peer Reviewer*<Name>












Safety<Name - if invited>












Software<Name - if invited>












ESG / Systems<Name - if invited>












EPDT / CSE<Name - if invited>












Hardware<Name - if invited>












Test<Name - if invited>












RoleThird Review (if required)DateAttendanceApproval?










Function Owner*<Owner Name>













Peer Reviewer*<Name>












Safety<Name - if invited>












Software<Name - if invited>












ESG / Systems<Name - if invited>












EPDT / CSE<Name - if invited>












Hardware<Name - if invited>












Test<Name - if invited>












RoleFourth Review (if required)DateAttendanceApproval?










Function Owner*<Owner Name>













Peer Reviewer*<Name>












Safety<Name - if invited>












Software<Name - if invited>












ESG / Systems<Name - if invited>












EPDT / CSE<Name - if invited>












Hardware<Name - if invited>












Test<Name - if invited>












RoleAdd more if necessaryDateAttendanceApproval?










































P.S.:Yes indicates adherence














No indicates non-adherence, reviewer shall provide suitable comments at the end of this document for each point.














NA indicates not applicable














Sheet 3: Template Change Log

RevChangeAuthor
01.00.05Added lesson learned #3.5MDK
01.00.06Added lesson learned #3.6, 3.7 - Structure and writing of NVM in mfiles and models.MDK
02.00.00Combined ESG and Systems into one, compatible with Data_Management 2.13.0 of CreateDD and VerifyDD.K. Derry

















































































2 - Component Design

Component Design

Module Detailled Design

Component Documentation

2.1 - AR350A_ImcArbn_FDD

Inter-Micro Communication Arbitration

FDD #AR350A

.

1. High Level Description 4

2. Function I/O 5

2.1. Input Description 5

2.2. Output Description 5

2.3. Sub-Function Data Flow 6

2.3.1. Imc Arbitration Transmit side data flow 6

2.3.2. Imc Arbitration Receive side data flow 6

2.3.3. Rolling Counter Handling 7

3. Design Rationale and Assumptions 14

4. Sub-Functions 15

4.1. Sub-Function: ImcArbnInit1 15

4.1.1. Hardware Related Design 15

4.1.2. Software Related Design 15

4.2. Sub-Function: ImcArbnTx 16

4.2.1. Hardware Related Design 16

4.2.2. Software Related Design 16

4.3. Sub-Function: ImcArbnPer1 19

4.3.1. Hardware Related Design 19

4.3.2. Software Related Design 19

4.4. Sub-Function: ImcArbnPer2 19

4.4.1. Hardware Related Design 19

4.4.2. Software Related Design 20

4.5. Sub-Function: ImcArbnPer3 20

4.5.1. Hardware Related Design 20

4.5.2. Software Related Design 20

4.6. Sub-Function: ImcArbnRx 21

4.6.1. Hardware Related Design 21

4.6.2. Software Related Design 21

4.7. Sub-Function: ImcArbnPer4 25

4.7.1. Hardware Related Design 25

4.7.2. Software Related Design 25

4.8. Sub-Function: ImcArbnPer5 26

4.8.1. Hardware Related Design 26

4.8.2. Software Related Design 26

4.9. Sub-Function: ImcArbnPer6 27

4.9.1. Hardware Related Design 27

4.9.2. Software Related Design 27

4.10. Sub-Function: SetRxSigGroup 29

4.10.1. Hardware Related Design 29

4.10.2. Software Related Design 29

4.11. Sub-Function: GetTxSigGroup 31

4.11.1. Hardware Related Design 31

4.11.2. Software Related Design 31

4.12. Sub-Function: GetTxRateGroup 33

4.12.1. Hardware Related Design 33

4.12.2. Software Related Design 33

4.13. Sub-Function: GetSigImcDataExtdSts_<DATA_TYPE> 35

4.13.1. Hardware Related Design 35

4.13.2. Software Related Design 35

4.14. Sub-Function: GetSigImcData_<DATA_TYPE> 37

4.14.1. Hardware Related Design 37

4.14.2. Software Related Design 37

4.15. Sub-Function: RxFrmVldChk 38

4.15.1. Hardware Related Design 38

4.15.2. Software Related Design 38

4.16. Sub-Function: ImcChResyncHndlg 42

4.16.1. Hardware Related Design 42

4.16.2. Software Related Design 42

4.17. Sub-Function: CreatSigGroupData 43

4.17.1. Hardware Related Design 43

4.17.2. Software Related Design 43

4.18. Sub-Function: DecodSigGroupData 44

4.18.1. Hardware Related Design 44

4.18.2. Software Related Design 44

4.19. Sub-Function: GetBitMask 46

4.19.1. Hardware Related Design 46

4.19.2. Software Related Design 46

4.20. Sub-Function: GetImcFltParamByte 47

4.20.1. Hardware Related Design 47

4.20.2. Software Related Design 47

4.21. Sub-Function: VldtRollgCntr 49

4.21.1. Hardware Related Design 49

4.21.2. Software Related Design 49

4.22. Sub-Function: VldtRollgCntrAlg 51

4.22.1. Hardware Related Design 51

4.22.2. Software Related Design 51

4.23. Sub-Function: RollgCntrSeqChk 54

4.23.1. Hardware Related Design 54

4.23.2. Software Related Design 54

4.24. Sub-Function: NoDataHndlg 55

4.24.1. Hardware Related Design 55

4.24.2. Software Related Design 55

4.25. Sub-Function: EvlSigGroupNeverRxdMissSts 57

4.25.1. Hardware Related Design 57

4.25.2. Software Related Design 57

4.26. Sub-Function: OvrdSigStsDurgStrtUp 59

4.26.1. Hardware Related Design 59

4.26.2. Software Related Design 59

4.27. Sub-Function: GetImcSigSts 60

4.27.1. Hardware Related Design 60

4.27.2. Software Related Design 60

4.28. Sub-Function: NoDataRxd 62

4.28.1. Hardware Related Design 62

4.28.2. Software Related Design 62

5. Timing / Execution Constraints 63

5.1. Rationale / Comments 63

5.2. Rates and State Execution 63

6. Serial Communications Interfaces 63

7. Additional Information 63

7.1. Imc Arbitration – Configuration 63

7.1.1. Hardware Related Design 63

7.1.2. Software Related Design 63

7.2. Imc Signal Mapping for Receiving FDDs 69

7.2.1. Hardware Related Design 69

7.2.2. Software Related Design 69

7.3. Enumerations - Signal Status, Extended Signal Status and Signal Source 69

7.3.1. Hardware Related Design 69

7.3.2. Software Related Design 69

8. Revision Record & Change Approval 70

High Level Description

The Inter-Micro Communication (IMC) Arbitration prepares data for transmission to a complimentary ECU through two redundant communication paths. On the receive side, the Arbitration reads data from the primary source and determines the data validity. A validity fault on primary source prompts the IMC Arbitration component to evaluate the same signal from the secondary source. Faulty signals from the primary source will be replaced with signals from the secondary source, as long as they are valid. If both data sources are invalid the IMC Arbitration outputs the signal status based on never received, missing and invalid conditions.


Function I/O

Input Description

Inputs for this component are provided by IMC signal configurations that are defined based on program requirements. Refer Section 5.23 for more details.

Input NameDescription
<Signal1>…<Signal#>All RTE signals coming from any periodic that are required to be read by IMC Arbitration scheduled runnables. The list of signals can change from program to program based on program dataflow requirements.

Output Description

Refer Data Dictionary for details.


Sub-Function Data Flow

Imc Arbitration Transmit side data flow

Imc Arbitration Receive side data flow


Rolling Counter Handling

General Description:

Rolling counters are used to ascertain sequence of every Signal Group reception via IMC channels.

Rolling counters are embedded in the start byte with length of 5 bits in every frame on both channels. This sequence is generated for each Rate Group separately with range of 0 to 31. Roll over will happen once the Rolling counter reaches 31.

All Signal Groups defined under a Rate Group will have same value of Rolling Counter in a given cycle of transmission.

On the receiving side Rolling counter evaluation poses following challenges:

  1. Underlying protocols of Primary and Secondary sources have different data handling methods and hence, at any instant, the data received from any of these channels will be different.

  2. Underlying protocols of Primary and Secondary sources have different handling in Software which in turn impacts reception hence, at any instant, the data processed will be different.

  3. Corruption in the channel level causes loss in messages and hence loss in synchronization.

Rolling counter algorithm addresses all these challenges and determines a robust approach to handle these.

Rolling Counter Algorithm description:

The following are addressed by this algorithm:

  1. Validation of the data sequence of Signal Group based on Rolling counter from Primary and Secondary sources

  2. Data Sequence validation from IMC channels which are of same or different characteristics.

  3. Resynchronization of the Rolling counter check during data corruption in the channels.

  4. Resynchronization of the Rolling counter check when the Rolling counter reference changes ( Roll-over cases)

  5. Indicates if a Rolling counter fault needs to be reported.

Further details are indicated in the following generic flowchart.

Variables used in the flowchart are,

  1. DataValid: This is a flag which indicates if valid Data is received from the Communication channel.

  2. GoodDataSource:This indicates which Communication channel ( Primary or Secondary) has Valid data

  3. MessageSkipCounter: This is a counter which indicates the number of missed messages in the form of No data or invalid data.

  4. RollCounterError: Indicates if a rolling counter fault need to be reported

  5. CounterThreshold:This is a value related to the typical amount of latency in data transmission in the communication channel.

  6. ChannelSwitchDelay:This is a value related to the dynamics of the redundant communication channels. This indicates the typical delay in a message reception between the communication channels at any instant.

  7. PreviousRolling Counter:This is the value of the rolling counter of the previously stored valid message.

  8. RollCounterResyncCounterPrimary: This is a counter which indicates the number of times data is missed because of only Rolling Counter issue on primary channel.

  9. RollCounterResyncCounterSecondary: This is a counter which indicates the number of times data is missed because of only Rolling Counter issue on Secondary channel.

  10. ResyncThreshold: This is the number of consecutive Rolling counter issues after which it could be assumed that either of the MCUs have lot synchronization of rolling counter, and hence a resync has to happen.

  11. RollCounterPrimaryResync – Previous rolling counter value received during resync period on Primary channel

  12. RollCounterSecondaryResync – Previous rolling counter value received during resync period on Secondary channel

  13. PrimaryResyncActive – Indicates whether Resync is active on Primary channel

  14. SecondaryResyncActive – Indicates whether Resync is active on Secondary channel.

In short, the Rolling counter algorithm behaves as follows,

  1. Data is considered valid in the following cases,

    1. For consecutive messages from same Comm. channel, if the new Rolling counter falls within the range

(ExpectedRollCntrValue – LowerLimit) <= CurrentRolling Counter <= (ExpectedRollCntrValue + CounterThreshold)

Where ExpectedRollCntrValue = PreviousRolling Counter + MessageSkipCounter + 1,

LowerLimit = CounterThreshold if it is lesser than MessageSkipCounter else, LowerLimit = MessageSkipCounter

  1. For consecutive messages from different Comm. channel, if the new RL falls within a range specified by

(ExpectedRollCntrValue – LowerLimit) <= CurrentRolling Counter <= (ExpectedRollCntrValue + (CounterThreshold + ChannelSwitchDelay))

Where ExpectedRollCntrValue = PreviousRolling Counter + MessageSkipCounter + 1,

LowerLimit = CounterThreshold + ChannelSwitchDelay if it is lesser than MessageSkipCounter else, LowerLimit = MessageSkipCounter

  1. Rolling Counter error will not be set in the following cases,

    1. For consecutive messages from same Comm. channel, if the new Rolling counter falls within the range

(ExpectedRollCntrValue – CounterThreshold) <= CurrentRolling Counter <= (ExpectedRollCntrValue + CounterThreshold)

Where ExpectedRollCntrValue = PreviousRolling Counter + MessageSkipCounter + 1

  1. For consecutive messages from different Comm. channel, if the new RL falls within a range specified by

(ExpectedRollCntrValue – (CounterThreshold + ChannelSwitchDelay)) <= CurrentRolling Counter <= (ExpectedRollCntrValue + (CounterThreshold + ChannelSwitchDelay))

Where ExpectedRollCntrValue = PreviousRolling Counter + MessageSkipCounter + 1

  1. On every skip of message (includes missing, CRC error and No data) MessageSkipCounter is incremented. The next rolling counter is expected to have a value bigger than the previous rolling counter value by this counter amount. Any active resynchronization will be cleared as next rolling counter value will not be just next to currently stored value.

  2. If consecutive ResyncThreshold amount of rolling counter issues occur (cases when old or invalid CurrentRollingCounter detected) in a channel, then it is assumed that either of the MCUs have lot synchronization of rolling counter on the particular channel, and hence a resynchronization is triggered.

  3. Following pseudo code explains resynchronization logic on Primary channel. Same is applicable for Secondary channel as well. This logic will start run when old or invalid CurrentRollingCounter detected in a channel. Note that at any point of time, Resync will be active for only one channel.

If((Channel == Primary) && (SecondaryResyncActive == FALSE)) /* Secondary Resync not active */

{

If(RollCounterPrimaryResync == 0xFF) /* First time Rolling counter fault detected */

{

RollCounterResyncCounterPrimary ++ /* Update Resync counter */

RollCounterPrimaryResync = CurrentRollingCounter /* Update current rolling counter */

PrimaryResyncActive = TRUE /*Activate primary resync */

}

Else

{

If(CurrentRollingCounter == (RollCounterPrimaryResync+1) /* Check new rolling counter is just next to current previous rolling counter */

{

RollCounterResyncCounterPrimary ++ /* Good to proceed resync. Increment Resync counter to reach threshold. */

RollCounterPrimaryResync = CurrentRollingCounter /* Update Rolling counter */

}

Else /* Rolling counter is not next value. Abort Resync. Try again */

{

RollCounterResyncCounterPrimary = 0

RollCounterPrimaryResync = 0xFF

PrimaryResyncActive = FALSE

}

}

}

When RollCounterResyncCounterPrimary reaches ResyncThreshold, Rolling counter and data will be declared as valid.

  1. For rolling counter evaluation within the same Comm. Channel, a latency value of CounterThreshold is used. For rolling counter evaluation within different Comm. Channel, an additional latency value of ChannelSwitchDelay is used.

Following flow-charts indicates overall rolling counter handling.

Rolling counter algorithm spreads across following functions:

  1. ImcArbnInit1 – Initialization of Signal Group Resync Rolling counter buffer and Signal Group data source buffer

  2. ImcArbnRx – Resync and Skip counter handling during no data situation.

  3. RxFrmVldChk - Resync and Skip counter handling

  4. VldtRollgCntr – Validate rolling counter

  5. VldtRollgCntrAlg – Rolling counter algorithm implementation

  6. RollgCntrSeqChk – Valid Rolling counter interval checking

  7. NoDataHndlg – Rolling counter handling when No data received on both channels

  8. ImcChResyncHndlg – Resync logic

Design Rationale and Assumptions

  1. Imc Arbitration Receive function designed based on the assumption that first byte and last byte in a valid Signal Group is always a non-zero value.

  2. Signal Group data received by IMC Arbitration component considered as valid if CRC and rolling counters found to be good. This means, IMC Arbitration component is not designed to evaluate quality of individual signals packed in a Signal Group. The signal status provided by this component is just mere expression of quality of reception. It is assumed that evaluation of quality of Signal would be carried-out by respective sending/receiving components.

  3. Imc Arbitration component doesn’t use fault threshold tracking mechanism implemented by Diagnostics Manager due to the fact that this component is currently assigned with one NTC (NTC 0x3F) for logging all frame faults and these faults are detected across three Rx periodics (ImcArbnPer4, ImcArbnPer5 and ImcArbnPer6). Diag Manager offers tracking mechanism only for a single periodic. This component keeps track of faulty frames using PIM variables and logs/clears the NTC in 100ms Rx periodic (ImcArbnPer6).

  4. Imc Arbitration component doesn’t care about availability of data bandwidth to transmit /receive all configured Signal Groups. It allows the user to configure up to 255 Signal Groups. Assumption is that optimal use of IMC channels would be ensured during system design.

  5. Imc Arbitration component doesn’t care about channel type of primary source or secondary source. This component should work independent of type of channel as long as the frame format of a Signal Group followed.

  6. Imc Arbitration Tx functionality provides interfaces to get transmit data for individual Signal Group or all signal groups configured under given Rate Group. It is up to the primary and secondary source Tx layers to decide how they would like to get the Tx data from IMC Arbitration component, considering all relevant requirements.

  7. It is mandatory to transmit all Signal Groups on primary source channel. Transmission of particular Signal Group on secondary source channel is optional and that need to be specified during configuration.

  8. Tx / Rx processing for particular Rate Group will happen only if it has minimum one Signal Group. Otherwise, evaluation of Tx / Rx processing of said Rate Group will be skipped.

  9. This component provides Signal status definition in two versions: basic and extended. While basic signal status indicates No Data, Valid and Invalid cases, extended signal status provides status of startup, Signal Group never received, Signal Group missing, Signal Group availability on only one channel or on both channels. Following table indicates relation between these two status:

  1. Signal Status IMCARBNRXEXTDSTS_STRTG / IMCARBNRXSTS_NODATA returned to IMC Signal users until initial start-up time completion even if integrity of received signal data found to be good. This is to ensure that the availability of properly calculated values in RTE by the components which are transmitting signals via IMC.

  2. Data consistency across the component is ensured by exclusive area access. Following are the places where exclusive area access provided:

    1. Reading from / Writing into Tx Buffer

    2. Reading from / Writing into Rx buffer

    3. Writing to Received signal data buffer, Status buffer and Signal source buffers.

  3. This component provides two server runnables to copy data buffer during transmission: one for Rate Group level (provides all Signal Groups configured under given Rate Group) and another for Signal Group level (provides all Signals configured under given Signal Group). It is up to the respective channel drivers to decide which one to be invoked depending on buffer handling scheme.

  4. Primary and Secondary source receive data buffers are defined with same size even though, transmission of Signal Groups on Secondary source is optional. It is done to avoid complex logics in buffer handling. For e.g if SignalGroupA is configured to be PrimaryOnly, then there is no need to allocate buffer space in the Secondary source buffer for SignalGroupA. But, the design allocates buffer SignalGroupA as well in the Secondary source buffer to keep common buffer definition and access logic.

  5. The server runnables defined in this component designed based on the assumption that it will be invoked only from the tasks which runs at the rate of 2ms or greater than that.

Sub-Functions

Sub-Function: ImcArbnInit1

None

ImcArbnInit1
Function scopeGlobal, Init function
DescriptionInitialized Signal Group and Signal related buffers. Gets start time of the component and saves it in a PIM
ParametersNone
Return valueNone
Affected static and global variablesReads / Writes to following variables in functions
SigGroupNeverRxd
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
RxdSigDataExtdSts
RxdSigDataSrc
SigGroupDataSrc
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessAccesses following configuration data
IMCARBN_TOTALNROFSIG_CNT_U16
IMCARBN_TOTALNROFSIGGROUP_CNT_U08
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
Init Task

Sub-Function: ImcArbnTx

None

ImcArbnTx
Function scopeLocal
Description1) This function collects signal data for all Signal Groups configured in the ImcArbn_SigGroupConfig_Rec for given Rate Group and packs each signal to the specified start bit in each Signal Group as defined in the configuration.
2) A Pattern Identification flag, Rolling Counter, Signal Group ID, CRC, Compliment Pattern ID and Compliment Rolling Counter are added for each Signal Group.
3) The resulting signal group is put into a transmit data buffer for for the GetTxSigGroup or GetTxRateGroup client calls to access.
ParametersRequires following parameters
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
Return valueNone
Affected static and global variablesWrites to following variables
TxBuf
RollgCntr
Affected inter-runnable variableNone
Exclusive area accessNeeded to update Transmit data buffer
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
Calibration data accessNone
Called local functionsCalls following local function
CreatSigGroupData
External Interface callCalls following external function in the sub-functions
Crc_CalculateCRC8
Called byCalled by following functions only when atleast one Signal Group is configured for particular Rate Group
e.g if no Signal Group configured for 100ms Rate Group then this function will not get called from ImcArbnPer3
ImcArbrPer1
ImcArbrPer2
ImcArbrPer3

Sub-Function: ImcArbnPer1

None

ImcArbrPer1
Function scope2ms Periodic, Global
DescriptionFrames transmit data for all Signal Groups configured under 2ms Rate Group and stores in the Transmit data buffer.
ParametersNone
Return valueNone
Affected static and global variablesWrites to following variables
TxBuf
RollgCntr
Affected inter-runnable variableNone
Exclusive area accessNeeded to update Transmit data buffer
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
Calibration data accessNone
Called local functionsCalls following function only when number of Signal Groups configured under the 2ms Rate Group is NOT zero (IMCARBN_NROF2MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnTx
External Interface callCalls following external function
Crc_CalculateCRC8
Called by2ms Task

Sub-Function: ImcArbnPer2

None

ImcArbrPer2
Function scope10ms Periodic, Global
DescriptionFrames transmit data for all Signal Groups configured under 10ms Rate Group and stores in the Transmit data buffer.
ParametersNone
Return valueNone
Affected static and global variablesWrites to following variables
TxBuf
RollgCntr
Affected inter-runnable variableNone
Exclusive area accessNeeded to update Transmit data buffer
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
Calibration data accessNone
Called local functionsCalls following function only when number of Signal Groups configured under the 10ms Rate Group is NOT zero (IMCARBN_NROF10MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnTx
External Interface callCalls following external function in the sub-functions
Crc_CalculateCRC8
Called by10ms Task

Sub-Function: ImcArbnPer3

None

ImcArbrPer3
Function scope100ms Periodic, Global
DescriptionFrames transmit data for all Signal Groups configured under 100ms Rate Group and stores in the Transmit data buffer.
ParametersNone
Return valueNone
Affected static and global variablesWrites to following variables
TxBuf
RollgCntr
Affected inter-runnable variableNone
Exclusive area accessNeeded to update Transmit data buffer
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
Calibration data accessNone
Called local functionsCalls following function only when number of Signal Groups configured under the 100ms Rate Group is NOT zero (IMCARBN_NROF100MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnTx
External Interface callCalls following external function in the sub-functions
Crc_CalculateCRC8
Called by100ms Task

Sub-Function: ImcArbnRx

None

ImcArbnRx
Function scopeLocal
Description1) This sub-function receives signal groups from two Imc Channels: Primary Source and Secondary Source. It first validates the data from the primary source and if there is any fault found with the Signal Group data, it will switch to the secondary source for that signal.
2) If the Signal Group data has been sourced from primary source, it checks availability of the Signal Group data received via secondary source. If the signal group is available in secondary source buffer, then it sets respective signals defined under signal group to IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP. Otherwise it sets the Signal status to IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP.
3) If the signal group data received on primary source found to be invalid, then it switches to secondary source data buffer and evaluates it. If valid, the signal status is set to IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP. Otherwise set to IMCARBNRXEXTDSTS_DATAINVLD.
4) If the Signal Group is not received in any of the channels, then it evaluates missing and never received conditions and sets signal status to any of the following depends on the conditions: IMCARBNRXEXTDSTS_NEVERRXD, IMCARBNRXEXTDSTS_MISS, IMCARBNRXEXTDSTS_PREVDATA
5) If initial start-up timer is not complete, then signal status is set to IMCARBNRXEXTDSTS_STRTG irrespective of above evaluations.
6) There are a total of two Rx buffers are defined as input to this function: one for primary source, another one for secondary source.
7) There are three buffers (Signal Data, Signal Status, Signal Source) defined to serve signal data requests from the components which uses signals received via IMC Arbitration component. This function puts processed values into these buffers.
8) PIM variables are used to track frame faults and log NTC based on threshold.
9) Following validation steps are carried out to declare received Signal Group data as valid / invalid:
a)No Data Received check
b)CRC Check
c) Rolling counter check
ParametersRequires following parameters
FrmFltCntr - Pointer to the frame fault counters for the given Rate Group where frame faults to be accounted.
Type: Ary2D_u8_2_2*
Valid Range: 0x00000001 to 0xFFFFFFFF
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
IniTiOutChkCmpl - Initial time-out completion status
Type: boolean
TRUE – Time-out completed
FALSE – Time-out not completed
Return valuevoid
Affected static and global variablesRead and Write to following variables in sub-functions
SigGroupMissCntr
SigGroupNeverRxd
RxdSigData
RxdSigDataExtdSts
PrevRollgCntrRxd
PrimSrcRxBuf
SecdrySrcRxBuf
RxdSigDataSrc
SigGroupSkipCntr
PrimSrcResyncCntr
SecdrySrcResyncCntr
ResyncOnPrimActv
ResyncOnSecdryActv
SigGroupDataSrc
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
FrmFltCntr2MilliSec
FrmFltCntr10MilliSec
FrmFltCntr100MilliSec
Affected inter-runnable variableReads following interunnable variable
IniTiOutChkCmpl
Exclusive area accessNeeded to read received Signal Group data buffers and to write Imc Signal data, Signal Status and Signal source buffers.
Configuration accessAccesses following configuration data in the sub-functions call
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
MISSSIGGROUPTIOUT_CNT_U08
Calibration data accessAccesses following calibration value in the sub-functions call
ImcArbnFrmFltThd
Called local functionsCalls following local function
RxFrmVldChk
DecodSigGroupData
NoDataHndlg
OvrdSigStsDurgStrtUp
NoDataRxd
External Interface callCalls following external function
Crc_CalculateCRC8
Called byCalled by following functions only when atleast one Signal Group is configured for particular Rate Group
e.g if no Signal Group configured for 100ms Rate Group then this function will not get called from ImcArbnPer6.
ImcArbrPer4
ImcArbrPer5
ImcArbrPer6

Sub-Function: ImcArbnPer4

None

ImcArbrPer4
Function scope2ms Periodic, Global
DescriptionProcesses received Signal Group data via IMC Channels for all Signal Groups configured under 2ms Rate Group and stores validated Signal data, Signal Status and Signal source in respective buffers.
ParametersNone
Return valueNone
Affected static and global variablesRead and Write to following variables in sub-functions
SigGroupMissCntr
SigGroupNeverRxd
RxdSigData
RxdSigDataExtdSts
PrevRollgCntrRxd
PrimSrcRxBuf
SecdrySrcRxBuf
FrmFltCntr2MilliSec
RxdSigDataSrc
SigGroupSkipCntr
PrimSrcResyncCntr
SecdrySrcResyncCntr
ResyncOnPrimActv
ResyncOnSecdryActv
SigGroupDataSrc
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
Affected inter-runnable variableReads following inter-runnable variable
IniTiOutChkCmpl
Exclusive area accessNeeded to read received Signal Group data buffers and write to Imc Signal data, Signal Status and Signal source buffers
Configuration accessAccesses following configuration data in the sub-functions call
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
MISSSIGGROUPTIOUT_CNT_U08
Calibration data accessAccesses following calibration value in the sub-functions call
ImcArbnFrmFltThd
Called local functionsCalls following function only when number of Signal Groups configured under the 2ms Rate Group is NOT zero (IMCARBN_NROF2MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnRx
External Interface callCalls following external function
Crc_CalculateCRC8
Called by2ms Task

Sub-Function: ImcArbnPer5

None

ImcArbrPer5
Function scope10ms Periodic, Global
DescriptionProcesses received Signal Group data via IMC Channels for all Signal Groups configured under 10ms Rate Group and stores validated Signal data, Signal Status and Signal source in respective buffers.
ParametersNone
Return valueNone
Affected static and global variablesRead and Write to following variables in sub-functions
SigGroupMissCntr
SigGroupNeverRxd
RxdSigData
RxdSigDataExtdSts
PrevRollgCntrRxd
PrimSrcRxBuf
SecdrySrcRxBuf
FrmFltCntr10MilliSec
RxdSigDataSrc
SigGroupSkipCntr
PrimSrcResyncCntr
SecdrySrcResyncCntr
ResyncOnPrimActv
ResyncOnSecdryActv
SigGroupDataSrc
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
Affected inter-runnable variableReads following inter-runnable variable
IniTiOutChkCmpl
Exclusive area accessNeeded to read received Signal Group data buffers and write to Imc Signal data, Signal Status and Signal source buffers
Configuration accessAccesses following configuration data in the sub-functions call
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
MISSSIGGROUPTIOUT_CNT_U08
Calibration data accessAccesses following calibration value in the sub-functions call
ImcArbnFrmFltThd
Called local functionsCalls following function only when number of Signal Groups configured under the 10ms Rate Group is NOT zero (IMCARBN_NROF10MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnRx
External Interface callCalls following external function
Crc_CalculateCRC8
Called by10ms Task

Sub-Function: ImcArbnPer6

None

ImcArbrPer6
Function scope100ms Periodic, Global
Description1. Evaluates initial start-up time out and sets IniTiOutChkCmpl flag once start-up exceeded ECU initialization timeout ImcArbnEcuIninTiOutThd. IniTiOutChkCmpl would be used across all Rx periodics to set signal status IMCARBNRXEXTDSTS_STRTG.
2. Processes received Signal Group data via IMC Channels for all Signal Groups configured under 100ms Rate Group and stores validated Signal data, Signal Status and Signal source in respective buffers.
3. Logs NTCNR_0X03F if any of Frame Fault counters exceeds ImcArbnFrmFltThd.
ParametersNone
Return valueNone
Affected static and global variablesRead and Write to following variables in sub-functions
Read and Write to following variables in sub-functions
SigGroupMissCntr
SigGroupNeverRxd
RxdSigData
RxdSigDataExtdSts
PrevRollgCntrRxd
PrimSrcRxBuf
SecdrySrcRxBuf
FrmFltCntr100MilliSec
RxdSigDataSrc
SigGroupSkipCntr
PrimSrcResyncCntr
SecdrySrcResyncCntr
ResyncOnPrimActv
ResyncOnSecdryActv
SigGroupDataSrc
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
Affected inter-runnable variableReads /Writes following inter-runnable variable
IniTiOutChkCmpl
Exclusive area accessNeeded to read received Signal Group data buffers and write to Imc Signal data, Signal Status and Signal source buffers
Configuration accessAccesses following configuration data in the sub-functions call
SIGGROUPCONFIG_REC
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
MISSSIGGROUPTIOUT_CNT_U08
Calibration data accessAccesses following calibration value in the sub-functions call
ImcArbnEcuIninTiOutThd
ImcArbnFrmFltThd
Called local functionsCalls following local function
GetImcFltParamByte
Calls following function only when number of Signal Groups configured under the 100ms Rate Group is NOT zero (IMCARBN_NROF100MILLISECRATEGROUP_CNT_U08 != 0)
ImcArbnRx
External Interface callCalls following external function
GetTiSpan100MicroSec32bit
SetNtcSts
Crc_CalculateCRC8
Called by100ms Task

Sub-Function: SetRxSigGroup

None

SetRxSigGroup
Function scopeServer Runnable, Global
DescriptionThis server function is called by primary / secondary source Rx layers to store signal group data that have been received over IMC channels.
ParametersRequires following parameters
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
DataSrc - Imc Channel ID from which the server runnable called
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
Buf - Pointer to the received Signal Group data buffer
Type: Ary1D_u8_8*
Valid Range: 0x00000001 to 0xFFFFFFFF
Return valueReturns following value
ErrCod - Informs the caller about status of the operation
Type: Std_ReturnType
Range: E_OK (0)
E_NOT_OK (1)
Affected static and global variablesWrites to following variables in sub-functions
PrimSrcRxBuf
SecdrySrcRxBuf
SigGroupNeverRxd
Affected inter-runnable variableNone
Exclusive area accessNeeded to write primary and secondary source received data buffers.
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byPrimary and Secondary Source drivers

Sub-Function: GetTxSigGroup

None

GetTxSigGroup
Function scopeServer Runnable, Global
DescriptionThis server function is called by primary / secondary source Tx layers to get signal group data to transmit over IMC channels.
ParametersRequires following parameters
SigGroupId - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
Buf - Pointer to the buffer where transmit data to be copied
Type: uint8*
Valid Range: 0x00000001 to 0xFFFFFFFF
Return valueReturns following value
ErrCod - Informs the caller about status of the operation
Type: Std_ReturnType
Range: E_OK (0)
E_NOT_OK (1)
Affected static and global variablesReads following variable
TxBuf
Affected inter-runnable variableNone
Exclusive area accessNeeded to read from Tx data buffer.
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byPrimary and Secondary Source drivers

Sub-Function: GetTxRateGroup

None

GetTxRateGroup
Function scopeServer Runnable, Global
DescriptionThis server function is called by primary / secondary source Tx layers to get transmit data of all Signal Groups configured under given Rate Group.
ParametersRequires following parameters
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
Buf - Pointer to the buffer where transmit data to be copied
Type: uint8*
Valid Range: 0x00000001 to 0xFFFFFFFF
Return valueReturns following value
ErrCod - Informs the caller about status of the operation
Type: Std_ReturnType
Range: E_OK (0)
E_NOT_OK (1)
Affected static and global variablesReads following variable
TxBuf
Affected inter-runnable variableNone
Exclusive area accessNeeded to read from Tx data buffer.
Configuration accessAccesses following configuration data
RATEGROUPOFFS_CNT_U08
NRSIGGROUPINRATEGROUP_CNT_U08
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byPrimary and Secondary Source drivers

Sub-Function: GetSigImcDataExtdSts_<DATA_TYPE>

None

GetSigImcDataExtdSts_<DATA_TYPE>
Function scopeServer Runnable, Global
Description1) This server function is called by application components to get particular Signal data received over IMC Channels, Extended Signal Status and Signal Source.

2) There are 8 Server runnables defined to get signal data with extended signal status received via Imc channels each of which called based on received signal data type. Place holder <DATA_TYPE> can be any of the following: f32 (float32), u32 (uint32), s32 (sint32), u16 (uint16), s16 (sint16), u08 (uint8), s08 (sint8), logl (boolean).
ParametersRequires following parameters
SigId - IMC Signal Id provided by IMC Arbitration Configuration
Type: uint16
Range:
0 to 65535
Data - Pointer to the signal data buffer where signal data to be copied
Type: uint8*
Valid Range: 0x00000001 to 0xFFFFFFFF
Sts - Pointer to signal status buffer where signal status to be copied
Type: ImcArbnRxSts1*
Valid Range: 0x00000001 to 0xFFFFFFFF
DataSrc - Imc Channel ID from which the signal data received
Type: ImcArbnRxDataSrc1*
Valid Range: 0x00000001 to 0xFFFFFFFF
Return valueReturns following value
ErrCod - Informs the caller about status of the operation
Type: Std_ReturnType
Range: E_OK (0)
E_NOT_OK (1)
Affected static and global variablesReads following variable
RxdSigData
RxdSigDataExtdSts
RxdSigDataSrc
Affected inter-runnable variableNone
Exclusive area accessNeeded to read from Signal data, Signal status and Signal Source buffers
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byApplication components which needs signal data received over IMC Channels

Sub-Function: GetSigImcData_<DATA_TYPE>

None

GetSigImcData_<DATA_TYPE>
Function scopeServer Runnable, Global
Description1) This server function is called by application components to get particular Signal data received over IMC Channels and Signal Status.
2) There are 8 Server runnables defined to get signal data with signal status received via Imc channels each of which called based on received signal data type. Place holder <DATA_TYPE> can be any of the following: f32 (float32), u32 (uint32), s32 (sint32), u16 (uint16), s16 (sint16), u08 (uint8), s08 (sint8), logl (boolean).
ParametersRequires following parameters
SigId - IMC Signal Id provided by IMC Arbitration Configuration
Type: uint16
Range:
0 to 65535
Data - Pointer to the signal data buffer where signal data to be copied
Type: uint8*
Valid Range: 0x00000001 to 0xFFFFFFFF
Sts - Pointer to signal status buffer where signal status to be copied
Type: ImcArbnRxSts1*
Valid Range: 0x00000001 to 0xFFFFFFFF
 DataSrc -
Return valueReturns following value
ErrCod - Informs the caller about status of the operation
Type: Std_ReturnType
Range: E_OK (0)
E_NOT_OK (1)
Affected static and global variablesReads following variable
RxdSigData
RxdSigDataExtdSts
Affected inter-runnable variableNone
Exclusive area accessNeeded to read from Signal data and Signal status buffers
Configuration accessNone
Calibration data accessNone
Called local functionsCalls following local function
GetImcSigSts
External Interface callNone
Called byApplication components which needs signal data received over IMC Channels

Sub-Function: RxFrmVldChk

None

RxFrmVldChk
Function scopeLocal
DescriptionEvaluates validity of received Signal Group data based on CRC and Rolling counter values and returns status that indicates whether given Signal Group data, rolling counter values are valid or not. In addition to that it tracks CRC and Rolling counter frame faults per Rate Group per fault type (CRC / Rolling counter) using Frame Fault counters. This function also tracks Skip counters and Resync counters for Rolling counter evaluation.
ParametersRequires following parameters
DataBuf - Pointer to the received Signal Group data buffer
Type: uint8*
Valid Range: 0x00000001 to 0xFFFFFFFF
FrmFltCntr - Pointer to the frame fault counters for the given Rate Group where frame faults to be accounted.
Type: Ary2D_u8_2_2*
Valid Range: 0x00000001 to 0xFFFFFFFF
SigGroupDataSrc- Imc Channel ID on which Signal Group data received
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
PrimSrcOnlySigGroup - Flag to indicate whether the given Signal Group is only transmitted on Primary Source or No data received on secondary source.
Type: boolean
TRUE – Primary Source only Signal Group or No data received on secondary source
FALSE – Transmtted on both Primary and Secondary sources
IniTiOutChkCmpl - Initial time-out completion status
Type: boolean
TRUE – Time-out completed
FALSE – Time-out not completed
Return valueReturns following value
FrmSts - Informs the caller about validity of Rolling counter and Data
Type: ImcArbnRxRollgCntrSts1
Range:
ROLLGCNTRVLDNEWDATA (0)
ROLLGCNTRVLDOLDDATA (1)
ROLLGCNTRINVLD (2)
Affected static and global variablesRead and Write to following variables in sub-functions
SigGroupSkipCntr
PrimSrcResyncCntr
PrimSrcRollgCntrResync
ResyncOnPrimActv
SecdrySrcResyncCntr
SecdrySrcRollgCntrResync
ResyncOnSecdryActv
FrmFltCntr2MilliSec
FrmFltCntr10MilliSec
FrmFltCntr100MilliSec
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsCalls following local function
Crc_CalculateCRC8
ImcChResyncHndlg
VldtRollgCntr
External Interface callNone
Called byCalled by following functions
ImcArbnRx

Sub-Function: ImcChResyncHndlg

None

ImcChResyncHndlg
Function scopeLocal
DescriptionRuns Resynchronization logic for Primary and Secondary sources
ParametersRequires following parameters
SigGroupDataSrc- Imc Channel ID on which Signal Group data received
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
PrsntRollgCntr - Present Rolling counter received for the Signal Group
Type: uint8
Range: 0 to 31
Return valueNone
Affected static and global variablesRead and Write to following variables in sub-functions
PrimSrcResyncCntr
PrimSrcRollgCntrResync
ResyncOnPrimActv
SecdrySrcResyncCntr
SecdrySrcRollgCntrResync
ResyncOnSecdryActv
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
RxFrmVldChk

Sub-Function: CreatSigGroupData

None

CreatSigGroupData
Function scopeLocal
DescriptionCollect Signal data for all signals configured under given Signal Group, combine all into a uint32 data based on configuration and return to the caller.
ParametersRequires following parameters
SigGroup_T_rec - Pointer to the Signal Group configuration data
Type: SigGroupRec1 const *
Valid Range: 0x00000001 to 0xFFFFFFFF
Return valueReturns following value
RetData - Combined four byte data for given Signal Group configuration
Type: uint32
Range:
0x00000000 to 0xFFFFFFFF
Affected static and global variablesNone
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
Calibration data accessNone
Called local functionsNone
Called local functionsCalls following local function
Calls Signal access wrapper functions for each signal configured under given Signal Group
External Interface callNone
Called byCalled by following functions
ImcArbnTx

Sub-Function: DecodSigGroupData

None

DecodSigGroupData
Function scopeLocal
DescriptionSplit given uint32 data into Signal data according to the configuration for given Signal Group, store Signal values in Rx Signal Data buffer, updates Signal Status and Signal Source.
ParametersRequires following parameters
SigGroup_T_rec - Pointer to the Signal Group configuration data
Type: SigGroupRec1 const *
Valid Range: 0x00000001 to 0xFFFFFFFF
SigGroupRxData - Combined four bytes received data for given Signal Group configuration
Type: uint32
Range:
0x00000000 to 0xFFFFFFFF
RxSigExtdSts1 - Extended Signal Status
Type: ImcArbnRxExtdSts1
Range:
IMCARBNRXEXTDSTS_NEVERRXD (0U)
IMCARBNRXEXTDSTS_MISS (1U)
IMCARBNRXEXTDSTS_DATAINVLD (2U)
IMCARBNRXEXTDSTS_PREVDATA (3U)
IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP (4U)
IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP (5U)
IMCARBNRXEXTDSTS_STRTG (6U)
All other values are invalid
RxDataSrc - Imc Channel ID from which the Signal Group data received
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
Return valueNone
Affected static and global variablesRead and Write to following variables in sub-functions
RxdSigData
RxdSigDataExtdSts
RxdSigDataSrc
Affected inter-runnable variableNone
Exclusive area accessNeeded to write Imc Signal data, Signal Status and Signal source buffers.
Configuration accessAccesses following configuration data
ImcArbn_SigGroupConfig_Rec
Calibration data accessNone
Called local functionsCalls following local function
GetBitMask
External Interface callNone
Called byCalled by following functions
ImcArbrRx

Sub-Function: GetBitMask

None

GetBitMask
Function scopeLocal
DescriptionReturns bitmask for requested number of bits.
ParametersRequires following parameters
NrOfBits - Number of bits required to be set in the return value
Type: uint8
Range:
1 to 32
Return valueReturns following value
BitMask - Bit mask for given number of bits
Type: uint32
Range:
0x00000000 to 0xFFFFFFFF
Affected static and global variablesNone
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
CreatSigGroupData
DecodSigGroupData

Sub-Function: GetImcFltParamByte

None

GetImcFltParamByte
Function scopeLocal
DescriptionEvaluates Frame faults counters and returns IMC Arbitration fault parameter byte to log / clear NTC 0x3F (IMC Arbitration fault). Bits which are corresponding to particular fault that exceeds threshold limit will be set in the return value. Refer below picture for details of bit mapping in the parameter byte
Parametersvoid
Return valueReturns following value
FltBitMask - Bit mask for given number of bits
Type: uint8
Range: Bitmask
PRIMSRCCRCFLT_CNT_U08 (0x01U)
PRIMSRCROLLGCNTRFLT_CNT_U08 (0x02U)
SECDRYSRCCRCFLT_CNT_U08 (0x04U)
SECDRYSRCROLLGCNTRFLT_CNT_U08 (0x08U)
All other bits are unused.
Affected static and global variablesReads following variables
FrmFltCntr2MilliSec
FrmFltCntr10MilliSec
FrmFltCntr100MilliSec
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessAccesses following calibration value in the sub-functions call
ImcArbnFrmFltThd
Called local functionsNone
External Interface callNone
Called byCalled by following functions
ImcArbnPer6

Sub-Function: VldtRollgCntr

None

VldtRollgCntr
Function scopeLocal
DescriptionValidates Rolling Counter
ParametersRequires following parameters
SigGroupDataSrc- Imc Channel ID on which Signal Group data received
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
PrsntRollgCntr- Present Rolling counter value received for the given Signal Group
Type: uint8
Range: 0 to 31
Return valueReturns following value
FrmSts - Informs the caller about validity of Rolling counter and Data
Type: ImcArbnRxRollgCntrSts1
Range:
ROLLGCNTRVLDNEWDATA (0)
ROLLGCNTRVLDOLDDATA (1)
ROLLGCNTRINVLD (2)
Affected static and global variablesRead and Write to following variables in sub-functions
PrimSrcResyncCntr
PrimSrcRollgCntrResync
ResyncOnPrimActv
SecdrySrcResyncCntr
SecdrySrcRollgCntrResync
ResyncOnSecdryActv
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsCalls following local function
VldtRollgCntrAlg
External Interface callNone
Called byCalled by following functions
RxFrmVldChk

Sub-Function: VldtRollgCntrAlg

None

VldtRollgCntrAlg
Function scopeLocal
DescriptionImplements Rolling counter algorithm
ParametersRequires following parameters
SigGroupDataSrc- Imc Channel ID on which Signal Group data received
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
PrsntRollgCntr- Present Rolling counter value received for the given Signal Group
Type: uint8
Range: 0 to 31
Return valueReturns following value
FrmSts - Informs the caller about validity of Rolling counter and Data
Type: ImcArbnRxRollgCntrSts1
Range:
ROLLGCNTRVLDNEWDATA (0)
ROLLGCNTRVLDOLDDATA (1)
ROLLGCNTRINVLD (2)
Affected static and global variablesReads or writes following variables in sub-functions
PrevRollgCntrRxd
SigGroupSkipCntr
SigGroupDataSrc
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsCalls following local function
RollgCntrSeqChk
External Interface callNone
Called byCalled by following functions
VldtRollgCntr

Sub-Function: RollgCntrSeqChk

None

RollgCntrSeqChk
Function scopeLocal
DescriptionChecks whether present rolling counter value received on IMC channel falls within the range lower and upper drift limits from anticipated rolling counter.
ParametersRequires following parameters
PrsntRollgCntr- Present Rolling counter value received for the given Signal Group
Type: uint8
Range: 0 to 31
AntcptdRollCntr - Anticipated Rolling counter value for the given Signal Group
Type: uint8
Range: 0 to 31
UpprDriftLim - Drift limit on the lower from Anticipated Rolling counter
Type: uint8
Range: 0 to 31
LwrDriftLim - Drift limit on the lower side from Anticipated Rolling counter
Type: uint8
Range: 0 to 31
Return valueReturns following value
RollgCntrVld - Returns validity of Rolling counter
Type: boolean
Range:
TRUE - Rolling counter value acceptable
FALSE - Rolling counter value not acceptable
Affected static and global variablesNone
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
VldtRollgCntrAlg

Sub-Function: NoDataHndlg

None

NoDataHndlg
Function scopeLocal
DescriptionHandles No data reception cases for Singal Status, Reset counter, Skip counter and Resync counters
ParametersRequires following parameters
RxSigExtdSts1 - Extended signal Status value
Type: ImcArbnRxExtdSts1
Range:
IMCARBNRXEXTDSTS_NEVERRXD (0U)
IMCARBNRXEXTDSTS_MISS (1U)
IMCARBNRXEXTDSTS_DATAINVLD (2U)
IMCARBNRXEXTDSTS_PREVDATA (3U)
IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP (4U)
IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP (5U)
IMCARBNRXEXTDSTS_STRTG (6U)
Other values are invalid
RxDataSrc - Imc Channel ID
Type: ImcArbnRxDataSrc1
Range:
IMCARBNRXDATASRC_PRIM (0U)
IMCARBNRXDATASRC_SECDRY (1U)
IMCARBNRXDATASRC_NOSRC (2U)
All other values are invalid
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
PrimSrcNoDataRxd - No data Received on Primary Source flag
Type: boolean
TRUE – No data received
FALSE – Data received
SecdrySrcNoDataRxd - No data Received on Secondary Source flag
Type: boolean
TRUE – No data received
FALSE – Data received
Return valuevoid
Affected static and global variablesRead and Write to following variables in sub-functions
SigGroupSkipCntr
PrimSrcResyncCntr
SecdrySrcResyncCntr
PrimSrcRollgCntrResync
SecdrySrcRollgCntrResync
ResyncOnPrimActv
ResyncOnSecdryActv
RxdSigDataExtdSts
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsCalls following local function
EvlSigGroupNeverRxdMissSts
External Interface callNone
Called byCalled by following functions
ImcArbnRx

Sub-Function: EvlSigGroupNeverRxdMissSts

None

EvlSigGroupNeverRxdMissSts
Function scopeLocal
DescriptionEvaluates Signal missing / never received cases and updates signals status.
ParametersRequires following parameters
RateGroup - Rate Group Id provided by IMC Arbitration Configuration
Type: uint8
Range:
IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)
IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)
IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)
All other values are invalid
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
Return valueReturns following value
RxSigExtdSts1 - Extended Signal Status
Type: ImcArbnRxExtdSts1
Range:
IMCARBNRXEXTDSTS_NEVERRXD (0U)
IMCARBNRXEXTDSTS_MISS (1U)
IMCARBNRXEXTDSTS_DATAINVLD (2U)
IMCARBNRXEXTDSTS_PREVDATA (3U)
IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP (4U)
IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP (5U)
IMCARBNRXEXTDSTS_STRTG (6U)
All other values are invalid
Affected static and global variablesReads / Writes to following variables in functions
SigGroupNeverRxd
SigGroupMissCntr
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessAccesses following configuration data
MISSSIGGROUPTIOUT_CNT_U08
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
ImcArbnRx

Sub-Function: OvrdSigStsDurgStrtUp

None

OvrdSigStsDurgStrtUp
Function scopeLocal
DescriptionSets signal status as STARTING in the Signal Status buffer when initial start-up timer is still running.
ParametersRequires following parameters
SigGroup - Signal Group Id provided by IMC Arbitration Configuration
Type: uint8
Range: 0 to 255
IniTiOutChkCmpl - Initial time-out completion status
Type: boolean
TRUE – Time-out completed
FALSE – Time-out not completed
Return valuevoid
Affected static and global variablesWrites to following variables in functions
RxSigDataExtdSts
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessAccesses following configuration data
SIGGROUPCONFIG_REC
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
ImcArbnRx

Sub-Function: GetImcSigSts

None

GetImcSigSts
Function scopeLocal
DescriptionRemaps Extended signal status value to basic version of Signal Status
ParametersRequires following parameters
SigExtdSts - Extended Signal Status
Type: ImcArbnRxExtdSts1
Range:
IMCARBNRXEXTDSTS_NEVERRXD (0U)
IMCARBNRXEXTDSTS_MISS (1U)
IMCARBNRXEXTDSTS_DATAINVLD (2U)
IMCARBNRXEXTDSTS_PREVDATA (3U)
IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP (4U)
IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUP (5U)
IMCARBNRXEXTDSTS_STRTG (6U)
All other values are invalid
Return valueReturns following value
RetSts - Remapped basic Signal Status
Type:ImcArbnRxSts1
Range:
IMCARBNRXSTS_NODATA (0U)
IMCARBNRXSTS_VLD (1U)
IMCARBNRXSTS_INVLD (2U)
All other values are invalid
Affected static and global variablesNone
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
GetSigImcData_<DATA_TYPE>

Sub-Function: NoDataRxd

None

NoDataRxd
Function scopeLocal
DescriptionEvaluates no data received condition
ParametersRequires following parameters
StrtByte - Start byte of given Signal Group
Type: uint8
Range: 0 to 255
EndByte - End byte of given Signal Group
Type: uint8
Range: 0 to 255
Return valueReturns following value
RetVal- Indicates whether No data received
Type: boolean
Range:
TRUE - No data received
FALSE - Data Received
Affected static and global variablesNone
Affected inter-runnable variableNone
Exclusive area accessNone
Configuration accessNone
Calibration data accessNone
Called local functionsNone
External Interface callNone
Called byCalled by following functions
ImcArbnRx

Timing / Execution Constraints

Rationale / Comments

• ImcArbnPer1, ImcArbnPer2 and ImcArbnPer3 periodic functions shall be called prior to calling respective primary and secondary signal source transmit layer functions.

• ImcArbnPer4, ImcArbnPer5 and ImcArbnPer6 periodic functions shall be called after calling respective primary and secondary signal source receive layer functions.

• ImcArbn Receive periodics (ImcArbnPer4, ImcArbnPer5 and ImcArbnPer6) functions shall run prior to the ImcArbn Transmit periodic functions ((ImcArbnPer1, ImcArbnPer2 and ImcArbnPer3).

Rates and State Execution

Sub-FunctionRate (ms)Cold InitWarm InitOperateDisable
ImcArbnPer12ReqReqReqReq
ImcArbnPer210ReqReqReqReq
ImcArbnPer3100ReqReqReqReq
ImcArbnPer42ReqReqReqReq
ImcArbnPer510ReqReqReqReq
ImcArbnPer6100ReqReqReqReq

Serial Communications Interfaces

None

Additional Information

Imc Arbitration – Configuration

None

Imc Signals

A Signal Group is a basic element of communication for the Imc Arbitration component.

Signals that are need to be transmitted by IMC shall be configured under any of the Signal Group based on their transmit rate requirements.

Following are the general design assumptions about the signals that are transmitted by Imc Arbitration:

  1. All IMC signals are accessible via RTE to pack it in a particular Signal Group.

  2. Data type of the signals that are transmitted by Imc Arbitration can be anyone of the following: boolean, uint8, sint8, uint16, sint16, uint32, sint32 and float32. No other types of signals are supported.

This component defines unique LOCAL constants for each of the configured signals as Signal ID. Following format is used to define the Signal ID.

Format:

IMCARBN_<signalname>_CNT_U16

signalname – name of the signal in upper case as defined in Imc Arbitration configuration.

Signal Group (SG)

Following elements forms a Signal Group:

Pattern ID: The pattern identification is used as a start of frame to synchronize data on asynchronous communication protocols such as SCI. As shown in the below figure, the pattern ID is 3 bits (101b).

Rolling Counter: The rolling counter is used to monitor for new data. If the rolling counter has been updated, the data is new. If the rolling counter maintains the same value, the data is old. As shown in the below picture, the Rolling Counter is 5 bits.

Signal Group ID: The message ID is used to identify the received data group. As shown in the below picture the Message Id is 8 bits. All data bytes (0 –3) have the same message ID.

Data Byte 0 – 3: Contains packed data of all signals configured for a given Signal Group.

CRC: The Cyclic Redundancy Check is calculated on the message ID and all of the data bytes. This check ensures the integrity of the information being transmitted. The pattern ID and rolling counter are inherently protected by comparing to the complement, and therefore do not need CRC protection. As shown in the figure 2, the CRC is 8 bits.

Pattern Id compliment and Rolling Counter Compliment: The pattern identification and rolling counter complements are used to identify the end of frame, and also as a basic data reception check. If the start of frame (Pattern ID and Rolling Counter) and this frame XOR’d together equal all ones, then the full frame is assumed to have been captured and can be passed on for rolling counter and CRC checks. As shown in the below picture, the Pattern ID Complement is 3 bits and The Rolling Counter Complement is 5 bits.

This component defines unique global constant for each of the Signal Groups. Following format is used to define the Signal Groups.

Format:

IMCARBN_<SigGroupName>_CNT_U08

SigGroupName – Signal Group name in uppercase as defined during configuration

Rate Group

Imc System supports transmission / reception of Signal Groups at three different rates: 2ms, 10ms and 100ms. Every Signal Group shall be listed under any one of the Rate Group. All Signal Groups that are configured under given Rate Group processed at the same rate. E.g. a Signal Group configured under 2ms rate is processed in a 2ms periodic.

Following global constant values are defined to identify the Rate Groups in the system:

IMCARBN_RATEGROUPID2MILLISEC_CNT_U08 (0U)

IMCARBN_RATEGROUPID10MILLISEC_CNT_U08 (1U)

IMCARBN_RATEGROUPID100MILLISEC_CNT_U08 (2U)

Below picture depicts data organization for Imc Arbitration Tx and Rx frames

Below picture depicts Configuration Description for the component.

Types Definitions for Configuration Data

Description
typedef uint32 (*GetSigVal)(void);Typedef for the function pointer that will read data from the source FDD. Note that the return value is always considered as (NOT type-casted) uint32 in order to reduce complexity in Tx/Rx buffer handling.

typedef struct

{

GetSigVal GetSigValOper;

uint16 SigId_u16;

uint8 DestSize_u08;

uint8 StrtLocn_u08;

}SigPrmRec1;

Structure that defines properties of a signal that need to be communicated across two microcontrollers.

GetSigValOper – Pointer to the wrapper function which returns current value of the signal.

SigId_u16 – Signal Id – Unique ID generated for the signal by Imc Arbitrator. Throughout the system, this would be used to get value of particular signal.

DestSize_u08 – Number of bits used for the signal to pack it in its Signal Group.

StrtLocn_u08 - Position of the signal in its Signal Group.

typedef struct

{

SigPrmRec1 const *SigPrm;

uint8 NrOfSig_u08;

uint8 SigGroupId_u08;

boolean PrimSrcOnlySigGroup_logl;

}SigGroupRec1;

Structure that defines properties of a Signal Group (SG).

SigPrm – Pointer to an array of SigPrm_Rec1 type structures. This holds reference to all signals that are configured under particular Signal Group.

NrOfSig_u08 – Number of signals that are packed into particular Signal Group.

SigGroupId_u08 - Unique ID generated for the Signal Group by Imc Arbitrator. Throughout the system, this would be used to get frame of particular Signal Group.

PrimSrcOnlySigGroup_logl– Indicates whether the Signal Group to be transmitted only on Primary channel.

TRUE – Primary only Tx Group.

FALSE – Both Primary and Secondary Tx Group.

Configuration Structure: SIGGROUPCONFIG_REC

This configuration is an array of structures of type SigGroupRec1 containing all Imc configuration data for each configured Signal Groups which will be generated during build time based on the configuration.

Each array element of this structure corresponds to a Signal Group configured. Positon of each Signal Group in this structure will be based out of Rate Group: First Signal Groups configured under 2ms Rate Group, then Signal Groups configured under 10ms Rate Group and finally Signal Groups configured under 100ms Rate Group.

Sample configuration:

/* General configuration for signal group TestSigGroup1 */

const SigGroupRec1 SIGGROUPCONFIG_REC[IMCARBN_TOTALNROFSIGGROUP_CNT_U08] =

{

{

&TESTSIGGROUP1[0], /* Signal group config structure for TestSigGroup1 signal group */

1U,/* Number of signals configured in the signal group */

IMCARBN_SGTESTSIGGROUP1_CNT_U08, /* Signal Group identifier */

TRUE, /* Primary Only Signal group */

},

{

&ImcArbn_ TESTSIGGROUP2[0], /* Signal group config structure for TestSigGroup2 signal group */

1U,/* Number of signals configured in the signal group */

IMCARBN_SGTESTSIGGROUP2_CNT_U08, /* Signal Group identifier */

FALSE, /* Primary Only Signal group */

},

{

&ImcArbn_ TESTSIGGROUP3[0], /* Signal group config structure for this signal group */

5U,/* Number of signals configured in the signal group */

IMCARBN_SGTESTSIGGROUP3_CNT_U08, /* Signal Group identifier */

FALSE, /* Primary Only Signal group */

},

};

Configuration Structure: <Signal Group Name>

This configuration array of structure of type SigPrmRec1 contains Imc configuration data for individual Signal Groups which will be generated during build time based on the configuration.

Individual elements in this array correspond to properties of each Signal configured under given Signal Group.

Following naming convention will be followed while generating Signal Group structures:

<SIGGROUPNAME>_REC

Sample Configuration:

/* Signal configuration for the signal group TestSigGroup1 */

STATIC const SigPrmRec1 TESTGIGGROUP1_REC[] =

{

{

&GetTestSig1, /* Pointer to the function which provides Signal data */

IMCARBN_TESTSIG1_CNT_U08, /* Signal Id */

8U,/* Number of bits to be used in the Signal Group for this signal */

0U, /* Position of the signal from LSB */

},

{

&GetTestSig2, /* Pointer to the function which provides Signal data */

IMCARBN_TESTSIG2_CNT_U08, /* Signal Id */

8U,/* Number of bits to be used in the Signal Group for this signal */

8U, /* Position of the signal from LSB */

},

{

&GetTestSig3, /* Pointer to the function which provides Signal data */

IMCARBN_TESTSIG3_CNT_U08, /* Signal Id */

16U,/* Number of bits to be used in the Signal Group for this signal */

16U, /* Position of the signal from LSB */

},

};

Signal data access functions: Get<Signal Name>

This component will generate a Signal data access function for every IMC Signal configured in the configuration.

Irrespective of configured Signal data type, this function will return uint32 value.

Prototype:

uint32 GetSignalName> (void) ;

This function will read data for configured Signal from respective application component.

Signals of type uint32 will be returned without any typecasting.

Boolean, uint8, sint8, uint16, sint16 signals will be typecasted to uint32 and typecassted value will be returned.

Float32 signals will be read as uint32 without typecasting and will be returned as uint32 (i.e this means underlying float data format will not be disturbed).

Sample Function 1: TestSig1 is a float signal

/* Wrapper function to get value of TestSig1 */

uint32 GetTestSig1(void)

{

uint32 RetVal_Uls_T_u32;

float32 SigVal_Uls_T_f32;

SigVal_Uls_T_f32 = Rte_Read_TestSig1_Val ();

RetVal_Uls_T_u32 = *((uint32*)&SigVal_Uls_T_f32);

return(RetVal_Uls_T_u32);

}

Sample Function 2: TestSig2 is a boolean signal

/* Wrapper function to get value of TestSig2 */

uint32 GetTestSig2(void)

{

uint32 RetVal_Uls_T_u32;

RetVal_Uls_T_u32 = Rte_Read_TestSig2_Val ();

return(RetVal_Uls_T_u32);

}

Configuration Array: RATEGROUPOFFS_CNT_U08

This configuration array provides offset for accessing for each Rate group configuration data in the configuration structure ImcArbn_SigGroupConfig_Rec. It is defined as follows:

RATEGROUPOFFS_CNT_U08 [IMCARBN_NROFRATEGROUP_CNT_U08] = { 0U, IMCARBN_NROF2MILLISECRATEGROUP_CNT_U08, IMCARBN_NROF2MILLISECRATEGROUP_CNT_U08 + IMCARBN_NROF10MILLISECRATEGROUP_CNT_U08 };

Configuration Array: NRSIGGROUPINRATEGROUP_CNT_U08

This configuration array provides number of Signal group defined for each Rate Group in the configuration structure ImcArbn_SigGroupConfig_Rec. It is defined as follows:

NRSIGGROUPINRATEGROUP_CNT_U08 [IMCARBN_NROFRATEGROUP_CNT_U08] = { IMCARBN_NROF2MILLISECRATEGROUP_CNT_U08, IMCARBN_NROF10MILLISECRATEGROUP_CNT_U08, IMCARBN_NROF100MILLISECRATEGROUP_CNT_U08 };

Configuration Array: MISSSIGGROUPTIOUT_CNT_U08

This configuration array provides missing count value for individual Rate Groups. Count values are corresponding to be number of cycles of respective Rate Groups. It is defined as follows:

MISSSIGGROUPTIOUT_CNT_U08[IMCARBN_NROFRATEGROUP_CNT_U08] = { MISSTHD2MILLISECRATEGROUP_CNT_U08, MISSTHD10MILLISECRATEGROUP_CNT_U08, MISSTHD100MILLISECRATEGROUP_CNT_U08

}

Imc Signal Mapping for Receiving FDDs

None

Since configured Imc Signal names may not match with the signal name which is used in by receiving FDDs, Signal mapping mechanism is provided to resolve mapping between IMC input signals and user of IMC input signals.

FDDs which needs signal from Imc Arbitration component shall use following naming convention for naming Signal ID ( which is an argument for GetSigImcData_xxx):

Format:

IMCARBN_<componentshortname><signalname>_CNT_U16

componentshortname – Short name of the component which is interested in receiving the signal from Imc Arbitration.

signalname – name of the signal as defined by the receiving component.

Note that ownership of this constant is still with Imc Arbitration (hence the “IMCARBN_” prefix).

Imc Arbitration component will generate configurations to map these Signal IDs with its own Signal IDs for each of the Imc signal.

e.g.

IMCARBN_FDD1OPTIONALSIGNAME1_CNT_U16

Enumerations - Signal Status, Extended Signal Status and Signal Source

None

This component uses three RTE enumerations and one local enumeration:

  1. Extended Signal Status (ImcArbnRxExtdSts1): Following table indicates list of values and its meaning.

Extended Signal StatusMeaning
IMCARBNRXEXTDSTS_STRTGInitial Start-up time not completed
IMCARBNRXEXTDSTS_DATAVLDWITHBACKUP / IMCARBNRXEXTDSTS_DATAVLDWITHNOBACKUPValid Data Received
IMCARBNRXEXTDSTS_NEVERRXDMessage never received
IMCARBNRXEXTDSTS_DATAINVLDInvalid - CRC, Rolling Counter
IMCARBNRXEXTDSTS_PREVDATAMessage Missing - Threshold yet to be reached
IMCARBNRXEXTDSTS_MISSMessage Missing - Threshold reached

Extended signal status value would be returned to the caller when the Server Runnable GetSigImcDataExtdSts invoked.

  1. Signal Status (ImcArbnRxSts1): Following table indicates list of values and its meaning.

Signal StatusUse case
IMCARBNRXSTS_NODATAInitial Start-up time not completed
IMCARBNRXSTS_VLDValid Data Received
IMCARBNRXSTS_INVLDMessage never received, Invalid CRC, Invalid Rolling Counter, Message missing

Signal status value would be returned to the caller when the Server Runnable GetSigImcData invoked.

  1. Signal Data Source (ImcArbnRxDataSrc1): Following table indicates list of values and its meaning.

Signal Data SourceMeaning
IMCARBNRXDATASRC_PRIMSignal received on Primary Source
IMCARBNRXDATASRC_SECDRYSignal received on Secondary Source
IMCARBNRXDATASRC_NOSRCSignal is not received on any of the sources.

Signal data source would be returned to the caller when the Server Runnable GetSigImcDataExtdSts invoked.

  1. Rolling counter status (ImcArbnRxRollgCntrSts1): This enum used to indicate status of Rolling counter evaluation:

Signal Data SourceMeaning
ROLLGCNTRVLDNEWDATARolling counter valid with New data
ROLLGCNTRVLDOLDDATARolling counter valid with old data
ROLLGCNTRINVLDRolling counter invalid.

Revision Record & Change Approval

RevDateChange Control #Change Description
115/01/17EA4#9025Initial Version
217/01/17EA4#9025

Updates:

1. Tx flow chart to remove ternary operator in the Rolling counter calculation

2. SetRxSigGroup – Data type for Buf changed from uint8* to Ary1D_u8_8*

2.2 - ImcArbn Design Peer Review Checklists


Overview

Summary Sheet
Synergy Project
FDD


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. AR350A_ImcArbn_Design
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. AR350A_ImcArbn_Design_1.1.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. Akilan Rathakrishnan
Work CR ID:


EA4#9025





























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:































YesFDD


Source Code


PolySpace









































Integration Manual


Davinci Files








































































Comments:

Open points of review highlighted in yellow. This includes Requirements & Fault Injection points. These points will be addressed in future changes.



























































































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








N/A
Comments:










































Project contains the correct version of subprojects








N/A
Comments:










































Design subproject is correct version








N/A
Comments:











































General Notes / Comments:



























































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:

Akilan Rathakrishnan


Review Date :

01/18/17
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: FDD






















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


























FDD Name:

AR350A_ImcArbn_FDD
FDD Revision:

2

Data Dictionary

AR350A_ImcArbn_DataDict.m
FDD Revision:

2


























Source File Name:


N/ASource File Revision:





Source File Name:



Source File Revision:





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:

Initial Version










































Diagrams have been included per MDD Guideline








N/A
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








N/A
Comments:











noted and explained in Design Rationale






































All Unit Test Considerations have been described








N/A
Comments:



















































General Notes / Comments:























1) Requirement - need to review SRS level requirements, and create component requirement spec (is this SW group?)

2) Move any requirements that are in the FDD design today to the component requirements specification

3) Discuss and clarify that fault injection is not needed on a signal group basis, it is ok for this to fail all signal groups simultaneous. Also make sure there is no need to inject only on one channel (SCI or CAN)

4) Why is it needed to fault inject both CRC and Data byte fault? Check on if CRC needs to be recalc'd with bad data. No fault injection for inverted data?












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:

Akilan Rathakrishnan


Review Date :

01/18/17
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































3 - Component Design

Component Design

Module Detailled Design

Component Documentation

3.1 - AR300A_MotCtrlMgr_FDD

Motor Control Manager

FDD #AR300A

.

1. High Level Description 4

2. Derived Requirements 4

3. Function I/O 5

3.1. Data Ownership 5

3.2. Input Description 5

3.3. Output Description 6

3.4. Sub-Function Data Flow 7

4. Design Rationale and Assumptions 8

5. Sub-Functions 8

5.1. Sub-Function: MotCtrlMgrPer1 – Motor Control To 2ms RTE interface 8

5.1.1. Hardware Related Design 8

5.1.2. Software Related Design 9

5.1.3. Sub Function Calibrations 9

5.1.4. Signal Availability 9

5.2. Sub-Function: MotCtrlMgrPer2 –2ms RTE to Motor Control interface 9

5.2.1. Hardware Related Design 9

5.2.2. Software Related Design 9

5.2.3. Sub Function Calibrations 10

5.2.4. Signal Availability 10

5.3. Sub-Function: MotCtrlMgrIrq: Motor Control Interrupt Service Routine 10

5.3.1. Hardware Related Design 10

5.3.2. Software Related Design 10

5.3.3. Sub Function Calibrations 10

5.3.4. Signal Availability 10

5.4. Sub-Function: Definition of Motor Control Data 10

5.4.1. Hardware Related Design 10

5.4.2. Software Related Design 10

5.4.3. Sub Function Calibrations 11

5.4.4. Signal Availability 11

5.5. Sub-Function: Non-RTE Enumeration Definitions 12

5.5.1. Hardware Related Design 12

5.5.2. Software Related Design 12

5.5.3. Sub Function Calibrations 12

5.5.4. Signal Availability 12

5.6. Sub-Function: Motor Control Data Access Macros 12

5.6.1. Hardware Related Design 12

5.6.2. Software Related Design 12

5.6.3. Sub Function Calibrations 12

5.6.4. Signal Availability 13

5.7. Sub-Function: Motor Control Data Signal Mapping 13

5.7.1. Hardware Related Design 13

5.7.2. Software Related Design 13

5.7.3. Sub Function Calibrations 13

5.7.4. Signal Availability 13

6. Timing / Execution Constraints 13

6.1. Rationale / Comments 13

6.2. Rates and State Execution 14

7. Serial Communications Interfaces 14

8. Additional Information 14

9. Revision Record & Change Approval 15


High Level Description

The Motor Control Manager component is responsible for three major tasks:

  1. Defining and owning the Motor Control Interrupt routine

  2. Defining and owning all Motor Control related global signals that are not handled by the RTE including providing interfaces for component access to these signals

  3. Providing a standardized interface between the Motor Control related global signals and the RTE signals

Derived Requirements

None


Function I/O

Data Ownership

The following table shows the data that the MotCtrlMgr is expected to define and own. Please note that only a subset of this data is explicitly used as I/O for the MotCtrlMgr subfunctions.

DataDescription
MotCtrlMgr_MotCtrlToTwoMilliSec_RecStructure containing all of the signals that are written by motor control scheduled runnables that are required to be read by 2ms RTE scheduled runnables. This structure is the structure that the Motor Control Runnables write to. The list of signals contained in this structure can change from program to program based on program dataflow requirements.
MotCtrlMgr_TwoMilliSecFromMotCtrl_RecStructure containing all of the signals that are written by motor control scheduled runnables that are required to be read by 2ms RTE scheduled runnables. This structure is the structure that the 2ms RTE scheduled runnables read from. The list of signals contained in this structure can change from program to program based on program dataflow requirements.
MotCtrlMgr_TwoMilliSecToMotCtrl_RecStructure containing all of the signals that are written by 2ms RTE scheduled runnables that are required to be read by motor control scheduled runnables. This structure is the structure that the 2ms RTE scheduled runnables write to. The list of signals contained in this structure can change from program to program based on program dataflow requirements.
MotCtrlMgr_MotCtrlFromTwoMilliSec_RecStructure containing all of the signals that are written by 2ms RTE scheduled runnables that are required to be read by motor control scheduled runnables. This structure is the structure that the Motor Control Runnables read from. The list of signals contained in this structure can change from program to program based on program dataflow requirements.
MotCtrlMgr_MotCtrlInt_RecStructure containing all of the signals that read and written only by motor control scheduled runnables (i.e. no interface with RTE scheduled runnables required). The list of signals contained in this structure can change from program to program based on program dataflow requirements.

Input Description

The following inputs are used by this FDD. Source FDD, range, resolution are located in the FDD data dictionary.

Input NameDescription
MotCtrlMgr_TwoMilliSecFromMotCtrl_RecSee description above
<Signal1>…<Signal#>All RTE signals coming from the 2ms RTE scheduled runnables that are required to be read by motor control scheduled runnables. The list of signals can change from program to program based on program dataflow requirements.

Output Description

The following outputs are generated by this FDD. Source FDD, range, resolution are located in the FDD data dictionary.

Output NameDescription
MotCtrlMgr_TwoMilliSecToMotCtrl_RecSee description above
<SignalA>…<SignalX>All RTE signals being read by 2ms RTE scheduled runnables that are written by motor control scheduled runnables. The list of signals can change from program to program based on program dataflow requirements.


Sub-Function Data Flow


Design Rationale and Assumptions

The Motor Control Manager component is intended to provide a flexible design that will allow a consistent definition of all of the Motor Control related global signals, the Motor Control interrupt routine, and the interface between the Motor Control global signals and the RTE. The design is also partially influenced on the knowledge of how the DMA, ADC, and TSG3 hardware peripherals will be used for electrical architecture 4. The following assumptions were considered in the design, and further details on some of these items can be found later in this document:

  • The ADC0 will be used primarily for Motor Control ADC reads and the ADC1 will be used for 2ms ADC reads. The 2ms ADC reads will require explicit transfer from the Motor Control time domain to the 2ms time domain.

  • The DMA will be transferring ADC results from ADC result registers into RAM and therefore the ADC result RAM signals must be packed together in proper order. Additionally, all ADC results registers will be transferred, not just those that are used in a program.

  • The DMA will be transferring TSG3 PWM signals from RAM to TSG3 registers and therefore must be packed together in proper order. The signals names and ordering are as follows:

    • MotCtrlTSG3nDCMP0E, MotCtrlTSG3nCMP0E, MotCtrlTSG3nCMP12E

    • MotCtrlTSG3nCMPWE, MotCtrlTSG3nCMPVE, MotCtrlTSG3nCMPUE

  • All signals being transferred between the Motor Control and 2ms time domains will be done through the DMA and will require definition of signals for both time domains. This is why these signals are all packed together in a structure. Additionally, it is assumed that the DMA will be using 128 bit transfers for this data, and memory alignment and size of the structure are designed accordingly.

  • It is assumed that the RAM data structures that the DMA will be writing to will need to be placed in an isolated RAM location in memory and will therefore need special provisions to allow specific placement of this data in memory. It is also assumed the DMA will not have any specific restrictions on memory that it can read from.

  • Signals owned by the Motor Control Manager are not required to be defined as a structure. Enumerations, however, will be supported, but only for underlying datatypes of uint8, uint16, uint32.

  • The current design assumes only a 2ms interface to RTE is required

Sub-Functions

Sub-Function: MotCtrlMgrPer1 – Motor Control To 2ms RTE interface

None

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: MotCtrlMgrPer2 –2ms RTE to Motor Control interface

None

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: MotCtrlMgrIrq: Motor Control Interrupt Service Routine

None

The motor control interrupt routine needs to be configurable to allow flexibility in the runnable list that it contains as well as the order in which the runnables are called. Additionally, it will contain a loop counter that will toggle between 0 and 1 every motor control loop. Any runnables that need to be scheduled at a rate of MotorControlx2 will only run when the counter is equal to 1, whereas runnables that need to be scheduled at a rate of MotorControl will run regardless of the counter value. The counter should be initialized to 1 and will toggle after all runnables are executed.

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: Definition of Motor Control Data

None

This sub-function defines the details of how the process for defining the motor control related signals contained in the Data Ownership section above. There are some high level details that hold true for all signals as follows:

  • Structures are used to implement the different data categories to group all of the data together

  • All structure elements are defined to pack the data into a structure in the most efficient manner. This involves grouping all of the same size datatypes together in the structure as well as grouping the different size groups in descending order of size (i.e. 32bit->16bit->8bit).

  • All structures are aligned to start at an address that is evenly divisible by 16 to allow for 128bit DMA transfers. Additionally, all structures will contain some pad bytes at the end of the structure to make the structure size (in bytes) evenly divisible by 16.

  • The following properties are needed to define the structure details:

    • Signal Name (without “MotCtrl” prefix if applicable)

    • Underlying signal datatype (float32, uint32, sint32, uint16, sint16, uint8, sint8, boolean)

      • If signal is enumerated the enumeration name is also needed

    • Initial Value of each signal

    • Size (for array handling)

    • Signal usage for each Motor Control related signal:

      • Signal read in a 2ms (or higher) function

      • Signal written in a 2ms (or higher) function

      • Signal read in Motor Control function

      • Signal written in a Motor Control function

MotCtrlMgr_MotCtrlToTwoMilliSec_Rec

If the motor control signal is written in a Motor Control function and read in a 2ms function, it would need to be placed in this structure. All signals in this structure should be prepended with “MotCtrl” given that this structure is accessed by Motor Control functions.

This structure should contain ADC1 result data as well given that it needs to be read by 2ms functions. This result data needs to be aligned at an address that is evenly divisible by 16 to allow for 128bit DMA transfers.

MotCtrlMgr_TwoMilliSecFromMotCtrl_Rec

This structure is an exact duplicate of MotCtrlMgr_MotCtrlToTwoMilliSec_Rec except “MotCtrl” is not prepended to each signal because this structure is accessed by 2ms functions.

MotCtrlMgr_TwoMilliSecToMotCtrl_Rec

If the motor control signal is written in a 2ms function and read in a Motor Control function, it would need to be placed in this structure.

MotCtrlMgr_MotCtrlFromTwoMilliSec_Rec

This structure is an exact duplicate of MotCtrlMgr_TwoMilliSecToMotCtrl_Rec except “MotCtrl” is prepended to each signal because this structure is accessed by Motor Control functions.

MotCtrlMgr_MotCtrlInt_Rec

If the motor control signal is written in a Motor Control function and is not read in a 2ms function, it would need to be placed in this structure.

This structure should contain ADC0 result data as well given that it needs to be read by Motor Control functions. This result data needs to be aligned at an address that is evenly divisible by 16 to allow for 128bit DMA transfers.

This structure should also contain TSG3 data as described in the above Design Assumptions section. This data must also be ensured to be aligned at an address that is evenly divisible by 4 to allow 32bit DMA transfers.

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: Non-RTE Enumeration Definitions

None

Since certain signals that reside outside of the RTE may be required to be defined as enumerations, it is possible that there will not be visibility to the RTE defined enumerations. To resolve this, the Motor Control Manager will also allow definition of enumeration types and enumeration element names and values. This will need to be configurable on an as-needed basis. The following information is needed for this definition:

  • Enumeration Name

  • Underlying Enumeration Datatype (assumed uint8, uin16, and uint32 possibilities)

  • Enumeration Element Names and Values

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: Motor Control Data Access Macros

None

To abstract the underlying structure definition for each Motor Control signal, the Motor Control Manager will define access macros for external software modules to use when accessing from Motor Control functions. These will either be accessing elements of MotCtrlMgr_MotCtrlInt_Rec, MotCtrlMgr_MotCtrlToTwoMilliSec_Rec, or MotCtrlMgr_MotCtrlFromTwoMilliSec_Rec depending on the signal access needs. The macros will be defined with the format:

MOTCTRLMGR_<SignalIdentifier>

Please note <SignalIdentifier> should always include the “MotCtrl” prefix since all signals accessed in Motor Control functions require this.

Sub Function Calibrations

None

Signal Availability

None

Sub-Function: Motor Control Data Signal Mapping

None

In order to resolve the fact that names for inputs and outputs will not always align, the motor control manager must take into account this when creating the Motor Control Data Access Macros (see corresponding Sub-Function in this document). The strategy adopted is that the access macros for inputs that connect to outputs of differing names will “map” to the data access macros for the outputs.

For example:

Input Name: MotCtrlSignalA

Output Name: MotCtrlSignal1

MOTCTRLMGR_<MotCtrlSignalA> access macro would “map” to MOTCTRLMGR_<MotCtrlSignal1> access macro and therefore ultimately be accessing the underlying structure element for MotCtrlSignal1. There would not be a separate structure element for MotCtrlSignalA.

Please note that for any given output, there could be multiple corresponding input signal names that it could “map” to.

Sub Function Calibrations

None

Signal Availability

None

Timing / Execution Constraints

Rationale / Comments

MotCtrlMgrPer1 should execute near the start of the 2ms loop before any other functions that need data that is output by runnables running at the Motor Control rate. The DMA transfer that is populating MotCtrlMgr_TwoMilliSecFromMotCtrl_Rec shall run before MotCtrlMgrPer1 and ideally enough other functionality runs in-between these two events that the transfer can complete with minimal wait time in MotCtrlMgrPer1 (since this function is waiting for DMA transfer completion).

MotCtrlMgrPer2 should execute as the final function of the forward path to allow minimal lag on computation of new PWM commands in the Motor Control loop.

Rates and State Execution

Sub-Function NameRate (ms)
MotCtrlMgrPer12 (all system states)
MotCtrlMgrPer22 (all system states)

Serial Communications Interfaces

None

Additional Information


Revision Record & Change Approval

RevDateChange Control #Change Description
104/22/15EA4#510Initial Version
201/21/16EA4#3424Added signal mapping subfunction

3.2 - MotCtrlMgr Design Peer Review Checklists


Overview

Summary Sheet
Synergy Project
FDD


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. AR300A_MotCtrlMgr_Design
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. AR300A_MotCtrlMgr_Design_1.1.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. Lucas Wendling
Work CR ID:


EA4#3424





























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:































YesFDD


Source Code


PolySpace









































Integration Manual


Davinci Files








































































Comments:

Peer review of FDD



























































































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








N/A
Comments:










































Project contains the correct version of subprojects








N/A
Comments:










































Design subproject is correct version








N/A
Comments:











































General Notes / Comments:



























































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:

Lucas Wendling


Review Date :

01/21/16
































Lead Peer Reviewer:


Jared Julien


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: FDD






















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


























MDD Name:

AR300A_MotCtrlMgr_FDD
MDD Revision:

2


























Source File Name:


N/ASource File Revision:





Source File Name:



Source File Revision:





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:

Initial Version










































Diagrams have been included per MDD Guideline








N/A
Comments:











and reviewed






































All Design Exceptions and Limitations are listed








N/A
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








N/A
Comments:











noted and explained in Design Rationale






































All Unit Test Considerations have been described








N/A
Comments:



















































General Notes / Comments:























Using checklist for MDD, but review was of FDD


































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:

Lucas Wendling


Review Date :

01/21/16
































Lead Peer Reviewer:


Jared Julien


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































4 - Component Design

Component Design

Module Detailled Design

Component Documentation

4.1 - AR998A NxtrDet Functional Design Document

Nexteer Det

FDD #AR998A

1. High Level Description 3

2. Function I/O 3

2.1. Input Description 3

2.2. Output Description 4

2.3. Sub-Function Data Flow 5

3. Design Rationale 6

4. Sub-Functions 6

4.1. Sub-Function: Initialization 6

4.1.1. Software Related Design 6

4.2. Sub-Function: Signal Processing of Battery and Switched Voltages 6

4.2.1. Hardware Related Design 6

4.2.2. Software Related Design 6

4.2.3. Sub Function Calibrations 6

* Location Legend 7

4.2.4. Signal Availability 7

4.3. Sub-Function: Next Sub-function 7

5. Timing / Execution Constraints 7

5.1. Rationale / Comments 7

5.2. Rates and State Execution 7

6. Additional Information 8

7. Revision Record & Change Approval 9

High Level Description

The Det (Development Error Tracer) is an AUTOSAR defined module used to aid in detecting development errors. Ideally, Det is used during project development only, and is disabled/turned off once the project development and testing reaches a stage where enough confidence has been gained in the design. Example of typical types of errors that are mapped to the Det module include:

  • Incorrect usage of an API (e.g. arguments that are out of range)

  • Attempted usage of a function that is not yet initialized

  • Incorrect / incompatible configuration

In addition to Det usage already incorporated into 3rd party software (e.g. AUTOSAR BSW and MCAL modules), Det error checking usage can be incorporated into Nexteer designed components as additional error checking during project development via a specified interface into the Det AUTOSAR module. This design document outlines the details of the strategy of incorporating Det error checking in Nexteer designed components, defines the constants which control turning on and off specific Nexteer Det error checking functionality, and also centrally defines the constants controlling the Det “ModuleID” assigned to each Nexteer component which has Det functionality.

Function I/O

None - N/A

Input Description

None - N/A

Input NameDescription

Output Description

None - N/A

Output NameDescription


Data Flow

None –N/A

Design Rationale

Strategy Overview:

Det error checking is intended to strictly be an aid in detecting errors during project development. It is assumed that all Det error checking will be disabled at some point prior to production intent software builds. Additionally, Det error checking logic will have some impact on memory and cpu utilization metrics. For this reason, all Det logic will be conditionally compiled based on if any given component has its particular Det errors enabled.

The constants controlling these error enables are defined in this component (AR998A_NxtrDet). Additionally, the AUTOSAR Det module contains a global DET_ENABLED flag to be used as a single enable that can be used to turn off all Det error checks. Therefore, this global DET_ENABLED flag must be “enabled” in order for any Nexteer defined Det error checks to be enabled as shown below:

AUTOSAR Det API Interface Details:

void Det_ReportError(uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId)

  • ModuleId: Unique Id for each component that has Det Errors

  • Nexteer’s components will start from 65535 and decrement (0-255 are reserved for AUTOSAR modules). This component (AR998A NxtrDet) will define all of the Nexteer defined ModuleId values.

  • InstanceId: Only used if more than one instance of a module exists

  • Always will be “0” for current Nexteer component designs

  • ApiId: Unique Id within a module for a given API/Function

  • Controlled by Nexteer component’s Det error design (value outside of scope of AR998A NxtrDet)

  • ErrorId: Unique Id within a module’s API/Function for a specific error check being done

  • Controlled by Nexteer component’s Det error design (value outside of scope of AR998A NxtrDet)

Nexteer Component Det Design Guidelines:

While the individual Det error detection design details for Nexteer components are outside the scope of this document, some high level design guidelines are given:

  • Det error checking design details are outside the scope of FDD/Design component development. The software group will take responsibility for defining Det error checking in the implementation of the design where deemed appropriate (i.e. these are optional for implementation). Det design will be captured in the implementation documentation (e.g. MDD) of any given component (as opposed to in the design itself).

  • All Det error checking logic will be conditionally compiled, and if turned off, the resulting compiled code will exactly match the specified design. (i.e. turning Det error checking off will remove all associated Det logic from the compilation). Further, implementation of Det error checking logic should not compromise the functionality of the core design (this should implicitly be verified during component unit testing).

Sub-Functions

None – N/A

Timing / Execution Constraints

None – N/A

Additional Information

Revision Record & Change Approval

RevDateChange Control #Change Description
110/09/15EA4#1915Initial Version

4.2 - NxtrDet Design Peer Review Checklists


Overview

Summary Sheet
Synergy Project
FDD


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. AR998A_NxtrDet_Design
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. AR998A_NxtrDet_Design_1.0.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. Lucas Wendling
Work CR ID:


EA4#1915





























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:































YesFDD


Source Code


PolySpace









































Integration Manual


Davinci Files








































































Comments:

Peer review of FDD



























































































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








N/A
Comments:










































Project contains the correct version of subprojects








N/A
Comments:










































Design subproject is correct version








N/A
Comments:











































General Notes / Comments:



























































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:

Lucas Wendling


Review Date :

10/15/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: FDD






















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


























MDD Name:

AR998A NxtrDet Functional Design Document
MDD Revision:

1


























Source File Name:


N/ASource File Revision:





Source File Name:



Source File Revision:





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)








N/A
Comments:

Initial Version










































Diagrams have been included per MDD Guideline








N/A
Comments:











and reviewed






































All Design Exceptions and Limitations are listed








N/A
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








N/A
Comments:











noted and explained in Design Rationale






































All Unit Test Considerations have been described








N/A
Comments:



















































General Notes / Comments:























Using checklist for MDD, but review was of FDD


































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:

Lucas Wendling


Review Date :

10/15/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































5 - Component Design

Component Design

Component Documentation

5.1 - NxtrIntrpn FDD

Functional Design Document

For

NxtrIntrpn

VERSION: 1.0

DATE: 20-Feb-2015

Prepared By:

Nexteer Automotive,

Saginaw, MI, USA


Revision History

VersionDescriptionAuthorSection ModifiedDateApproved By
1.0Initial VersionK. SmithAll20-Feb-2015Nexteer


Table of Contents

1 Abbrevations And Acronyms 4

2 References 5

3 Purpose 6

4 Interpolation Design 7

4.1 Linear Interpolation 7

4.1.1 Linear Interpoliation Accuracy 8

4.2 Fixed X-Axis Linear Interpolation Functions 9

4.2.1 API 9

4.2.1.1 Truncating Functions 9

4.2.1.2 Rounding Functions 9

4.3 Variable X-Axis Linear Interpolation Functions 10

4.3.1 API 10

4.3.1.1 Truncating Functions 10

4.3.1.2 Rounding Functions 12

4.4 Bilinear Interpolation 14

4.4.1 Common X Axis Bilinear Interpolation Functions 16

4.4.1.1 API 16

4.4.2 Variable X Axis Bilinear Interpolation Functions 19

4.4.2.1 API 19

5 Know Limitations With Design 22

6 Appendix A 23

7 Appendix B 24

7.1 Truncating Linear Interpolation Functions 24

7.1.1 Fixed X-Axis Interpolation Function 24

7.1.2 Variable X-Axis Interpolation Function 24

7.2 Rounding Linear Interpolation Functions 24

7.2.1 Fixed X-Axis Interpolation Function 24

7.2.2 Variable X-Axis Interpolation Function 24

8 Appendix C 25

Abbrevations And Acronyms

AbbreviationDescription
BSBilinear Selection
APIApplication Program Interface

References

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

Sr. No.TitleVersion
Appendix CRH850/P1x Series User’s Manual: Software0.10 Jan, 2014

Purpose

The purpose of this document is to describe the functions contained within the Nexteer interpolation library and as an API reference in designing functional requirements, models, and software components.

Interpolation Design

Linear Interpolation

Linear interpolation is used to determine an output value between a set of known data points for a given input. In the image below, the input point (x) is between the known points (x0,y0) and (x1,y1).

The linear interpolant is defined as the straight line between the two known points (x0,y0) and (x1,y1) and is defined in equation (1).

$$\frac{\left( y - y_{0} \right)}{\left( x - x_{0} \right)} = \frac{\left( y_{1} - y_{0} \right)}{\left( x_{1} - x_{0} \right)}$$(1)

Solving equation (1) for the desired output (y) is described below in equation (2).

$$y = y_{0} + (y_{1} - y_{0})\frac{\left( x - x_{0} \right)}{\left( x_{1} - x_{0} \right)}$$(2)

If the delta between neighboring points on the X-axis is the same, equation (2) can be modified with that delta as shown in equation (3).

$$x_{0} = \left\lfloor \frac{x}{\mathrm{\Delta}x} \right\rfloor*\mathrm{\Delta}x$$

$$y = y_{0} + (y_{1} - y_{0})\frac{\left( x - x_{0} \right)}{\mathrm{\Delta}x}$$

(3)

Linear Interpoliation Accuracy

The operations required to perform equations (2) and (3) shall be implemented using fixed point math. This is to save on execution time to perform the interpolation compared to using floating point math functions (See Appendix C). This also means that there can be information loss because the operations can produce results that have more bits than the operands. In order to keep the same number of bits as the operands, the answer must be rounded or truncated.

The interpolation library shall support both truncation and rounding methods in all linear interpolation functions. These methods are described in Appendix B. The error produced by the truncated function results can be +/- one count. Depending on the resolution of the calibration and the resolution required by the design, this may be negligible. The function designer shall use the truncation library functions in all cases where this error is acceptable in order to save on execution time.

Fixed X-Axis Linear Interpolation Functions

The following functions are available for linear interpolation with a fixed X-axis and are based on equation (3). The table below defines each argument used in the API. Note that some functions require and/or return unsigned or signed values. It is up to the designer to pick the proper interpolation function for their design.

ArgumentNotes
DeltaXProvides the delta between points in the X-axis for interpolation. A value of 0 shall return the first value in YTbl.
YTbl[]Y table values
SizeNumber of elements in YTbl
InpInput value (x). Values that are less than or equal to DeltaX or larger than DeltaX * (Size – 1) will return the first or last value respectively from YTbl.

API

The input and output variables are defined as uint16 or sint16 for purposes of min and max ranges. However, calibrations with different resolutions, for example u8p8, can be used because they are still represented as a 16-bit value within these functions.

Truncating Functions

Function NameLnrIntrpn_u16_u16FixdXu16VariYTypeMinMax
Arguments PassedDeltaXuint16065535
YTbl[]uint16[]065535
Sizeuint16165535
Inpuint16065535
Return Valueuint16065535
Function NameLnrIntrpn_s16_u16FixdXs16VariYTypeMinMax
Arguments PassedDeltaXuint16065535
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpuint16065535
Return Valuesint16-3276832767

Rounding Functions

Function NameLnrIntrpnWithRound_u16_u16FixdXu16VariYTypeMinMax
Arguments PassedDeltaXuint16065535
YTbl[]uint16[]065535
Sizeuint16165535
Inpuint16065535
Return Valueuint16065535
Function NameLnrIntrpnWithRound_s16_u16FixdXs16VariYTypeMinMax
Arguments PassedDeltaXuint16065535
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpuint16065535
Return Valuesint16-3276832767

Variable X-Axis Linear Interpolation Functions

The following functions are available for linear interpolation with a variable X-axis and are based on equation (2). The table below defines each argument used in the API. Note that some functions require and/or return unsigned or signed values. It is up to the designer to pick the proper interpolation function for their design.

ArgumentNotes
XTbl[]X Table
YTbl[]Y Table
SizeNumber of elements in the XTbl and YTbl
InpInput value (x). Values that are less than or equal to XTbl[0] or larger than XTbl[Size – 1] will return the first or last value respectively from YTbl.

API

The input and output variables are defined as uint16 or sint16 for purposes of min and max ranges. However, calibrations with different resolutions, for example u8p8, can be used because they are still represented as a 16-bit value within these functions.

Truncating Functions

Function NameLnrIntrpn_u16_u16VariXu16VariYTypeMinMax
Arguments PassedXTbl[]uint16[]065535
YTbl[]uint16[]065535
Sizeuint16165535
Inpuint16065535
Return Valueuint16065535
Function NameLnrIntrpn_u16_s16VariXu16VariYTypeMinMax
Arguments PassedXTbl[]sint16[]-3276832767
YTbl[]uint16[]065535
Sizeuint16165535
Inpsint16-3276832767
Return Valueuint16065535
Function NameLnrIntrpn_s16_s16VariXs16VariYTypeMinMax
Arguments PassedXTbl[]sint16[]-3276832767
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpsint16-3276832767
Return Valuesint16-3276832767
Function NameLnrIntrpn_s16_u16VariXs16VariYTypeMinMax
Arguments PassedXTbl[]uint16[]065535
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpuint16065535
Return Valuesint16-3276832767

Rounding Functions

Function NameLnrIntrpnWithRound_u16_u16VariXu16VariYTypeMinMax
Arguments PassedXTbl[]uint16[]065535
YTbl[]uint16[]065535
Sizeuint16165535
Inpuint16065535
Return Valueuint16065535
Function NameLnrIntrpnWithRound_u16_s16VariXu16VariYTypeMinMax
Arguments PassedXTbl[]sint16[]-3276832767
YTbl[]uint16[]065535
Sizeuint16165535
Inpsint16-3276832767
Return Valueuint16065535
Function NameLnrIntrpnWithRound_s16_s16VariXs16VariYTypeMinMax
Arguments PassedXTbl[]sint16[]-3276832767
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpsint16-3276832767
Return Valuesint16-3276832767
Function NameLnrIntrpnWithRound_s16_u16VariXs16VariYTypeMinMax
Arguments PassedXTbl[]uint16[]065535
YTbl[]sint16[]-3276832767
Sizeuint16165535
Inpuint16065535
Return Valuesint16-3276832767

Bilinear Interpolation

Bilinear interpolation is linear interpolation with expanded coverage into three dimensions. To calculate the result, three linear interpolations are required to be performed.

The first two interpolations are between the two data sets (shown in red and green in the image) and are described with the equations (4) and (5).

$$Y_{1} = y_{0} + \left( y_{1} - y_{0} \right)\left( \frac{(x - x_{0})}{(x_{1} - x_{0})} \right)$$(4)
$$Y_{2} = y_{2} + \left( y_{3} - y_{2} \right)\left( \frac{(x - x_{2})}{(x_{3} - x_{2})} \right)$$(5)

Equations (4) and (5) provide the endpoints for the interpolant between the two sets of data. The third interpolation determines how close the desired output is to each of the data sets. This is described in equation (6).

$$y = Y_{1} + \left( Y_{2} - Y_{1} \right)\left( \frac{(BS - {BS}_{1})}{({BS}_{2} - {BS}_{1})} \right)$$(6)

Since divisions are throughput intensive operations, equation (6) is not efficient for an embedded environment because it contains three division steps when substitutions are made for Y1 and Y2. However, the terms can be rearranged to reduce the amount of divisions for additional multiplications and additions, which typically are much less in throughput consumption. Staring with equations (4) and (5), the terms can be reordered into equations (7) and (8).

$$Y_{1} = \frac{\left( {x - x}_{0} \right)\left( {y_{1} - y}_{0} \right) + \left( x_{1} - x_{0} \right)y_{0}}{\left( x_{1} - x_{0} \right)} = \frac{Y_{1_{Num}}}{Y_{1_{Den}}}$$(7)
$$Y_{2} = \frac{\left( x - x_{2} \right)\left( y_{3} - y_{2} \right) + \left( x_{3} - x_{2} \right)y_{2}}{\left( x_{3} - x_{2} \right)} = \frac{Y_{2_{Num}}}{Y_{2_{Den}}}$$(8)

Equations (7) and (8) can be substituted back in equation (6) and the simplified result is shown in equation (9).

$$y = \frac{\left( BS - {BS}_{1} \right)\left( Y_{2_{Num}} \right)\left( Y_{1_{Den}} \right) - \left( BS - {BS}_{1} \right)\left( Y_{1_{Num}} \right)\left( Y_{2_{Den}} \right) + \left( {BS}_{2} - {BS}_{1} \right)\left( Y_{1_{Num}} \right)\left( Y_{2_{Den}} \right)}{\left( {BS}_{2} - {BS}_{1} \right)\left( Y_{1_{Den}} \right)\left( Y_{2_{Den}} \right)}$$(9)

Finally, the numerator in equation (9) can also be rearranged and split into multiple terms. The steps taken between equations (9) and (10) are provided in Appendix A. The final equation, requiring only one division step, is shown in equation (10).

Term1a = (x3x2)(y1 − y0)

Term1b = (x − x0)(BS2 − BS1)

Term2a3a = (x2 − x0)(BS − BS1)

Term2b = (x3 − x2)(y2 − y0)

Term3b = (x − x3)(y3 − y2)

$$y = y_{0} + \left( \frac{\left( {Term}_{2a3a} \right)\left( {Term}_{3b} \right) + \left( {Term}_{2a3a} \right)\left( {Term}_{2b} \right) + \left( {Term}_{1a} \right)\left( {Term}_{1b} \right)}{\left( {BS}_{2} - {BS}_{1} \right)\left( x_{1} - x_{0} \right)\left( x_{3} - x_{2} \right)} \right)$$

(10)

Common X Axis Bilinear Interpolation Functions

The following functions are available for bilinear interpolation with a common X-axis and are based on equation (10). The table below defines each argument used in the API. Note that some functions require and/or return unsigned or signed values. It is up to the designer to pick the proper interpolation function for their design.

ArgumentNotes
BilnrSeln

Bilinear Selection (BS-axis).

If BilnrSeln is less than or equal to BilnrSelnTbl[0], BilnrSeln will be assigned BilnrSelnTbl[0] and the BS index will be set to 0. If BilnrSeln is greater or equal to BilnrSerlnTbl[BilnrSelnSize – 1], then the BilnrSeln will be assigned BilnrSelnTbl[BilnrSelnSize – 1] and the BS index will be set to BilnrSelnSize – 2.

Inp

Input (X-axis).

If Inp is less than or equal to XTbl[0], the value will be assigned XTbl[0] and the X index will be set to 0. If it is greater than or equal to XTbl[XSize – 1], Inp will be assigned XTbl[XSize – 1] and the X index will be set to XSize – 2.

BilnrSelnTbl[]Bilinear selection table
BilnrSelnSizeNumber of elements in Bilinear selection table
XTbl[]X table
MplYTbl[]

Y table (Number of elements = BilnrSelnSize * XSize)

In most cases, Y table will be a 2-D table, and is declared as MplYTbl[BilnrSelnSize][XSize]

XSizeSize of X table

API

The input and output variables are defined as uint16 or sint16 for purposes of min and max ranges. However, calibrations with different resolutions, for example u8p8, can be used because they are still represented as a 16-bit value within these functions.

Function NameBilnrIntrpnWithRound_u16_u16CmnXu16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpuint16065535
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
XTbl[]uint16[]065535
MplYTbl[]uint16[]065535
XSizeuint16165535
Return Valueuint16065535
Function NameBilnrIntrpnWithRound_s16_u16CmnXs16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpuint16065535
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
XTbl[]uint16[]065535
MplYTbl[]sint16[]-3276832767
XSizeuint16165535
Return Valuesint16-3276832767
Function NameBilnrIntrpnWithRound_s16_s16CmnXs16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpsint16-3276832767
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
XTbl[]sint16[]-3276832767
MplYTbl[]sint16[]-3276832767
XSizeuint16165535
Return Valuesint16-3276832767
Function NameBilnrIntrpnWithRound_u16_s16CmnXu16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpsint16-3276832767
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
XTbl[]sint16[]-3276832767
MplYTbl[]uint16[]065535
XSizeuint16165535
Return Valueuint16065535

Variable X Axis Bilinear Interpolation Functions

The following functions are available for bilinear interpolation with a variable X-axis and are based on equation (10). The table below defines each argument used in the API. Note that some functions require and/or return unsigned or signed values. It is up to the designer to pick the proper interpolation function for their design.

ArgumentNotes
BilnrSeln

Bilinear Selection (BS-axis).

If BilnrSeln is less than or equal to BilnrSelnTbl[0], BilnrSeln will be assigned BilnrSelnTbl[0] and the BS index will be set to 0. If BilnrSeln is greater or equal to BilnrSerlnTbl[BilnrSelnSize – 1], then the BilnrSeln will be assigned BilnrSelnTbl[BilnrSelnSize – 1] and the BS index will be set to BilnrSelnSize – 2.

Inp

Input (X-axis).

If Inp is less than or equal to XTbl[0], the value will be assigned XTbl[0] and the X index will be set to 0. If it is greater than or equal to XTbl[XSize – 1], Inp will be assigned XTbl[XSize – 1] and the X index will be set to XSize – 2.

BilnrSelnTbl[]Bilinear selection table
BilnrSelnSizeNumber of elements in Bilinear selection table
MplXTbl []

X table (Number of elements = BilnrSelnSize * XSize)

In most cases, X table will be a 2-D table, and is declared as MplXTbl[BilnrSelnSize][XSize]

MplYTbl[]

Y table (Number of elements = BilnrSelnSize * XSize)

In most cases, Y table will be a 2-D table, and is declared as MplYTbl[BilnrSelnSize][XSize]

XSizeSize of X table

API

The input and output variables are defined as uint16 or sint16 for purposes of min and max ranges. However, calibrations with different resolutions, for example u8p8, can be used because they are still represented as a 16-bit value within these functions.

Function NameBilnrIntrpnWithRound_u16_u16MplXu16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpuint16065535
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
MplXTbl[]uint16[]065535
MplYTbl[]uint16[]065535
XSizeuint16165535
Return Valueuint16065535
Function NameBilnrIntrpnWithRound_u16_s16MplXu16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpsint16-3276832767
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
MplXTbl[]sint16[]-3276832767
MplYTbl[]uint16[]065535
XSizeuint16165535
Return Valueuint16065535
Function NameBilnrIntrpnWithRound_s16_s16MplXs16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpsint16-3276832767
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
MplXTbl[]sint16[]-3276832767
MplYTbl[]sint16[]-3276832767
XSizeuint16165535
Return Valuesint16-3276832767
Function NameBilnrIntrpnWithRound_s16_u16MplXs16MplYTypeMinMax
Arguments PassedBilnrSelnuint16065535
Inpuint16065535
BilnrSelnTbl[]uint16[]065535
BilnrSelnSizeuint16165535
MplXTbl[]uint16[]065535
MplYTbl[]sint16[]-3276832767
XSizeuint16165535
Return Valuesint16-3276832767

Known Limitations With Design

  1. The linear interpolation functions are implemented using signed 32-bit values for the calculation of the interpolation. If the product of the X and Y terms in the numerator are greater than or equal to 2,147,483,648 or 0x80000000 the rounding functions will apply the rounding incorrectly resulting in a 1 count error due to an overflow of the sign-bit. The truncating functions should be used in these situations.

  2. The bilinear functions are calculated using single-precision floating point math.

  3. Values of tables for linear interpolation X-axis and each row in the x-axis in a bilinear interpolation are assumed to be increasing in value.

  4. Consider the array of values below:

Index01234567
X-Axis01222222
Y-Axis100200300400500600700800

These values can be used in the interpolation library. If the input value is less than 2, then the interpolation will be performed as described in this document. If the value is greater than or equal to 2, then index 7 will be returned. This also is true for the bilinear selection table.

  1. Consider the array of values below:

Index01234567
X-Axis01222224
Y-Axis100200300400500600700800

These values can also be used in the interpolation library. If the input value is less than 2, then the interpolation will be performed as described in this document. If the value is greater than or equal to 2 and less than 4, the function will interpolate between index 6 and 7 as described in this document. If the value is greater than or equal to 4, index 7 is returned. This also is true for the bilinear selection table.

  1. All division operations in linear interpolation functions are not protected for division by zero to save on execution time. The designer shall take all efforts to ensure that the values selected for the tables will not result in a divide by zero operation.

Appendix A

The following section will demonstrate how equation (9) is recorded into the equation (10) described in the section Bilinear Interpolation.

Using equation (9) from section 5.2, the numerator and denominator can be subsitutituted for ynum and yden as shown in equation (A1).

$$y = \frac{\left( BS - {BS}_{1} \right)\left( Y_{2_{Num}} \right)\left( Y_{1_{Den}} \right) - \left( BS - {BS}_{1} \right)\left( Y_{1_{Num}} \right)\left( Y_{2_{Den}} \right) + \left( {BS}_{2} - {BS}_{1} \right)\left( Y_{1_{Num}} \right)\left( Y_{2_{Den}} \right)}{\left( {BS}_{2} - {BS}_{1} \right)\left( Y_{1_{Den}} \right)\left( Y_{2_{Den}} \right)} = \frac{y_{num}}{y_{den}}$$(A1)

Substituting back in all the terms in ynum, the numerator can be simplified as shown in equations A2 to A4.

Expanding the Y1Num and Y2Num term:

ynum = (BSBS1)(Y1Den)((xx2)(y3y2)+(Y2Den)y2) − (BSBS1)(Y2Den)((x − x0)(y1 − y0)+(Y1Den)y0) + (BS2BS1)(Y2Den)((x − x0)(y1 − y0)+(Y1Den)y0)
ynum = (BSBS1)(Y1Den)(xx2)(y3y2) + (BSBS1)(Y1Den)(Y2Den)y2 − (BSBS1)(Y2Den)(x − x0)(y1 − y0) − (BSBS1)(Y2Den)(Y1Den)y0 + (BS2BS1)(Y2Den)(x − x0)(y1 − y0) + (BS2BS1)(Y2Den)(Y1Den)y0(A2)

Simplifying (A2)

ynum = (BSBS1)(Y1Den)(xx2)(y3y2) + (BSBS1)(Y1Den)(Y2Den)(y2y0) + (BS2BS)(Y2Den)(x − x0)(y1 − y0) + (yden)(y0)(A3)

Now equation (A3) can be grouped into smaller terms and simplified.

ynum = (BSBS1)(x1x0)(xx2)(y3y2) + (BSBS1)(x1x0)(x3x2)(y2y0) + (BS2BS)(x − x0)(y1 − y0)(x3x2) + (yden)(y0)

Term1a = (x3x2)(y1 − y0)

Term1b = (BS2 − BS1)(x − x0)

Term2a3a = (BS − BS1)(x1 − x0)

Term2b = (x3 − x2)(y2 − y0)

Term3b = (x − x2)(y3 − y2)

$$y = \frac{y_{num}}{y_{den}} = y_{0} + \left( \frac{\left( {Term}_{2a3a} \right)\left( {Term}_{3b} \right) + \left( {Term}_{2a3a} \right)\left( {Term}_{2b} \right) + \left( {Term}_{1a} \right)\left( {Term}_{1b} \right)}{\left( {BS}_{2} - {BS}_{1} \right)\left( x_{1} - x_{0} \right)\left( x_{3} - x_{2} \right)} \right)$$

(A4)

Appendix B

The equations below can be used by a designer to see the impact of the truncating and rounding functions on their design.

Truncating Linear Interpolation Functions

From equations (2) and (3), the truncated result can be characterized by equations (B1) and (B2).

Fixed X-Axis Interpolation Function

$$y = y_{0} + \left\lfloor (y_{1} - y_{0})\frac{\left( x - x_{0} \right)}{\mathrm{\Delta}x} \right\rfloor$$(B1)

Variable X-Axis Interpolation Function

$$y = y_{0} + \left\lfloor (y_{1} - y_{0})\frac{\left( x - x_{0} \right)}{\left( x_{1} - x_{0} \right)} \right\rfloor$$(B2)

Rounding Linear Interpolation Functions

From equations (2) and (3), the rounding result can be characterized by equations (B3) and (B4).

Fixed X-Axis Interpolation Function

$$y = y_{0} + \frac{\left( \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) + \left( \frac{\mathrm{\Delta}x}{2} \right) \right)}{\mathrm{\Delta}x},\ if\ \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) \geq 0$$

$$y = y_{0} + \frac{\left( \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) - \left( \frac{\mathrm{\Delta}x}{2} \right) \right)}{\mathrm{\Delta}x},\ if\ \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) < 0$$

(B3)

Variable X-Axis Interpolation Function

$$y = y_{0} + \frac{\left( \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) + \left( \frac{\left( x_{1} - x_{0} \right)}{2} \right) \right)}{\left( x_{1} - x_{0} \right)},\ if\ \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) \geq 0$$

$$y = y_{0} + \frac{\left( \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) - \left( \frac{\left( x_{1} - x_{0} \right)}{2} \right) \right)}{\left( x_{1} - x_{0} \right)},\ if\ \left( y_{1} - y_{0} \right)\left( x - x_{0} \right) < 0$$

(B4)

Appendix C

The chart below shows the estimated number of clock cycles that are required for the fixed x-axis linear interpolation for various calculation methods. The source file was converted to assembly code for the Renesas RH850 microcontroller targeted for EA4 applications. The number of cycles for each instruction was determined based on the software user’s manual [1]. The best/worst case values are based on all predictive branching passing or failing and all other optimizations are ignored.

Based on the information, use of floating point calculations is too costly in terms of clock cycles for use throughout the project. Where the truncating and rounding functions offer the same results for almost half the execution time.

6 - Component Implementation

Component Implementation

Component Documentation

6.1 - ArchGlbPrm Review


Overview

Summary Sheet
Synergy Project


Sheet 1: Summary Sheet
























Rev 7.020-Apr-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. AR999A_ArchGlbPrm_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. 1.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. Kathleen Creager
Change Request ID:


EA4#868





























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:































MDD


Source Code


PolySpace









































Integration Manual


Davinci Files








































































Comments:

AR999A design was re-baselined with "global" attribute on the constants. Impl change was to bring the new






design subproject version in to the implementation project in Synergy; no impact on any implementation files.



















































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request. (Note: If this peer review form was not
completed for pervious versions of this component, the Change Owner should review the entire component and complete the checklist in its entirety prior and check
the form into Syngery. This may be done prior to reviewing the modifications for this Change Result)
- The Change Owner shall responsible for completing the entire checklist (Pre and Group review items) prior holding the initial group review.
- New components should include FDD Owner and Intergator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Select "Yes" and add "N/A" to the comments for checklist items that are not applicable for this change
- 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 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










Prep project is updated from correct basline








Yes
Comments:










































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:



























































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:

Kathleen Creager


Review Date :

06/23/15
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































7 - Component Implementation

Component Implementation

Component Documentation

7.1 - ArCplrSuprt Peer Review Checklists


Overview

Summary Sheet
Synergy Project
Source Code


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. AR201A_ArCplrSuprt_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. AR201A_ArCplrSuprt_Impl_1.1.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. Lucas Wendling
Work CR ID:


EA4#3184





























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:































N/AMDD


YesSource Code


N/APolySpace









































N/AIntegration Manual


N/ADavinci Files








































































Comments:

This component is mostly-unmodified files delivered by third parties. Peer review focus is to ensure correctness






to delivered software and reviews of any Nexteer modifications.



















































































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








N/A
Comments:










































Project contains the correct version of subprojects








N/A
Comments:










































Design subproject is correct version








N/A
Comments:











































General Notes / Comments:



























































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:

Lucas Wendling


Review Date :

01/12/16
































Lead Peer Reviewer:


Kathleen Creager


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: Source Code






















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

























Source File Name:


N/A

Source File Revision:


N/A
Header File Name:


Compiler.h, Platform_Types.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. 2, 2

























MDD Name:

N/A

Revision:
N/A

























FDD/SCIR/DSR/FDR/CM Name:




N/A

Revision:
N/A


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







N/A
Comments:

















































for constant names







N/A
Comments:

















































for function names







N/A
Comments:

















































for other names (component, memory







N/A
Comments:










mapping handles, typedefs, etc.)




































All paths assign a value to outputs, ensuring








N/A
Comments:









all outputs are initialized prior to being written





































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








N/A
Comments:









requirements tracability in the FDD





































All variables are declared at the function level.








N/A
Comments:
























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.


N/A
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








N/A
Comments:



and Work CR number





































Code accurately implements FDD (Document or Model)








N/A
Comments:










































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.





N/A
Comments:
















































Component.h is included








N/A
Comments:
























All other includes are actually needed. (System includes








N/A
Comments:









only allowed in Nexteer library components)





































Software Design and Coding Standards followed:











Version:

























Code comments are clear, correct, and adequate







N/A
Comments:










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













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







N/A
Comments:










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





































Function comment blocks are per standards and







N/A
Comments:










contain correct information: [N43]





































Code formatting (indentation, placement of







N/A
Comments:










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













[N57], [N58], [N59]














































Embedded constants used per standards; no







N/A
Comments:










"magic numbers": [N12]





































Memory mapping for non-RTE code







N/A
Comments:










is per standard





































All execution-order-dependent code can be







N/A
Comments:










recognized by the compiler: [N80]





































All loops have termination conditions that ensure







N/A
Comments:










finite loop iterations: [N63]





































All divides protect against divide by zero







N/A
Comments:










if needed: [N65]





































All integer division and modulus operations







N/A
Comments:










handle negative numbers correctly: [N76]





































All typecasting and fixed point arithmetic,







N/A
Comments:










including all use of fixed point macros and













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]





































All conversions between signed and unsigned







N/A
Comments:










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





































All pointer dereferencing protects against







N/A
Comments:










null pointer if needed: [N70]





































Component outputs are limited to the legal range







N/A
Comments:










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





































All code is mapped with FDD (all FDD







N/A
Comments:










subfunctions and/or model blocks identified













with code comments; all code corresponds to






















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













































Review did not identify violations of other








N/A
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:
















































Review only delivered file from vector SIP vs files to be checked in as well as new contract file "Renesas_Compiler.h"































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:

Lucas Wendling


Review Date :

01/12/16
































Lead Peer Reviewer:


Kathleen Creager


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































8 - Component Implementation

Component Implementation

Component Documentation

8.1 - ImcArbn_IntegrationManual

Integration Manual

For

Imc Arbitration

VERSION: 1.0

DATE: 02-Feb-2017

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USA

Revision History

Sl. No.DescriptionAuthorVersionDate
1Initial versionAkilan Rathakrishnan1.017-Jan-2017
2Added note about potential compilation issue in case of no signal group configuredAkilan Rathakrishnan2.002-Feb-2017

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 8

5 Integration DATAFLOW REQUIREMENTS 9

5.1 Required Global Data Inputs 9

5.2 Required Global Data Outputs 9

5.3 Specific Include Path present 9

6 Runnable Scheduling 10

7 Memory Map REQUIREMENTS 12

7.1 Mapping 12

7.2 Usage 12

7.3 Non RTE NvM Blocks 12

7.4 RTE NvM Blocks 12

8 Compiler Settings 13

8.1 Preprocessor MACRO 13

8.2 Optimization Settings 13

9 Appendix 14

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 - <AR350A_ImcArbn_Design>Refer Synergy subproject version

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

None

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

Configuration Files to be provided by Integration Project

ImcArbn_Private_Cfg.c

ImcArbn_Private_Cfg.h

ImcArbn_ Cfg.h

Note 1: Include “ImcArbn_Private_Cfg.h” in the “Rte_UserTypes.h” file as user defined typedefs are generated in this file.

Note 2: Configuration files “ImcArbn_Private_Cfg.c”, “ImcArbn_Private_Cfg.h” and “ImcArbn_ Cfg.h”

shall be regenerated whenever there is a change in text template files ImcArbn_Private_Cfg.c.tt, ImcArbn_Private_Cfg.h.tt and ImcArbn_Cfg.c.tt.

Note 3: If there is no IMC Signal Group / IMC Signals are configured, configuration scripts of this component will end-up in generating zero-size array typedefs, which will cause compilation issues. It is a design limitation and underlying assumption is that if no Signal Group configured, then the component shall be removed from the project altogether.

Da Vinci DEVELOPER NOTES

Davinci Developer project for this component is just base. Integrator need to import the developer project into the integration project and add all required IMC Signals in order to access the signal using S/R Ports. Also, for every of the signal, based on the Rate Group provided by higher level Architectural and Requirement documents, port access shall be provided to corresponding Transmit periodics (ImcArbnPer1= 2ms, ImcArbnPer2= 10ms and ImcArbnPer3= 100ms). All IMC Signals RTE reads shall be direct reads.

Da Vinci Parameter Configuration Changes

Following configurations shall be made in DaVinci configurator for the component. Configuration data for this component shall be provided by higher level Architectural and Requirement documents.

DaVinci Interrupt Configuration Changes

ISR NameVIM #Priority DependencyNotes
N/A

Manual Configuration Changes

ConstantNotesSWC
N/A

Exclusive Areas

ConstantNotesSWC
ExclsvAr1DrvrTxRxBuf

Exclusive area needs to protect access to Transmit and Receive buffers from asynchronous updates by server runnables and periodic updates by tasks.

Integrator needs to verify if client calls to server runnables can inteerupt periodics and set up exclusive area to properly protect access. If exclusive area is needed, at minimum it must disable OS Task scheduling (It is assumed that all clients call occurs in OS Tasks).

ExclsvAr2SigDataBuf

Exclusive area needs to protect access to Signal data buffers from asynchronous read by server runnables and periodic updates by tasks.

Integrator needs to verify if client calls to server runnables can inteerupt periodics and set up exclusive area to properly protect access. If exclusive area is needed, at minimum it must disable OS Task scheduling (It is assumed that all clients call occurs in OS Tasks).

Integration DATAFLOW REQUIREMENTS

Required Global Data Inputs

Refer AR350A_ImcArbn_DataDict.m file

Required Global Data Outputs

Refer AR350A_ImcArbn_DataDict.m file

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
ImcArbnInit1Invoked by RTE during InitRTE
RunnableScheduling RequirementsTrigger
ImcArbnPer1Refer Notes listed below the tableRTE 2ms Task
ImcArbnPer2Refer Notes listed below the tableRTE 10ms Taks
ImcArbnPer3Refer Notes listed below the tableRTE 100ms Task
ImcArbnPer4Refer Notes listed below the tableRTE 2ms Task
ImcArbnPer5Refer Notes listed below the tableRTE 10ms Task
ImcArbnPer6Refer Notes listed below the tableRTE 100ms Task
GetSigImcDataExtdSts_f32_OperServer RunnableClient call
GetSigImcDataExtdSts_u32_OperServer RunnableClient call
GetSigImcDataExtdSts_s32_OperServer RunnableClient call
GetSigImcDataExtdSts_u16_OperServer RunnableClient call
GetSigImcDataExtdSts_s16_OperServer RunnableClient call
GetSigImcDataExtdSts_u08_OperServer RunnableClient call
GetSigImcDataExtdSts_s08_OperServer RunnableClient call
GetSigImcDataExtdSts_logl_OperServer RunnableClient call
GetSigImcData_f32_OperServer RunnableClient call
GetSigImcData_u32_OperServer RunnableClient call
GetSigImcData_s32_OperServer RunnableClient call
GetSigImcData_u16_OperServer RunnableClient call
GetSigImcData_s16_OperServer RunnableClient call
GetSigImcData_u08_OperServer RunnableClient call
GetSigImcData_s08_OperServer RunnableClient call
GetSigImcData_logl_OperServer RunnableClient call
GetTxRateGroup_OperServer RunnableClient call
GetTxSigGroup_OperServer RunnableClient call
SetRxSigGroup_OperServer RunnableClient call

Notes:

  1. ImcArbnPer1, ImcArbnPer2 and ImcArbnPer3 periodic functions shall be called prior to calling respective primary and secondary signal source transmit layer functions.

  2. ImcArbnPer4, ImcArbnPer5 and ImcArbnPer6 periodic functions shall be called after calling respective primary and secondary signal source receive layer functions.

  3. ImcArbn Receive periodic functions (ImcArbnPer4, ImcArbnPer5 and ImcArbnPer6) shall run prior to the ImcArbn Transmit periodics (ImcArbnPer1, ImcArbnPer2 and ImcArbnPer3) functions.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
None

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

Usage

FeatureRAMROM
None

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

<This section is for appendix>

8.2 - ImcArbn_MDD

Module Design Document

For

Imc Arbitration

Jan 17, 2017

Prepared For:

Software Engineering

Nexteer Automotive,

Saginaw, MI, USA

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USAChange History

Sl. No.DescriptionAuthorVersionDate
1Initial VersionAkilan Rathakrishnan1.017-Jan-2017

Table of Contents

1 ImcArbn High-Level Description 7

2 Design details of software module 8

Graphical representation of ImcArbn 8

2.1.1 Data Flow Diagram 8

2.1.2 Component level DFD 9

2.1.3 Function level DFD 9

3 Variable Data Dictionary 10

3.1 User defined typedef definition/declaration 10

3.2 Variable definition for enumerated types 12

4 Constant Data Dictionary 13

Program (fixed) Constants 13

4.1.1 Embedded Constants 13

4.1.1.2 Global 13

4.1.2 Module specific Lookup Tables Constants 13

5 Software Module Implementation 14

5.1 Sub-Module Functions 14

5.1.1 Init: ImcArbnInit1 14

5.1.1.1 Design Rationale 14

5.1.1.2 Design Rationale 14

5.1.2 PERIODIC FUNCTIONS 14

5.1.3 Per: ImcArbnPer1 14

5.1.3.1 Design Rationale 14

5.1.4 Per: ImcArbnPer2 14

5.1.4.1 Design Rationale 14

5.1.5 Per: ImcArbnPer3 14

5.1.5.1 Design Rationale 14

5.1.6 Per: ImcArbnPer4 14

5.1.6.1 Design Rationale 14

5.1.7 Per: ImcArbnPer5 14

5.1.7.1 Design Rationale 14

5.1.8 Per: ImcArbnPer6 14

5.1.8.1 Design Rationale 14

5.1.9 Interrupt Functions 14

5.2 Server Runnable Functions 15

5.2.1 GetSigImcDataExtdSts_f32 15

5.2.1.1 Design Rationale 15

5.2.2 GetSigImcDataExtdSts_u32 15

5.2.2.1 Design Rationale 15

5.2.3 GetSigImcDataExtdSts_u16 15

5.2.3.1 Design Rationale 15

5.2.4 GetSigImcDataExtdSts_s16 15

5.2.4.1 Design Rationale 15

5.2.5 GetSigImcDataExtdSts_u08 15

5.2.5.1 Design Rationale 15

5.2.6 GetSigImcDataExtdSts_s08 15

5.2.6.1 Design Rationale 15

5.2.7 GetSigImcDataExtdSts_logl 15

5.2.7.1 Design Rationale 15

5.2.8 GetSigImcData_f32 15

5.2.8.1 Design Rationale 15

5.2.9 GetSigImcData_u32 15

5.2.9.1 Design Rationale 15

5.2.10 GetSigImcData_s32 15

5.2.10.1 Design Rationale 15

5.2.11 GetSigImcData_u16 16

5.2.11.1 Design Rationale 16

5.2.12 GetSigImcData_s16 16

5.2.12.1 Design Rationale 16

5.2.13 GetSigImcData_u08 16

5.2.13.1 Design Rationale 16

5.2.14 GetSigImcData_s08 16

5.2.14.1 Design Rationale 16

5.2.15 GetSigImcData_logl 16

5.2.15.1 Design Rationale 16

5.2.16 GetTxRateGroup 16

5.2.16.1 Design Rationale 16

5.2.17 GetTxSigGroup 16

5.2.17.1 Design Rationale 16

5.2.18 SetRxSigGroup 16

5.2.18.1 Design Rationale 16

5.3 Module Internal (Local) Functions 16

5.3.1 Local Function #1 16

5.3.1.1 Description 17

5.3.2 Local Function #2 17

5.3.2.1 Description 17

5.3.3 Local Function #3 17

5.3.3.1 Description 17

5.3.4 Local Function #4 17

5.3.4.1 Description 17

5.3.5 Local Function #5 17

5.3.5.1 Description 18

5.3.6 Local Function #6 18

5.3.6.1 Description 18

5.3.7 Local Function #7 18

5.3.7.1 Description 18

5.3.8 Local Function #8 18

5.3.8.1 Description 18

5.3.9 Local Function #9 19

5.3.9.1 Description 19

5.3.10 Local Function #10 19

5.3.10.1 Description 19

5.3.11 Local Function #11 19

5.3.11.1 Description 19

5.3.12 Local Function #12 19

5.3.12.1 Description 20

5.3.13 Local Function #13 20

5.3.13.1 Description 20

5.3.14 Local Function #14 20

5.3.14.1 Description 20

5.3.15 Local Function #15 20

5.3.15.1 Description 20

5.3.16 Local Function #16 20

5.3.16.1 Description 20

5.3.17 Transition Functions 20

5.3.18 Global Function/Macro Definitions 21

6 Known Limitations with Design 22

7 UNIT TEST CONSIDERATION 23

Appendix A Abbreviations and Acronyms 24

Appendix B Glossary 25

Appendix C References 26

ImcArbn High-Level Description

The Inter-Micro Communication (IMC) Arbitration prepares data for transmission to a complimentary ECU through two redundant communication paths. On the receive side, the Arbitration reads data from the primary source and determines the data validity. A validity fault on primary source prompts the IMC Arbitration component to evaluate the same signal from the secondary source. Faulty signals from the primary source will be replaced with signals from the secondary source, as long as they are valid. If both data sources are invalid the IMC Arbitration outputs the signal status based on never received, missing and invalid conditions.

Design details of software module

See FDD.

Graphical representation of ImcArbn

Data Flow Diagram

See FDD.

Component level DFD

See FDD.

Function level DFD

See FDD.

Variable Data Dictionary

User defined typedef definition/declaration

<This section documents any user types uniquely used for the module.>

Variable definition for enumerated types

Enum NameElement NameValue
See AR350A_ImcArbn_DataDict.m file

Constant Data Dictionary

Program (fixed) Constants

Embedded Constants

Local Constants

Constant NameResolutionUnitsValue
See AR350A_ImcArbn_DataDict.m file

Global

<This section lists the global constants used by the module. For details on global constants, refer to the Data Dictionary for the application>

Constant Name
See AR350A_ImcArbn_DataDict.m file

Module specific Lookup Tables Constants

<(This is for lookup tables (arrays) with fixed values, same name as other tables)>

Constant NametypeValueSoftware Segment
SIGGROUPCONFIG_RECSigGroupRec1ConfigurableImcArbn_CONST
<SIGGROUPNAME>_RECSigPrmRec1ConfigurableImcArbn_CONST
RATEGROUPOFFS_CNT_U08Uint8ConfigurableImcArbn_CONST
NRSIGGROUPINRATEGROUP_CNT_U08Uint8ConfigurableImcArbn_CONST
MISSSIGGROUPTIOUT_CNT_U08Uint8ConfigurableImcArbn_CONST

Note: <SIGGROUPNAME>_REC – Placeholder <SIGGROUPNAME> will be replaced based on respective Signal Group names from the configuration. Also note, this component will have as many number of <SIGGROUPNAME>_REC constants as number of Signal Groups.

Software Module Implementation

Sub-Module Functions

None

Init: ImcArbnInit1

Design Rationale

Design follows implementation in FDD.

Design Rationale

Refer FDD

PERIODIC FUNCTIONS

Per: ImcArbnPer1

Design Rationale

Refer FDD

Per: ImcArbnPer2

Design Rationale

Refer FDD

Per: ImcArbnPer3

Design Rationale

Refer FDD

Per: ImcArbnPer4

Design Rationale

Refer FDD

Per: ImcArbnPer5

Design Rationale

Refer FDD

Per: ImcArbnPer6

Design Rationale

Refer FDD

Interrupt Functions

None

Server Runnable Functions

GetSigImcDataExtdSts_f32

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u32

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u16

Design Rationale

Refer FDD

GetSigImcDataExtdSts_s16

Design Rationale

Refer FDD

GetSigImcDataExtdSts_u08

Design Rationale

Refer FDD

GetSigImcDataExtdSts_s08

Design Rationale

Refer FDD

GetSigImcDataExtdSts_logl

Design Rationale

Refer FDD

GetSigImcData_f32

Design Rationale

Refer FDD

GetSigImcData_u32

Design Rationale

Refer FDD

GetSigImcData_s32

Design Rationale

Refer FDD

GetSigImcData_u16

Design Rationale

Refer FDD

GetSigImcData_s16

Design Rationale

Refer FDD

GetSigImcData_u08

Design Rationale

Refer FDD

GetSigImcData_s08

Design Rationale

Refer FDD

GetSigImcData_logl

Design Rationale

Refer FDD

GetTxRateGroup

Design Rationale

Refer FDD

GetTxSigGroup

Design Rationale

Refer FDD

SetRxSigGroup

Design Rationale

Refer FDD

Module Internal (Local) Functions

Local Function #1

Function NameImcArbnTxTypeMinMax
Arguments PassedRateGroup_Cnt_T_u08Uint802
Return ValuevoidN/AN/AN/A

Description

This function implements “ImcArbnTx” function in the FDD.

Local Function #2

Function NameImcArbnRxTypeMinMax
Arguments PassedFrmFltCntr_Ary2D_u8Ary2D_u8_2_2*0x000000010xFFFFFFFF
RateGroup_Cnt_T_u08uint802
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “ImcArbnRx” function in the FDD.

Local Function #3

Function NameNoDataHndlgTypeMinMax
Arguments PassedRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
RxDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08uint80255
PrimSrcNoDataRxd_Cnt_T_loglboolean01
SecdrySrcNoDataRxd_Cnt_T_loglboolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “NoDataHndlg” function in the FDD.

Local Function #4

Function NameOvrdSigStsDurgStrtUpTypeMinMax
Arguments PassedSigGroup_Cnt_T_u08uint80255
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueNoneN/AN/AN/A

Description

This function implements “OvrdSigStsDurgStrtUp” function in the FDD.

Local Function #5

Function NameEvlSigGroupNeverRxdMissStsTypeMinMax
Arguments PassedRateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08uint80255
Return ValueRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106

Description

This function implements “OvrdSigStsDurgStrtUp” function in the FDD.

Local Function #6

Function NameRxFrmVldChkTypeMinMax
Arguments PassedDataBuf_Cnt_T_u08uint8*0x000000010xFFFFFFFF
FrmFltCntr_Cnt_T_u08Ary1D_u8_2*0x000000010xFFFFFFFF
SigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08uint802
SigGroup_Cnt_T_u08Uint80255
PrimSrcOnlySigGroup_Cnt_T_loglBoolean01
IniTiOutChkCmpl_Cnt_T_loglBoolean01
Return ValueFrmSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “RxFrmVldChk” function in the FDD.

Local Function #7

Function NameImcChResyncHndlgTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueVoidNANANA

Description

This function implements “ImcChResyncHndlg” function in the FDD.

Local Function #8

Function NameVldtRollgCntrTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08Uint802
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueRollgCntrSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “VldtRollgCntr” function in the FDD.

Local Function #9

Function NameVldtRollgCntrAlgTypeMinMax
Arguments PassedSigGroupDataSrc_Cnt_T_enumImcArbnRxDataSrc102
RateGroup_Cnt_T_u08Uint802
SigGroup_Cnt_T_u08Uint80255
PrsntRollgCntr_Cnt_T_u08Uint8031
Return ValueRollgCntrSts_Cnt_T_enumImcArbnRxRollgCntrSts102

Description

This function implements “VldtRollgCntrAlg” function in the FDD.

Local Function #10

Function NameRollgCntrSeqChkTypeMinMax
Arguments PassedPrsntRollgCntr_Cnt_T_u08Uint8031
AntcptdRollCntr_Cnt_T_u08Uint8031
UpprDriftLim_Cnt_T_u08Uint80255
LwrDriftLim_Cnt_T_u08Uint80255
Return ValueRollgCntrVld_Cnt_T_loglboolean01

Description

This function implements “RollgCntrSeqChk” function in the FDD.

Local Function #11

Function NameCreatSigGroupDataTypeMinMax
Arguments PassedSigGroup_T_recSigGroupRec1 const*0x000000010xFFFFFFFF
Return ValueRetData_Uls_T_u32uint3204294967295

Description

This function implements “CreatSigGroupData” function in the FDD.

Local Function #12

Function NameDecodSigGroupDataTypeMinMax
Arguments PassedSigGroup_T_recSigGroupRec1 const*0x000000010xFFFFFFFF
SigGroupRxData_Uls_T_u32uint3204294967295
RxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
RxDataSrc_Cnt_T_enumImcArbnRxDataSrc102
Return Valuevoid

Description

This function implements “DecodSigGroupData” function in the FDD.

Local Function #13

Function NameGetBitMaskTypeMinMax
Arguments PassedNrOfBits_Cnt_T_u08Uint8031
Return ValueBitMask_Cnt_T_u32uint3204294967295

Description

This function implements “GetBitMask” function in the FDD.

Local Function #14

Function NameGetImcSigStsTypeMinMax
Arguments PassedRxSigExtdSts1_Cnt_T_enumImcArbnRxExtdSts106
Return ValueRetSts_Cnt_T_enumImcArbnRxSts102

Description

This function implements “GetImcSigSts” function in the FDD.

Local Function #15

Function NameGetImcFltParamByteTypeMinMax
Arguments Passedvoid
Return ValueFltBitMask_Cnt_T_u08Uint8015

Description

This function implements “GetImcFltParamByte” function in the FDD.

Local Function #16

Function NameNoDataRxdTypeMinMax
Arguments PassedStrtByte_Cnt_T_u08Uint80255
EndByte_Cnt_T_u08Uint80255
Return ValueRetVal_Cnt_T_loglboolean01

Description

This function implements “NoDataRxd” function in the FDD.

Transition Functions

None.

Global Function/Macro Definitions

Refer FDD

Known Limitations with Design

None

UNIT TEST CONSIDERATION

  1. Number of Signals / Signal Groups / Rate Groups that can be supported by Imc Tx/Rx is configurable. Even though underlying data type of configuration information might have wider range, only values that are generated out of configuration will be supported by the component. If complete range need to be supported, then make configuration, and generate the cfg files accordingly. Also, none of the configuration values shall be hand-modified to cover legal range of underlying parameter.

Abbreviations and Acronyms

Abbreviation or AcronymDescription
DFDDesign functional diagram
MDDModule design Document
FDDFunctional Design Document

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.1
5FDD: AR350A_ImcArbn_DesignSee Synergy subproject version

8.3 - ImcArbn_Review


Overview

Summary Sheet
Synergy Project
Davinci Files
Source Code
PolySpace
Integration Manual


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. AR350A_ImcArbn_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. AR350A_ImcArbn_Impl_1.0.1

























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. Akilan Rathakrishnan
Work CR ID:


EA4# 9291





























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:
































MDD


YesSource Code


YesPolySpace









































YesIntegration Manual


YesDavinci Files








































































Comments:

Only configuration script changes. Config c and h files are regenerated



























































































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:



























































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:

Akilan Rathakrishnan


Review Date :

02/02/17
































Lead Peer Reviewer:


Krishna Anne


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: Davinci Files






















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


























Quality Check Items:




































Rationale is required for all answers of No










Only StdDef Port types are used








Yes
Comments:










































For components not using application data types, do all








Yes
Comments:



port interface names end in PortIf and a sequence number





























































Non-program-specific components saved








Yes
Comments:




in Autosar 4.0.3 format




































*Cfg.arxml.TT: Verfied Davinci Configurator imported the








N/A
Comments:




change correctly




































*Cfg.h.TT: Verfied Davinci Configurator generates








Yes
Comments:










the configuration header(s) file correctly
kzshz2: Either a generic sandbox or a baselined integration project can be used to verify



























kzshz2: Either a generic sandbox or a baselined integration project can be used to verify
















All changed files have been compared against previous








Yes
Comments:




versions (If available)

kzshz2: Intended Use: Identify if previous version was compared and only the expected change(s) was present. This is for text files only, not binary or GUIs Rationale: This is helpful in identifying unapproved (intended or mistaken) changes.


































Automated validation check is performed








Yes



























































Naming conventions followed. All names should








Yes












match DataDict.m













































Sender/Receiver port properties match DataDict.m








N/A
Comments:










file (use .m file helper tool)













































Calibration port properties match DataDict.m








Yes
Comments:










file (use .m file helper tool)













































Components using application data types:























Sender/Receiver port initialization values match







N/A
Comments:










DataDict.m file














































Calibration port initialization values match







N/A
Comments:










DataDict.m file













































Components not using application data types:























Sender/Receiver port initialization values match







N/A
Comments:










DataDict.m file and have been converted to counts






















for fixed point types














































Calibration port initialization values match







Yes
Comments:










DataDict.m file and have been converted to counts






















for fixed point types














































Mapping set and all unused items have been







Yes
Comments:










removed













































All sender/receiver port read/writes using direct








N/A
Comments:










read/writes(List justification if not)













































Runnable calling frequencies match FDD








Yes
Comments:

































DataDict.m display variables: created as








N/A
Comments:









PerInstanceMemory. Matches the FDD





































Component is correct component type








Yes
Comments:











































































General Notes / Comments:























Only config script changes. Config c and h files are regenerated











































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:

Akilan Rathakrishnan
Review Date :

02/02/17
Component Type :


Application



























Lead Peer Reviewer:


Krishna Anne
Approved by Reviewer(s):



Yes

































Other Reviewer(s):










































































Sheet 4: Source Code






















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

























Source File Name:


ImcArbn.c

Source File Revision:


1
Header File Name:


ImcArbn.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. 1

























MDD Name:

ImcArbn_MDD.doc

Revision:
1

























FDD/SCIR/DSR/FDR/CM Name:




AR350A_ImcArbn_Design

Revision:
1.1.0


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







Yes
Comments:

















































for constant names







Yes
Comments:

















































for function names







Yes
Comments:

















































for other names (component, memory







Yes
Comments:










mapping handles, typedefs, etc.)




































All paths assign a value to outputs, ensuring








Yes
Comments:









all outputs are initialized prior to being written





































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








N/A
Comments:









requirements tracability in the FDD





































All variables are declared at the function level.








Yes
Comments:
























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:










































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.





No
Comments:






















Refer Comments
























Component.h is included








Yes
Comments:
























All other includes are actually needed. (System includes








Yes
Comments:









only allowed in Nexteer library components)





































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













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]





































Function comment blocks are per standards and







Yes
Comments:










contain correct information: [N43]





































Code formatting (indentation, placement of







Yes
Comments:










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













[N57], [N58], [N59]














































Embedded constants used per standards; no







Yes
Comments:










"magic numbers": [N12]





































Memory mapping for non-RTE code







N/A
Comments:










is per standard





































All execution-order-dependent code can be







N/A
Comments:










recognized by the compiler: [N80]





































All loops have termination conditions that ensure







Yes
Comments:










finite loop iterations: [N63]





































All divides protect against divide by zero







N/A
Comments:










if needed: [N65]





































All integer division and modulus operations







Yes
Comments:










handle negative numbers correctly: [N76]





































All typecasting and fixed point arithmetic,







Yes
Comments:










including all use of fixed point macros and













timer functions, is correct and has no possibility






















of unintended overflow or underflow: [N66]














































All float-to-unsiged conversions ensure the.







Yes
Comments:










float value is non-negative: [N67]





































All conversions between signed and unsigned







N/A
Comments:










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





































All pointer dereferencing protects against







Yes
Comments:










null pointer if needed: [N70]





































Component outputs are limited to the legal range







N/A
Comments:










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





































All code is mapped with FDD (all FDD







Yes
Comments:










subfunctions and/or model blocks identified













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:
















































Contract c file generation script changes only





















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:

Akilan Rathakrishnan


Review Date :

02/02/17
































Lead Peer Reviewer:


Krishna Anne


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 5: PolySpace






















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


























Source File Name:






ImcArbn.c







Source File Revision:


1

Source File Name:






ImcArbn_Private_Cfg.c







Source File Revision:


2

Source File Name:















Source File Revision:






























EA4 Static Analysis Compliance Guideline version:























Poly Space version:


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




Windows User: eg. TL108a_PolyspaceSuprt_1.0.0 Not released

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 TL100A_QACSuprt_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:

Run only for config c file as it is the only file got changed


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

Yes
Comments:





for all functions in the component per Design














and Coding Standards rule [N47]

































































































General Notes / Comments:























1. MISRA Rule 21.1, 16.7, 1.2 are analyzed and found not an issue

2. Data flow issues in polyspace are analyzed and found not an issue































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:

Akilan Rathakrishnan


Review Date :

02/02/17
































Lead Peer Reviewer:


Krishna Anne


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 6: Integration Manual






















Rev 1.28-Jun-15
Peer Review Meeting Log (Integration Manual Review)


























Integration Manual Name:



kzshz2: Intended Use: Identify which file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. ImcArbn_IntegrationManual.doc

Integration Manual Revision:



kzshz2: Intended Use: Identify which version of the integration manual has been reviewed. Rationale: Required for traceability between the MDD and review. Auditors will likely require this. 2





























Quality Check Items:




































Rationale is required for all answers of No










Synergy version matches header








Yes
Comments:










































Latest template used








Yes
Comments:










































Change log contains detailed description of changes








Yes
Comments:










































Changes Highlighted (for Integrator)








N/A
Comments:

Initial Version








































General Notes / Comments:























Added note about potential compilation issue in case of no signal group configuration


































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:

Akilan Rathakrishnan


Review Date :

02/02/17
































Lead Peer Reviewer:


Krishna Anne


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































9 - Component Implementation

Component Implementation

Component Documentation

9.1 - MicroCtrlrSuprt Peer Review Checklists


Overview

Summary Sheet
Synergy Project
Source Code
PolySpace


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. AR202A_MicroCtrlrSuprt_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. AR202A_MicroCtrlrSuprt_Impl_1.3.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. Lucas Wendling
Work CR ID:


EA4#1907





























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:































MDD


YesSource Code


YesPolySpace









































Integration Manual


Davinci Files








































































Comments:

Source code review only. Documentation creation and review will be targeted at a future date.






Very high level review only done on peripheral headers given it was essentially provided by Renesas.



















































































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








N/A
Comments:

No design project available yet








































General Notes / Comments:



























































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:

Lucas Wendling


Review Date :

10/19/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Nick Saxton






































































Sheet 3: Source Code






















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

























Source File Name:


N/A

Source File Revision:


N/A
Header File Name:


NxtrMcuSuprtLib.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. 1

























MDD Name:

N/A

Revision:
N/A

























FDD/SCIR/DSR/FDR/CM Name:




N/A

Revision:
N/A


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







Yes
Comments:

















































for constant names







Yes
Comments:

















































for function names







Yes
Comments:

















































for other names (component, memory







Yes
Comments:










mapping handles, typedefs, etc.)




































All paths assign a value to outputs, ensuring








N/A
Comments:

No Outputs






all outputs are initialized prior to being written





































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








N/A
Comments:

Nothing to trace to






requirements tracability in the FDD





































All variables are declared at the function level.








Yes
Comments:
























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)








N/A
Comments:

No FDD currently







































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








N/A
Comments:
























All other includes are actually needed. (System includes








Yes
Comments:









only allowed in Nexteer library components)





































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













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]





































Function comment blocks are per standards and







Yes
Comments:










contain correct information: [N43]





































Code formatting (indentation, placement of







Yes
Comments:










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













[N57], [N58], [N59]














































Embedded constants used per standards; no







Yes
Comments:










"magic numbers": [N12]





































Memory mapping for non-RTE code







N/A
Comments:










is per standard





































All execution-order-dependent code can be







Yes
Comments:










recognized by the compiler: [N80]





































All loops have termination conditions that ensure







N/A
Comments:










finite loop iterations: [N63]





































All divides protect against divide by zero







N/A
Comments:










if needed: [N65]





































All integer division and modulus operations







N/A
Comments:










handle negative numbers correctly: [N76]





































All typecasting and fixed point arithmetic,







N/A
Comments:










including all use of fixed point macros and













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]





































All conversions between signed and unsigned







N/A
Comments:










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





































All pointer dereferencing protects against







Yes
Comments:

Not needed - assumed caller is passing appropriate pointer addresses







null pointer if needed: [N70]





































Component outputs are limited to the legal range







N/A
Comments:










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





































All code is mapped with FDD (all FDD







N/A
Comments:

No FDD currently available







subfunctions and/or model blocks identified













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:

No FDD currently available






for any FDD corrections needed































































General Notes / Comments:
















































See about adding _arg to all function parameters

Add header for each function

Offline review of register addresses, size, and grouping to be done. Also, look at DET parameter values

























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:

Lucas Wendling


Review Date :

10/19/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Nick Saxton






































































Sheet 4: PolySpace






















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


























Source File Name:


NxtrMcuSuprtLib.h











Source File Revision:


1

Source File Name:















Source File Revision:





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 N/A

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 TL100A_QACSuprt_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








N/A
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

Yes
Comments:





for all functions in the component per Design














and Coding Standards rule [N47]

































































































General Notes / Comments:























Red polyspace errors for inifinite loops. This is acceptable since it is intended to have these after attempting to issue a software reset.


































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:

Lucas Wendling


Review Date :

10/19/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Nick Saxton





































































10 - Component Implementation

Component Implementation

Component Documentation

Specific Component Tools

10.1 - MotCtrlMgr Integration Manual

Integration Manual

For

MotCtrlMgr

VERSION: 3

DATE: 09/21/16

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionLucas Wendling105/29/15
2Updates for Signal MappingLucas Wendling210/28/15
3Updates describing tool that generates MotCtrlMgr configurationLucas Wendling309/21/16

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
1MDD GuidelinesProcess 04.00.00
2Software Naming ConventionsProcess 04.00.00
3Software Coding StandardsProcess 04.00.00
4AR300A_MotCtrlMgr_DesignSee Synergy subproject version

Dependencies

SWCs

ModuleRequired Feature

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

MotCtrlMgrIrq – This is a category 1 interrupt (see details below)

Configuration REQUIREMeNTS

In addition to configuration based .c and .h files, the MotCtrlMgr generator will also generate a .m file data dictionary for MotCtrlMgr. In addition to documentation purposes, this data dictionary is intended to aid in the creation of the AUTOSAR SWC model that is required to be created for the MotCtrlMgr’s signal interface to the RTE. While the generator will create the RTE runnables and runnable contents automatically, the SWC model to be used in the AUTOSAR authoring tools (e.g. Davinci Developer) is not automatically created by the generator and will need either a separate tool to create, or will need to be manually created.

Build Time Config

ModulesNotes
None

Configuration Files to be provided by Integration Project

CDD_MotCtrlMgr.c

CDD_MotCtrlMgr_Data.c

CDD_MotCtrlMgr_Data.h

CDD_MotCtrlMgr_Irq.c

DaVinci Parameter Configuration Changes

Most of the configuration parameters in the table below are determined from extracted data from the component data dictionaries of a given project. This includes all of the motor control related runnables as well as all of the signals that interface to motor control related runnables (on either sender or receiver side).

The DataDictionary tool has been updated to support generation of the majority of the MotCtrlMgr configuration listed below. The inputs this tool requires is a project’s collection of component DataDictionaries, a signal mapping xml, as well as the latest FDD tool data management folder. The DataDictionary tool currently generates a .arxml file with all of the MotCtrlMgr configuration except the following parameters which still need to be manually populated:

/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/IncludeHeaders

/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/Runnable/SequenceOrder

The DataDictionary tool version which was used for testing of this component is embedded within this component’s baseline. This particular version of the tool is included mostly for reference purposes, and isn’t required to be used at an integration level for the actual generation of the MotCtrlMgr configuration so long as the version that is being used produces the correct output.

ParameterNotesSWC
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/IncludeHeadersAll of the includes that are required to provide runnable prototypes (e.g. “MyHeader.h”)MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/RunnableAll of the runnables that are required in a given project that run at the “MotorControl” or “MotorControlx2” Rate. The shortname needs to exactly match the runnable function nameMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/Runnable/RunnableRateSelection of the rate at which the given runnable executes (MotorControl or MotorControlx2)MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/Runnable/SequenceOrderSequence order number to help define the ordering of the runnables relative to each other. Lower numbers are executed prior to higher numbers. Ordering does not need to be sequential, but it is recommended for clarity. Please note that if all MotorControlx2 runnables are not grouped together, there will be throughput inefficiencies.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/IncludeHeadersAll of the includes that may be required to provide signal initial values (e.g. “MyHeader.h”). This is possibly required if initial values are required to be tied to a global constant that is defined in a certain header for example.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnumAll of the enumeration definitions required outside of the RTE. The short name needs to exactly match the desired enumeration name.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumImplementationDataTypeImplementation Data Type of the given enumeration. Selection of the supported types of “uint8”, “uint16”, and “uint32”.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumElementElements of a given enumeration. The short name should be the enumeration element name.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumElement/ValueNumeric value of a given enumeration elementMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMappingContains the configuration required for mapping differently named signals to eachother. This component specifically requires, at a minimum, all of the mapping of names related to signals that flow into, out of, or through the Motor Control runnables. Recommended “Short Name” of container is “<OutputSignal>Map”MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMapping/OutputSignalNameOutput signal name of signal needing mappingMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMapping/InputSignalNameInput signal name (or names) of signal needing mapping. Note that it is allowed to map more than one input name to each output.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalContains the required details of a given signal. The short name should match the base signal name (excluding “MotCtrl” prefix)MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/EnumerationNameReferenceSelection of Enumeration (if applicable - this should only exist on signals that are enumerations). Enumeration needs to be added to “/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum” configuration before it can be selected.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ImplementationDataTypeSelection of Implementation Data Type of signal. For enumerations, this should be selected to match the underlying enumeration datatype.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/InitialValueInitial Value, for arrays this should be a comma separated list (e.g. you would enter: 10,20,30,40). Suffixes of “F”, “U”, etc should be on appropriate signals as required.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/MaxMaximum Value as indicated by m file defining signal.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/MinMinimum Value as indicated by m file defining signal.MotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadInMotCtrlRunnableThis flag indicates if a given signal is read in a runnable that runs at “MotorControl” or “MotorControlx2” rateMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnableThis flag indicates if a given signal is read in a runnable that runs at 2ms (or slower) RTE taskMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenInMotCtrlRunnableThis flag indicates if a given signal is written in a runnable that runs at “MotorControl” or “MotorControlx2” rateMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnableThis flag indicates if a given signal is written in a runnable that runs at 2ms (or slower) RTE taskMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/SizeSize of signal. This needs to be 1 for standard signals and if greater than 1, the signal is considered to be an arrayMotCtrlMgr
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/UnitsUnits of signal as indicated by m file defining signal.MotCtrlMgr

DaVinci Interrupt Configuration Changes

ISR NameInterrupt Category (FE/EI)Interrupt Channel NumberPriority DependencyNotes
MotCtrlMgrIrqEINeeds to be gathered from program specific CM###_XXXXMcuCfg_Design componentNeeds to be an appropriate priority for the high speed motor control interruptThis ISR should be category 1 ISR and mapped to trusted application

Manual Configuration Changes

NotesSWC

Integration DATAFLOW REQUIREMENTS

Required Global Data Inputs

This module defines all non-RTE motor control data structures

Required Global Data Outputs

This module defines all non-RTE motor control data structures

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
RunnableScheduling RequirementsTrigger
MotCtrlMgrIrqNoneISR – exact ISR source to be gathered from program specific CM###_XXXXMcuCfg_Design component
MotCtrlMgrPer1MotCtrlMgrPer1 should execute near the start of the 2ms loop before any other functions that need data that is output by runnables running at the Motor Control rate. The DMA transfer that is populating MotCtrlMgr_TwoMilliSecFromMotCtrl_Rec shall run before MotCtrlMgrPer1 and ideally enough other functionality runs in-between these two events that the transfer can complete with minimal wait time in MotCtrlMgrPer1 (since this function is waiting for DMA transfer completion).2ms RTE
MotCtrlMgrPer2MotCtrlMgrPer2 should execute as the final function of the forward path to allow minimal lag on computation of new PWM commands in the Motor Control loop.2ms RTE

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
MotCtrl_START_SEC_CODEInterrupt codeThis code section also includes a static function scope variable, and therefore needs to open and close variable mapping statements and this should be mapped to the same application that the ISR is mapped to.
CDD_MotCtrlMgr_DmaWrite_START_SEC_VAR_INIT_128Data that a DMA channel writes to during run-timeThis gets mapped to a “.data_dma_128” section that will need to be explicitly added to the linker file. The intent of this section is to be placed in a RAM memory section that only the DMA has write access to (processor in user mode only has read access).

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

Usage

FeatureRAMROM

NvM Blocks

None

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

<This section is for appendix>

10.2 - MotCtrlMgr Review


Overview

Summary Sheet
Synergy Project
Davinci Files
PolySpace
Integration Manual


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. AR300A_MotCtrlMgr_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. AR300A_MotCtrlMgr_Impl_1.3.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. Lucas Wendling
Work CR ID:


EA4#6787





























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:































NoMDD


YesSource Code


YesPolySpace









































YesIntegration Manual


YesDavinci Files








































































Comments:

No MDD updates required for this change. Source review was generated files and text templates.






Next rev of this component should bring in DataDictionary tool component as subproject if it has been created as standalone component.



















































































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:



























































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:

Lucas Wendling


Review Date :

09/20/16
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Jared J
Kathleen C




































































Sheet 3: Davinci Files






















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


























Quality Check Items:




































Rationale is required for all answers of No










Only StdDef Port types are used








No
Comments:

Test component so no need of using













standardized interfaces
























For components not using application data types, do all








No
Comments:

Test component so no need of using
port interface names end in PortIf and a sequence number











standardized interfaces
















































Non-program-specific components saved








Yes
Comments:




in Autosar 4.0.3 format




































*Cfg.arxml.TT: Verfied Davinci Configurator imported the








Yes
Comments:




change correctly




































*Cfg.h.TT: Verfied Davinci Configurator generates








Yes
Comments:










the configuration header(s) file correctly
kzshz2: Either a generic sandbox or a baselined integration project can be used to verify



























kzshz2: Either a generic sandbox or a baselined integration project can be used to verify
















All changed files have been compared against previous








Yes
Comments:




versions (If available)

kzshz2: Intended Use: Identify if previous version was compared and only the expected change(s) was present. This is for text files only, not binary or GUIs Rationale: This is helpful in identifying unapproved (intended or mistaken) changes.


































Automated validation check is performed








Yes
Comments:

Only for test developer project






















































Naming conventions followed. All names should








No
Comments:

Test component only, naming not







match DataDict.m










needed to follow conventions

































Sender/Receiver port properties match DataDict.m








Yes
Comments:

Only for test developer project







file (use .m file helper tool)













































Calibration port properties match DataDict.m








N/A
Comments:










file (use .m file helper tool)













































Components using application data types:























Sender/Receiver port initialization values match







N/A
Comments:










DataDict.m file














































Calibration port initialization values match







N/A
Comments:










DataDict.m file













































Components not using application data types:























Sender/Receiver port initialization values match







Yes
Comments:

Only for test developer project







DataDict.m file and have been converted to counts






















for fixed point types














































Calibration port initialization values match







N/A
Comments:










DataDict.m file and have been converted to counts






















for fixed point types














































Mapping set and all unused items have been







Yes
Comments:

Only for test developer project







removed













































All sender/receiver port read/writes using direct








Yes
Comments:

Only for test developer project







read/writes(List justification if not)













































Runnable calling frequencies match FDD








Yes
Comments:

Only for test developer project






























DataDict.m display variables: created as








N/A
Comments:









PerInstanceMemory. Matches the FDD





































Component is correct component type








Yes
Comments:

Only for test developer project








































































General Notes / Comments:























Review .tt file generation and test developer/configurator project


































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:

Lucas Wendling
Review Date :

09/20/16
Component Type :


CDD



























Lead Peer Reviewer:


Selva
Approved by Reviewer(s):



Yes

































Other Reviewer(s):


Jared J
Kathleen C




































































Sheet 4: PolySpace






















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


























Source File Name:


CDD_MotCtrlMgr.c (generated)Source File Revision:


3

Source File Name:


CDD_MotCtrlMgr_Data.c (generated)Source File Revision:


3

Source File Name:


CDD_MotCtrlMgr_Irq.c (generated)Source File Revision:


3


























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 N/A

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 TL100A_QACSuprt_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

Yes
Comments:





for all functions in the component per Design














and Coding Standards rule [N47]

































































































General Notes / Comments:























Samples of all generated source files were within scope of the analysis, this caused special versions of polyspace and qac projects (renamed from standard naming).


































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:

Lucas Wendling


Review Date :

09/20/16
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Jared J
Kathleen C




































































Sheet 5: Integration Manual






















Rev 1.28-Jun-15
Peer Review Meeting Log (Integration Manual Review)


























Integration Manual Name:



kzshz2: Intended Use: Identify which file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. MotCtrlMgr Integration Manual.doc

Integration Manual Revision:



kzshz2: Intended Use: Identify which version of the integration manual has been reviewed. Rationale: Required for traceability between the MDD and review. Auditors will likely require this. 3





























Quality Check Items:




































Rationale is required for all answers of No










Synergy version matches header








Yes
Comments:










































Latest template used








Yes
Comments:










































Change log contains detailed description of changes








Yes
Comments:










































Changes Highlighted (for Integrator)








Yes
Comments:











































General Notes / Comments:



























































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:

Lucas Wendling


Review Date :

09/21/16
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































10.3 - MotCtrlMgr_MDD

Module Design Document

For

MotCtrlMgr

VERSION: 2

DATE: 10/28/15

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

Sl. No.DescriptionAuthorVersionDate
1Initial VersionLucas Wendling105/29/15
2Updates for Signal MappingLucas Wendling210/28/15

Table of Contents

1 Abbrevations And Acronyms 4

2 References 5

3 MotCtrlMgr High-Level Description 6

4 Design details of software module 7

4.1 Graphical representation of MotCtrlMgr 7

4.2 Data Flow Diagram 7

4.2.1 Module level DFD 7

4.2.2 Sub-Module level DFD 7

4.3 COMPONENT FLOW DIAGRAM 7

5 Variable Data Dictionary 8

5.1 User defined typedef definition/declaration 8

5.2 Variable definition for enumerated types 8

6 Constant Data Dictionary 9

6.1 Program(fixed) Constants 9

6.1.1 Embedded Constants 9

6.1.1.1 Local 9

6.1.1.2 Global 9

6.1.2 Module specific Lookup Tables Constants 9

7 Software Module Implementation 10

7.1 Generated file description and logic 10

7.2 Initialization Functions 13

7.3 PERIODIC FUNCTIONS 13

7.3.1 Per1/Per2: 13

7.4 Non PERIODIC FUNCTIONS 13

7.5 Interrupt Functions 13

7.5.1 Isr: <ModuleName>_Isr<n)> 13

7.6 Serial Communication Functions 14

7.7 Local Function/Macro Definitions 14

7.8 GLObAL Function/Macro Definitions 14

7.9 TRANSIENT FUNCTIONS 14

8 Unit Test Considerations 15

9 Known Limitations With Design 16

10 Appendix 17

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
1MDD GuidelinesProcess 04.00.00
2Software Naming ConventionsProcess 04.00.00
3Software Coding StandardsProcess 04.00.00
4AR300A_MotCtrlMgr_DesignSee Synergy subproject version

MotCtrlMgr High-Level Description

None

Design details of software module

Graphical representation of MotCtrlMgr

None

Data Flow Diagram

None

Module level DFD

None

Sub-Module level DFD

None

COMPONENT FLOW DIAGRAM

None

Variable Data Dictionary

User defined typedef definition/declaration

<This section documents any user types uniquely used for the module.>

Typedef NameElement NameUser Defined Type

Legal Range

(min)

Legal Range

(max)

MotCtrlToTwoMilliSecRec1Elements are project specific and generatedstruct
TwoMilliSecFromMotCtrlRec1Elements are project specific and generatedstruct
TwoMilliSecToMotCtrlRec1Elements are project specific and generatedstruct
MotCtrlFromTwoMilliSecRec1Elements are project specific and generatedstruct
MotCtrlIntRec1Elements are project specific and generatedstruct

Variable definition for enumerated types

Enum NameElement NameValue
Enumerations are project specific and generated

Constant Data Dictionary

Program(fixed) Constants

Embedded Constants

Local

Constant NameResolutionUnitsValue
N/A

Global

Constant Name
N/A

Module specific Lookup Tables Constants

Constant NameResolutionValueSoftware Segment
N/A

Software Module Implementation

Generated file description and logic

The following sections provide details on the logic used for generating the data and functions from the MotCtrlMgr configuration. The generator uses text templating to generate the appropriate file content based on the configuration details. The logic described in the following sections are implemented in the text template files provided in this component.

  1. CDD_MotCtrlMgr_Irq.c

This file contains the definition of the interrupt service routine that Motor Control Manager defines. This interrupt service routine primarily contains a task list for executing runnables that are required to be scheduled at the motor control rate or motor control x2 rate. The following table lists the configuration parameters that are required in generation of this file:

Configuration ParameterFile Generation Usage Notes
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/RunnableUsed to determine the runnables needed to be called in the ISR task list
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/Runnable/RunnableRateUsed to determine if runnable needs to be called every ISR loop (MotorControl) or every other ISR loop (MotorControlx2)
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/IncludeHeadersUsed for include list required for this file for runnable prototype definitions
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/RunnableManagement/Runnable/SequenceOrderUsed to help define the relative calling sequence of the runnables in the ISR task list
  1. CDD_MotCtrlMgr.c

This file contains the functions for the RTE interface. This file will receive appropriate signals from the RTE and provide appropriate signals to the RTE. Per1 provides updated signals to the RTE after the DMA transfer of the data successfully completed, and Per2 recieves signals from the RTE and then indicates to the DMA that the data is ready for transfer.

Configuration ParameterFile Generation Usage Notes
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalUsed for the name of the signals being read/written by the runnables being defined.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenInMotCtrlRunnableUsed in conjuction with “/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnable” to determine when a signal is needed to be managed by Per1
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnableUsed in conjuction with “/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenInMotCtrlRunnable” to determine when a signal is needed to be managed by Per1
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnableUsed in conjuction with “/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadInMotCtrlRunnable” to determine when a signal is needed to be managed by Per2
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadInMotCtrlRunnableUsed in conjuction with “/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnable” to determine when a signal is needed to be managed by Per2
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/SizeUsed to determine if the signals being read/written by the runnables being defined are arrays (Impacts RTE API name).
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ImplementationDataTypeUsed to determine if the signals being read/written by the runnables being defined are boolean types (Impacts RTE API name).
  1. CDD_MotCtrlMgr_Data.c

This file contains the definition of all of the structures containing the Motor Control ISR related signals. This includes providing initial values for all of the signals in the structure and padding the structure for proper structure size alignment restrictions.

Configuration ParameterFile Generation Usage Notes
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalUsed to determine signal names as part of the logic to determine if special grouping is needed for TSG3 signals
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenInMotCtrlRunnableUsed to determine which initial values are needed in which structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnableUsed to determine which initial values are needed in which structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnableUsed to determine which initial values are needed in which structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadInMotCtrlRunnableUsed to determine which initial values are needed in which structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/SizeUsed in the structure size calculation to determine how many pad bytes are needed for alignment at the end of the structure. Used also to add the appropriate braces for arrays on structure elements.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ImplementationDataTypeUsed in the structure size calculation to determine how many pad bytes are needed for alignment at the end of the structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/InitialValueUsed as the initializer value for a given signal in the structure
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/IncludeHeadersUsed for include list required for this file for definition of any intial values that may be required
  1. CDD_MotCtrlMgr_Data.h

This file defines the structure definition of the Motor Control Data structures containing all Motor Control ISR related signals. It also defines any enumerations that need to be accessed by Non-RTE related code. Prototype statements for all Motor Control Data structures are included in this file as well as the macros defined for accessing individual signals of the Motor Control Data structures.

Configuration ParameterFile Generation Usage Notes
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnumUsed to define enumeration accessed by Non-RTE related code. Used for enumeration name.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumImplementationDataTypeUsed to define enumeration accessed by Non-RTE related code. Used for enumeration datatype.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumElementUsed to define enumeration accessed by Non-RTE related code. Used for enumeration element name.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/NonRteEnum/EnumElement/ValueUsed to define enumeration accessed by Non-RTE related code. Used for enumeration element value.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalUsed to determine signal names as part of the logic to determine if special grouping is needed for TSG3 signals. Also used as signal name for structure element definitions. Used to also determine name of signal access macros that are generated.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenInMotCtrlRunnableUsed to determine the structure the signal should be added to.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnableUsed to determine the structure the signal should be added to
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnableUsed to determine the structure the signal should be added to
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadInMotCtrlRunnableUsed to determine the structure the signal should be added to
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ImplementationDataTypeUsed to determine datatype of structure element. Also used as part of the structure size calculation to determine how many pad bytes are needed for alignment at the end of the structure.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/EnumerationNameReferenceUsed to determine if a given signal is an enumeration and used to determine the corresponding enumeration name
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/SizeUsed in the structure size calculation to determine how many pad bytes are needed for alignment at the end of the structure. Used also to add the appropriate array size on signals that are arrays (having size > 1).
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMappingUsed for creation of motor control signal access macros for inputs that are named differently than outputs
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMapping/OutputSignalNameOutput name for signal mapping (used to define an input signal macro definition)
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalMapping/InputSignalNameInput name(s) for signal mapping (used to define the names of the signal macros)
  1. AR300A_MotCtrlMgr_DataDict.m

This file is the generated data dictionary for MotCtrlMgr. This is intended to be used for documentation purposes as well as to aid in creating the AUTOSAR component description files.

Configuration ParameterFile Generation Usage Notes
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/SignalUsed to determine signal name for I/O depending on signal useage.
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ImplementationDataTypeUsed to determine datatype of signal. Also used for stripping off c constant qualification (“U”, “L”, “F”) on standard datatypes that is assumed to be present in the initial value. Also used to convert boolean type initial values to “0/1” from “TRUE/FALSE”
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/EnumerationNameReferenceUsed to determine if a given signal is an enumeration and used to determine the corresponding enumeration name
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/InitialValueUsed for the initial value of a signal
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/SizeUsed to determine if the signal is an array and to set the format of the initial value appropriately
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/ReadIn2msRunnableUsed to determine if signal is an output from Per1 runnable
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/WrittenIn2msRunnableUsed to determine if signal is an input to Per2 runnable
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/MaxUsed for Maximum value property of signal
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/MinUsed for Minimum value property of signal
/Nexteer/MotCtrlMgr/MotCtrlMgrConfigSet/SignalManagement/Signal/UnitsUsed for units property of signal

Initialization Functions

None

PERIODIC FUNCTIONS

Per1/Per2:

See section 7.1.2

Non PERIODIC FUNCTIONS

None

Interrupt Functions

Isr:

See section 7.1.1

Serial Communication Functions

None

Local Function/Macro Definitions

None

GLObAL Function/Macro Definitions

None

TRANSIENT FUNCTIONS

None

Unit Test Considerations

Known Limitations With Design

  1. None

Appendix

10.4 - MotCtrlMgr DataDictionary Tool User Guide

Purpose

This document provides details on using the DataDictionary.exe tool for generating and testing the MotCtrlMgr component.

Overview

The MotCtrlMgr component is a project specific, highly configurable component. The majority of the configuration parameters of the component, however, can be derived from analysis of the collection of data dictionaries that exist within any given project. A tool was created (DataDictionary.exe) to create a file which contains the bulk of the MotCtrlMgr configuration which can subsequently be imported into the AUTOSAR Configuration Tools (Davinci Configurator). While this tool can primarily be used at a project configuration level, it also is used at a component level in the MotCtrlMgr component. The usage at a component level serves two primary purposes:

  1. Generation of the majority of the MotCtrlMgr “test” configuration.

MotCtrlMgr component defines a “test” configuration. This test configuration is used for several purposes:

  • To exercise the .bswmd file containing the configuration parameters of MotCtrlMgr (for property correctness and Davinci Configuration compatibility)

  • To test for the proper/successful generation of the MotCtrlMgr component’s generated configuration files

  • To generate test files of all generated files of this component used to run static analysis checks on the generated file output, provide the possibility for unit testing of the generated files, and test compilation of the generated files.

  1. Test of the DataDictionary.exe tool output.

Since the DataDictionary.exe tool is used at a project level with files that will change from project to project as needed, it is useful to have a fixed, known set of test files as inputs to the tool to test that the tool is providing the correct output with a known set of inputs. These input files can also be tailored to test different combinations of input scenarios to try to provide a robust set of test inputs to the tool.

Usage Steps for MotCtrlMgr Component Development

  1. Unzip TestDataManagement.zip file into AR300A_MotCtrlMgr_Impl\tools\DataDictionary directory

This is needed since Telelogic synergy can’t currently recognize some of the folder names that are in this directory.

  1. Update Data Dictionary input files in AR300A_MotCtrlMgr_Impl\tools\DataDictionary directory

This step is required if there are new or changed configurations that need to be tested. This step would be manually changing the .m files to add or change the configuration or this could also be done with the aid of matlab data dictionary tools.

Note: if new configurations include new/changed enumerations, these enumerations will need to be manually added into the “TestDataManagement” folder that was unzipped in step 1. And this update will need to be re-zipped for check-in to Synergy.

Note: if the new configurations include new signal mappings, the Mappings.xml file will need to be manually updated in the AR300A_MotCtrlMgr_Impl\tools\DataDictionary directory.

  1. Rerun tool: AR300A_MotCtrlMgr_Impl\tools\DataDictionary\DataDictionary.exe to create new configuration file needed for the next step

    1. Select “Cals” option from initial Data Dictionary tool options:

  1. Select proper tools settings for generation of MotCtrlMgr configuration file. (note file paths may not be exactly the same as listed below):

  1. Select “Generate” option in tool to create MotCtrlMgr.arxml configuration file.

  1. Import MotCtrlMgr.arxml into MotCtrlMgr component Davinci Configurator project.

Notes: It is suggested to remove all configuration containers manually from the old configuration before importing the updated configuration. This allows easier import to ensure that older configuration is fully removed. Otherwise, much more care needs to be taken during the merge process to fully replace older configuration with newer configuration. Additionally, the configuration file does not contain runnable sequence number or header file include needs. These parameters will have to manually be filled out after the import process is complete (or the old configuration settings for these parameters can be kept).

  1. Generate MotCtrlMgr component in Davinci Configurator.

  2. Update Davinci Developer component for any updates needed from configuration changes.

The Davinci Developer component is manually maintained for MotCtrlMgr even though the source code for this component is generated. This component needs to be setup properly for any signals that flow between the MotCtrl Interrupt and RTE tasks. Any changes to Data Dictionary input files (new or changed signals) need to be updated in the Davinci Developer component. As a tip, the component needs to be properly configured to align with the content in AR300A_MotCtrlMgr_Impl\tools\contract\generate\CDD_MotCtrlMgr.c file.

  1. Regenerate RTE contract headers for Davinci Developer component.

This step is done through the Davinci Configurator custom workflow steps that are configured in Davinci Configurator.

11 - Component Implementation

Component Implementation

Component Documentation

11.1 - NxtrDet Integration Manual

Integration Manual

For

NxtrDet

VERSION: 1

DATE: 10/07/15

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionLucas Wendling110/07/15

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
FDDFunctional Design Document

References

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

Sr. No.TitleVersion
1FDD – AR998A NxtrDet DesignSee Synergy subproject version
2Software Naming ConventionsProcess 04.02.00
3Software Coding StandardsProcess 04.02.00

Dependencies

SWCs

ModuleRequired Feature
DetEntire Module – NxtrDet is a component that manages the Det errors that are defined by Nexteer SWCs. The AUTOSAR Det module is required for NxtrDet functionality.

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

None

Configuration REQUIREMeNTS

NxtrDet functionality defaults in a manner in which it will automatically enable all of the defined Nexteer Det errors when the global Det Enable flag is turned on. It is assumed that as needed, a project could selectively disable certain Nexteer Det errors if needed, but this currently would have to be managed either by alteration of the NxtrDet.h component header directly for the Det enabled build, or by an integration project pointing to its own integration specific version of NxtrDet.h.

Build Time Config

ModulesNotes
None

Configuration Files to be provided by Integration Project

Da Vinci Parameter Configuration Changes

ParameterNotesSWC

DaVinci Interrupt Configuration Changes

ISR NameVIM #Priority DependencyNotes

Manual Configuration Changes

ConstantNotesSWC
None

Integration DATAFLOW REQUIREMENTS

Required Global Data Inputs

None

Required Global Data Outputs

None

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
None
RunnableScheduling RequirementsTrigger
None

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes

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

Usage

FeatureRAMROM

Table 1: ARM Cortex R4 Memory Usage

NvM Blocks

*See DataDict.m

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

<This section is for appendix>

11.2 - NxtrDet Module Design Document

Module Design Document

For

NxtrDet

Oct 6, 2015

Prepared For:

Software Engineering

Nexteer Automotive,

Saginaw, MI, USA

Prepared By:

Software Group,

Nexteer Automotive,

Saginaw, MI, USA
Change History

DescriptionAuthorVersionDate
Initial VersionLucas Wendling110/06/15


Table of Contents

1 Introduction 4

1.1 Purpose 4

1.2 Scope 4

2 NxtrDet High-Level Description 5

3 Design details of software module 6

3.1 Graphical representation of NxtrDet 6

3.2 Data Flow Diagram 6

3.2.1 Component level DFD 6

3.2.2 Function level DFD 6

4 Constant Data Dictionary 7

4.1 Program (fixed) Constants 7

4.1.1 Embedded Constants 7

5 Software Component Implementation 8

5.1 Sub-Module Functions 8

5.1.1 Init: NxtrDet 8

5.1.2 Per: NxtrDet 8

5.2 Server Runables 8

5.3 Interrupt Functions 8

5.4 Module Internal (Local) Functions 8

5.4.1 Local Function #1 8

5.4.1.1 Design Rationale 8

5.4.1.2 Processing 8

5.5 GLOBAL Function/Macro Definitions 8

5.5.1 GLOBAL Function #1 8

5.5.1.1 Design Rationale 8

5.5.1.2 Processing 8

6 Known Limitations with Design 10

7 UNIT TEST CONSIDERATION 11

Appendix A Abbreviations and Acronyms 12

Appendix B Glossary 13

Appendix C References 14

Introduction

Purpose

Scope

The following definitions are used throughout this document:

  • Shall: indicates a mandatory requirement without exception in compliance.

  • Should: indicates a mandatory requirement; exceptions allowed only with documented justification.

  • May: indicates an optional action.

NxtrDet High-Level Description

See FDD

Design details of software module

Graphical representation of NxtrDet

None

Data Flow Diagram

Component level DFD

N/A

Function level DFD

N/A

Constant Data Dictionary

Program (fixed) Constants

Embedded Constants

Constants containing the Nexteer ModuleIDs defined for Det functionality are defined in the .m file included in the doc folder of this component. This is to allow new SWCs adding new Det errors to not drive changes to the design project, only to the implementation project.

Local Constants

Constant NameResolutionUnitsValue
None

Software Component Implementation

Sub-Module Functions

Init: NxtrDet

None

Per: NxtrDet

None

Server Runables

None

Interrupt Functions

None

Module Internal (Local) Functions

Local Function #1

Function Name(Exact name used)TypeMinMax
Arguments PassedNone<Refer MDD guidelines[1]><Refer MDD guidelines[1]><Refer MDD guidelines[1]>
Return Value

Design Rationale

Processing

GLOBAL Function/Macro Definitions

GLOBAL Function #1

Function Name(Exact name used)TypeMinMax
Arguments PassedNone<Refer MDD guidelines[1]><Refer MDD guidelines[1]><Refer MDD guidelines[1]>
Return Value

Design Rationale

Processing

Known Limitations with Design

None

UNIT TEST CONSIDERATION

None

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

11.3 - NxtrDet Peer Review Checklists


Overview

Summary Sheet
Synergy Project
Source Code
PolySpace


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. AR998A_NxtrDet_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. AR998A_NxtrDet_Impl_1.1.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. Spandana Balani
Work CR ID:


EA4#3421





























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:































N/AMDD


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:



























































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:

Spandana Balani


Review Date :

03/11/16
































Lead Peer Reviewer:


Jared Julian


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Luke
Kathleen




































































Sheet 3: Source Code






















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

























Source File Name:


N/A

Source File Revision:


N/A
Header File Name:


NxtrDet.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. 2

























MDD Name:

NxtrDet Module Design Document

Revision:
1

























FDD/SCIR/DSR/FDR/CM Name:




AR998A_NxtrDet_Design

Revision:
1.0.0


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







N/A
Comments:

















































for constant names







Yes
Comments:

















































for function names







N/A
Comments:

















































for other names (component, memory







Yes
Comments:










mapping handles, typedefs, etc.)




































All paths assign a value to outputs, ensuring








N/A
Comments:









all outputs are initialized prior to being written





































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








N/A
Comments:









requirements tracability in the FDD





































All variables are declared at the function level.








N/A
Comments:
























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:










































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








N/A
Comments:
























All other includes are actually needed. (System includes








Yes
Comments:









only allowed in Nexteer library components)





































Software Design and Coding Standards followed:











Version:

























Code comments are clear, correct, and adequate







Yes
Comments:










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













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]





































Function comment blocks are per standards and







N/A
Comments:










contain correct information: [N43]





































Code formatting (indentation, placement of







Yes
Comments:










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













[N57], [N58], [N59]














































Embedded constants used per standards; no







Yes
Comments:










"magic numbers": [N12]





































Memory mapping for non-RTE code







N/A
Comments:










is per standard





































All execution-order-dependent code can be







N/A
Comments:










recognized by the compiler: [N80]





































All loops have termination conditions that ensure







N/A
Comments:










finite loop iterations: [N63]





































All divides protect against divide by zero







N/A
Comments:










if needed: [N65]





































All integer division and modulus operations







N/A
Comments:










handle negative numbers correctly: [N76]





































All typecasting and fixed point arithmetic,







N/A
Comments:










including all use of fixed point macros and













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]





































All conversions between signed and unsigned







N/A
Comments:










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





































All pointer dereferencing protects against







N/A
Comments:










null pointer if needed: [N70]





































Component outputs are limited to the legal range







N/A
Comments:










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





































All code is mapped with FDD (all FDD







N/A
Comments:










subfunctions and/or model blocks identified













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:























Header file only
























































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:

Spandana Balani


Review Date :

03/11/16
































Lead Peer Reviewer:


Jared Julian


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Luke
Kathleen




































































Sheet 4: PolySpace






















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


























Source File Name:


NxtrDet_StaticAnalysisStub.cSource File Revision:


1

Source File Name:



Source File Revision:





Source File Name:















Source File Revision:






























EA4 Static Analysis Compliance Guideline version:







01.00.00







Poly Space version:


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




Windows User: eg. TL108a_PolyspaceSuprt_1.0.0 N/A

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 TL100A_QACSuprt_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

Yes
Comments:





for all functions in the component per Design














and Coding Standards rule [N47]

































































































General Notes / Comments:























Stub c file used to make use of header constants


































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:

Spandana Balani


Review Date :

03/11/16
































Lead Peer Reviewer:


Jared Julian


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Luke
Kathleen



































































12 - Component Implementation

Component Implementation

Component Documentation

12.1 - NxtrFil Integration Manual

Integration Manual

For

NxtrFil

VERSION: 1.0

DATE: 03/02/2015

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionK. Creager1.003/02/15

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

References

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

Sr. No.TitleVersion
1Working EA4 naming Conventions[1]Temp
2AutoSAR and Nexteer KeyWord Abbreviations list[1]Temp

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

FilLpUpdGain()

FilLpUpdOutp_f32()

FilLpInit()

FilHpUpdGain()

FilHpUpdOutp_f32()

FilHpInit()

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

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

N/A

Required Global Data Outputs

N/A

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)
RunnableScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
None

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

Usage

FeatureRAMROM
None

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

[1] – No official document released for EA4.0 for this document’s revision.

12.2 - NxtrFil Review


Overview

Summary Sheet
Source Code - initial review
Source Code -rework review
QAC - initial review
QAC - rework review
Integration Manual


Sheet 1: Summary Sheet
























Rev 6.028-Oct-14

Peer Review Summary Sheet



























Component 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. NxtrFil
Component Revision:


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. 1.0.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. Kathleen Creager
Change Request ID:


EA4#166





























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:































MDD


Source Code



Data Dictionary


QAC



































Integration Manual


Davinci Files








































































Comments:

MDD not created -- design information will be in the AR104A_Design






integration manual not ready at initial peer review but is needed before final review



















































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request. (Note: If this peer review form was not
completed for pervious versions of this component, the Change Owner should review the entire component and complete the checklist in its entirety prior and check
the form into Syngery. This may be done prior to reviewing the modifications for this Change Result)
- The Change Owner shall responsible for completing the entire checklist (Pre and Group review items) prior holding the initial group review.
- New components should include FDD Owner and Intergator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Select "Yes" and add "N/A" to the comments for checklist items that are not applicable for this change















Sheet 2: Source Code - initial review






















Rev 6.028-Oct-14
Peer Review Meeting Log (Source Code Review)

























Source File Name:




kzshz2: Intended Use: Identify which .asm, .c, or .h file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFil.h
Source 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. 1

























Module Design Document Name:




kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD NA
MDD Revision:


kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD NA

























Data Dictionary Revision:




kzshz2: Intended Use: Identify which version of the Data Dictionary was referenced for ranges during the source file review. Rationale: Needed for traceability between source code and DD NA




FDD/SER/CMS























and Revision:


nz63rn: Intended Use: Identify which version of which FDD/CMS/SER this source file was written against. Rationale: Needed for traceability between source code and FDD/CMS/SER AR104A design not yet created

Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersSoftware Naming Convention V1.2 followed:








































for variable names







X
Comments:

EA4 naming conventions














































for constant names







X
Comments:

EA4 naming conventions














































for function names







X
Comments:

add _f32 to functions that return float32














































for other names (component, memory







X
Comments:

memory names need NxtrFil instead of NXTRFIL







mapping handles, typedefs, etc.)






































All buffered outputs written in every path, i.e. no








X
Comments:

N/A







possibility of an uninitialized value being written






































Group-review Checklist (review board)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.


X
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








X
Comments:



and CR number





































Code accurately implements FDD (Document or Model)








X
Comments:

FDD not created yet













implementation matches EA3 macro implementation
























No Compiler Errors or Warnings verified


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.





X
Comments:
















































FDD test points exist as display variables: declared








X
Comments:

N/A







static volatile, written once and never used, names













match the FDD













































Software Design and Coding Standards V2.0 followed:








































Code comments are clear, correct, and adequate







X
Comments:











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














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







X
Comments:











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







































Function comment blocks are per standards and







X
Comments:











contain correct information: [N43]







































Code formatting (indentation, placement of







X
Comments:











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














[N57], [N58], [N59]
















































Embedded constants used per standards; no







X
Comments:











"magic numbers": [N12]







































All variables and constants defined at module







X
Comments:

N/A








level are included in appropriate MemMap














section: [N25] and Naming Conventions
















































All execution-order-dependent code can be







X
Comments:

N/A








recognized by the compiler: [N80]







































No possibility of a non-terminating loop: [N63]







X
Comments:

N/A

















































No possibility of divide by zero: [N65]







X
Comments:

logic prevents divide by zero

















































All integer division and modulus operations







X
Comments:

N/A








handle negative numbers correctly: [N76]







































All typecasting and fixed point arithmetic,







X
Comments:

N/A








including all use of fixed point macros and














timer functions, is correct and has no possibility























of unintended overflow or underflow: [N66]
















































No possibility of converting a negative floating







X
Comments:

N/A








point value to an unsigned type: [N67]







































All conversions between signed and unsigned







X
Comments:

N/A








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







































No possibility of dereferencing a null







X
Comments:

design limitation - pointer parameters








pointer: [N70]










must have non-null values



























Global outputs (RTE and Non-RTE) Initialized:







X
Comments:

N/A








[N24]







































Module outputs are limited to the legal range







X
Comments:

N/A








defined in the FDD Data dictionary: [N53]







































All code is mapped with FDD (all FDD







X
Comments:

to be added in later rev, after FDD and








subfunctions and/or model blocks identified










FRs are created


with code comments; all code corresponds to























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
















































Struct types used for NvM have







X
Comments:

N/A








elements declared in decreasing order by size














and are not nested or used in arrays: [N84], [N85]
















































No violations of other coding standard rules







X
Comments:











identified during review
























































































General Notes / Comments:



























































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:

Kathleen Creager


Review Date :

02/27/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):




































Other Reviewer(s):


Lucas Wendling






































































Sheet 3: Source Code -rework review






















Rev 6.028-Oct-14
Peer Review Meeting Log (Source Code Review)

























Source File Name:




kzshz2: Intended Use: Identify which .asm, .c, or .h file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFil.h
Source 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. 1

























Module Design Document Name:




kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD NA
MDD Revision:


kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD NA

























Data Dictionary Revision:




kzshz2: Intended Use: Identify which version of the Data Dictionary was referenced for ranges during the source file review. Rationale: Needed for traceability between source code and DD NA




FDD/SER/CMS























and Revision:


nz63rn: Intended Use: Identify which version of which FDD/CMS/SER this source file was written against. Rationale: Needed for traceability between source code and FDD/CMS/SER AR104A design not yet created

Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersSoftware Naming Convention V1.2 followed:








































for variable names







X
Comments:

EA4 naming conventions














































for constant names







X
Comments:

EA4 naming conventions














































for function names







X
Comments:

















































for other names (component, memory







X
Comments:










mapping handles, typedefs, etc.)






































All buffered outputs written in every path, i.e. no








X
Comments:

N/A







possibility of an uninitialized value being written






































Group-review Checklist (review board)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.


X
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








X
Comments:



and CR number





































Code accurately implements FDD (Document or Model)








X
Comments:

FDD not created yet













implementation matches EA3 macro implementation
























No Compiler Errors or Warnings verified


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.





X
Comments:
















































FDD test points exist as display variables: declared








X
Comments:

N/A







static volatile, written once and never used, names













match the FDD













































Software Design and Coding Standards V2.0 followed:








































Code comments are clear, correct, and adequate







X
Comments:











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














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







X
Comments:











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







































Function comment blocks are per standards and







X
Comments:











contain correct information: [N43]







































Code formatting (indentation, placement of







X
Comments:











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














[N57], [N58], [N59]
















































Embedded constants used per standards; no







X
Comments:











"magic numbers": [N12]







































All variables and constants defined at module







X
Comments:

N/A








level are included in appropriate MemMap














section: [N25] and Naming Conventions
















































All execution-order-dependent code can be







X
Comments:

N/A








recognized by the compiler: [N80]







































No possibility of a non-terminating loop: [N63]







X
Comments:

N/A

















































No possibility of divide by zero: [N65]







X
Comments:

logic prevents divide by zero

















































All integer division and modulus operations







X
Comments:

N/A








handle negative numbers correctly: [N76]







































All typecasting and fixed point arithmetic,







X
Comments:

N/A








including all use of fixed point macros and














timer functions, is correct and has no possibility























of unintended overflow or underflow: [N66]
















































No possibility of converting a negative floating







X
Comments:

N/A








point value to an unsigned type: [N67]







































All conversions between signed and unsigned







X
Comments:

N/A








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







































No possibility of dereferencing a null







X
Comments:

documented in usage notes








pointer: [N70]










no run-time check for throughput reasons



























Global outputs (RTE and Non-RTE) Initialized:







X
Comments:

N/A








[N24]







































Module outputs are limited to the legal range







X
Comments:

N/A








defined in the FDD Data dictionary: [N53]







































All code is mapped with FDD (all FDD







X
Comments:

to be added in later rev, after FDD and








subfunctions and/or model blocks identified










FRs are created


with code comments; all code corresponds to























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
















































Struct types used for NvM have







X
Comments:

N/A








elements declared in decreasing order by size














and are not nested or used in arrays: [N84], [N85]
















































No violations of other coding standard rules







X
Comments:











identified during review
























































































General Notes / Comments:























reviewed after rework from initial review (rework done: _f32 added to function names of functions that return float32; capitalization corrected on memory mapping

names; design limitation regarding no checking for null pointers added as usage note in function comment blocks, to be added to design component when created)































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:

Kathleen Creager


Review Date :

03/03/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 4: QAC - initial review






















Rev 6.028-Oct-14
Peer Review Meeting Log (QAC Review)


























Module Name:

kzshz2: Intended Use: Identify which .c file is being analyzed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFil.h

Source File Revision:


1

Module
1of1


























Compliance Guidelines Version:




EA4 working









































kzshz2: Intended Use: Identify specific changes in results (new violation present, previous violation corrected, etc.). Changes to the version of the tool or the way the results were gathered should be described here also. This should be filled out prior to the review by the change owner. Rationale: Gives reviewers an what needs to be focused on. Forces the change owner to compare with previous results to catch any differences that may otherwise go unoticed Brief Summary of Changes (In Results or Tool):

Used NxtrFil_TestHarness.c (in tools folder) for QAC and Polyspace analysis of the NxtrFil.h file.































































Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review
checklist for change owners
QAC version is correct and did not change (List version)







kzshz2: Intended Use: Identify which version of the QAC Subproject was used and if any of the personalities may have changed. Rationale: Will help ensure this is factored into evaluating the results
X
Comments:

1.0.0













component-specific QAC and Polyspace files needed













in order to see warnings on this library header file






















(see tools folder)

































Contract Folder's header files are appropriate





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.


X
Comments:

needs rework due to function name changes









































Group-review Checklist (review board)100% Compliance to the MISRA Compliance GuidelinesX
Comments:

Polyspace gives MISRA warning 21.1













for possible null pointer dereference; see comments below
























Cyclomatic complexity and Static path count ok per






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

X
Comments:




Design and Coding Standards rule [N47]






































General Notes / Comments:


























waiting for Polyspace guidelines before using deviation comments for Polyspace-only MISRA warnings. The null pointer warning should not show up when running

Polyspace on an integration project.




























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:

Kathleen Creager


Review Date :

02/27/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):




































Other Reviewer(s):


Lucas Wendling






































































Sheet 5: QAC - rework review






















Rev 6.028-Oct-14
Peer Review Meeting Log (QAC Review)


























Module Name:

kzshz2: Intended Use: Identify which .c file is being analyzed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFil.h

Source File Revision:


1

Module
1of1


























Compliance Guidelines Version:




EA4 working









































kzshz2: Intended Use: Identify specific changes in results (new violation present, previous violation corrected, etc.). Changes to the version of the tool or the way the results were gathered should be described here also. This should be filled out prior to the review by the change owner. Rationale: Gives reviewers an what needs to be focused on. Forces the change owner to compare with previous results to catch any differences that may otherwise go unoticed Brief Summary of Changes (In Results or Tool):

Used NxtrFil_TestHarness.c (in tools folder) for QAC and Polyspace analysis of the NxtrFil.h file.































































Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review
checklist for change owners
QAC version is correct and did not change (List version)







kzshz2: Intended Use: Identify which version of the QAC Subproject was used and if any of the personalities may have changed. Rationale: Will help ensure this is factored into evaluating the results
X
Comments:

1.0.0













component-specific QAC and Polyspace files needed













in order to see warnings on this library header file






















(see tools folder)

































Contract Folder's header files are appropriate





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.


X
Comments:












































Group-review Checklist (review board)100% Compliance to the MISRA Compliance GuidelinesX
Comments:

Polyspace gives MISRA warning 21.1













for possible null pointer dereference; see comments below
























Cyclomatic complexity and Static path count ok per






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

X
Comments:




Design and Coding Standards rule [N47]






































General Notes / Comments:























re-run and re-reviewed after source code and contract folder file rework from initial review

waiting for Polyspace guidelines before using deviation comments for Polyspace-only MISRA warnings. The null pointer warning should not show up when running

Polyspace on an integration project. Usaage notes in function comment blocks document the design limitation.




























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:

Kathleen Creager


Review Date :

03/03/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 6: Integration Manual






















Rev 6.028-Oct-14
Peer Review Meeting Log (Integration Manual Review)


























Integration Manual Name:



kzshz2: Intended Use: Identify which file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFil Integration Manual

Integration Manual Revision:



kzshz2: Intended Use: Identify which version of the integration manual has been reviewed. Rationale: Required for traceability between the MDD and review. Auditors will likely require this. 1





























Quality Check Items:

































YesNo
Rationale is required for all answers of No









Group-review Checklist (review board)Synergy version matches header








X
Comments:










































Latest template used








X
Comments:










































Change log contains detailed description of changes








X
Comments:

NA







































Changes Highlighted (for Integrator)








X
Comments:

NA








































General Notes / Comments:



























































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:

Kathleen Creager


Review Date :

03/03/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































13 - Component Implementation

Component Implementation

Component Documentation

13.1 - NxtrFixdPt Integration Manual

Integration Manual

For

NxtrFixdPt

VERSION: 1.2

DATE: 13/02/2015

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionSelva Sengottaiyan1.002/13/15

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

References

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

Sr. No.TitleVersion
1Working EA4 naming Conventions[1]Temp
2AutoSAR and Nexteer KeyWord Abbreviations list[1]Temp

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

FloatToFixdWithRound_s16_f32()

FloatToFixdWithRound_s32_f32()

FloatToFixdWithRound_u16_f32()

FloatToFixdWithRound_u32_f32()

FloatToFixd_s16_f32()

FloatToFixd_s32_f32()

FloatToFixd_u16_f32()

FloatToFixd_u32_f32()

FixdToFloat_f32_s16()

FixdToFloat_f32_s32()

FixdToFloat_f32_u16()

FixdToFloat_f32_u32()

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

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

N/A

Required Global Data Outputs

N/A

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)
RunnableScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
None

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

Usage

FeatureRAMROM
None

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

[1] – No official document released for EA4.0.

13.2 - NxtrFixdPt Review


Overview

Summary Sheet
Source Code
QAC
Integration Manual


Sheet 1: Summary Sheet
























Rev 6.028-Oct-14

Peer Review Summary Sheet



























Component 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. NxtrFixdPt
Component Revision:


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. AR103A_NxtrFixdPt





























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. Selva Sengottaiyan
Change Request ID:


EA4#139





























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:































MDD


XSource Code



Data Dictionary


XQAC



































XIntegration Manual


Davinci Files








































































Comments:

No MDDfor v1



























































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request. (Note: If this peer review form was not
completed for pervious versions of this component, the Change Owner should review the entire component and complete the checklist in its entirety prior and check
the form into Syngery. This may be done prior to reviewing the modifications for this Change Result)
- The Change Owner shall responsible for completing the entire checklist (Pre and Group review items) prior holding the initial group review.
- New components should include FDD Owner and Intergator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Select "Yes" and add "N/A" to the comments for checklist items that are not applicable for this change















Sheet 2: Source Code






















Rev 6.028-Oct-14
Peer Review Meeting Log (Source Code Review)

























Source File Name:




kzshz2: Intended Use: Identify which .asm, .c, or .h file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFixdPt.h
Source 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. 1

























Module Design Document Name:




kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A
MDD Revision:


kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A

























Data Dictionary Revision:




kzshz2: Intended Use: Identify which version of the Data Dictionary was referenced for ranges during the source file review. Rationale: Needed for traceability between source code and DD N/A




FDD/SER/CMS























and Revision:


nz63rn: Intended Use: Identify which version of which FDD/CMS/SER this source file was written against. Rationale: Needed for traceability between source code and FDD/CMS/SER N/A

Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersSoftware Naming Convention V1.2 followed:








































for variable names







X
Comments: Per working EA4 Naming Conventions

















































for constant names







X
Comments: Per working EA4 Naming Conventions

















































for function names







X
Comments: Per working EA4 Naming Conventions

















































for other names (component, memory







X
Comments: Per working EA4 Naming Conventions










mapping handles, typedefs, etc.)






































All buffered outputs written in every path, i.e. no








X
Comments: N/A










possibility of an uninitialized value being written






































Group-review Checklist (review board)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.




Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








X
Comments:



and CR number





































Code accurately implements FDD (Document or Model)








X

Comments:

No FDD Currently Available







































No Compiler Errors or Warnings verified


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.





X
Comments:

Component only has header file













































FDD test points exist as display variables: declared








X
Comments: N/A










static volatile, written once and never used, names













match the FDD













































Software Design and Coding Standards V2.0 followed:








































Code comments are clear, correct, and adequate







X
Comments:











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














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







X
Comments:











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







































Function comment blocks are per standards and







X
Comments:











contain correct information: [N43]







































Code formatting (indentation, placement of







X
Comments:











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














[N57], [N58], [N59]
















































Embedded constants used per standards; no







X
Comments:











"magic numbers": [N12]







































All variables and constants defined at module







X
Comments: N/A for inline functions











level are included in appropriate MemMap














section: [N25] and Naming Conventions
















































All execution-order-dependent code can be







X
Comments:

N/A








recognized by the compiler: [N80]







































No possibility of a non-terminating loop: [N63]







X
Comments:

N/A

















































No possibility of divide by zero: [N65]







X
Comments:

N/A

















































All integer division and modulus operations







X
Comments:











handle negative numbers correctly: [N76]







































All typecasting and fixed point arithmetic,







X
Comments:











including all use of fixed point macros and














timer functions, is correct and has no possibility























of unintended overflow or underflow: [N66]
















































No possibility of converting a negative floating








X
Comments:

If the input arguments are not followed based on the rules. There is possibility for unexpected results








point value to an unsigned type: [N67]







































All conversions between signed and unsigned







X
Comments:











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







































No possibility of dereferencing a null







X
Comments: N/A











pointer: [N70]







































Global outputs (RTE and Non-RTE) Initialized:







X
Comments: N/A











[N24]







































Module outputs are limited to the legal range







X
Comments: N/A











defined in the FDD Data dictionary: [N53]







































All code is mapped with FDD (all FDD







X

Comments: No FDD Available











subfunctions and/or model blocks identified














with code comments; all code corresponds to























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
















































Struct types used for NvM have







X
Comments: N/A











elements declared in decreasing order by size














and are not nested or used in arrays: [N84], [N85]
















































No violations of other coding standard rules







X
Comments:











identified during review
























































































General Notes / Comments:























Mplr for mutiplier

Remove 1 from the inp and mplr1

add the usage notes as comments ie input range

run polyspace and QAC




























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:

Selva Sengottaiyan


Review Date :

02/13/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):


Lucas Wendling
Kathleen Creager




































































Sheet 3: QAC






















Rev 6.028-Oct-14
Peer Review Meeting Log (QAC Review)


























Module Name:

kzshz2: Intended Use: Identify which .c file is being analyzed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFixdPt.h

Source File Revision:


1

Module
1of1


























Compliance Guidelines Version:




N/A









































kzshz2: Intended Use: Identify specific changes in results (new violation present, previous violation corrected, etc.). Changes to the version of the tool or the way the results were gathered should be described here also. This should be filled out prior to the review by the change owner. Rationale: Gives reviewers an what needs to be focused on. Forces the change owner to compare with previous results to catch any differences that may otherwise go unoticed Brief Summary of Changes (In Results or Tool):


































































Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review
checklist for change owners
QAC version is correct and did not change (List version)







kzshz2: Intended Use: Identify which version of the QAC Subproject was used and if any of the personalities may have changed. Rationale: Will help ensure this is factored into evaluating the results
X
Comments:

Using working EA4 version plus special analyzer file which was reviewed







































Contract Folder's header files are appropriate





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.


X
Comments:












































Group-review Checklist (review board)100% Compliance to the MISRA Compliance Guidelines
X
Comments:

Approved deviations for 8.5 and 1.1







































Cyclomatic complexity and Static path count ok per






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

X
Comments:




Design and Coding Standards rule [N47]






































General Notes / Comments:



























































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:

Selva Sengottaiyan


Review Date :

02/13/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 4: Integration Manual






















Rev 6.028-Oct-14
Peer Review Meeting Log (Integration Manual Review)


























Integration Manual Name:



kzshz2: Intended Use: Identify which file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrFixdPt Integration Manual

Integration Manual Revision:



kzshz2: Intended Use: Identify which version of the integration manual has been reviewed. Rationale: Required for traceability between the MDD and review. Auditors will likely require this. 1





























Quality Check Items:

































YesNo
Rationale is required for all answers of No









Group-review Checklist (review board)Synergy version matches header








X
Comments:










































Latest template used








X
Comments:










































Change log contains detailed description of changes








X
Comments:










































Changes Highlighted (for Integrator)








X
Comments:

Initial version








































General Notes / Comments:



























































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:

Selva Sengottaiyan


Review Date :

02/13/15
































Lead Peer Reviewer:


Kevin Smith


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































14 - Component Implementation

Component Implementation

Component Documentation

14.1 - NxtrIntrpn Integration Manual

Integration Manual

For

NxtrIntrpn

VERSION: 1.0

DATE: 02/19/2015

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionK. Smith1.002/19/15

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

References

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

Sr. No.TitleVersion
1Working EA4 naming Conventions[1]Temp
2AutoSAR and Nexteer KeyWord Abbreviations list[1]Temp

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

LnrIntrpn_u16_u16FixdXu16VariY()

LnrIntrpn_s16_u16FixdXs16VariY()

LnrIntrpn_u16_u16VariXu16VariY()

LnrIntrpn_u16_s16VariXu16VariY()

LnrIntrpn_s16_s16VariXs16VariY()

LnrIntrpn_s16_u16VariXs16VariY()

LnrIntrpnWithRound_u16_u16FixdXu16VariY()

LnrIntrpnWithRound_s16_u16FixdXs16VariY()

LnrIntrpnWithRound_u16_u16VariXu16VariY()

LnrIntrpnWithRound_u16_s16VariXu16VariY()

LnrIntrpnWithRound_s16_s16VariXs16VariY()

LnrIntrpnWithRound_s16_u16VariXs16VariY()

BilnrIntrpnWithRount_u16_u16CmnXu16MplY()

BilnrIntrpnWithRound_s16_u16CmnXs16MplY()

BilnrIntrpnWithRound_s16_s16CmnXs16MplY()

BilnrIntrpnWithRound_u16_s16CmnXu16MplY()

BilnrIntrpnWithRound_s16_u16MplXs16MplY()

BilnrIntrpnWithRound_s16_s16MplXs16MplY()

BilnrIntrpnWithRound_u16_u16MplXu16MplY()

BilnrIntrpnWithRound_u16_s16MplXu16MplY()

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

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

N/A

Required Global Data Outputs

N/A

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)
RunnableScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
None
NxtrIntrpn_START_SEC_CODE

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

Usage

FeatureRAMROM
None

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
None

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

[1] – No official document released for EA4.0 for this document’s revision.

14.2 - NxtrIntrpn Review


Overview

Summary Sheet
Source Code
QAC
Integration Manual


Sheet 1: Summary Sheet
























Rev 6.028-Oct-14

Peer Review Summary Sheet



























Component 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. NxtrIntrpn
Component Revision:


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. AR101A_NxtrIntrpn_Impl_1.0.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. Kevin Smith
Change Request ID:


EA4#109





























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:































MDD


Source Code



Data Dictionary


QAC



































Integration Manual


Davinci Files








































































Comments:

No m-file for the first version because currently the tool does not support library function return values.






No MDD or model/requirement document for this version. Follow up CR to be created.



















































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request. (Note: If this peer review form was not
completed for pervious versions of this component, the Change Owner should review the entire component and complete the checklist in its entirety prior and check
the form into Syngery. This may be done prior to reviewing the modifications for this Change Result)
- The Change Owner shall responsible for completing the entire checklist (Pre and Group review items) prior holding the initial group review.
- New components should include FDD Owner and Intergator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Select "Yes" and add "N/A" to the comments for checklist items that are not applicable for this change















Sheet 2: Source Code






















Rev 6.028-Oct-14
Peer Review Meeting Log (Source Code Review)

























Source File Name:




kzshz2: Intended Use: Identify which .asm, .c, or .h file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrIntrpn.c
Source 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. 1

























Module Design Document Name:




kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A
MDD Revision:


kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A

























Data Dictionary Revision:




kzshz2: Intended Use: Identify which version of the Data Dictionary was referenced for ranges during the source file review. Rationale: Needed for traceability between source code and DD N/A




FDD/SER/CMS























and Revision:


nz63rn: Intended Use: Identify which version of which FDD/CMS/SER this source file was written against. Rationale: Needed for traceability between source code and FDD/CMS/SER 1

Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersSoftware Naming Convention V1.2 followed:








































for variable names







X
Comments: Per working EA4 Naming Conventions

















































for constant names







X
Comments: Per working EA4 Naming Conventions

















































for function names







X
Comments: Per working EA4 Naming Conventions

















































for other names (component, memory







X
Comments: Per working EA4 Naming Conventions










mapping handles, typedefs, etc.)






































All buffered outputs written in every path, i.e. no








X
Comments: N/A










possibility of an uninitialized value being written






































Group-review Checklist (review board)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.


X
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








X
Comments:



and CR number





































Code accurately implements FDD (Document or Model)








X

Comments:

Code is implemented to execute the













equation(s) defined in the FDD.
























No Compiler Errors or Warnings verified


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.





X
Comments:
















































FDD test points exist as display variables: declared








X
Comments: N/A










static volatile, written once and never used, names













match the FDD













































Software Design and Coding Standards V2.0 followed:








































Code comments are clear, correct, and adequate







X
Comments:











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














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







X
Comments:











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







































Function comment blocks are per standards and







X
Comments:











contain correct information: [N43]







































Code formatting (indentation, placement of







X
Comments:











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














[N57], [N58], [N59]
















































Embedded constants used per standards; no







X
Comments:

N/A








"magic numbers": [N12]







































All variables and constants defined at module







X
Comments:

N/A








level are included in appropriate MemMap














section: [N25] and Naming Conventions
















































All execution-order-dependent code can be







X
Comments:

N/A








recognized by the compiler: [N80]







































No possibility of a non-terminating loop: [N63]







X
Comments:

N/A

















































No possibility of divide by zero: [N65]








X
Comments:

Code protects for this by the boundary




















checking that is in place. Otherwise no direct prevention is














implemented.



























All integer division and modulus operations







X

Comments:

Limitations in design are documented








handle negative numbers correctly: [N76]










in the FDD



























All typecasting and fixed point arithmetic,







X
Comments:











including all use of fixed point macros and














timer functions, is correct and has no possibility























of unintended overflow or underflow: [N66]
















































No possibility of converting a negative floating







X

Comments:











point value to an unsigned type: [N67]







































All conversions between signed and unsigned







X

Comments:

Will not be handled correct if the inputs








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










are large enough. This is documented in the FDD.



























No possibility of dereferencing a null








X
Comments:

No explict check. Time execution








pointer: [N70]










savings. Relies on user to ensure proper values are used.



























Global outputs (RTE and Non-RTE) Initialized:







X
Comments: N/A











[N24]







































Module outputs are limited to the legal range







X
Comments: N/A











defined in the FDD Data dictionary: [N53]







































All code is mapped with FDD (all FDD







X

Comments:

No FDD references to be used.








subfunctions and/or model blocks identified














with code comments; all code corresponds to























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
















































Struct types used for NvM have







X
Comments: N/A











elements declared in decreasing order by size














and are not nested or used in arrays: [N84], [N85]
















































No violations of other coding standard rules







X
Comments:

Noted in this document for all that








identified during review










exist.












































































General Notes / Comments:






























































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:

Kevin Smith


Review Date :

02/26/15
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: QAC






















Rev 6.028-Oct-14
Peer Review Meeting Log (QAC Review)


























Module Name:

kzshz2: Intended Use: Identify which .c file is being analyzed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrIntrpn.h

Source File Revision:


1

Module
1of1


























Compliance Guidelines Version:




N/A









































kzshz2: Intended Use: Identify specific changes in results (new violation present, previous violation corrected, etc.). Changes to the version of the tool or the way the results were gathered should be described here also. This should be filled out prior to the review by the change owner. Rationale: Gives reviewers an what needs to be focused on. Forces the change owner to compare with previous results to catch any differences that may otherwise go unoticed Brief Summary of Changes (In Results or Tool):


































































Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review
checklist for change owners
QAC version is correct and did not change (List version)







kzshz2: Intended Use: Identify which version of the QAC Subproject was used and if any of the personalities may have changed. Rationale: Will help ensure this is factored into evaluating the results
X
Comments:

TL100A_QACSuprt_1.0.0







































Contract Folder's header files are appropriate





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.


X
Comments:












































Group-review Checklist (review board)100% Compliance to the MISRA Compliance GuidelinesX

Comments:

MemMap include deviation documented







































Cyclomatic complexity and Static path count ok per






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

X
Comments:




Design and Coding Standards rule [N47]






































General Notes / Comments:



























































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:

Kevin Smith


Review Date :

02/26/15
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 4: Integration Manual






















Rev 6.028-Oct-14
Peer Review Meeting Log (Integration Manual Review)


























Integration Manual Name:



kzshz2: Intended Use: Identify which file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. NxtrIntrpn Integration Manual

Integration Manual Revision:



kzshz2: Intended Use: Identify which version of the integration manual has been reviewed. Rationale: Required for traceability between the MDD and review. Auditors will likely require this. 1





























Quality Check Items:

































YesNo
Rationale is required for all answers of No









Group-review Checklist (review board)Synergy version matches header








X
Comments:










































Latest template used








X
Comments:










































Change log contains detailed description of changes








X
Comments:










































Changes Highlighted (for Integrator)








X
Comments:

Initial version








































General Notes / Comments:



























































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:

Kevin Smith


Review Date :

02/26/15
































Lead Peer Reviewer:


Selva


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































15.1 - NxtrMath Integration Manual

Integration Manual

For

NxtrMath

VERSION: 1

DATE: 02/18/2015

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionLucas Wendling102/18/15

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

References

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

Sr. No.TitleVersion

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

All functions in this component are provided to the integration project, but are only used on an as-needed basis.

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

Configuration Files to be provided by Integration Project

<Configuration file that will generated from this components that will require Da Vinci Config generation or manual generation. Describe each parameter >

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

N/A

Required Global Data Outputs

N/A

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)
RunnableScheduling RequirementsTrigger
NoneNoneRTE/ISR(<time>ms)

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
None

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

Usage

FeatureRAMROM
<Memmap usuage info>

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
<NVM block used Non RTE functions >

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
<NVM block used in RTE functions >

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

<This section is for appendix>

15.2 - NxtrMath Review


Overview

Summary Sheet
Synergy Project
Source Code
PolySpace


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. AR100A_NxtrMath_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. 1.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. Krishna Anne
Work CR ID:


EA4#6438





























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:































N/AMDD


YesSource Code


YesPolySpace









































N/AIntegration Manual


N/ADavinci Files








































































Comments:

Moving sine lookup function to the Nexteer math library from SF107A.



























































































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:



























































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:

Krishna Anne


Review Date :

07/22/16
































Lead Peer Reviewer:


Nick Saxton


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: Source Code






















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

























Source File Name:


N/A

Source File Revision:


N/A
Header File Name:


NxtrMath.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:

N/A

Revision:
N/A

























FDD/SCIR/DSR/FDR/CM Name:




N/A

Revision:
N/A


























Quality Check Items:



































Rationale is required for all answers of No









Working EA4 Software Naming Convention followed:















































for variable names







Yes
Comments:






















Only for changes

























for constant names







Yes
Comments:






















Only for changes

























for function names







Yes
Comments:






















Only for changes

























for other names (component, memory







Yes
Comments:










mapping handles, typedefs, etc.)










Only for changes
























All paths assign a value to outputs, ensuring








N/A
Comments:









all outputs are initialized prior to being written





































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








N/A
Comments:









requirements tracability in the FDD





































All variables are declared at the function level.








Yes
Comments:






















Only for 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:
















No FDD Currently Available
























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)





































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










Only for 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]










Only for changes

























Function comment blocks are per standards and







Yes
Comments:










contain correct information: [N43]










Only for changes

























Code formatting (indentation, placement of







Yes
Comments:










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










Only for changes

[N57], [N58], [N59]














































Embedded constants used per standards; no







Yes
Comments:










"magic numbers": [N12]










Only for changes

























Memory mapping for non-RTE code







N/A
Comments:










is per standard





































All execution-order-dependent code can be







N/A
Comments:










recognized by the compiler: [N80]





































All loops have termination conditions that ensure







N/A
Comments:










finite loop iterations: [N63]





































All divides protect against divide by zero







N/A
Comments:










if needed: [N65]










N/A for changes

























All integer division and modulus operations







N/A
Comments:










handle negative numbers correctly: [N76]










N/A for changes

























All typecasting and fixed point arithmetic,







Yes
Comments:










including all use of fixed point macros and













timer functions, is correct and has no possibility






















of unintended overflow or underflow: [N66]














































All float-to-unsiged conversions ensure the.







Yes
Comments:










float value is non-negative: [N67]










Only for changes

























All conversions between signed and unsigned







N/A
Comments:










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










N/A for changes

























All pointer dereferencing protects against







Yes
Comments:










null pointer if needed: [N70]










Only for changes

























Component outputs are limited to the legal range







N/A
Comments:










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










Only for changes

























All code is mapped with FDD (all FDD







N/A
Comments:










subfunctions and/or model blocks identified










No FDD exists

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








No
Comments: List Anomaly or CR numbers









for any FDD corrections needed































































General Notes / Comments:

















































































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:

Krishna Anne


Review Date :

07/22/16
































Lead Peer Reviewer:


Nick Saxton


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:


NxtrMath.h




Source File Revision:


3

Source File Name:















Source File Revision:





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 N/A

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.1.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

Yes
Comments:





for all functions in the component per Design










Found cyclomatic complexity 16 for SinCos_f32() function











and Coding Standards rule [N47]

































































































General Notes / Comments:



























































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:

Krishna Anne


Review Date :

07/22/16
































Lead Peer Reviewer:


Nick Saxton


Approved by Reviewer(s):



Yes































Other Reviewer(s):









































































15.3 - Optimized SinCos Algorithm Rev 001

Optimized SinCos Algorithm

  1. Background:

The following diagram is an overview of the operations that are performed during digital motor angle initialization to compute their correction tables.

Generate Reconstructed Waveform Pseudo Code:

for n = 0 to 128 // size of correction table

$ReconstructedWaveform\lbrack n\rbrack \cong \sum_{i = 1}^{12}{Acoeff\lbrack i\rbrack*\cos\left( \frac{n*2pi*i}{127} \right) +}Bcoeff\lbrack i\rbrack*\sin\left( \frac{n*2pi*i}{127} \right)$

As shown in the pseudo code there is several calls to the sine and cosine function (128 * 12). Furthermore, the algorithm requires both the sine and cosine of the same angle. During benchmarking activities the following algorithm was developed and shown to have significant time improvements (~= 5.5 mSec vs ~= 2.4 mSec) over the standard sine and cosine library functions.

  1. Sine and Cosine as Taylor Series:

$$Sin(x) = x - \frac{x^{3}}{3!} + \frac{x^{5}}{5!} - \frac{x^{7}}{7!}\ldots$$

$$Cos(x) = 1 - \frac{x^{2}}{2!} + \frac{x^{4}}{4!} - \frac{x^{5}}{5!}\ldots$$

  1. Range Reduction:

Although the Taylor Series for sine and cosine are exact it technically takes an infinite number of terms. The purpose of limiting the value of x into the Taylor Series is so that it doesn’t take many terms before the factorial in the denominator dwarfs the numerator. To limit the input range of x the following identity is used:

Sin(A+B) = Sin(A)Cos(B) + Sin(B)Cos(A)

For reasons that will be discussed later B will be declared as 22.5n, where n is an integer between 0 and 15. Using this technique the largest x input into the Taylor Series will be +/- 11.25 Degrees (0.1963 Radians).

Now that the maximum input value of x has been established it is possible to determine the number of terms in the Taylor Series that are required to achieve acceptable levels of accuracy.

# of TermsSin(x)Sin(x) Max ErrorCos(x)Cos(x) Max Error
1Sin(x) = x0.001259Cos(x) = 10.0192
2$$Sin(x) = x - \frac{x^{3}}{3!}$$2.4297E-6$$Cos(x) = 1 - \frac{x^{2}}{2!}$$6.18515E-5
3$$Sin(x) = x - \frac{x^{3}}{3!} + \frac{x^{5}}{5!}$$2.2312E-9$$Cos(x) = 1 - \frac{x^{2}}{2!} + \frac{x^{4}}{4!}$$7.953E-8

As the table above shows an acceptable level of accuracy can be achieved with only 2 terms in the sine and cosine Taylor Series once the input has been range limited to +/- 11.25 degrees.

  1. Algorithm:

Calculate n & B:

As shown before, n is the largest integer that satisfies: 22.5n < x. This can be performed using integer math where:

$$n = floor\left( \frac{x*8}{\pi} \right):where\frac{8}{\pi}Radians = 22.5\ Degrees$$

The above equation will leave a remainder that ranges from 0 to 22.5 degrees. By adding in a 0.5 term the result will round up leaving a remainder with the desired range of +/- 11.25 Degrees. Therefore n is calculated as:

$$n = floor\left( \frac{x*8}{\pi} + 0.5 \right)$$

The B term is a simple multiple of n:

$$B = \frac{\pi}{8}*n$$

Determine A:

The A term is the effective remainder of the input angle x minus the B term.

A = x − B

Compute Sin(A) & Cos(A):

Once input x has been range limited into A the term limited Taylor Series of sine and cosine can be computed:

$$Sin(A) = A - \frac{A^{3}}{3!}$$

$$Cos(A) = 1 - \frac{A^{2}}{2!}$$

Compute Sin(x):

Now that Sin(A) & Cos(A) have been determined they can be combined with Sin(B) & Cos(B) to determine Sin(x). The B term is a function of n, which was earlier stated to be a multiple of 22.5 degrees of which there are 16 per revolution. Input x is has no theoretical bound but determining Sin(B) & Cos(B) can be simplified by normalizing n into a single revolution. With n having 16 steps per revolution the normalization is a simple bit mask.

nnrml = n & 0xF

With normalized n determined it can be used as an index into a switch case statement to determine Sin(x)

Switch (n_nrml)

Case 0:

Sinx = Sin(A)Cos(22.5 * 0) + Sin(22.5 * 0)Cos(A)

Case 1:

Sinx = Sin(A)Cos(22.5 * 1) + Sin(22.5 * 1)Cos(A)

Case 2:

Sinx = Sin(A)Cos(22.5 * 2) + Sin(22.5 * 2)Cos(A)

Case 3:

Sinx = Sin(A)Cos(22.5 * 3) + Sin(22.5 * 3)Cos(A)

Case 4:

Sinx = Sin(A)Cos(22.5 * 4) + Sin(22.5 * 4)Cos(A)

Case 5:

Sinx = Sin(A)Cos(22.5 * 5) + Sin(22.5 * 5)Cos(A)

Case 6:

Sinx = Sin(A)Cos(22.5 * 6) + Sin(22.5 * 6)Cos(A)

Case 7:

Sinx = Sin(A)Cos(22.5 * 7) + Sin(22.5 * 7)Cos(A)

Case 8:

Sinx = Sin(A)Cos(22.5 * 8) + Sin(22.5 * 8)Cos(A)

Case 9:

Sinx = Sin(A)Cos(22.5 * 9) + Sin(22.5 * 9)Cos(A)

Case 10:

Sinx = Sin(A)Cos(22.5 * 10) + Sin(22.5 * 10)Cos(A)

Case 11:

Sinx = Sin(A)Cos(22.5 * 11) + Sin(22.5 * 11)Cos(A)

Case 12:

Sinx = Sin(A)Cos(22.5 * 12) + Sin(22.5 * 12)Cos(A)

Case 13:

Sinx = Sin(A)Cos(22.5 * 13) + Sin(22.5 * 13)Cos(A)

Case 14:

Sinx = Sin(A)Cos(22.5 * 14) + Sin(22.5 * 14)Cos(A)

Case 15:

Sinx = Sin(A)Cos(22.5 * 15) + Sin(22.5 * 15)Cos(A)

The Sin(B) & Cos(B) terms above can be simplified due to their symmetrical nature into 3 predefined constants:

Sin(22.5) = Cos(67.5) = 0.38263

Sin(45.0) = Cos(45.0) = 0.70710

Sin(67.5) = Cos(22.5) = 0.92387

Cos(x) for Free (almost):

The previous calculation computed Sin(x) as a function of Sin(A), Cos(A), Sin(B) & Cos(B). As it turns out cosine has a similar trig identity that uses the exact same terms.

Cos(A+B) = Cos(A)Cos(B) − Sin(A)Sin(B)

The switch case can be modified to simultaneously be used to return the sine and cosine of the same angle at the same time:

Switch (n_nrml)

Case 0:

Sinx = Sin(A)Cos(22.5 * 0) + Sin(22.5 * 0)Cos(A)

Cosx = Cos(A)Cos(22.5 * 0) + Sin(A) Sin(22.5 * 0)

Case 1:

Sinx = Sin(A)Cos(22.5 * 1) + Sin(22.5 * 1)Cos(A)

Cosx = Cos(A)Cos(22.5 * 1) + Sin(A) Sin(22.5 * 1)

Case 2:

Sinx = Sin(A)Cos(22.5 * 2) + Sin(22.5 * 2)Cos(A)

Cosx = Cos(A)Cos(22.5 * 2) + Sin(A) Sin(22.5 * 2)

Case 3:

Sinx = Sin(A)Cos(22.5 * 3) + Sin(22.5 * 3)Cos(A)

Cosx = Cos(A)Cos(22.5 * 3) + Sin(A) Sin(22.5 * 3)

Case 4:

Sinx = Sin(A)Cos(22.5 * 4) + Sin(22.5 * 4)Cos(A)

Cosx = Cos(A)Cos(22.5 * 4) + Sin(A) Sin(22.5 * 4)

Case 5:

Sinx = Sin(A)Cos(22.5 * 5) + Sin(22.5 * 5)Cos(A)

Cosx = Cos(A)Cos(22.5 * 5) + Sin(A) Sin(22.5 * 5)

Case 6:

Sinx = Sin(A)Cos(22.5 * 6) + Sin(22.5 * 6)Cos(A)

Cosx = Cos(A)Cos(22.5 * 6) + Sin(A) Sin(22.5 * 6)

Case 7:

Sinx = Sin(A)Cos(22.5 * 7) + Sin(22.5 * 7)Cos(A)

Cosx = Cos(A)Cos(22.5 * 7) + Sin(A) Sin(22.5 * 7)

Case 8:

Sinx = Sin(A)Cos(22.5 * 8) + Sin(22.5 * 8)Cos(A)

Cosx = Cos(A)Cos(22.5 * 8) + Sin(A) Sin(22.5 * 8)

Case 9:

Sinx = Sin(A)Cos(22.5 * 9) + Sin(22.5 * 9)Cos(A)

Cosx = Cos(A)Cos(22.5 * 9) + Sin(A) Sin(22.5 * 9)

Case 10:

Sinx = Sin(A)Cos(22.5 * 10) + Sin(22.5 * 10)Cos(A)

Cosx = Cos(A)Cos(22.5 * 10) + Sin(A) Sin(22.5 *10)

Case 11:

Sinx = Sin(A)Cos(22.5 * 11) + Sin(22.5 * 11)Cos(A)

Cosx = Cos(A)Cos(22.5 * 11) + Sin(A) Sin(22.5 * 11)

Case 12:

Sinx = Sin(A)Cos(22.5 * 12) + Sin(22.5 * 12)Cos(A)

Cosx = Cos(A)Cos(22.5 * 12) + Sin(A) Sin(22.5 * 12)

Case 13:

Sinx = Sin(A)Cos(22.5 * 13) + Sin(22.5 * 13)Cos(A)

Cosx = Cos(A)Cos(22.5 * 13) + Sin(A) Sin(22.5 * 13)

Case 14:

Sinx = Sin(A)Cos(22.5 * 14) + Sin(22.5 * 14)Cos(A)

Cosx = Cos(A)Cos(22.5 * 14) + Sin(A) Sin(22.5 * 14)

Case 15:

Sinx = Sin(A)Cos(22.5 * 15) + Sin(22.5 * 15)Cos(A)

Cosx = Cos(A)Cos(22.5 * 15) + Sin(A) Sin(22.5 * 15)

  1. Performance:

The following graph shows the output and error of the algorithm. The maximum errors for sine and cosine are:

SinErrorMax = 6.1799e-05

CosErrorMax = 6.1618e-05

  1. Matlab Code:

%% Optimized SinCos Algorithm

ArraySize = uint16(100000);

PiOverEight = pi/8;

EightOverPi = 8/pi;

sin225 = sin(22.5/180*pi);

sin450 = sin(45.0/180*pi);

sin675 = sin(67.5/180*pi);

x = linspace(-2*pi, 2*pi,ArraySize)';

SinX = zeros(ArraySize,1);

CosX = zeros(ArraySize,1);

n = int16(floor(x * EightOverPi + 0.5));

A = (x - double(n) * PiOverEight);

SinA = A - (A.^3)/6;%+(A.^5)/120;

CosA = 1 - (A.^2)/2;%+(A.^4)/24;

n_nrml = bitand(n,15);

for i = 1:ArraySize

switch n_nrml(i)

case 0

SinX(i) = SinA(i);

CosX(i) = CosA(i);

case 1

SinX(i) = sin675 * SinA(i) + sin225 * CosA(i);

CosX(i) = -sin225 * SinA(i) + sin675 * CosA(i);

case 2

SinX(i) = sin450 * SinA(i) + sin450 * CosA(i);

CosX(i) = -sin450 * SinA(i) + sin450 * CosA(i);

case 3

SinX(i) = sin225 * SinA(i) + sin675 * CosA(i);

CosX(i) = -sin675 * SinA(i) + sin225 * CosA(i);

case 4

SinX(i) = CosA(i);

CosX(i) = -SinA(i);

case 5

SinX(i) = -sin225 * SinA(i) + sin675 * CosA(i);

CosX(i) = -sin675 * SinA(i) + -sin225 * CosA(i);

case 6

SinX(i) = -sin450 * SinA(i) + sin450 * CosA(i);

CosX(i) = -sin450 * SinA(i) + -sin450 * CosA(i);

case 7

SinX(i) = -sin675 * SinA(i) + sin225 * CosA(i);

CosX(i) = -sin225 * SinA(i) + -sin675 * CosA(i);

case 8

SinX(i) = -SinA(i);

CosX(i) = -CosA(i);

case 9

SinX(i) = -sin675 * SinA(i) + -sin225 * CosA(i);

CosX(i) = sin225 * SinA(i) + -sin675 * CosA(i);

case 10

SinX(i) = -sin450 * SinA(i) + -sin450 * CosA(i);

CosX(i) = sin450 * SinA(i) + -sin450 * CosA(i);

case 11

SinX(i) = -sin225 * SinA(i) + -sin675 * CosA(i);

CosX(i) = sin675 * SinA(i) + -sin225 * CosA(i);

case 12

SinX(i) = -CosA(i);

CosX(i) = SinA(i);

case 13

SinX(i) = sin225 * SinA(i) + -sin675 * CosA(i);

CosX(i) = sin675 * SinA(i) + sin225 * CosA(i);

case 14

SinX(i) = sin450 * SinA(i) + -sin450 * CosA(i);

CosX(i) = sin450 * SinA(i) + sin450 * CosA(i);

case 15

SinX(i) = sin675 * SinA(i) + -sin225 * CosA(i);

CosX(i) = sin225 * SinA(i) + sin675 * CosA(i);

end

end

SinError = sin(x) - SinX;

CosError = cos(x) - CosX;

SinErrorMax = max(SinError)

CosErrorMax = max(CosError)

subplot(2,2,1) % first subplot

plot(x*180/pi,SinX)

title('Sin(x)')

xlabel('Angle (Degrees)')

ylabel('Sin(x) (Unitless)')

subplot(2,2,2) % second subplot

plot(x*180/pi,CosX)

title('Cos(x)')

xlabel('Angle (Degrees)')

ylabel('Cos(x) (Unitless)')

subplot(2,2,3) % third subplot

plot(x*180/pi,SinError)

title('Sin(x) Error')

xlabel('Angle (Degrees)')

ylabel('Sin(x) Error (Unitless)')

subplot(2,2,4) % fourth subplot

plot(x*180/pi,CosError)

title('Cos(x) Error')

xlabel('Angle (Degrees)')

ylabel('Cos(x) Error (Unitless)')

15.4 - SinCos_f32()_Simulation


Overview

Error_Analysis
Timing_Analysis


Sheet 1: Error_Analysis


Note: Simulation was run in an actual RENESAS uController on a T1XX board.







































Angle_degSineAngle_degCosineAngle_degError/SineAngle_degError/Cosine
-450-1-4504.77E-07-4505.96E-08-4502.72E-07
-449-0.999848-4490.0174528-4495.96E-08-449-1.43E-07
-448-0.999391-4480.0348998-4480-4481.86E-07
-447-0.998629-4470.0523361-447-2.98E-07-447-2.27E-07
-446-0.997563-4460.069757-446-9.54E-07-446-3.58E-07
-445-0.996192-4450.0871562-445-2.38E-06-4457.45E-09
-444-0.994517-4440.104529-444-4.95E-06-4443.95E-07
-443-0.992537-4430.121869-443-9.24E-06-4439.69E-08
-442-0.990252-4420.139173-442-1.58E-05-4426.41E-07
-441-0.987663-4410.156434-441-2.53E-05-4418.49E-07
-440-0.984769-4400.173647-440-3.87E-05-4401.01E-06
-439-0.981571-4390.190807-439-5.65E-05-4392.15E-06
-438-0.978104-4380.207895-438-4.39E-05-4381.68E-05
-437-0.97434-4370.22494-437-2.94E-05-4371.14E-05
-436-0.970277-4360.241915-436-1.90E-05-4367.11E-06
-435-0.965914-4350.258815-435-1.14E-05-4354.62E-06















-434-0.961255-4340.275635-434-6.50E-06-4342.35E-06
-433-0.956301-4330.29237-433-3.22E-06-4331.43E-06
-432-0.951055-4320.309017-432-1.49E-06-4325.96E-07
-431-0.945518-4310.325568-431-4.77E-07-4315.66E-07
-430-0.939692-4300.34202-430-1.79E-07-4300
-429-0.93358-4290.358368-4291.19E-07-4292.38E-07
-428-0.927184-4280.374607-428-5.96E-08-428-1.49E-07
-427-0.920505-4270.390732-4271.79E-07-4274.17E-07
-426-0.913545-4260.406737-426-5.96E-08-4265.96E-08
-425-0.906308-4250.422618-4250-4253.87E-07
-424-0.898793-4240.438371-424-5.96E-07-4242.09E-07
-423-0.891005-4230.45399-423-1.31E-06-4238.64E-07
-422-0.882944-4220.469471-422-3.22E-06-4221.55E-06
-421-0.874613-4210.484807-421-6.08E-06-4213.22E-06
-420-0.866014-4200.499995-420-1.11E-05-4205.07E-06
-419-0.857149-4190.51503-419-1.82E-05-4198.58E-06
-418-0.848019-4180.529906-418-2.87E-05-4181.29E-05















-417-0.838628-4170.54462-417-4.28E-05-4171.94E-05















-416-0.828996-4160.559155-416-4.12E-05-4163.87E-05















-415-0.819124-4150.57355-415-2.79E-05-4152.69E-05















-414-0.808999-4140.587768-414-1.84E-05-4141.76E-05















-413-0.798624-4130.601804-413-1.11E-05-4131.14E-05















-412-0.788004-4120.615655-412-6.50E-06-4126.74E-06















-411-0.777142-4110.629317-411-3.58E-06-4113.46E-06















-410-0.766043-4100.642786-410-1.49E-06-4101.97E-06















-409-0.754709-4090.656058-409-7.75E-07-4097.15E-07















-408-0.743144-4080.669131-4081.19E-07-4086.56E-07















-407-0.731354-4070.681998-4070-4071.19E-07















-406-0.71934-4060.694658-4063.58E-07-4063.58E-07















-405-0.707107-4050.707107-4055.96E-08-4055.96E-08















-404-0.694658-4040.71934-4041.79E-07-4042.38E-07















-403-0.681998-4030.731354-4031.19E-07-4031.19E-07















-402-0.66913-4020.743145-4021.79E-07-4025.96E-07















-401-0.656058-4010.754709-401-7.15E-07-4017.75E-07















-400-0.642786-4000.766043-400-1.43E-06-4001.97E-06















-399-0.629317-3990.777142-399-3.46E-06-3993.58E-06















-398-0.615655-3980.788004-398-5.96E-06-3987.09E-06















-397-0.601804-3970.798624-397-1.08E-05-3971.16E-05















-396-0.587768-3960.808999-396-1.70E-05-3961.88E-05















-395-0.57355-3950.819124-395-2.63E-05-3952.83E-05















-394-0.559155-3940.828996-394-3.81E-05-3944.17E-05















-393-0.544619-3930.838628-393-1.97E-05-3934.27E-05















-392-0.529906-3920.84802-392-1.34E-05-3922.84E-05















-391-0.515029-3910.857149-391-8.34E-06-3911.84E-05















-390-0.499995-3900.866014-390-4.86E-06-3901.13E-05















-389-0.484807-3890.874613-389-2.98E-06-3896.26E-06















-388-0.46947-3880.882945-388-1.70E-06-3883.04E-06















-387-0.453989-3870.891005-387-6.85E-07-3871.49E-06















-386-0.438371-3860.898794-386-6.56E-07-3862.98E-07















-385-0.422618-3850.906308-385-1.79E-07-3851.19E-07















-384-0.406736-3840.913545-3841.79E-07-3841.19E-07















-383-0.390731-3830.920505-3835.96E-08-3835.96E-08















-382-0.374606-3820.927184-382-2.98E-07-382-1.19E-07















-381-0.358368-3810.933581-381-2.98E-08-3815.96E-08















-380-0.34202-3800.939693-380-4.47E-07-3800















-379-0.325567-3790.945518-379-2.98E-08-3795.96E-07















-378-0.309016-3780.951055-378-8.05E-07-3781.43E-06















-377-0.29237-3770.956302-377-1.19E-06-3773.34E-06















-376-0.275635-3760.961255-376-2.80E-06-3766.38E-06















-375-0.258814-3750.965914-375-4.35E-06-3751.14E-05















-374-0.241914-3740.970277-374-7.26E-06-3741.88E-05















-373-0.224939-3730.974341-373-1.09E-05-3732.96E-05















-372-0.207895-3720.978104-372-1.66E-05-3724.40E-05















-371-0.190807-3710.981571-371-1.88E-06-3715.66E-05















-370-0.173647-3700.984769-370-1.48E-06-3703.86E-05















-369-0.156433-3690.987663-369-1.06E-06-3692.53E-05















-368-0.139172-3680.990252-368-3.73E-07-3681.59E-05















-367-0.121869-3670.992537-3671.64E-07-3679.30E-06















-366-0.104528-3660.994517-366-1.27E-07-3664.95E-06















-365-0.0871557-3650.996192-3652.68E-07-3652.38E-06















-364-0.0697561-3640.997563-3641.56E-07-3649.54E-07















-363-0.0523357-3630.998629-363-2.50E-07-3632.98E-07















-362-0.0348993-3620.999391-3628.57E-08-3620















-361-0.0174523-3610.999848-3614.15E-07-361-5.96E-08















-3600-3601-3600-360-5.96E-08















-3590.0174528-3590.999848-3592.31E-07-359-5.96E-08















-3580.0348998-3580.999391-3581.86E-07-3580















-3570.0523361-3570.998629-3571.49E-07-3572.38E-07















-3560.0697565-3560.997563-3561.12E-07-3568.94E-07















-3550.0871562-3550.996192-3557.45E-09-3552.38E-06















-3540.104529-3540.994517-3542.24E-08-3544.95E-06















-3530.121869-3530.992537-3534.69E-07-3539.18E-06















-3520.139173-3520.990252-3526.41E-07-3521.58E-05















-3510.156434-3510.987663-3519.54E-07-3512.53E-05















-3500.173647-3500.984769-3501.37E-06-3503.86E-05















-3490.190807-3490.981571-3492.15E-06-3495.65E-05















-3480.207895-3480.978104-3481.65E-05-3484.40E-05















-3470.22494-3470.974341-3471.11E-05-3472.94E-05















-3460.241915-3460.970277-3467.57E-06-3461.88E-05















-3450.258815-3450.965914-3454.62E-06-3451.14E-05















-3440.275635-3440.961255-3442.71E-06-3446.44E-06















-3430.29237-3430.956301-3431.43E-06-3433.22E-06















-3420.309016-3420.951055-3427.15E-07-3421.43E-06















-3410.325568-3410.945518-3412.98E-07-3415.36E-07















-3400.34202-3400.939692-3403.58E-07-3405.96E-08















-3390.358368-3390.93358-3392.38E-07-339-1.19E-07















-3380.374607-3380.927184-3382.09E-07-338-5.96E-08















-3370.390731-3370.920505-3371.79E-07-337-5.96E-08















-3360.406736-3360.913545-3361.49E-07-336-5.96E-08















-3350.422618-3350.906308-3353.87E-07-3350















-3340.438371-3340.898793-3345.36E-07-3344.17E-07















-3330.45399-3330.891005-3338.64E-07-3331.31E-06















-3320.46947-3320.882944-3321.64E-06-3323.16E-06















-3310.484807-3310.874613-3312.98E-06-3316.26E-06















-3300.499995-3300.866014-3305.07E-06-3301.11E-05















-3290.51503-3290.857149-3298.58E-06-3291.82E-05















-3280.529906-3280.848019-3281.33E-05-3282.84E-05















-3270.544619-3270.838628-3271.98E-05-3274.24E-05















-3260.559155-3260.828996-3263.83E-05-3264.15E-05















-3250.573551-3250.819123-3252.62E-05-3252.84E-05















-3240.587768-3240.808998-3241.72E-05-3241.87E-05















-3230.601804-3230.798624-3231.10E-05-3231.14E-05















-3220.615655-3220.788004-3226.44E-06-3226.74E-06















-3210.629317-3210.777142-3213.34E-06-3213.70E-06















-3200.642786-3200.766042-3201.55E-06-3201.79E-06















-3190.656059-3190.754709-3195.96E-07-3198.94E-07















-3180.669131-3180.743144-3181.19E-07-3183.58E-07















-3170.681998-3170.731354-317-1.79E-07-3172.38E-07















-3160.694659-3160.719339-3160-3160















-3150.707107-3150.707106-315-1.79E-07-3151.19E-07















-3140.71934-3140.694658-314-5.96E-08-3141.19E-07















-3130.731354-3130.681998-313-1.19E-07-3131.79E-07















-3120.743145-3120.66913-3125.96E-08-3124.17E-07















-3110.754709-3110.656058-3117.75E-07-3117.75E-07















-3100.766043-3100.642786-3101.73E-06-3101.79E-06















-3090.777143-3090.629317-3093.52E-06-3093.58E-06















-3080.788004-3080.615655-3086.62E-06-3086.56E-06















-3070.798624-3070.601804-3071.14E-05-3071.11E-05















-3060.808999-3060.587767-3061.85E-05-3061.73E-05















-3050.819124-3050.57355-3052.83E-05-3052.63E-05















-3040.828996-3040.559154-3044.14E-05-3043.85E-05















-3030.838628-3030.544619-3034.27E-05-3031.95E-05















-3020.848019-3020.529906-3022.87E-05-3021.29E-05















-3010.857149-3010.515029-3011.84E-05-3018.34E-06















-3000.866014-3000.499995-3001.11E-05-3005.16E-06















-2990.874613-2990.484807-2996.44E-06-2992.65E-06















-2980.882944-2980.46947-2983.28E-06-2981.28E-06















-2970.891005-2970.453989-2971.49E-06-2976.85E-07















-2960.898794-2960.438371-2964.77E-07-2962.68E-07















-2950.906308-2950.422618-2951.19E-07-2951.79E-07















-2940.913545-2940.406736-294-5.96E-08-2941.49E-07















-2930.920505-2930.390731-2935.96E-08-293-1.79E-07















-2920.927184-2920.374606-2925.96E-08-292-2.98E-08















-2910.933581-2910.358368-2915.96E-08-2912.98E-08















-2900.939693-2900.34202-2901.19E-07-2901.19E-07















-2890.945518-2890.325568-2895.36E-07-2892.98E-07















-2880.951055-2880.309016-2881.43E-06-2887.15E-07















-2870.956302-2870.29237-2873.34E-06-2871.19E-06















-2860.961255-2860.275635-2866.50E-06-2862.44E-06















-2850.965914-2850.258814-2851.14E-05-2854.35E-06















-2840.970277-2840.241915-2841.88E-05-2847.20E-06















-2830.974341-2830.22494-2832.94E-05-2831.11E-05















-2820.978104-2820.207895-2824.40E-05-2821.62E-05















-2810.981571-2810.190807-2815.66E-05-2811.88E-06















-2800.984769-2800.173647-2803.87E-05-2801.10E-06















-2790.987663-2790.156434-2792.54E-05-2795.96E-07















-2780.990252-2780.139173-2781.59E-05-2782.68E-07















-2770.992537-2770.121869-2779.24E-06-2772.09E-07















-2760.994517-2760.104528-2765.01E-06-276-2.46E-07















-2750.996192-2750.0871557-2752.38E-06-275-2.68E-07















-2740.997563-2740.0697565-2749.54E-07-274-2.61E-07















-2730.998629-2730.0523361-2732.98E-07-273-2.27E-07















-2720.999391-2720.0348993-2720-272-8.57E-08















-2710.999848-2710.0174523-271-5.96E-08-271-4.10E-08















-2701-2700-270-5.96E-08-2700















-2690.999848-269-0.0174523-269-5.96E-08-269-3.33E-07















-2680.999391-268-0.0348998-2680-268-1.86E-07















-2670.998629-267-0.0523361-2672.38E-07-267-1.49E-07















-2660.997563-266-0.0697565-2668.94E-07-266-1.12E-07















-2650.996192-265-0.0871557-2652.38E-06-265-1.04E-07















-2640.994517-264-0.104528-2644.95E-06-264-1.27E-07















-2630.992537-263-0.121869-2639.18E-06-263-4.69E-07















-2620.990252-262-0.139173-2621.58E-05-262-6.41E-07















-2610.987663-261-0.156434-2612.53E-05-261-9.54E-07















-2600.984769-260-0.173647-2603.86E-05-260-1.48E-06















-2590.981571-259-0.190807-2595.65E-05-259-2.25E-06















-2580.978103-258-0.207896-2584.40E-05-258-1.64E-05















-2570.97434-257-0.22494-2572.94E-05-257-1.10E-05















-2560.970277-256-0.241915-2561.90E-05-256-7.11E-06















-2550.965914-255-0.258815-2551.15E-05-255-4.23E-06















-2540.961255-254-0.275635-2546.50E-06-254-2.35E-06















-2530.956301-253-0.292371-2533.34E-06-253-1.01E-06















-2520.951055-252-0.309017-2521.49E-06-252-5.96E-07















-2510.945518-251-0.325568-2515.96E-07-251-1.79E-07















-2500.939692-250-0.34202-2501.79E-07-2500















-2490.93358-249-0.358368-2490-2491.19E-07















-2480.927184-248-0.374607-2481.19E-07-2482.38E-07















-2470.920505-247-0.390732-2471.19E-07-2472.68E-07















-2460.913545-246-0.406737-2465.96E-08-246-5.96E-08















-2450.906308-245-0.422618-2451.79E-07-245-5.96E-08















-2440.898793-244-0.438371-2445.96E-07-244-2.09E-07















-2430.891005-243-0.45399-2431.55E-06-243-4.77E-07















-2420.882944-242-0.469471-2423.40E-06-242-1.22E-06















-2410.874613-241-0.484807-2416.50E-06-241-2.53E-06















-2400.866014-240-0.499995-2401.13E-05-240-4.74E-06















-2390.857149-239-0.51503-2391.84E-05-239-8.17E-06















-2380.848019-238-0.529907-2382.87E-05-238-1.29E-05















-2370.838628-237-0.54462-2374.28E-05-237-1.94E-05















-2360.828996-236-0.559155-2364.15E-05-236-3.84E-05















-2350.819124-235-0.57355-2352.83E-05-235-2.63E-05















-2340.808998-234-0.587768-2341.84E-05-234-1.75E-05















-2330.798624-233-0.601804-2331.14E-05-233-1.10E-05















-2320.788004-232-0.615655-2326.74E-06-232-6.44E-06















-2310.777142-231-0.629317-2313.58E-06-231-3.46E-06















-2300.766043-230-0.642786-2301.73E-06-230-1.73E-06















-2290.754709-229-0.656058-2297.15E-07-229-7.75E-07















-2280.743144-228-0.669131-2281.19E-07-228-4.17E-07















-2270.731354-227-0.681998-2270-227-1.19E-07















-2260.71934-226-0.694658-226-5.96E-08-226-1.19E-07















-2250.707107-225-0.707107-225-5.96E-08-2250















-2240.694658-224-0.71934-224-5.96E-08-224-1.19E-07















-2230.681998-223-0.731354-2231.79E-07-2231.19E-07















-2220.66913-222-0.743145-2221.19E-07-222-3.58E-07















-2210.656058-221-0.754709-2217.15E-07-221-7.75E-07















-2200.642786-220-0.766043-2201.85E-06-220-1.61E-06















-2190.629317-219-0.777142-2193.40E-06-219-3.70E-06















-2180.615655-218-0.788004-2186.56E-06-218-6.62E-06















-2170.601804-217-0.798624-2171.11E-05-217-1.14E-05















-2160.587768-216-0.808999-2161.75E-05-216-1.84E-05















-2150.57355-215-0.819124-2152.65E-05-215-2.81E-05















-2140.559154-214-0.828996-2143.86E-05-214-4.14E-05















-2130.544619-213-0.838628-2131.95E-05-213-4.27E-05















-2120.529906-212-0.848019-2121.29E-05-212-2.87E-05















-2110.51503-211-0.857149-2118.17E-06-211-1.84E-05















-2100.499995-210-0.866014-2104.92E-06-210-1.11E-05















-2090.484807-209-0.874613-2092.74E-06-209-6.32E-06















-2080.46947-208-0.882944-2081.28E-06-208-3.28E-06















-2070.45399-207-0.891005-2075.66E-07-207-1.49E-06















-2060.438371-206-0.898794-2062.98E-08-206-6.56E-07















-2050.422618-205-0.906308-205-5.96E-08-205-1.79E-07















-2040.406736-204-0.913545-204-1.79E-07-204-1.19E-07















-2030.390731-203-0.920505-203-1.79E-07-203-5.96E-08















-2020.374607-202-0.927184-202-1.49E-07-202-5.96E-08















-2010.358368-201-0.93358-201-1.79E-07-201-1.79E-07















-2000.34202-200-0.939692-200-8.94E-08-200-2.38E-07















-1990.325568-199-0.945518-199-5.96E-08-199-6.56E-07















-1980.309016-198-0.951055-1983.58E-07-198-1.55E-06















-1970.29237-197-0.956301-1971.07E-06-197-3.34E-06















-1960.275635-196-0.961255-1962.59E-06-196-6.44E-06















-1950.258815-195-0.965914-1954.11E-06-195-1.15E-05















-1940.241915-194-0.970277-1947.20E-06-194-1.88E-05















-1930.22494-193-0.974341-1931.11E-05-193-2.94E-05















-1920.207895-192-0.978104-1921.61E-05-192-4.41E-05















-1910.190807-191-0.981571-1912.25E-06-191-5.65E-05















-1900.173647-190-0.984769-1901.48E-06-190-3.86E-05















-1890.156433-189-0.987663-1898.34E-07-189-2.53E-05















-1880.139173-188-0.990252-1885.07E-07-188-1.58E-05















-1870.121869-187-0.992537-1872.09E-07-187-9.24E-06















-1860.104528-186-0.994517-1861.27E-07-186-4.95E-06















-1850.0871557-185-0.996192-1851.04E-07-185-2.38E-06















-1840.0697563-184-0.997563-184-2.24E-08-184-9.54E-07















-1830.0523359-183-0.998629-1831.12E-08-183-2.98E-07















-1820.0348993-182-0.999391-182-8.57E-08-1820















-1810.0174523-181-0.999848-181-4.10E-08-1815.96E-08















-1800-180-1-1800-1805.96E-08















-179-0.0174525-179-0.999848-179-9.50E-08-1795.96E-08















-178-0.0348995-178-0.999391-178-5.22E-08-1780















-177-0.0523361-177-0.998629-1773.73E-08-177-2.38E-07















-176-0.0697565-176-0.997563-176-1.12E-07-176-8.94E-07















-175-0.0871559-175-0.996192-175-5.22E-08-175-2.32E-06















-174-0.104528-174-0.994517-174-7.45E-08-174-5.01E-06















-173-0.121869-173-0.992537-173-3.35E-07-173-9.24E-06















-172-0.139173-172-0.990252-172-4.62E-07-172-1.58E-05















-171-0.156434-171-0.987663-171-7.75E-07-171-2.53E-05















-170-0.173647-170-0.984769-170-1.43E-06-170-3.86E-05















-169-0.190807-169-0.981571-169-2.19E-06-169-5.66E-05















-168-0.207895-168-0.978104-168-1.63E-05-168-4.40E-05















-167-0.22494-167-0.97434-167-1.11E-05-167-2.95E-05















-166-0.241915-166-0.970277-166-7.14E-06-166-1.90E-05















-165-0.258815-165-0.965914-165-4.23E-06-165-1.15E-05















-164-0.275635-164-0.961255-164-2.50E-06-164-6.44E-06















-163-0.292371-163-0.956301-163-1.22E-06-163-3.34E-06















-162-0.309017-162-0.951055-162-5.07E-07-162-1.55E-06















-161-0.325568-161-0.945518-161-2.38E-07-161-5.96E-07















-160-0.34202-160-0.939692-1600-160-1.79E-07















-159-0.358368-159-0.93358-1591.19E-07-1590















-158-0.374607-158-0.927184-1580-1580















-157-0.390731-157-0.920505-1575.96E-08-157-5.96E-08















-156-0.406737-156-0.913545-1565.96E-08-156-5.96E-08















-155-0.422618-155-0.906308-155-5.96E-08-155-1.79E-07















-154-0.438371-154-0.898793-154-2.09E-07-154-5.96E-07















-153-0.45399-153-0.891005-153-6.85E-07-153-1.43E-06















-152-0.46947-152-0.882944-152-1.43E-06-152-3.28E-06















-151-0.484807-151-0.874613-151-2.74E-06-151-6.32E-06















-150-0.499995-150-0.866014-150-4.89E-06-150-1.13E-05















-149-0.51503-149-0.857149-149-8.29E-06-149-1.84E-05















-148-0.529906-148-0.848019-148-1.29E-05-148-2.87E-05















-147-0.54462-147-0.838628-147-1.94E-05-147-4.27E-05















-146-0.559155-146-0.828996-146-3.86E-05-146-4.14E-05















-145-0.57355-145-0.819124-145-2.65E-05-145-2.82E-05















-144-0.587768-144-0.808999-144-1.75E-05-144-1.84E-05















-143-0.601804-143-0.798624-143-1.10E-05-143-1.14E-05















-142-0.615655-142-0.788004-142-6.56E-06-142-6.74E-06















-141-0.629317-141-0.777142-141-3.58E-06-141-3.46E-06















-140-0.642786-140-0.766043-140-1.85E-06-140-1.67E-06















-139-0.656058-139-0.754709-139-8.34E-07-139-5.96E-07















-138-0.66913-138-0.743145-138-4.17E-07-138-5.96E-08















-137-0.681998-137-0.731354-137-1.79E-07-1375.96E-08















-136-0.694658-136-0.71934-136-1.19E-07-1365.96E-08















-135-0.707107-135-0.707107-135-5.96E-08-1355.96E-08















-134-0.71934-134-0.694658-134-1.19E-07-1345.96E-08















-133-0.731354-133-0.681998-133-5.96E-08-1330















-132-0.743145-132-0.66913-132-1.79E-07-132-2.98E-07















-131-0.754709-131-0.656058-131-7.75E-07-131-7.15E-07















-130-0.766043-130-0.642786-130-1.73E-06-130-1.73E-06















-129-0.777142-129-0.629317-129-3.70E-06-129-3.40E-06















-128-0.788004-128-0.615655-128-6.79E-06-128-6.38E-06















-127-0.798624-127-0.601804-127-1.15E-05-127-1.08E-05















-126-0.808999-126-0.587768-126-1.85E-05-126-1.73E-05















-125-0.819124-125-0.57355-125-2.83E-05-125-2.63E-05















-124-0.828996-124-0.559154-124-4.15E-05-124-3.84E-05















-123-0.838628-123-0.544619-123-4.27E-05-123-1.95E-05















-122-0.848019-122-0.529906-122-2.87E-05-122-1.29E-05















-121-0.857149-121-0.51503-121-1.83E-05-121-8.34E-06















-120-0.866014-120-0.499995-120-1.11E-05-120-5.07E-06















-119-0.874613-119-0.484807-119-6.32E-06-119-2.83E-06















-118-0.882944-118-0.46947-118-3.22E-06-118-1.46E-06















-117-0.891005-117-0.45399-117-1.43E-06-117-5.96E-07















-116-0.898794-116-0.438371-116-5.36E-07-116-2.38E-07















-115-0.906308-115-0.422618-115-1.19E-07-115-1.19E-07















-114-0.913545-114-0.406736-114-5.96E-08-1142.98E-08















-113-0.920505-113-0.390731-1130-1130















-112-0.927184-112-0.374607-1120-1122.98E-08















-111-0.93358-111-0.358368-111-5.96E-08-1112.98E-08















-110-0.939692-110-0.34202-110-1.19E-07-110-1.79E-07















-109-0.945518-109-0.325568-109-5.36E-07-109-2.98E-07















-108-0.951055-108-0.309016-108-1.43E-06-108-6.56E-07















-107-0.956301-107-0.29237-107-3.28E-06-107-1.37E-06















-106-0.961255-106-0.275635-106-6.44E-06-106-2.59E-06















-105-0.965914-105-0.258815-105-1.14E-05-105-4.47E-06















-104-0.970277-104-0.241915-104-1.88E-05-104-7.20E-06















-103-0.974341-103-0.22494-103-2.94E-05-103-1.11E-05















-102-0.978104-102-0.207895-102-4.40E-05-102-1.63E-05















-101-0.981571-101-0.190807-101-5.65E-05-101-2.13E-06















-100-0.984769-100-0.173647-100-3.86E-05-100-1.28E-06















-99-0.987663-99-0.156434-99-2.53E-05-99-7.15E-07















-98-0.990252-98-0.139173-98-1.58E-05-98-5.07E-07















-97-0.992537-97-0.121869-97-9.24E-06-97-2.68E-07















-96-0.994517-96-0.104528-96-4.95E-06-96-7.45E-09















-95-0.996192-95-0.0871557-95-2.38E-06-95-1.04E-07















-94-0.997563-94-0.0697564-94-9.54E-07-94-4.47E-08















-93-0.998629-93-0.0523359-93-2.98E-07-93-1.12E-08















-92-0.999391-92-0.0348994-920-921.49E-08















-91-0.999848-91-0.0174523-915.96E-08-914.10E-08















-90-1-900-905.96E-08-900















-89-0.999848-890.0174524-895.96E-08-89-7.45E-09















-88-0.999391-880.0348995-880-88-6.33E-08















-87-0.998629-870.052336-87-2.38E-07-87-1.56E-07















-86-0.997563-860.0697565-86-9.54E-07-86-9.69E-08















-85-0.996192-850.0871558-85-2.38E-06-85-4.47E-08















-84-0.994517-840.104528-84-4.95E-06-847.45E-09















-83-0.992537-830.121869-83-9.24E-06-831.27E-07















-82-0.990252-820.139173-82-1.58E-05-823.28E-07















-81-0.987663-810.156434-81-2.53E-05-817.45E-07















-80-0.984769-800.173647-80-3.86E-05-801.27E-06















-79-0.981571-790.190807-79-5.66E-05-792.09E-06















-78-0.978104-780.207895-78-4.40E-05-781.65E-05















-77-0.974341-770.22494-77-2.94E-05-771.11E-05















-76-0.970277-760.241915-76-1.89E-05-767.18E-06















-75-0.965914-750.258815-75-1.14E-05-754.41E-06















-74-0.961255-740.275635-74-6.50E-06-742.56E-06















-73-0.956301-730.29237-73-3.28E-06-731.31E-06















-72-0.951055-720.309016-72-1.49E-06-726.26E-07















-71-0.945518-710.325568-71-5.36E-07-712.68E-07















-70-0.939692-700.34202-70-1.79E-07-701.49E-07















-69-0.93358-690.358368-690-690















-68-0.927184-680.374607-680-682.98E-08















-67-0.920505-670.390731-670-672.98E-08















-66-0.913545-660.406737-665.96E-08-660















-65-0.906308-650.422618-65-1.19E-07-658.94E-08















-64-0.898793-640.438371-64-5.36E-07-642.09E-07















-63-0.891005-630.45399-63-1.43E-06-636.26E-07















-62-0.882944-620.46947-62-3.16E-06-621.43E-06















-61-0.874613-610.484807-61-6.26E-06-612.80E-06















-60-0.866014-600.499995-60-1.11E-05-604.95E-06















-59-0.857149-590.51503-59-1.84E-05-598.23E-06















-58-0.848019-580.529906-58-2.86E-05-581.30E-05















-57-0.838628-570.54462-57-4.27E-05-571.95E-05















-56-0.828996-560.559155-56-4.14E-05-563.83E-05















-55-0.819124-550.57355-55-2.83E-05-552.63E-05















-54-0.808998-540.587768-54-1.85E-05-541.73E-05















-53-0.798624-530.601804-53-1.14E-05-531.08E-05















-52-0.788004-520.615655-52-6.74E-06-526.26E-06















-51-0.777142-510.629317-51-3.52E-06-513.40E-06















-50-0.766043-500.642786-50-1.67E-06-501.67E-06















-49-0.754709-490.656058-49-7.15E-07-495.96E-07















-48-0.743145-480.66913-48-1.79E-07-481.79E-07















-47-0.731354-470.681998-47-5.96E-08-47-5.96E-08















-46-0.71934-460.694658-460-460















-45-0.707107-450.707107-455.96E-08-45-5.96E-08















-44-0.694658-440.71934-44-5.96E-08-44-5.96E-08















-43-0.681998-430.731354-430-43-5.96E-08















-42-0.66913-420.743145-42-2.38E-07-421.79E-07















-41-0.656058-410.754709-41-7.15E-07-417.15E-07















-40-0.642786-400.766043-40-1.73E-06-401.73E-06















-39-0.629317-390.777142-39-3.52E-06-393.58E-06















-38-0.615655-380.788004-38-6.50E-06-386.79E-06















-37-0.601804-370.798624-37-1.08E-05-371.15E-05















-36-0.587768-360.808998-36-1.75E-05-361.85E-05















-35-0.57355-350.819124-35-2.64E-05-352.83E-05















-34-0.559154-340.828996-34-3.84E-05-344.15E-05















-33-0.544619-330.838628-33-1.96E-05-334.28E-05















-32-0.529906-320.848019-32-1.30E-05-322.87E-05















-31-0.51503-310.857149-31-8.34E-06-311.85E-05















-30-0.499995-300.866014-30-5.01E-06-301.13E-05















-29-0.484807-290.874613-29-2.83E-06-296.38E-06















-28-0.46947-280.882944-28-1.43E-06-283.28E-06















-27-0.45399-270.891005-27-6.26E-07-271.55E-06















-26-0.438371-260.898793-26-2.68E-07-265.96E-07















-25-0.422618-250.906308-25-8.94E-08-251.79E-07















-24-0.406737-240.913545-24-2.98E-08-245.96E-08















-23-0.390731-230.920505-23-2.98E-08-230















-22-0.374607-220.927184-22-2.98E-08-220















-21-0.358368-210.93358-21-2.98E-08-210















-20-0.34202-200.939692-20-8.94E-08-201.79E-07















-19-0.325568-190.945518-19-2.38E-07-195.96E-07















-18-0.309016-180.951055-18-5.96E-07-181.49E-06















-17-0.29237-170.956301-17-1.28E-06-173.34E-06















-16-0.275635-160.961255-16-2.53E-06-166.44E-06















-15-0.258815-150.965914-15-4.41E-06-151.15E-05















-14-0.241915-140.970277-14-7.18E-06-141.89E-05















-13-0.22494-130.974341-13-1.11E-05-132.94E-05















-12-0.207895-120.978104-12-1.64E-05-124.40E-05















-11-0.190807-110.981571-11-2.16E-06-115.65E-05















-10-0.173647-100.984769-10-1.36E-06-103.86E-05















-9-0.156434-90.987663-9-8.05E-07-92.53E-05















-8-0.139173-80.990252-8-4.47E-07-81.58E-05















-7-0.121869-70.992537-7-2.24E-07-79.18E-06















-6-0.104528-60.994517-6-1.04E-07-64.95E-06















-5-0.0871557-50.996192-5-4.47E-08-52.38E-06















-4-0.0697565-40.997563-4-7.45E-09-49.54E-07















-3-0.052336-30.998629-3-3.73E-09-32.38E-07















-2-0.0348995-20.999391-20-20















-1-0.0174524-10.999848-10-1-5.96E-08















00010000















10.017452410.999848101-5.96E-08















20.034899520.9993912020















30.05233630.99862933.73E-0932.38E-07















40.069756540.99756347.45E-0949.54E-07















50.087155750.99619254.47E-0852.38E-06















60.10452860.99451761.04E-0764.95E-06















70.12186970.99253772.24E-0779.18E-06















80.13917380.99025284.47E-0781.58E-05















90.15643490.98766398.05E-0792.53E-05















100.173647100.984769101.36E-06103.86E-05















110.190807110.981571112.16E-06115.65E-05















120.207895120.978104121.64E-05124.40E-05















130.22494130.974341131.11E-05132.94E-05















140.241915140.970277147.18E-06141.89E-05















150.258815150.965914154.41E-06151.15E-05















160.275635160.961255162.53E-06166.44E-06















170.29237170.956301171.28E-06173.34E-06















180.309016180.951055185.96E-07181.49E-06















190.325568190.945518192.38E-07195.96E-07















200.34202200.939692208.94E-08201.79E-07















210.358368210.93358212.98E-08210















220.374607220.927184222.98E-08220















230.390731230.920505232.98E-08230















240.406737240.913545242.98E-08245.96E-08















250.422618250.906308258.94E-08251.79E-07















260.438371260.898793262.68E-07265.96E-07















270.45399270.891005276.26E-07271.55E-06















280.46947280.882944281.43E-06283.28E-06















290.484807290.874613292.83E-06296.38E-06















300.499995300.866014305.01E-06301.13E-05















310.51503310.857149318.34E-06311.85E-05















320.529906320.848019321.30E-05322.87E-05















330.544619330.838628331.96E-05334.28E-05















340.559154340.828996343.84E-05344.15E-05















350.57355350.819124352.64E-05352.83E-05















360.587768360.808998361.75E-05361.85E-05















370.601804370.798624371.08E-05371.15E-05















380.615655380.788004386.50E-06386.79E-06















390.629317390.777142393.52E-06393.58E-06















400.642786400.766043401.73E-06401.73E-06















410.656058410.754709417.15E-07417.15E-07















420.66913420.743145422.38E-07421.79E-07















430.681998430.73135443043-5.96E-08















440.694658440.71934445.96E-0844-5.96E-08















450.707107450.70710745-5.96E-0845-5.96E-08















460.71934460.694658460460















470.731354470.681998475.96E-0847-5.96E-08















480.743145480.66913481.79E-07481.79E-07















490.754709490.656058497.15E-07495.96E-07















500.766043500.642786501.67E-06501.67E-06















510.777142510.629317513.52E-06513.40E-06















520.788004520.615655526.74E-06526.26E-06















530.798624530.601804531.14E-05531.08E-05















540.808998540.587768541.85E-05541.73E-05















550.819124550.57355552.83E-05552.63E-05















560.828996560.559155564.14E-05563.83E-05















570.838628570.54462574.27E-05571.95E-05















580.848019580.529906582.86E-05581.30E-05















590.857149590.51503591.84E-05598.23E-06















600.866014600.499995601.11E-05604.95E-06















610.874613610.484807616.26E-06612.80E-06















620.882944620.46947623.16E-06621.43E-06















630.891005630.45399631.43E-06636.26E-07















640.898793640.438371645.36E-07642.09E-07















650.906308650.422618651.19E-07658.94E-08















660.913545660.40673766-5.96E-08660















670.920505670.390731670672.98E-08















680.927184680.374607680682.98E-08















690.93358690.358368690690















700.939692700.34202701.79E-07701.49E-07















710.945518710.325568715.36E-07712.68E-07















720.951055720.309016721.49E-06726.26E-07















730.956301730.29237733.28E-06731.31E-06















740.961255740.275635746.50E-06742.56E-06















750.965914750.258815751.14E-05754.41E-06















760.970277760.241915761.89E-05767.18E-06















770.974341770.22494772.94E-05771.11E-05















780.978104780.207895784.40E-05781.65E-05















790.981571790.190807795.66E-05792.09E-06















800.984769800.173647803.86E-05801.27E-06















810.987663810.156434812.53E-05817.45E-07















820.990252820.139173821.58E-05823.28E-07















830.992537830.121869839.24E-06831.27E-07















840.994517840.104528844.95E-06847.45E-09















850.996192850.0871558852.38E-0685-4.47E-08















860.997563860.0697565869.54E-0786-9.69E-08















870.998629870.052336872.38E-0787-1.56E-07















880.999391880.034899588088-6.33E-08















890.999848890.017452489-5.96E-0889-7.45E-09















90190090-5.96E-08900















910.99984891-0.017452391-5.96E-08914.10E-08















920.99939192-0.0348994920921.49E-08















930.99862993-0.0523359932.98E-0793-1.12E-08















940.99756394-0.0697564949.54E-0794-4.47E-08















950.99619295-0.0871557952.38E-0695-1.04E-07















960.99451796-0.104528964.95E-0696-7.45E-09















970.99253797-0.121869979.24E-0697-2.68E-07















980.99025298-0.139173981.58E-0598-5.07E-07















990.98766399-0.156434992.53E-0599-7.15E-07















1000.984769100-0.1736471003.86E-05100-1.28E-06















1010.981571101-0.1908071015.65E-05101-2.13E-06















1020.978104102-0.2078951024.40E-05102-1.63E-05















1030.974341103-0.224941032.94E-05103-1.11E-05















1040.970277104-0.2419151041.88E-05104-7.20E-06















1050.965914105-0.2588151051.14E-05105-4.47E-06















1060.961255106-0.2756351066.44E-06106-2.59E-06















1070.956301107-0.292371073.28E-06107-1.37E-06















1080.951055108-0.3090161081.43E-06108-6.56E-07















1090.945518109-0.3255681095.36E-07109-2.98E-07















1100.939692110-0.342021101.19E-07110-1.79E-07















1110.93358111-0.3583681115.96E-081112.98E-08















1120.927184112-0.37460711201122.98E-08















1130.920505113-0.39073111301130















1140.913545114-0.4067361145.96E-081142.98E-08















1150.906308115-0.4226181151.19E-07115-1.19E-07















1160.898794116-0.4383711165.36E-07116-2.38E-07















1170.891005117-0.453991171.43E-06117-5.96E-07















1180.882944118-0.469471183.22E-06118-1.46E-06















1190.874613119-0.4848071196.32E-06119-2.83E-06















1200.866014120-0.4999951201.11E-05120-5.07E-06















1210.857149121-0.515031211.83E-05121-8.34E-06















1220.848019122-0.5299061222.87E-05122-1.29E-05















1230.838628123-0.5446191234.27E-05123-1.95E-05















1240.828996124-0.5591541244.15E-05124-3.84E-05















1250.819124125-0.573551252.83E-05125-2.63E-05















1260.808999126-0.5877681261.85E-05126-1.73E-05















1270.798624127-0.6018041271.15E-05127-1.08E-05















1280.788004128-0.6156551286.79E-06128-6.38E-06















1290.777142129-0.6293171293.70E-06129-3.40E-06















1300.766043130-0.6427861301.73E-06130-1.73E-06















1310.754709131-0.6560581317.75E-07131-7.15E-07















1320.743145132-0.669131321.79E-07132-2.98E-07















1330.731354133-0.6819981335.96E-081330















1340.71934134-0.6946581341.19E-071345.96E-08















1350.707107135-0.7071071355.96E-081355.96E-08















1360.694658136-0.719341361.19E-071365.96E-08















1370.681998137-0.7313541371.79E-071375.96E-08















1380.66913138-0.7431451384.17E-07138-5.96E-08















1390.656058139-0.7547091398.34E-07139-5.96E-07















1400.642786140-0.7660431401.85E-06140-1.67E-06















1410.629317141-0.7771421413.58E-06141-3.46E-06















1420.615655142-0.7880041426.56E-06142-6.74E-06















1430.601804143-0.7986241431.10E-05143-1.14E-05















1440.587768144-0.8089991441.75E-05144-1.84E-05















1450.57355145-0.8191241452.65E-05145-2.82E-05















1460.559155146-0.8289961463.86E-05146-4.14E-05















1470.54462147-0.8386281471.94E-05147-4.27E-05















1480.529906148-0.8480191481.29E-05148-2.87E-05















1490.51503149-0.8571491498.29E-06149-1.84E-05















1500.499995150-0.8660141504.89E-06150-1.13E-05















1510.484807151-0.8746131512.74E-06151-6.32E-06















1520.46947152-0.8829441521.43E-06152-3.28E-06















1530.45399153-0.8910051536.85E-07153-1.43E-06















1540.438371154-0.8987931542.09E-07154-5.96E-07















1550.422618155-0.9063081555.96E-08155-1.79E-07















1560.406737156-0.913545156-5.96E-08156-5.96E-08















1570.390731157-0.920505157-5.96E-08157-5.96E-08















1580.374607158-0.92718415801580















1590.358368159-0.93358159-1.19E-071590















1600.34202160-0.9396921600160-1.79E-07















1610.325568161-0.9455181612.38E-07161-5.96E-07















1620.309017162-0.9510551625.07E-07162-1.55E-06















1630.292371163-0.9563011631.22E-06163-3.34E-06















1640.275635164-0.9612551642.50E-06164-6.44E-06















1650.258815165-0.9659141654.23E-06165-1.15E-05















1660.241915166-0.9702771667.14E-06166-1.90E-05















1670.22494167-0.974341671.11E-05167-2.95E-05















1680.207895168-0.9781041681.63E-05168-4.40E-05















1690.190807169-0.9815711692.19E-06169-5.66E-05















1700.173647170-0.9847691701.43E-06170-3.86E-05















1710.156434171-0.9876631717.75E-07171-2.53E-05















1720.139173172-0.9902521724.62E-07172-1.58E-05















1730.121869173-0.9925371733.35E-07173-9.24E-06















1740.104528174-0.9945171747.45E-08174-5.01E-06















1750.0871559175-0.9961921755.22E-08175-2.32E-06















1760.0697565176-0.9975631761.12E-07176-8.94E-07















1770.0523361177-0.998629177-3.73E-08177-2.38E-07















1780.0348995178-0.9993911785.22E-081780















1790.0174525179-0.9998481799.50E-081795.96E-08















1800180-118001805.96E-08















181-0.0174523181-0.9998481814.10E-081815.96E-08















182-0.0348993182-0.9993911828.57E-081820















183-0.0523359183-0.998629183-1.12E-08183-2.98E-07















184-0.0697563184-0.9975631842.24E-08184-9.54E-07















185-0.0871557185-0.996192185-1.04E-07185-2.38E-06















186-0.104528186-0.994517186-1.27E-07186-4.95E-06















187-0.121869187-0.992537187-2.09E-07187-9.24E-06















188-0.139173188-0.990252188-5.07E-07188-1.58E-05















189-0.156433189-0.987663189-8.34E-07189-2.53E-05















190-0.173647190-0.984769190-1.48E-06190-3.86E-05















191-0.190807191-0.981571191-2.25E-06191-5.65E-05















192-0.207895192-0.978104192-1.61E-05192-4.41E-05















193-0.22494193-0.974341193-1.11E-05193-2.94E-05















194-0.241915194-0.970277194-7.20E-06194-1.88E-05















195-0.258815195-0.965914195-4.11E-06195-1.15E-05















196-0.275635196-0.961255196-2.59E-06196-6.44E-06















197-0.29237197-0.956301197-1.07E-06197-3.34E-06















198-0.309016198-0.951055198-3.58E-07198-1.55E-06















199-0.325568199-0.9455181995.96E-08199-6.56E-07















200-0.34202200-0.9396922008.94E-08200-2.38E-07















201-0.358368201-0.933582011.79E-07201-1.79E-07















202-0.374607202-0.9271842021.49E-07202-5.96E-08















203-0.390731203-0.9205052031.79E-07203-5.96E-08















204-0.406736204-0.9135452041.79E-07204-1.19E-07















205-0.422618205-0.9063082055.96E-08205-1.79E-07















206-0.438371206-0.898794206-2.98E-08206-6.56E-07















207-0.45399207-0.891005207-5.66E-07207-1.49E-06















208-0.46947208-0.882944208-1.28E-06208-3.28E-06















209-0.484807209-0.874613209-2.74E-06209-6.32E-06















210-0.499995210-0.866014210-4.92E-06210-1.11E-05















211-0.51503211-0.857149211-8.17E-06211-1.84E-05















212-0.529906212-0.848019212-1.29E-05212-2.87E-05















213-0.544619213-0.838628213-1.95E-05213-4.27E-05















214-0.559154214-0.828996214-3.86E-05214-4.14E-05















215-0.57355215-0.819124215-2.65E-05215-2.81E-05















216-0.587768216-0.808999216-1.75E-05216-1.84E-05















217-0.601804217-0.798624217-1.11E-05217-1.14E-05















218-0.615655218-0.788004218-6.56E-06218-6.62E-06















219-0.629317219-0.777142219-3.40E-06219-3.70E-06















220-0.642786220-0.766043220-1.85E-06220-1.61E-06















221-0.656058221-0.754709221-7.15E-07221-7.75E-07















222-0.66913222-0.743145222-1.19E-07222-3.58E-07















223-0.681998223-0.731354223-1.79E-072231.19E-07















224-0.694658224-0.719342245.96E-08224-1.19E-07















225-0.707107225-0.7071072255.96E-082250















226-0.71934226-0.6946582265.96E-08226-1.19E-07















227-0.731354227-0.6819982270227-1.19E-07















228-0.743144228-0.669131228-1.19E-07228-4.17E-07















229-0.754709229-0.656058229-7.15E-07229-7.75E-07















230-0.766043230-0.642786230-1.73E-06230-1.73E-06















231-0.777142231-0.629317231-3.58E-06231-3.46E-06















232-0.788004232-0.615655232-6.74E-06232-6.44E-06















233-0.798624233-0.601804233-1.14E-05233-1.10E-05















234-0.808998234-0.587768234-1.84E-05234-1.75E-05















235-0.819124235-0.57355235-2.83E-05235-2.63E-05















236-0.828996236-0.559155236-4.15E-05236-3.84E-05















237-0.838628237-0.54462237-4.28E-05237-1.94E-05















238-0.848019238-0.529907238-2.87E-05238-1.29E-05















239-0.857149239-0.51503239-1.84E-05239-8.17E-06















240-0.866014240-0.499995240-1.13E-05240-4.74E-06















241-0.874613241-0.484807241-6.50E-06241-2.53E-06















242-0.882944242-0.469471242-3.40E-06242-1.22E-06















243-0.891005243-0.45399243-1.55E-06243-4.77E-07















244-0.898793244-0.438371244-5.96E-07244-2.09E-07















245-0.906308245-0.422618245-1.79E-07245-5.96E-08















246-0.913545246-0.406737246-5.96E-08246-5.96E-08















247-0.920505247-0.390732247-1.19E-072472.68E-07















248-0.927184248-0.374607248-1.19E-072482.38E-07















249-0.93358249-0.35836824902491.19E-07















250-0.939692250-0.34202250-1.79E-072500















251-0.945518251-0.325568251-5.96E-07251-1.79E-07















252-0.951055252-0.309017252-1.49E-06252-5.96E-07















253-0.956301253-0.292371253-3.34E-06253-1.01E-06















254-0.961255254-0.275635254-6.50E-06254-2.35E-06















255-0.965914255-0.258815255-1.15E-05255-4.23E-06















256-0.970277256-0.241915256-1.90E-05256-7.11E-06















257-0.97434257-0.22494257-2.94E-05257-1.10E-05















258-0.978103258-0.207896258-4.40E-05258-1.64E-05















259-0.981571259-0.190807259-5.65E-05259-2.25E-06















260-0.984769260-0.173647260-3.86E-05260-1.48E-06















261-0.987663261-0.156434261-2.53E-05261-9.54E-07















262-0.990252262-0.139173262-1.58E-05262-6.41E-07















263-0.992537263-0.121869263-9.18E-06263-4.69E-07















264-0.994517264-0.104528264-4.95E-06264-1.27E-07















265-0.996192265-0.0871557265-2.38E-06265-1.04E-07















266-0.997563266-0.0697565266-8.94E-07266-1.12E-07















267-0.998629267-0.0523361267-2.38E-07267-1.49E-07















268-0.999391268-0.03489982680268-1.86E-07















269-0.999848269-0.01745232695.96E-08269-3.33E-07















270-127002705.96E-082700















271-0.9998482710.01745232715.96E-08271-4.10E-08















272-0.9993912720.03489932720272-8.57E-08















273-0.9986292730.0523361273-2.98E-07273-2.27E-07















274-0.9975632740.0697565274-9.54E-07274-2.61E-07















275-0.9961922750.0871557275-2.38E-06275-2.68E-07















276-0.9945172760.104528276-5.01E-06276-2.46E-07















277-0.9925372770.121869277-9.24E-062772.09E-07















278-0.9902522780.139173278-1.59E-052782.68E-07















279-0.9876632790.156434279-2.54E-052795.96E-07















280-0.9847692800.173647280-3.87E-052801.10E-06















281-0.9815712810.190807281-5.66E-052811.88E-06















282-0.9781042820.207895282-4.40E-052821.62E-05















283-0.9743412830.22494283-2.94E-052831.11E-05















284-0.9702772840.241915284-1.88E-052847.20E-06















285-0.9659142850.258814285-1.14E-052854.35E-06















286-0.9612552860.275635286-6.50E-062862.44E-06















287-0.9563022870.29237287-3.34E-062871.19E-06















288-0.9510552880.309016288-1.43E-062887.15E-07















289-0.9455182890.325568289-5.36E-072892.98E-07















290-0.9396932900.34202290-1.19E-072901.19E-07















291-0.9335812910.358368291-5.96E-082912.98E-08















292-0.9271842920.374606292-5.96E-08292-2.98E-08















293-0.9205052930.390731293-5.96E-08293-1.79E-07















294-0.9135452940.4067362945.96E-082941.49E-07















295-0.9063082950.422618295-1.19E-072951.79E-07















296-0.8987942960.438371296-4.77E-072962.68E-07















297-0.8910052970.453989297-1.49E-062976.85E-07















298-0.8829442980.46947298-3.28E-062981.28E-06















299-0.8746132990.484807299-6.44E-062992.65E-06















300-0.8660143000.499995300-1.11E-053005.16E-06















301-0.8571493010.515029301-1.84E-053018.34E-06















302-0.8480193020.529906302-2.87E-053021.29E-05















303-0.8386283030.544619303-4.27E-053031.95E-05















304-0.8289963040.559154304-4.14E-053043.85E-05















305-0.8191243050.57355305-2.83E-053052.63E-05















306-0.8089993060.587767306-1.85E-053061.73E-05















307-0.7986243070.601804307-1.14E-053071.11E-05















308-0.7880043080.615655308-6.62E-063086.56E-06















309-0.7771433090.629317309-3.52E-063093.58E-06















310-0.7660433100.642786310-1.73E-063101.79E-06















311-0.7547093110.656058311-7.75E-073117.75E-07















312-0.7431453120.66913312-5.96E-083124.17E-07















313-0.7313543130.6819983131.19E-073131.79E-07















314-0.719343140.6946583145.96E-083141.19E-07















315-0.7071073150.7071063151.79E-073151.19E-07















316-0.6946593160.71933931603160















317-0.6819983170.7313543171.79E-073172.38E-07















318-0.6691313180.743144318-1.19E-073183.58E-07















319-0.6560593190.754709319-5.96E-073198.94E-07















320-0.6427863200.766042320-1.55E-063201.79E-06















321-0.6293173210.777142321-3.34E-063213.70E-06















322-0.6156553220.788004322-6.44E-063226.74E-06















323-0.6018043230.798624323-1.10E-053231.14E-05















324-0.5877683240.808998324-1.72E-053241.87E-05















325-0.5735513250.819123325-2.62E-053252.84E-05















326-0.5591553260.828996326-3.83E-053264.15E-05















327-0.5446193270.838628327-1.98E-053274.24E-05















328-0.5299063280.848019328-1.33E-053282.84E-05















329-0.515033290.857149329-8.58E-063291.82E-05















330-0.4999953300.866014330-5.07E-063301.11E-05















331-0.4848073310.874613331-2.98E-063316.26E-06















332-0.469473320.882944332-1.64E-063323.16E-06















333-0.453993330.891005333-8.64E-073331.31E-06















334-0.4383713340.898793334-5.36E-073344.17E-07















335-0.4226183350.906308335-3.87E-073350















336-0.4067363360.913545336-1.49E-07336-5.96E-08















337-0.3907313370.920505337-1.79E-07337-5.96E-08















338-0.3746073380.927184338-2.09E-07338-5.96E-08















339-0.3583683390.93358339-2.38E-07339-1.19E-07















340-0.342023400.939692340-3.58E-073405.96E-08















341-0.3255683410.945518341-2.98E-073415.36E-07















342-0.3090163420.951055342-7.15E-073421.43E-06















343-0.292373430.956301343-1.43E-063433.22E-06















344-0.2756353440.961255344-2.71E-063446.44E-06















345-0.2588153450.965914345-4.62E-063451.14E-05















346-0.2419153460.970277346-7.57E-063461.88E-05















347-0.224943470.974341347-1.11E-053472.94E-05















348-0.2078953480.978104348-1.65E-053484.40E-05















349-0.1908073490.981571349-2.15E-063495.65E-05















350-0.1736473500.984769350-1.37E-063503.86E-05















351-0.1564343510.987663351-9.54E-073512.53E-05















352-0.1391733520.990252352-6.41E-073521.58E-05















353-0.1218693530.992537353-4.69E-073539.18E-06















354-0.1045293540.994517354-2.24E-083544.95E-06















355-0.08715623550.996192355-7.45E-093552.38E-06















356-0.06975653560.997563356-1.12E-073568.94E-07















357-0.05233613570.998629357-1.49E-073572.38E-07















358-0.03489983580.999391358-1.86E-073580















359-0.01745283590.999848359-2.31E-07359-5.96E-08















360036013600360-5.96E-08















3610.01745233610.999848361-4.15E-07361-5.96E-08















3620.03489933620.999391362-8.57E-083620















3630.05233573630.9986293632.50E-073632.98E-07















3640.06975613640.997563364-1.56E-073649.54E-07















3650.08715573650.996192365-2.68E-073652.38E-06















3660.1045283660.9945173661.27E-073664.95E-06















3670.1218693670.992537367-1.64E-073679.30E-06















3680.1391723680.9902523683.73E-073681.59E-05















3690.1564333690.9876633691.06E-063692.53E-05















3700.1736473700.9847693701.48E-063703.86E-05















3710.1908073710.9815713711.88E-063715.66E-05















3720.2078953720.9781043721.66E-053724.40E-05















3730.2249393730.9743413731.09E-053732.96E-05















3740.2419143740.9702773747.26E-063741.88E-05















3750.2588143750.9659143754.35E-063751.14E-05















3760.2756353760.9612553762.80E-063766.38E-06















3770.292373770.9563023771.19E-063773.34E-06















3780.3090163780.9510553788.05E-073781.43E-06















3790.3255673790.9455183792.98E-083795.96E-07















3800.342023800.9396933804.47E-073800















3810.3583683810.9335813812.98E-083815.96E-08















3820.3746063820.9271843822.98E-07382-1.19E-07















3830.3907313830.920505383-5.96E-083835.96E-08















3840.4067363840.913545384-1.79E-073841.19E-07















3850.4226183850.9063083851.79E-073851.19E-07















3860.4383713860.8987943866.56E-073862.98E-07















3870.4539893870.8910053876.85E-073871.49E-06















3880.469473880.8829453881.70E-063883.04E-06















3890.4848073890.8746133892.98E-063896.26E-06















3900.4999953900.8660143904.86E-063901.13E-05















3910.5150293910.8571493918.34E-063911.84E-05















3920.5299063920.848023921.34E-053922.84E-05















3930.5446193930.8386283931.97E-053934.27E-05















3940.5591553940.8289963943.81E-053944.17E-05















3950.573553950.8191243952.63E-053952.83E-05















3960.5877683960.8089993961.70E-053961.88E-05















3970.6018043970.7986243971.08E-053971.16E-05















3980.6156553980.7880043985.96E-063987.09E-06















3990.6293173990.7771423993.46E-063993.58E-06















4000.6427864000.7660434001.43E-064001.97E-06















4010.6560584010.7547094017.15E-074017.75E-07















4020.669134020.743145402-1.79E-074025.96E-07















4030.6819984030.731354403-1.19E-074031.19E-07















4040.6946584040.71934404-1.79E-074042.38E-07















4050.7071074050.707107405-5.96E-084055.96E-08















4060.719344060.694658406-3.58E-074063.58E-07















4070.7313544070.68199840704071.19E-07















4080.7431444080.669131408-1.19E-074086.56E-07















4090.7547094090.6560584097.75E-074097.15E-07















4100.7660434100.6427864101.49E-064101.97E-06















4110.7771424110.6293174113.58E-064113.46E-06















4120.7880044120.6156554126.50E-064126.74E-06















4130.7986244130.6018044131.11E-054131.14E-05















4140.8089994140.5877684141.84E-054141.76E-05















4150.8191244150.573554152.79E-054152.69E-05















4160.8289964160.5591554164.12E-054163.87E-05















4170.8386284170.544624174.28E-054171.94E-05















4180.8480194180.5299064182.87E-054181.29E-05















4190.8571494190.515034191.82E-054198.58E-06















4200.8660144200.4999954201.11E-054205.07E-06















4210.8746134210.4848074216.08E-064213.22E-06















4220.8829444220.4694714223.22E-064221.55E-06















4230.8910054230.453994231.31E-064238.64E-07















4240.8987934240.4383714245.96E-074242.09E-07















4250.9063084250.42261842504253.87E-07















4260.9135454260.4067374265.96E-084265.96E-08















4270.9205054270.390732427-1.79E-074274.17E-07















4280.9271844280.3746074285.96E-08428-1.49E-07















4290.933584290.358368429-1.19E-074292.38E-07















4300.9396924300.342024301.79E-074300















4310.9455184310.3255684314.77E-074315.66E-07















4320.9510554320.3090174321.49E-064325.96E-07















4330.9563014330.292374333.22E-064331.43E-06















4340.9612554340.2756354346.50E-064342.35E-06















4350.9659144350.2588154351.14E-054354.62E-06















4360.9702774360.2419154361.90E-054367.11E-06















4370.974344370.224944372.94E-054371.14E-05















4380.9781044380.2078954384.39E-054381.68E-05















4390.9815714390.1908074395.65E-054392.15E-06















4400.9847694400.1736474403.87E-054401.01E-06















4410.9876634410.1564344412.53E-054418.49E-07















4420.9902524420.1391734421.58E-054426.41E-07















4430.9925374430.1218694439.24E-064439.69E-08















4440.9945174440.1045294444.95E-064443.95E-07















4450.9961924450.08715624452.38E-064457.45E-09















4460.9975634460.0697574469.54E-07446-3.58E-07















4470.9986294470.05233614472.98E-07447-2.27E-07















4480.9993914480.034899844804481.86E-07















4490.9998484490.0174528449-5.96E-08449-1.43E-07















45014504.77E-07450-5.96E-084502.72E-07
















Sheet 2: Timing_Analysis

Timing Analysis for 900 sin and cosine calculations from -450 deg to 450 deg










Using Sin_f32() and Sin_f32()

Using SinCos_f32()
1192 usec

585 usec

16 - Component Implementation

Component Implementation

Component Documentation

16.1 - NxtrTi Integration Manual

Integration Manual

For

NxtrTi

VERSION: 1

DATE: 02/16/2015

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

Sl. No.DescriptionAuthorVersionDate
1Initial versionL. Wendling102/16/2015

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

References

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

Sr. No.TitleVersion

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

See section 6. Please note the server runnables listed can be used as needed in the integration project and can be called via the RTE or outside of the RTE as required.

Configuration REQUIREMeNTS

Build Time Config

ModulesNotes
None

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

N/A

Required Global Data Outputs

N/A

Specific Include Path present

Yes

Runnable Scheduling

This section specifies the required runnable scheduling.

InitScheduling RequirementsTrigger
NxtrTiInit0Can be called prior to O/S start if timer usage is needed before the RTE initialization tasks executeInitialization
NxtrTiInit1RTE Init Task
RunnableScheduling RequirementsTrigger
NxtrTiPer1NoneRTE 2ms Task
GetRefTmr100MicroSec32bit_OperServer RunnableClient Call
GetRefTmr1MicroSec32bit_OperServer RunnableClient Call
GetTiSpan100MicroSec32bit_OperServer RunnableClient Call
GetTiSpan1MicroSec32bit_OperServer RunnableClient Call

.

Memory Map REQUIREMENTS

Mapping

Memory SectionContentsNotes
CDD_NxtrTi_START_SEC_CODE

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

Usage

FeatureRAMROM
<Memmap usuage info>

Table 1: ARM Cortex R4 Memory Usage

Non RTE NvM Blocks

Block Name
<NVM block used Non RTE functions >

Note : Size of the NVM block if configured in developer

RTE NvM Blocks

Block Name
<NVM block used in RTE functions >

Note : Size of the NVM block if configured in developer

Compiler Settings

Preprocessor MACRO

None

Optimization Settings

None

Appendix

<This section is for appendix>

16.2 - NxtrTi Review


Overview

Summary Sheet
Davinci Files
Source Code CDD_NxtrTi
QAC CDD_NxtrTi


Sheet 1: Summary Sheet
























Rev 6.028-Oct-14

Peer Review Summary Sheet



























Component 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. AR102A_NxtrTi_Impl
Component Revision:


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. 1.1.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. Kathleen Creager
Change Request ID:


EA4#101





























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:































MDD


XSource Code



Data Dictionary


XQAC



































Integration Manual


XDavinci Files








































































Comments:

re-imported StdDef for compatibility of NtcSts1 enumeration type






Transitioned EA4#101 CR back to wip state to make this change; Kathleen made component change and Luke






reviewed.











































































General Guidelines:
- The reviews shall be performed over the portions of the component that were modified as a result of the Change Request. (Note: If this peer review form was not
completed for pervious versions of this component, the Change Owner should review the entire component and complete the checklist in its entirety prior and check
the form into Syngery. This may be done prior to reviewing the modifications for this Change Result)
- The Change Owner shall responsible for completing the entire checklist (Pre and Group review items) prior holding the initial group review.
- New components should include FDD Owner and Intergator as apart of the Group Review Board (Source Code, Integration Manual, and Davinci Files)
- Select "Yes" and add "N/A" to the comments for checklist items that are not applicable for this change















Sheet 2: Davinci Files






















Rev 6.028-Oct-14
Peer Review Meeting Log (Davinci Review)


























Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersDCF: Latest StdDef imported








X

Comments:

Working EA4 StdDef







































DCF: Only StdDef Port types are used (if not








X

Comments:

Working EA4 StdDef

add justification)




































DCF: All unused definitions removed








X
Comments:










































*Cfg.arxml.TT: Verfied Davinci Configurator imported the








X
Comments:

N/A







change correctly
kzshz2: Either a generic sandbox or a baselined integration project can be used to verify












































*Cfg.h.TT: Verfied Davinci Configurator generates








X
Comments:

N/A







the configuration header(s) file correctly




kzshz2: Either a generic sandbox or a baselined integration project can be used to verify









































Group-review for review boardAll changed files have been compared against previous








X
Comments:

N/A

versions (If available)

kzshz2: Intended Use: Identify if previous version was compared and only the expected change(s) was present. This is for text files only, not binary or GUIs Rationale: This is helpful in identifying unapproved (intended or mistaken) changes.


































DCF:Automated validation check is performed








X
Comments:

























































DCF: Inputs/Outputs match names from requirements








X

Comments:

No I/O






















































DCF: Inputs/Outputs configuration paremeters








X
Comments:

N/A







reviewedkzshz2: Intended Use: All changed inputs have been reviewed to ensure configuration parameters (i.e. Buffered vs Direct read/writes) are correct. This includes signal grouping when signal consistency is required by the FDD













































DCF: Sender/Reciever Ports type and default values








X
Comments:

N/A







macth their corresponding ports (internal/external)






kzshz2: Intended Use: Identify if all the Sender/Reciever ports are compatibale with there connecting ports. Rationale: This will help to avoid errors when this component is being integrated into a project.






































DCF: Ports prototype and default values








X
Comments:










macth their corresponding ports (internal/external)






kzshz2: Intended Use: Identify if all the Server/Client ports are compatibale with there connecting ports. Rationale: This will help to avoid errors when this component is being integrated into a project.






































DCF: Server runnable variables are using direct








X
Comments:

N/A







read/writes













































DCF: Runnable calling frequencies match requirements








X

Comments:

Matches design documentation/data dictionary
























































General Notes / Comments:



























































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:

Kathleen Creager


Review Date :

04/13/15
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 3: Source Code CDD_NxtrTi






















Rev 6.028-Oct-14
Peer Review Meeting Log (Source Code Review)

























Source File Name:




kzshz2: Intended Use: Identify which .asm, .c, or .h file is being reviewed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. CDD_NxtrTi.c
Source 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. 2

























Module Design Document Name:




kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A
MDD Revision:


kzshz2: Intended Use: Identify which version of the MDD this source file was written against. Rationale: Needed for traceability between source code and MDD N/A

























Data Dictionary Revision:




kzshz2: Intended Use: Identify which version of the Data Dictionary was referenced for ranges during the source file review. Rationale: Needed for traceability between source code and DD N/A




FDD/SER/CMS























and Revision:


nz63rn: Intended Use: Identify which version of which FDD/CMS/SER this source file was written against. Rationale: Needed for traceability between source code and FDD/CMS/SER N/A

Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review checklist for change ownersSoftware Naming Convention V1.2 followed:








































for variable names







X
Comments: Per working EA4 Naming Conventions

















































for constant names







X
Comments: Per working EA4 Naming Conventions

















































for function names







X
Comments: Per working EA4 Naming Conventions

















































for other names (component, memory







X
Comments: Per working EA4 Naming Conventions










mapping handles, typedefs, etc.)






































All buffered outputs written in every path, i.e. no








X
Comments: N/A










possibility of an uninitialized value being written






































Group-review Checklist (review board)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.


X
Comments:



and Version Control version in file comment block





































Change log contains detailed description of changes








X
Comments:



and CR number





































Code accurately implements FDD (Document or Model)








X
Comments:

No FDD Currently Available







































No Compiler Errors or Warnings verified


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.





X
Comments:

Extra semicolon warning from register



















definition macros. Not fixing currently since this is Type 1b files.
























FDD test points exist as display variables: declared








X
Comments: N/A










static volatile, written once and never used, names













match the FDD













































Software Design and Coding Standards V2.0 followed:








































Code comments are clear, correct, and adequate







X
Comments:











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














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







X
Comments:











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







































Function comment blocks are per standards and







X
Comments:











contain correct information: [N43]







































Code formatting (indentation, placement of







X
Comments:











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














[N57], [N58], [N59]
















































Embedded constants used per standards; no







X
Comments:











"magic numbers": [N12]







































All variables and constants defined at module







X
Comments: N/A











level are included in appropriate MemMap














section: [N25] and Naming Conventions
















































All execution-order-dependent code can be







X
Comments: N/A











recognized by the compiler: [N80]







































No possibility of a non-terminating loop: [N63]







X
Comments: N/A




















































No possibility of divide by zero: [N65]







X
Comments:




















































All integer division and modulus operations







X
Comments: N/A











handle negative numbers correctly: [N76]







































All typecasting and fixed point arithmetic,







X
Comments:











including all use of fixed point macros and














timer functions, is correct and has no possibility























of unintended overflow or underflow: [N66]
















































No possibility of converting a negative floating







X
Comments:











point value to an unsigned type: [N67]







































All conversions between signed and unsigned







X
Comments:











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







































No possibility of dereferencing a null







X
Comments:











pointer: [N70]







































Global outputs (RTE and Non-RTE) Initialized:







X
Comments: N/A











[N24]







































Module outputs are limited to the legal range







X
Comments: N/A











defined in the FDD Data dictionary: [N53]







































All code is mapped with FDD (all FDD







X
Comments: No FDD avaialble yet











subfunctions and/or model blocks identified














with code comments; all code corresponds to























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
















































Struct types used for NvM have







X
Comments: N/A











elements declared in decreasing order by size














and are not nested or used in arrays: [N84], [N85]
















































No violations of other coding standard rules







X
Comments:











identified during review
























































































General Notes / Comments:


























TODO: requirements traceability when requirements are available































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:

Kathleen Creager


Review Date :

04/13/15
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):










































































Sheet 4: QAC CDD_NxtrTi






















Rev 6.028-Oct-14
Peer Review Meeting Log (QAC Review)


























Module Name:

kzshz2: Intended Use: Identify which .c file is being analyzed Rationale: Required for traceability. It will help to ensure this sheet is not attached to the wrong design review form. CDD_NxtrTi.c

Source File Revision:


2

Module
1of2


























Compliance Guidelines Version:




EA4 Working Guidelines









































kzshz2: Intended Use: Identify specific changes in results (new violation present, previous violation corrected, etc.). Changes to the version of the tool or the way the results were gathered should be described here also. This should be filled out prior to the review by the change owner. Rationale: Gives reviewers an what needs to be focused on. Forces the change owner to compare with previous results to catch any differences that may otherwise go unoticed Brief Summary of Changes (In Results or Tool):


































































Quality Check Items:

































YesNo
Rationale is required for all answers of No









Pre-review
checklist for change owners
QAC version is correct and did not change (List version)







kzshz2: Intended Use: Identify which version of the QAC Subproject was used and if any of the personalities may have changed. Rationale: Will help ensure this is factored into evaluating the results
X
Comments:
















TL100A_QACSuprt_1.1.0
























Contract Folder's header files are appropriate





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.


X
Comments:












































Group-review Checklist (review board)100% Compliance to the MISRA Compliance GuidelinesX
Comments:

Working EA4 Version







































Cyclomatic complexity and Static path count ok per






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

X
Comments:




Design and Coding Standards rule [N47]






































General Notes / Comments:























Polyspace - 21.1 in codeprover, 8.10 in bugfinder

QAC only gives warning for 8.8; Polyspace only gives warning for 8.10 and 21.1































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:

Kathleen Creager


Review Date :

04/13/15
































Lead Peer Reviewer:


Lucas Wendling


Approved by Reviewer(s):



Yes































Other Reviewer(s):