SyncCrc Review
Overview
Summary SheetSynergy Project
Davinci Files
Source Code - SyncCRC
Source Code - SyncCRCNonRte
MDD
PolySpace
Integration Manual
Sheet 1: Summary Sheet

Sheet 2: Synergy Project
Sheet 3: Davinci Files
Sheet 4: Source Code - SyncCRC
Rev 1.2 | 8-Jun-15 | |||||||||||||||||||||||
Peer Review Meeting Log (Source Code Review) | ||||||||||||||||||||||||
Source File Name: | CDD_SyncCrc.c | Source File Revision: | 2 | |||||||||||||||||||||
Header File Name: | CDD_SyncCrc.h, CDD_SyncCRC_private.h | Header File Revision: | ||||||||||||||||||||||
MDD Name: | CM800A_SyncCrc_MDD | Revision: | 2 | |||||||||||||||||||||
FDD/SCIR/DSR/FDR/CM Name: | CM800A_SyncCrc_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 | Yes | Comments: | ||||||||||||||||||||||
for constant names | Yes | Comments: | ||||||||||||||||||||||
for function names | No | Comments: | OK that the AUTOSAR wrapper functions | |||||||||||||||||||||
use the names defined in the AUTOSAR API | ||||||||||||||||||||||||
for other names (component, memory | No | Comments: | OK that the AUTOSAR wrapper functions' | |||||||||||||||||||||
mapping handles, typedefs, etc.) | arguments use the names defined in the AUTOSAR API | |||||||||||||||||||||||
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 | Yes | Comments: | ||||||||||||||||||||||
requirements tracability in the FDD | ||||||||||||||||||||||||
All variables are declared at the function level. | Yes | Comments: | ||||||||||||||||||||||
Synergy version matches change history | 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 | Yes | Comments: | warnings from Renesas header files -- ok | |||||||||||||||||||||
Component.h is included | No | Comments: | ok -- both RTE and component.h are | |||||||||||||||||||||
included in the other source file -- verifies that declarations match | ||||||||||||||||||||||||
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 | Yes | 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 | Yes | Comments: | ||||||||||||||||||||||
finite loop iterations: [N63] | ||||||||||||||||||||||||
All divides protect against divide by zero | Yes | 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. | 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 | No | Comments: | functions assume the pointers that are | |||||||||||||||||||||
null pointer if needed: [N70] | passed in as arguments are non-null; ok for source | |||||||||||||||||||||||
pointer (may need to be zero); future version to consider | ||||||||||||||||||||||||
checking pointer where result is written | ||||||||||||||||||||||||
Component outputs are limited to the legal range | N/A | Comments: | no component outputs | |||||||||||||||||||||
defined in the FDD DataDict.m file : [N53] | all server runnable outputs have full range | |||||||||||||||||||||||
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 | FDD updates to be completed and baselined | |||||||||||||||||||||||
before implementation baseline | ||||||||||||||||||||||||
General Notes / Comments: | ||||||||||||||||||||||||
requirements tags should refer to requirement numbers. Should also have comments mapping to FDD paragraph numbers. - done 1/8/16 | ||||||||||||||||||||||||
add design rationale comment regarding why exclusive area not needed in static function for releasing a hw unit -- 1/8 added the exclusive area instead - done 1/8/16 | ||||||||||||||||||||||||
move enter/exit exclusive area inside GetAvlCrcHwUnit instead of around calls. Done 1/8/16 Document design rationale for "can enter" access in all the functions that call this function - to be done in MDD - done 1/13/16 | ||||||||||||||||||||||||
document restriction - GetAvlCrcHwUnit has to be called from a task context - done 1/8/16 | ||||||||||||||||||||||||
remove "break" to get out of loops; must use while instead of for loop - done 1/8/16 | ||||||||||||||||||||||||
move "Autosar wrapper" functions to a "NonRte" source file - done 1/8/16 | ||||||||||||||||||||||||
some parameter names need to change in the function calls inside the AUTOSAR wrapper functions-- param names checked, ok 1/8/16 | ||||||||||||||||||||||||
test to make sure the writes to .CIN of uint16 or uint8 work correctly without a cast to uint32 -- tested ok done 1/8/16 | ||||||||||||||||||||||||
note in some design documentation that the Calc*_Oper runnables need to be set up in DaVinci for able to be invoked concurrently - to be done in MDD - done 1/13/16 | ||||||||||||||||||||||||
add "can be invoked concurrently" property to the ResvCrcHwUnit_Oper runnable - done 1/8/16 | ||||||||||||||||||||||||
in ResvCrcHwUnit_Oper, move the switch case stmt outside of the loop to make exclusive area as small as possible; also change to while loop and remove break 1/8/16 | ||||||||||||||||||||||||
above change will restructure the whole function -- need to re-review all logic at that point - done 1/8/16 | ||||||||||||||||||||||||
casting of argument in switch (in ResvCrcHwUnit) should go away after putting enum type in Developer - done 1/8/16 | ||||||||||||||||||||||||
In ResvCrcHwUnit, set all outputs to known values even if no hw unit was available; set address args to zero - done 1/8/16 | ||||||||||||||||||||||||
release logic needs to change to make sure the correct unit is released (not erroneously called by someone that didn't succeed on their initial resv call) - done 1/8/16 | ||||||||||||||||||||||||
consider using task id in resv function; may not be able to depending on whether flash crc is going to start before the RTE -- 1/8/16 - leave as is - ok | ||||||||||||||||||||||||
add DET in the last else of the ResvCrcHwUnit_Oper -- done 12/16 | ||||||||||||||||||||||||
Change Owner: | K. Smith | Review Date : | 01/13/16 | |||||||||||||||||||||
Lead Peer Reviewer: | Kathleen Creager | Approved by Reviewer(s): | Yes | |||||||||||||||||||||
Other Reviewer(s): | Archana | |||||||||||||||||||||||
Lucas Wendling | ||||||||||||||||||||||||
Sheet 5: Source Code - SyncCRCNonRte
Rev 1.2 | 8-Jun-15 | |||||||||||||||||||||||
Peer Review Meeting Log (Source Code Review) | ||||||||||||||||||||||||
Source File Name: | CDD_SyncCrcNonRte.c | Source File Revision: | 1 | |||||||||||||||||||||
Header File Name: | CDD_SyncCrc.h, CDD_SyncCRC_private.h | Header File Revision: | ||||||||||||||||||||||
MDD Name: | CM800A_SyncCrc_MDD | Revision: | 2 | |||||||||||||||||||||
FDD/SCIR/DSR/FDR/CM Name: | CM800A_SyncCrc_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 | Yes | Comments: | ||||||||||||||||||||||
for constant names | Yes | Comments: | ||||||||||||||||||||||
for function names | No | Comments: | OK that the AUTOSAR wrapper functions | |||||||||||||||||||||
use the names defined in the AUTOSAR API | ||||||||||||||||||||||||
for other names (component, memory | No | Comments: | OK that the AUTOSAR wrapper functions' | |||||||||||||||||||||
mapping handles, typedefs, etc.) | arguments use the names defined in the AUTOSAR API | |||||||||||||||||||||||
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 | Yes | Comments: | ||||||||||||||||||||||
requirements tracability in the FDD | ||||||||||||||||||||||||
All variables are declared at the function level. | Yes | Comments: | ||||||||||||||||||||||
Synergy version matches change history | 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 | 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 | ||||||||||||||||||||||||
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 | Yes | 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 | Yes | Comments: | ||||||||||||||||||||||
finite loop iterations: [N63] | ||||||||||||||||||||||||
All divides protect against divide by zero | Yes | 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. | 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: | ||||||||||||||||||||||
null pointer if needed: [N70] | ||||||||||||||||||||||||
Component outputs are limited to the legal range | N/A | Comments: | no component outputs | |||||||||||||||||||||
defined in the FDD DataDict.m file : [N53] | all server runnable outputs have full range | |||||||||||||||||||||||
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 | FDD updates to be completed and baselined | |||||||||||||||||||||||
before implementation baseline | ||||||||||||||||||||||||
General Notes / Comments: | ||||||||||||||||||||||||
all comments for both source files were captured in SyncCRC source code tab. | ||||||||||||||||||||||||
Change Owner: | K. Smith | Review Date : | 01/13/16 | |||||||||||||||||||||
Lead Peer Reviewer: | Kathleen Creager | Approved by Reviewer(s): | Yes | |||||||||||||||||||||
Other Reviewer(s): | Archana | |||||||||||||||||||||||
Lucas Wendling | ||||||||||||||||||||||||