DEENESPTFRRUARHIKOZHNL

RAM Test (RamTst)

ModulRamTst (RAM Test)
BSW-Modul-ID93
Standard-Header#include "RamTst.h"
SWS-SpezifikationAUTOSAR_CP_SWS_RAMTest.pdf, AUTOSAR_SWS_RAMTest.pdf, AUTOSAR_SWS_RAM_Test.pdf
Umfang124 Records · 8 Snippets
ClusterSpeicher-Stack (Memory)

RAM Test (RamTst)

AUTOSAR Classic Memory Drivers-Modul RAM Test (RamTst, Spezifikation: AUTOSAR_CP_SWS_RAMTest.pdf, AUTOSAR_SWS_RAMTest.pdf, AUTOSAR_SWS_RAM_Test.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

função RamTst_Init [SWS_RamTst_00099] 📄 PDF

void RamTst_Init(const RamTst_ConfigType* ConfigPtr);

Service for RAM Test initialization.

função RamTst_Resume [SWS_RamTst_00101] 📄 PDF

void RamTst_Resume(void);

Service for allowing to continue the background RAM Test at the point is was suspended.

função RamTst_GetExecutionStatus [SWS_RamTst_00102] 📄 PDF

RamTst_ExecutionStatusType RamTst_GetExecutionStatus(void);

Service returns the current RAM Test execution status.

função RamTst_GetTestResult [SWS_RamTst_00103] 📄 PDF

RamTst_TestResultType RamTst_GetTestResult(void);

Service returns the current RAM Test result.

função RamTst_GetTestResultPerBlock [SWS_RamTst_00104] 📄 PDF

RamTst_TestResultType RamTst_GetTestResultPerBlock(RamTst_NumberOfBlocksType BlockID);

Service returns the current RAM Test result for the specified block.

função RamTst_SelectAlgParams [SWS_RamTst_00105] 📄 PDF

void RamTst_SelectAlgParams(RamTst_AlgParamsIdType NewAlgParamsId);

Service used to set the test algorithm and its parameter set.

função RamTst_GetTestAlgorithm [SWS_RamTst_00106] 📄 PDF

RamTst_AlgorithmType RamTst_GetTestAlgorithm(void);

Service returns the current RAM Test algorithm.

função RamTst_ChangeNumberOfTestedCells [SWS_RamTst_00107] 📄 PDF

void RamTst_ChangeNumberOfTestedCells(RamTst_NumberOfTestedCellsType NewNumberOfTestedCells);

Service changes the current number of tested cells.

função RamTst_GetNumberOfTestedCells [SWS_RamTst_00108] 📄 PDF

RamTst_NumberOfTestedCellsType RamTst_GetNumberOfTestedCells(void);

Service returns the current number of tested cells per main - function cycle.

função RamTst_MainFunction [SWS_RamTst_00110] 📄 PDF

void RamTst_MainFunction(void);

Scheduled function for executing the RAM Test in the background.

função RamTst_TestCompletedNotification [SWS_RamTst_00113] 📄 PDF

void RamTst_TestCompletedNotification(void);

The function Ram Tst_ Test Completed shall be called every time when all RAM blocks of the current test configuration have been tested in the background.

função RamTst_ErrorNotification [SWS_RamTst_00114] 📄 PDF

void RamTst_ErrorNotification(void);

The function Ram Tst_ Error shall be called every time when a RAM failure has been detected by the selected test algorithm in the background.

função RamTst_Allow [SWS_RamTst_00149] 📄 PDF

void RamTst_Allow(void);

Service for continuing the RAM Test after calling 'Ram Tst_ Stop.

função RamTst_Suspend [SWS_RamTst_00150] 📄 PDF

void RamTst_Suspend(void);

Service for suspending current operation of background RAM Test, until RESUME is called.

função RamTst_GetAlgParams [SWS_RamTst_00193] 📄 PDF

RamTst_AlgParamsIdType RamTst_GetAlgParams(void);

Service returns the ID of the current RAM Test algorithm parameter set.

função RamTst_RunFullTest [SWS_RamTst_00195] 📄 PDF

void RamTst_RunFullTest(void);

Service for executing the full RAM Test in the foreground.

função RamTst_RunPartialTest [SWS_RamTst_00197] 📄 PDF

void RamTst_RunPartialTest(RamTst_NumberOfBlocksType BlockId);

Service for testing one RAM block in the foreground.

tipo RamTst_NumberOfBlocksType [SWS_RamTst_00174] 📄 PDF

Data type used to identify or count RAM blocks given in the test configuration parameters.

tipo RamTst_ExecutionStatusType [SWS_RamTst_00189] 📄 PDF

This is a status value returned by the API service Ram Tst_ Get Execution Status().

tipo RamTst_TestResultType [SWS_RamTst_00190] 📄 PDF

This is a status value returned by the API service Ram Tst_ Get Test Result().

tipo RamTst_AlgParamsIdType [SWS_RamTst_00191] 📄 PDF

Data type used to identify a set of configuration parameters for a test algorithm.

requirement SWS_RamTst_00002 [SWS_RamTst_00002] 📄 PDF

During the execution of a RAM test algorithm, no other software shall be allowed to modify the RAM area under test.

requirement SWS_RamTst_00005 [SWS_RamTst_00005] 📄 PDF

The RAM Test module shall provide the background RAM test as an asynchronous service.

requirement SWS_RamTst_00006 [SWS_RamTst_00006] 📄 PDF

For the type RamTst_ExecutionStatusType , the enumeration value RAMTST_EXECUTION_UNINIT shall be the default value after a reset.

requirement SWS_RamTst_00007 [SWS_RamTst_00007] 📄 PDF

The function RamTst_Init shall initialize all RAM Test relevant registers and global variables and change the execution status to RAMTST_EXECUTI ON_STOPPED . The test is initialized to use the default test parameter set ( RamTstDefaultAlgParamsId ) as configured by its RamTstAlgParams container.

requirement SWS_RamTst_00008 [SWS_RamTst_00008] 📄 PDF

If the RAM Test execution status is RAMTST_EXECUTION_RUNNING, the function RamTst_MainFunction shall continue to test the RAM blocks defined in the selected RamTstAlgParams .

requirement SWS_RamTst_00009 [SWS_RamTst_00009] 📄 PDF

If the RAM Test execution status is RAMT ST_EXECUTION_RUNNING and i f no blocks have yet been tested (first call of the fun c tion), then the function RamTst_MainFunction shall start testing with the first configured RAM block in the selected RamTstAlgP a rams .

requirement SWS_RamTst_00011 [SWS_RamTst_00011] 📄 PDF

The function RamTst_MainFunction shall update the overall test result status according to SWS_RamTst_00202 . If at least one block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_MAIN _RAM_FAILURE to the DEM.

requirement SWS_RamTst_00012 [SWS_RamTst_00012] 📄 PDF

For the type RamTst_TestRe sultType ( of the overall test result), the enumeration value RAMTST_RESULT_NOT_TESTED shall be the default value after a reset.

requirement SWS_RamTst_00013 [SWS_RamTst_00013] 📄 PDF

For the type RamTst_AlgorithmType , the enumeration value RAMTST_ALGORITHM_UNDEFINED shall be the default value after reset.

requirement SWS_RamTst_00014 [SWS_RamTst_00014] 📄 PDF

When the RamTst_Stop function is called, RamTst_MainFunction shall still finish the current atomic sequence (if it is executing), and afterward the status shall be set to RAMTST_EX ECUTION_STOPPED . The test result is retained, but test parameters and loop data are not.

requirement SWS_RamTst_00018 [SWS_RamTst_00018] 📄 PDF

The function RamTst_Resume shall permit the RamTst_MainFunction to continue testing at the point where it was suspended, at its next scheduled call. Testing continues according to the saved test states. The function RamTst_Resume shall change the execution status to RAMTST_ EXECUTION _RUNNING if it has been RAMTST_ EXECUTION _ SUSPENDED .

requirement SWS_RamTst_00019 [SWS_RamTst_00019] 📄 PDF

The function RamTst_GetExecutionStatus shall re turn the current RAM Test execution status.

requirement SWS_RamTst_00021 [SWS_RamTst_00021] 📄 PDF

The function RamTst_GetTestAlgorithm shall return the current RAM Test algorithm.

requirement SWS_RamTst_00024 [SWS_RamTst_00024] 📄 PDF

The function RamTst_GetTestResult shall return the current RAM test result.

requirement SWS_RamTst_00026 [SWS_RamTst_00026] 📄 PDF

Within the configuration data for the RAM Test module, there shall be a set of configuration containers named RamTstAlgParams. Each one defines a possible test parameter set to be selected at runtime, which includes an algorithm. The algorithms included in RamTstAlgParams are restricted to those that were pre - compile selecte d to be available to the user via the container RamTstAlgorithms.

requirement SWS_RamTst_00027 [SWS_RamTst_00027] 📄 PDF

Within the configuration data for the RAM Test module, each parameter set of type RamTstAlgParams (as required in SWS_RamTst_00026 ) shall also have memory block configuration containers. The memory block configuration container is defined in RamTstBlockParams . The number of memory block configuration containers is defined by the integrator accordi ng to the RAM test strategy.

requirement SWS_RamTst_00033 [SWS_RamTst_00033] 📄 PDF

If the DET is enabled and the executio n status of the RAM Test is not RAMTST_EXECUTION_RUNNING or RAMTST_EXECUTION_SUSPENDED, the function RamTst_Stop shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00034 [SWS_RamTst_00034] 📄 PDF

The function RamTst_GetNumberofTestedCells shall read the current number of tested cells per cycle.

requirement SWS_RamTst_00036 [SWS_RamTst_00036] 📄 PDF

The function RamTst_ChangeNumberOfTestedCells shall change the current number of tested cells (for background tests).

requirement SWS_RamTst_00037 [SWS_RamTst_00037] 📄 PDF

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_SUSPENDED , the function RamTst_Resume shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00038 [SWS_RamTst_00038] 📄 PDF

The function RamTst_GetTestResultPerBlock shall return the current RAM test result for the specified block.

requirement SWS_RamTst_00039 [SWS_RamTst_00039] 📄 PDF

If DET is enabled and the BlockID is out of range, the function RamTst_GetTestResultPerBlock shall report the error value RAMTST_E_OUT_OF_RANGE to the DET and return the test result value RAMTST_RESULT_UNDEFINED .

requirement SWS_RamTst_00040 [SWS_RamTst_00040] 📄 PDF

If DET is enabled and the parameter NewNumberOfTestedCells is out of range

requirement SWS_RamTst_00044 [SWS_RamTst_00044] 📄 PDF

If a callback notification is configured as null pointer, the RAM Test module shall not execute the callbac k.

requirement SWS_RamTst_00045 [SWS_RamTst_00045] 📄 PDF

The RAM Test module shall call t he callback RamTst_TestCompletedNotification every time when it has tested all RAM blocks of the selected parameter set in a background test.

requirement SWS_RamTst_00046 [SWS_RamTst_00046] 📄 PDF

The RAM test module shall call the callback RamTst_Erro rNotification every time when the test algorithm of the selected parameter set has detected a RAM failure in a background test.

requirement SWS_RamTst_00047 [SWS_RamTst_00047] 📄 PDF

After the function Ram Tst_MainFunction has completed testing all RAM blocks configured in the selected RamTstAlgParams , the next call of the function RamTst_MainFunction shall restart the test from the beginning.

requirement SWS_RamTst_00058 [SWS_RamTst_00058] 📄 PDF

The typ e RamTst_AlgorithmType shall contain only the enumerations of the algorithms selected at pre - compile time.

requirement SWS_RamTst_00059 [SWS_RamTst_00059] 📄 PDF

The function RamTst_MainFunction shall test the defined number of RAM cells within one call. The defined number is specified by the function RamTst_ChangeNumberOfTestedCells or by initialization.

requirement SWS_RamTst_00060 [SWS_RamTst_00060] 📄 PDF

If non - destructive RAM Test is c hosen, the RAM Test module shall save the RAM area to be tested before the module modifies it. The RAM Test module shall execute the complete procedure (saving, changing, restoring) without interruption.

requirement SWS_RamTst_00061 [SWS_RamTst_00061] 📄 PDF

For both the destructive an d non - destructive options, the RAM Test module shall ensure that the test algorithm does not overwrite the RAM Test internal variables.

requirement SWS_RamTst_00062 [SWS_RamTst_00062] 📄 PDF

After writing to a cell and before reading back, the RAM Te st module shall provide the possibility to inject instruction(s) forcing the controller to clear its CPU internal cache.

requirement SWS_RamTst_00063 [SWS_RamTst_00063] 📄 PDF

The configuration process for t he RAM Test module shall allow the selection of a subset of different RAM Test algorithms during pre - compile time.

requirement SWS_RamTst_00067 [SWS_RamTst_00067] 📄 PDF

Type of error Related error code Error value A particular API is called in an unexpected state (see also: SWS_ RAMTST_00033, SWS_ RAMTST_00037, SWS_ RAMTST_00095, SWS_ RAMTST_00097, SWS_ Ram Tst_00170, SWS_ Ram Tst_00172, SWS_ Ram Tst_00210, SWS_ Ram Tst_00214) RAMTST_ E_ STATUS_ FAILURE 0x01 API pa rameter out of specified range (see also: SWS_ RAMTST_00039, SWS_ RAMTST_00040, SWS_ RAMTST_00084, SWS_ Ram Tst_00223) RAMTST_ E_ OUT_ OF_ RANGE 0x02 API service used without module initialization (see also: SWS_ RAMTST_00089) RAMTST_ E_ UNINIT 0x03 API service called with a NULL pointer (see also: SWS_ Ram Tst_00222) RAMTST_ E_ PARAM_ POINTER 0x04

requirement SWS_RamTst_00069 [SWS_RamTst_00069] 📄 PDF

Additional errors that are detected because of specific implementation and/or specific hardware properties sh all be added in the RAM Test device specific implementation specification. The classification and enumeration shall be compatible to the errors listed above in SWS_RamTst_00067 .

requirement SWS_RamTst_00071 [SWS_RamTst_00071] 📄 PDF

Production err ors shall be reported to Diagnostic Event Manager (DEM) via the Dem_SetEventStatus API.

requirement SWS_RamTst_00081 [SWS_RamTst_00081] 📄 PDF

The implementer shall provide measured or calculated runtime infor mation in the documentation of the module for each algorithm implementation. The i n formation is to be presented as s hown in the following table, specifying whether the parameters are measured or calculated.

requirement SWS_RamTst_00082 [SWS_RamTst_00082] 📄 PDF

The implementer shall provide integration hints for each algorithm, e.g. “do not use in pa r allel with a DMA”.

requirement SWS_RamTst_00083 [SWS_RamTst_00083] 📄 PDF

The function RamTst_SelectAlgPara ms shall select the test parameter set (i.e. one of the RamTstAlgParams in the container RamTstConfigParams ) to be used by the RAM Test module.

requirement SWS_RamTst_00084 [SWS_RamTst_00084] 📄 PDF

If DET is enabled and the parameter “ NewAlgParamsId ” is out of range, the function RamTst_SelectAlgParams shall report the error value RAMTST_E_OUT_ OF_RANGE to the DET, leaving the current RamTstAlgParams unchanged.

requirement SWS_RamTst_00085 [SWS_RamTst_00085] 📄 PDF

The function RamTst_SelectAlgParams shall re - initialize all RAM Test relevant registers and global variables with the values for the “ NewAlgParamsId ” .

requirement SWS_RamTst_00089 [SWS_RamTst_00089] 📄 PDF

The function RamTst_Init shall be called first before calling any other RAM test functions. If this sequence is not respected, the error code RAMTS T_E_UNINIT shall be reported to the Default Error Tracer (if development error detection is e n abled).

requirement SWS_RamTst_00093 [SWS_RamTst_00093] 📄 PDF

Init functions shall have a pointer to a configuration structure as single parameter . This means that, in accordance with SRS_BSW_00414 only one interface fo r initialization shall be implemented and it shall not depend on the modules configuration which interface the calling software module shall use.

requirement SWS_RamTst_00094 [SWS_RamTst_00094] 📄 PDF

The function RamTst_SelectAlgParams shall initialize the test result status (according to SWS_RamTst_00207 and SWS_RamTst_00202 ).

requirement SWS_RamTst_00095 [SWS_RamTst_00095] 📄 PDF

If the execution status of the RAM Test module is not in the status RAMTST_EXECUTION_STOPPED , the function RamTst_ChangeNumberOfTestedCells shall not change the curr ent number of tested cells and (if DET is enabled) shall report the error value RAMTST_E_STATUS_FAILURE to the DET.

requirement SWS_RamTst_00096 [SWS_RamTst_00096] 📄 PDF

If the DET is enabled and the execution status of t he RAM Test is not RAMTST_EXECUTION_UNINIT , the function RamTst_Init shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00097 [SWS_RamTst_00097] 📄 PDF

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_STOPPED , the function RamTst_SelectAlgParams shall report the error value RAMTST_E_STATUS_FAILURE to the DET, t hen immediately return from the function.

requirement SWS_RamTst_00098 [SWS_RamTst_00098] 📄 PDF

Module Header File Imported Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

requirement SWS_RamTst_00111 [SWS_RamTst_00111] 📄 PDF

Dem _ Set - Event Status Dem.h Called by SW - Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_ Set Event Status can safely ignore the return value. This API will be available only if ({Dem/ Dem Config Set / Dem Event Parameter/ Dem Event Reporting Type} == STANDARD_ REPORTING)

requirement SWS_RamTst_00147 [SWS_RamTst_00147] 📄 PDF

The function RamTst_DeInit shall deinitialize all RAM Test relevant registers and globa l variables that were initialized by RamTst_Init and change the execution status to RAMTST_EXECUTION_UNINIT .

requirement SWS_RamTst_00148 [SWS_RamTst_00148] 📄 PDF

After a RamTst_Stop call, RamTst_MainFunction shall not begin testing again when called by the scheduler until after a RamTst_Allow call.

requirement SWS_RamTst_00169 [SWS_RamTst_00169] 📄 PDF

The function RamTst_Allow shall permit the RamTst_MainFunction to perform testing at its next scheduled call, if it had been stopped. Therefore, it shall change the execution status to RAMTST_EXECUTION_RUNNING , if it has been RAMTST_ EXECUTION _STOPPED. The test shall be continued with the default test parameter set ( RamTstDefaultAlgParamsId ) as configured by its RamTstAlgParams container.

requirement SWS_RamTst_00170 [SWS_RamTst_00170] 📄 PDF

If DET is enabled and the execution status is not RAMTST_EXECUTION_ STOPPED , the function RamTst _Allow shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00171 [SWS_RamTst_00171] 📄 PDF

The function RamTst_Suspend shall temporarily prohibit the RamTst_MainFunction from performing tests at its next schedul ed call. When RamTst_Suspend is called and the execution status is RAMTST_ EXECUTION _RUNNING , testing stops after the current atomic sequence, test result and current test states are retained and t he execution status is changed to RAMTST_ EXECUTION _SUSPEN DED.

requirement SWS_RamTst_00172 [SWS_RamTst_00172] 📄 PDF

If DET is enabled and the execution status is not RAMTST_EXECUTION_ RUNNING , the function RamTst_Suspend shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00175 [SWS_RamTst_00175] 📄 PDF

If the RA M Test execution status is not RAMTST_EXECUTION_RUNNING when this API is called, the function RamTst_MainFunction shall return immediately without any actions.

requirement SWS_RamTst_00188 [SWS_RamTst_00188] 📄 PDF

For the type RamTst_AlgParamsIdType , the value 0 shall indicate, that no test parameters (and thus no test algorithm) is select ed. This shall be the default value of the corresponding variable after reset.

requirement SWS_RamTst_00194 [SWS_RamTst_00194] 📄 PDF

The function RamTst_GetAlgParams shall return the ID of the currently selected test algorithm parameter set (i.e. the ID of the currently sele cted RamTstAlgParams in the container RamTstConfigParams ).

requirement SWS_RamTst_00198 [SWS_RamTst_00198] 📄 PDF

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED or RAMTST_EXECUTION_SUSPENDED , t he function RamTst_RunPartialTest shall test the specified RAM block .

requirement SWS_RamTst_00200 [SWS_RamTst_00200] 📄 PDF

If the configuration parameter RamTstTestPolicy for a block is set to RAMTEST_NON_DESTRUCTIVE , the test algorithm shal l restore the original memory content of the tested cells of this block after the test (given that no error is d e tected).

requirement SWS_RamTst_00201 [SWS_RamTst_00201] 📄 PDF

If the configuration parameter RamTstTestPolicy for a block is set to RAMTEST_DESTRUCTIVE , the test algorithm sh all fill the tested cells after the test with the bit pattern defined for this block by parameter RamTst_FillPattern (given that no error is d e tected).

requirement SWS_RamTst_00202 [SWS_RamTst_00202] 📄 PDF

The overal l test result – for the set of blocks in the current RamTstAlgParams – shall be  RAMTST_RESULT_NOT_TESTED if no test was started yet (after reset or de - init).  RAMTST_RESULT_UNDEFINED if a test was started, not all blocks have yet been tested and no block r esult is RAMTST_RESULT_NOT_OK.  RAMTST_RESULT_OK if all blocks have been tested with result status RAMTST_RESULT_OK .  RAMTST_RESULT_NOT_OK if at least one block test result is RAMTST_RESULT_NOT_OK regardless whether all blocks have been already tested or no t.

requirement SWS_RamTst_00203 [SWS_RamTst_00203] 📄 PDF

The implementer shall document possible restrictions for the combination of configuration parameters and for their usage in bac k ground/foreground tests. Where applicable, he shall support this by the definitio n of predefined or re c ommended configuration parameter values attached to the BSW Module Description.

requirement SWS_RamTst_00204 [SWS_RamTst_00204] 📄 PDF

U nless covered by some hardware mechanism the RAM Test module shall provide a test algorithm , the RAM Test module may provide additional vendor or hardware specific test algorithms or different variants of the algorithms listed above. These algorithms must be clearly documented by the impleme n ter, especially their fault coverage (for vendor specific configuration parameters see SWS_RamTst_00205 ).

requirement SWS_RamTst_00205 [SWS_RamTst_00205] 📄 PDF

If an implementation of the RAM Test modul e supports vendor specific test algorithms or other additional configuration parameters, the implementer shall provide a formal vendor - specific definition of these parameters including their doc u mentation (as part of the BSW Module Description).

requirement SWS_RamTst_00206 [SWS_RamTst_00206] 📄 PDF

The RAM Test module shall provide the foreground RAM test as an synchronous service.

requirement SWS_RamTst_00207 [SWS_RamTst_00207] 📄 PDF

The test result for a specific block (identified in the given RamTstA l gParams) – shall be  RAMTST_RESULT_NOT_TESTED if this block is considered as not yet tested.  RAMTST_RESULT_UNDEFINED if a test on this block is ru n ning.  RAMTS T_RESULT_OK if all memory cells in this block have been tested sucessfully.  RAMTST_RESULT_NOT_OK if a failure has been detected for at least one memory cell in this block.

requirement SWS_RamTst_00210 [SWS_RamTst_00210] 📄 PDF

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_STOPPED , the function RamTst_RunFullTest shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then imm ediately return.

requirement SWS_RamTst_00211 [SWS_RamTst_00211] 📄 PDF

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED , the function RamTst_RunFullTest shall set the execution status to RAMTST_EXECUTION_RUNNING during the test and set it back to RAMTST_EXECU TION_STOPPED before returning.

requirement SWS_RamTst_00212 [SWS_RamTst_00212] 📄 PDF

The function RamTst_RunFullTest shall update the test result status of single blocks according to SWS_RamTst_00207 .

requirement SWS_RamTst_00213 [SWS_RamTst_00213] 📄 PDF

The function RamTst _RunFullTest shall update the overall test result status according to SWS_RamTst_00202 . If at least one block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_RUNFL_RAM_FA ILURE to the DEM.

requirement SWS_RamTst_00214 [SWS_RamTst_00214] 📄 PDF

If DET is enabled and the RAM test execution status is ne i ther RAMTST_EXECUTION_STOPPED nor RAMTST_EXECUTION_SUSPENDED , the function RamTst_RunPartialTest shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

requirement SWS_RamTst_00215 [SWS_RamTst_00215] 📄 PDF

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED or RAMTST_EXECUTION_SUSPENDED , the function RamTst_RunPartialTest shall set the execution status to RAMTST_EXECUTION_RUNNING during the test, and af ter the test shall set it back to the previous state (the state when the function was called) .

requirement SWS_RamTst_00216 [SWS_RamTst_00216] 📄 PDF

The function RamTst_RunPartialTest shall update the test result status of the tested block according to SWS_RamTst_00207 . If this block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_ PART _RAM_FAILURE to the DEM.

requirement SWS_RamTst_00217 [SWS_RamTst_00217] 📄 PDF

A successful partial foreground test shall set the bl ock specific result to RAMTST_RESULT_OK. It shall not modify the overall test result. A failing partial foreground test shall set both, the block specific as well as the overall test result to RAMTST_RESULT_NOT_OK.

requirement SWS_RamTst_00221 [SWS_RamTst_00221] 📄 PDF

and the implementation must follow the general r e quirements for interrupt handling (see SRS_BSW_00427, SRS_SPAL_12129, SRS_BSW_00325, SRS_BSW_00439, SRS_BSW_00314).

requirement SWS_RamTst_00222 [SWS_RamTst_00222] 📄 PDF

[SWS_RamTst_00222] ⌈If the function RamTst_GetVersionInfo is called with a NULL pointer as parameter, it shall return immediately without any further action, and If DET is enabled, this function shall report the error value RAMTST_E_PARAM_POINTER to the DET module.⌋ The RamTst_GetVersionInfo API can be enabled or disabled by the configuration parameter RamTstVersionInfoApi within the container RamTstCommon.

requirement SWS_RamTst_00223 [SWS_RamTst_00223] 📄 PDF

If DET is enabl ed and the BlockId is out of range, the function RamTst_RunPartialTest shall report the error value RAMTST_E_OUT_OF_RANGE to the DET and then immediately return.

requirement SWS_RamTst_00224 [SWS_RamTst_00224] 📄 PDF

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with low coverage as stated in [11] , Table D.1.

requirement SWS_RamTst_00225 [SWS_RamTst_00225] 📄 PDF

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with medium coverage a s stated in [11] , Table D.1.

requirement SWS_RamTst_00226 [SWS_RamTst_00226] 📄 PDF

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with high coverage as stated in [11] , Table D.1.

requirement SWS_RamTst_01002 [SWS_RamTst_01002] 📄 PDF

: RAM failure during test. Long Description: The function RamTst_MainFunction shall update the overall test result status and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00011 Det ection Criteria: Fail If test result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01003 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_ 01004 Secondary Parameters: RamTst_MainFunction() tests memory blocks at its next scheduled call. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it sh all be immediately reported as error. Monitor Frequency continuous

requirement SWS_RamTst_01003 [SWS_RamTst_01003] 📄 PDF

RAM test for RamTst_MainFunction function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

requirement SWS_RamTst_01004 [SWS_RamTst_01004] 📄 PDF

RAM test for RamTst_MainFunction function shall Pass if test r esult of all the blocks is RAMTST_RESULT_OK.

requirement SWS_RamTst_01005 [SWS_RamTst_01005] 📄 PDF

The RAM Test shall detect extended production error for RamTst_ RunFullTest function as described below: Error Name: RAMTST_RUNFL_RAM_FAILURE Short Description: RAM failure during test. Long Description: The function RamTst_RunFullTest shall update the overall test result status and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00213 Detection Criteria: Fail If tes t result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01006 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_01007 Secondary Parameters : RamTst_RunFullTest() tests entire RAM space without any interruption. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it shall be immediately reported as error. Monitor Frequency once - per - trip

requirement SWS_RamTst_01006 [SWS_RamTst_01006] 📄 PDF

RAM Test for RamTst_ RunFullTest function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

requirement SWS_RamTst_01007 [SWS_RamTst_01007] 📄 PDF

RAM Test for RamTst_ RunFullTest function shall Pass If test re sult of all the blocks is RAMTST_RESULT_OK.

requirement SWS_RamTst_01008 [SWS_RamTst_01008] 📄 PDF

The RAM Test shall detect extended production error for RamTst_ RunPartialTest function as described below: Error Name: RAMTST_PART_RAM_FAILURE Short Description: RAM failure during test. Long Description: The function RamTst_RunPartialTest shall update the test result status of the tested block and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00216 Detection Crite ria: Fail If test result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01009 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_01010 Seco ndary Parameters: RamTst_RunPartialTest() tests portion of the RAM. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it shall be immediately reported as e rror. Monitor Frequency once - per - trip

requirement SWS_RamTst_01009 [SWS_RamTst_01009] 📄 PDF

RAM Test for RamTst_ RunPartialTest function function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

requirement SWS_RamTst_01010 [SWS_RamTst_01010] 📄 PDF

RAM Test for RamTst_ RunPartialTest function functi on shall Pass If test result of all the blocks is RAMTST_RESULT_OK.

requirement SWS_RamTst_01013 [SWS_RamTst_01013] 📄 PDF

The RAM Test module shall reject configurations with partition mappings which are not supported by the implementation.

requirement SWS_RamTst_CONSTR_01016 [SWS_RamTst_CONSTR_01016] 📄 PDF

The ECUC partitions referenced by RamTstBlockParamsEcucPartitionRef shall be a subset of the ECUC partitions referenced by RamTstEcucPartitionRef.

requirement SWS_RamTst_CONSTR_01017 [SWS_RamTst_CONSTR_01017] 📄 PDF

If RamTstEcucPartitionRef references one or more ECUC partitions, RamTstBlockParamsEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_RamTst
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_RamTst@rel:R20-11#129748aa
Content hash
129748aa
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_RAMTest.pdf#nameddest=SWS_RamTst_00099

Mapa de temas

Requisitos

97
SWS_RamTst_00002SWS_RamTst_00005SWS_RamTst_00006SWS_RamTst_00007SWS_RamTst_00008SWS_RamTst_00009SWS_RamTst_00011SWS_RamTst_00012SWS_RamTst_00013SWS_RamTst_00014SWS_RamTst_00018SWS_RamTst_00019SWS_RamTst_00021SWS_RamTst_00024SWS_RamTst_00026SWS_RamTst_00027SWS_RamTst_00033SWS_RamTst_00034SWS_RamTst_00036SWS_RamTst_00037SWS_RamTst_00038SWS_RamTst_00039SWS_RamTst_00040SWS_RamTst_00043SWS_RamTst_00044SWS_RamTst_00045SWS_RamTst_00046SWS_RamTst_00047SWS_RamTst_00058SWS_RamTst_00059SWS_RamTst_00060SWS_RamTst_00061SWS_RamTst_00062SWS_RamTst_00063SWS_RamTst_00067SWS_RamTst_00069SWS_RamTst_00071SWS_RamTst_00081SWS_RamTst_00082SWS_RamTst_00083SWS_RamTst_00084SWS_RamTst_00085SWS_RamTst_00089SWS_RamTst_00093SWS_RamTst_00094SWS_RamTst_00095SWS_RamTst_00096SWS_RamTst_00097SWS_RamTst_00098SWS_RamTst_00111SWS_RamTst_00112SWS_RamTst_00147SWS_RamTst_00148SWS_RamTst_00169SWS_RamTst_00170SWS_RamTst_00171SWS_RamTst_00172SWS_RamTst_00175SWS_RamTst_00188SWS_RamTst_00194SWS_RamTst_00198SWS_RamTst_00200SWS_RamTst_00201SWS_RamTst_00202SWS_RamTst_00203SWS_RamTst_00204SWS_RamTst_00205SWS_RamTst_00206SWS_RamTst_00207SWS_RamTst_00210SWS_RamTst_00211SWS_RamTst_00212SWS_RamTst_00213SWS_RamTst_00214SWS_RamTst_00215SWS_RamTst_00216SWS_RamTst_00217SWS_RamTst_00221SWS_RamTst_00222SWS_RamTst_00223SWS_RamTst_00224SWS_RamTst_00225SWS_RamTst_00226SWS_RamTst_00999SWS_RamTst_01002SWS_RamTst_01003SWS_RamTst_01004SWS_RamTst_01005SWS_RamTst_01006SWS_RamTst_01007SWS_RamTst_01008SWS_RamTst_01009SWS_RamTst_01010SWS_RamTst_01012SWS_RamTst_01013SWS_RamTst_CONSTR_01016SWS_RamTst_CONSTR_01017

Vista de detalhes

Selecione uma entrada no índice.

Inicialização e estado

RamTst_DeInit função

Service for RAM Test deinitialization.

void RamTst_DeInit(void);

Service returns the version information of this module.

void RamTst_GetVersionInfo(Std_VersionInfoType* versioninfo);
RamTst_Init função

Service for RAM Test initialization.

void RamTst_Init(const RamTst_ConfigType* ConfigPtr);

Serviços

RamTst_Allow função

Service for continuing the RAM Test after calling 'Ram Tst_ Stop.

void RamTst_Allow(void);

Service changes the current number of tested cells.

void RamTst_ChangeNumberOfTestedCells(RamTst_NumberOfTestedCellsType NewNumberOfTestedCells);

The function Ram Tst_ Error shall be called every time when a RAM failure has been detected by the selected test algorithm in the background.

void RamTst_ErrorNotification(void);
RamTst_Resume função

Service for allowing to continue the background RAM Test at the point is was suspended.

void RamTst_Resume(void);

Service for executing the full RAM Test in the foreground.

void RamTst_RunFullTest(void);

Service for testing one RAM block in the foreground.

void RamTst_RunPartialTest(RamTst_NumberOfBlocksType BlockId);

Service used to set the test algorithm and its parameter set.

void RamTst_SelectAlgParams(RamTst_AlgParamsIdType NewAlgParamsId);
RamTst_Stop função

Service for stopping the RAM Test.

void RamTst_Stop(void);

Service for suspending current operation of background RAM Test, until RESUME is called.

void RamTst_Suspend(void);

The function Ram Tst_ Test Completed shall be called every time when all RAM blocks of the current test configuration have been tested in the background.

void RamTst_TestCompletedNotification(void);

Service returns the current RAM Test algorithm.

RamTst_AlgorithmType RamTst_GetTestAlgorithm(void);

Service returns the ID of the current RAM Test algorithm parameter set.

RamTst_AlgParamsIdType RamTst_GetAlgParams(void);

Service returns the current RAM Test execution status.

RamTst_ExecutionStatusType RamTst_GetExecutionStatus(void);

Service returns the current number of tested cells per main - function cycle.

RamTst_NumberOfTestedCellsType RamTst_GetNumberOfTestedCells(void);

Service returns the current RAM Test result.

RamTst_TestResultType RamTst_GetTestResult(void);

Service returns the current RAM Test result for the specified block.

RamTst_TestResultType RamTst_GetTestResultPerBlock(RamTst_NumberOfBlocksType BlockID);

Cíclico

Scheduled function for executing the RAM Test in the background.

void RamTst_MainFunction(void);

Tipos

This is a value returned by the API service Ram Tst_ Get Test Algorithm().

Data type used to identify a set of configuration parameters for a test algorithm.

Configuration data structure of the Ram Tst module.

This is a status value returned by the API service Ram Tst_ Get Execution Status().

Data type used to identify or count RAM blocks given in the test configuration parameters.

Data type of number of tested RAM cells

This is a status value returned by the API service Ram Tst_ Get Test Result().

Requisitos

SWS_RamTst_00002 requirement

During the execution of a RAM test algorithm, no other software shall be allowed to modify the RAM area under test.

SWS_RamTst_00005 requirement

The RAM Test module shall provide the background RAM test as an asynchronous service.

SWS_RamTst_00006 requirement

For the type RamTst_ExecutionStatusType , the enumeration value RAMTST_EXECUTION_UNINIT shall be the default value after a reset.

SWS_RamTst_00007 requirement

The function RamTst_Init shall initialize all RAM Test relevant registers and global variables and change the execution status to RAMTST_EXECUTI ON_STOPPED . The test is initialized to use the default test parameter set ( RamTstDefaultAlgParamsId ) as configured by its RamTstAlgParams container.

SWS_RamTst_00008 requirement

If the RAM Test execution status is RAMTST_EXECUTION_RUNNING, the function RamTst_MainFunction shall continue to test the RAM blocks defined in the selected RamTstAlgParams .

SWS_RamTst_00009 requirement

If the RAM Test execution status is RAMT ST_EXECUTION_RUNNING and i f no blocks have yet been tested (first call of the fun c tion), then the function RamTst_MainFunction shall start testing with the first configured RAM block in the selected RamTstAlgP a rams .

SWS_RamTst_00011 requirement

The function RamTst_MainFunction shall update the overall test result status according to SWS_RamTst_00202 . If at least one block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_MAIN _RAM_FAILURE to the DEM.

SWS_RamTst_00012 requirement

For the type RamTst_TestRe sultType ( of the overall test result), the enumeration value RAMTST_RESULT_NOT_TESTED shall be the default value after a reset.

SWS_RamTst_00013 requirement

For the type RamTst_AlgorithmType , the enumeration value RAMTST_ALGORITHM_UNDEFINED shall be the default value after reset.

SWS_RamTst_00014 requirement

When the RamTst_Stop function is called, RamTst_MainFunction shall still finish the current atomic sequence (if it is executing), and afterward the status shall be set to RAMTST_EX ECUTION_STOPPED . The test result is retained, but test parameters and loop data are not.

SWS_RamTst_00018 requirement

The function RamTst_Resume shall permit the RamTst_MainFunction to continue testing at the point where it was suspended, at its next scheduled call. Testing continues according to the saved test states. The function RamTst_Resume shall change the execution status to RAMTST_ EXECUTION _RUNNING if it has been RAMTST_ EXECUTION _ SUSPENDED .

SWS_RamTst_00019 requirement

The function RamTst_GetExecutionStatus shall re turn the current RAM Test execution status.

SWS_RamTst_00021 requirement

The function RamTst_GetTestAlgorithm shall return the current RAM Test algorithm.

SWS_RamTst_00024 requirement

The function RamTst_GetTestResult shall return the current RAM test result.

SWS_RamTst_00026 requirement

Within the configuration data for the RAM Test module, there shall be a set of configuration containers named RamTstAlgParams. Each one defines a possible test parameter set to be selected at runtime, which includes an algorithm. The algorithms included in RamTstAlgParams are restricted to those that were pre - compile selecte d to be available to the user via the container RamTstAlgorithms.

SWS_RamTst_00027 requirement

Within the configuration data for the RAM Test module, each parameter set of type RamTstAlgParams (as required in SWS_RamTst_00026 ) shall also have memory block configuration containers. The memory block configuration container is defined in RamTstBlockParams . The number of memory block configuration containers is defined by the integrator accordi ng to the RAM test strategy.

SWS_RamTst_00033 requirement

If the DET is enabled and the executio n status of the RAM Test is not RAMTST_EXECUTION_RUNNING or RAMTST_EXECUTION_SUSPENDED, the function RamTst_Stop shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00034 requirement

The function RamTst_GetNumberofTestedCells shall read the current number of tested cells per cycle.

SWS_RamTst_00036 requirement

The function RamTst_ChangeNumberOfTestedCells shall change the current number of tested cells (for background tests).

SWS_RamTst_00037 requirement

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_SUSPENDED , the function RamTst_Resume shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00038 requirement

The function RamTst_GetTestResultPerBlock shall return the current RAM test result for the specified block.

SWS_RamTst_00039 requirement

If DET is enabled and the BlockID is out of range, the function RamTst_GetTestResultPerBlock shall report the error value RAMTST_E_OUT_OF_RANGE to the DET and return the test result value RAMTST_RESULT_UNDEFINED .

SWS_RamTst_00040 requirement

If DET is enabled and the parameter NewNumberOfTestedCells is out of range

SWS_RamTst_00043 requirement

The callback notifications shall have no parameters and no return value.

SWS_RamTst_00044 requirement

If a callback notification is configured as null pointer, the RAM Test module shall not execute the callbac k.

SWS_RamTst_00045 requirement

The RAM Test module shall call t he callback RamTst_TestCompletedNotification every time when it has tested all RAM blocks of the selected parameter set in a background test.

SWS_RamTst_00046 requirement

The RAM test module shall call the callback RamTst_Erro rNotification every time when the test algorithm of the selected parameter set has detected a RAM failure in a background test.

SWS_RamTst_00047 requirement

After the function Ram Tst_MainFunction has completed testing all RAM blocks configured in the selected RamTstAlgParams , the next call of the function RamTst_MainFunction shall restart the test from the beginning.

SWS_RamTst_00058 requirement

The typ e RamTst_AlgorithmType shall contain only the enumerations of the algorithms selected at pre - compile time.

SWS_RamTst_00059 requirement

The function RamTst_MainFunction shall test the defined number of RAM cells within one call. The defined number is specified by the function RamTst_ChangeNumberOfTestedCells or by initialization.

SWS_RamTst_00060 requirement

If non - destructive RAM Test is c hosen, the RAM Test module shall save the RAM area to be tested before the module modifies it. The RAM Test module shall execute the complete procedure (saving, changing, restoring) without interruption.

SWS_RamTst_00061 requirement

For both the destructive an d non - destructive options, the RAM Test module shall ensure that the test algorithm does not overwrite the RAM Test internal variables.

SWS_RamTst_00062 requirement

After writing to a cell and before reading back, the RAM Te st module shall provide the possibility to inject instruction(s) forcing the controller to clear its CPU internal cache.

SWS_RamTst_00063 requirement

The configuration process for t he RAM Test module shall allow the selection of a subset of different RAM Test algorithms during pre - compile time.

SWS_RamTst_00067 requirement

Type of error Related error code Error value A particular API is called in an unexpected state (see also: SWS_ RAMTST_00033, SWS_ RAMTST_00037, SWS_ RAMTST_00095, SWS_ RAMTST_00097, SWS_ Ram Tst_00170, SWS_ Ram Tst_00172, SWS_ Ram Tst_00210, SWS_ Ram Tst_00214) RAMTST_ E_ STATUS_ FAILURE 0x01 API pa rameter out of specified range (see also: SWS_ RAMTST_00039, SWS_ RAMTST_00040, SWS_ RAMTST_00084, SWS_ Ram Tst_00223) RAMTST_ E_ OUT_ OF_ RANGE 0x02 API service used without module initialization (see also: SWS_ RAMTST_00089) RAMTST_ E_ UNINIT 0x03 API service called with a NULL pointer (see also: SWS_ Ram Tst_00222) RAMTST_ E_ PARAM_ POINTER 0x04

SWS_RamTst_00069 requirement

Additional errors that are detected because of specific implementation and/or specific hardware properties sh all be added in the RAM Test device specific implementation specification. The classification and enumeration shall be compatible to the errors listed above in SWS_RamTst_00067 .

SWS_RamTst_00071 requirement

Production err ors shall be reported to Diagnostic Event Manager (DEM) via the Dem_SetEventStatus API.

SWS_RamTst_00081 requirement

The implementer shall provide measured or calculated runtime infor mation in the documentation of the module for each algorithm implementation. The i n formation is to be presented as s hown in the following table, specifying whether the parameters are measured or calculated.

SWS_RamTst_00082 requirement

The implementer shall provide integration hints for each algorithm, e.g. “do not use in pa r allel with a DMA”.

SWS_RamTst_00083 requirement

The function RamTst_SelectAlgPara ms shall select the test parameter set (i.e. one of the RamTstAlgParams in the container RamTstConfigParams ) to be used by the RAM Test module.

SWS_RamTst_00084 requirement

If DET is enabled and the parameter “ NewAlgParamsId ” is out of range, the function RamTst_SelectAlgParams shall report the error value RAMTST_E_OUT_ OF_RANGE to the DET, leaving the current RamTstAlgParams unchanged.

SWS_RamTst_00085 requirement

The function RamTst_SelectAlgParams shall re - initialize all RAM Test relevant registers and global variables with the values for the “ NewAlgParamsId ” .

SWS_RamTst_00089 requirement

The function RamTst_Init shall be called first before calling any other RAM test functions. If this sequence is not respected, the error code RAMTS T_E_UNINIT shall be reported to the Default Error Tracer (if development error detection is e n abled).

SWS_RamTst_00093 requirement

Init functions shall have a pointer to a configuration structure as single parameter . This means that, in accordance with SRS_BSW_00414 only one interface fo r initialization shall be implemented and it shall not depend on the modules configuration which interface the calling software module shall use.

SWS_RamTst_00094 requirement

The function RamTst_SelectAlgParams shall initialize the test result status (according to SWS_RamTst_00207 and SWS_RamTst_00202 ).

SWS_RamTst_00095 requirement

If the execution status of the RAM Test module is not in the status RAMTST_EXECUTION_STOPPED , the function RamTst_ChangeNumberOfTestedCells shall not change the curr ent number of tested cells and (if DET is enabled) shall report the error value RAMTST_E_STATUS_FAILURE to the DET.

SWS_RamTst_00096 requirement

If the DET is enabled and the execution status of t he RAM Test is not RAMTST_EXECUTION_UNINIT , the function RamTst_Init shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00097 requirement

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_STOPPED , the function RamTst_SelectAlgParams shall report the error value RAMTST_E_STATUS_FAILURE to the DET, t hen immediately return from the function.

SWS_RamTst_00098 requirement

Module Header File Imported Type Dem Rte_ Dem_ Type.h Dem _ Event Id Type Rte_ Dem_ Type.h Dem _ Event Status Type Std Std_ Types.h Std _ Return Type Std_ Types.h Std _ Version Info Type

SWS_RamTst_00111 requirement

Dem _ Set - Event Status Dem.h Called by SW - Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_ Set Event Status can safely ignore the return value. This API will be available only if ({Dem/ Dem Config Set / Dem Event Parameter/ Dem Event Reporting Type} == STANDARD_ REPORTING)

SWS_RamTst_00112 requirement

Det _ Report Error Det.h Service to report development errors.

SWS_RamTst_00147 requirement

The function RamTst_DeInit shall deinitialize all RAM Test relevant registers and globa l variables that were initialized by RamTst_Init and change the execution status to RAMTST_EXECUTION_UNINIT .

SWS_RamTst_00148 requirement

After a RamTst_Stop call, RamTst_MainFunction shall not begin testing again when called by the scheduler until after a RamTst_Allow call.

SWS_RamTst_00169 requirement

The function RamTst_Allow shall permit the RamTst_MainFunction to perform testing at its next scheduled call, if it had been stopped. Therefore, it shall change the execution status to RAMTST_EXECUTION_RUNNING , if it has been RAMTST_ EXECUTION _STOPPED. The test shall be continued with the default test parameter set ( RamTstDefaultAlgParamsId ) as configured by its RamTstAlgParams container.

SWS_RamTst_00170 requirement

If DET is enabled and the execution status is not RAMTST_EXECUTION_ STOPPED , the function RamTst _Allow shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00171 requirement

The function RamTst_Suspend shall temporarily prohibit the RamTst_MainFunction from performing tests at its next schedul ed call. When RamTst_Suspend is called and the execution status is RAMTST_ EXECUTION _RUNNING , testing stops after the current atomic sequence, test result and current test states are retained and t he execution status is changed to RAMTST_ EXECUTION _SUSPEN DED.

SWS_RamTst_00172 requirement

If DET is enabled and the execution status is not RAMTST_EXECUTION_ RUNNING , the function RamTst_Suspend shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00175 requirement

If the RA M Test execution status is not RAMTST_EXECUTION_RUNNING when this API is called, the function RamTst_MainFunction shall return immediately without any actions.

SWS_RamTst_00188 requirement

For the type RamTst_AlgParamsIdType , the value 0 shall indicate, that no test parameters (and thus no test algorithm) is select ed. This shall be the default value of the corresponding variable after reset.

SWS_RamTst_00194 requirement

The function RamTst_GetAlgParams shall return the ID of the currently selected test algorithm parameter set (i.e. the ID of the currently sele cted RamTstAlgParams in the container RamTstConfigParams ).

SWS_RamTst_00198 requirement

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED or RAMTST_EXECUTION_SUSPENDED , t he function RamTst_RunPartialTest shall test the specified RAM block .

SWS_RamTst_00200 requirement

If the configuration parameter RamTstTestPolicy for a block is set to RAMTEST_NON_DESTRUCTIVE , the test algorithm shal l restore the original memory content of the tested cells of this block after the test (given that no error is d e tected).

SWS_RamTst_00201 requirement

If the configuration parameter RamTstTestPolicy for a block is set to RAMTEST_DESTRUCTIVE , the test algorithm sh all fill the tested cells after the test with the bit pattern defined for this block by parameter RamTst_FillPattern (given that no error is d e tected).

SWS_RamTst_00202 requirement

The overal l test result – for the set of blocks in the current RamTstAlgParams – shall be  RAMTST_RESULT_NOT_TESTED if no test was started yet (after reset or de - init).  RAMTST_RESULT_UNDEFINED if a test was started, not all blocks have yet been tested and no block r esult is RAMTST_RESULT_NOT_OK.  RAMTST_RESULT_OK if all blocks have been tested with result status RAMTST_RESULT_OK .  RAMTST_RESULT_NOT_OK if at least one block test result is RAMTST_RESULT_NOT_OK regardless whether all blocks have been already tested or no t.

SWS_RamTst_00203 requirement

The implementer shall document possible restrictions for the combination of configuration parameters and for their usage in bac k ground/foreground tests. Where applicable, he shall support this by the definitio n of predefined or re c ommended configuration parameter values attached to the BSW Module Description.

SWS_RamTst_00204 requirement

U nless covered by some hardware mechanism the RAM Test module shall provide a test algorithm , the RAM Test module may provide additional vendor or hardware specific test algorithms or different variants of the algorithms listed above. These algorithms must be clearly documented by the impleme n ter, especially their fault coverage (for vendor specific configuration parameters see SWS_RamTst_00205 ).

SWS_RamTst_00205 requirement

If an implementation of the RAM Test modul e supports vendor specific test algorithms or other additional configuration parameters, the implementer shall provide a formal vendor - specific definition of these parameters including their doc u mentation (as part of the BSW Module Description).

SWS_RamTst_00206 requirement

The RAM Test module shall provide the foreground RAM test as an synchronous service.

SWS_RamTst_00207 requirement

The test result for a specific block (identified in the given RamTstA l gParams) – shall be  RAMTST_RESULT_NOT_TESTED if this block is considered as not yet tested.  RAMTST_RESULT_UNDEFINED if a test on this block is ru n ning.  RAMTS T_RESULT_OK if all memory cells in this block have been tested sucessfully.  RAMTST_RESULT_NOT_OK if a failure has been detected for at least one memory cell in this block.

SWS_RamTst_00210 requirement

If DET is enabled and the execution status of the RAM Test module is not RAMTST_EXECUTION_STOPPED , the function RamTst_RunFullTest shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then imm ediately return.

SWS_RamTst_00211 requirement

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED , the function RamTst_RunFullTest shall set the execution status to RAMTST_EXECUTION_RUNNING during the test and set it back to RAMTST_EXECU TION_STOPPED before returning.

SWS_RamTst_00212 requirement

The function RamTst_RunFullTest shall update the test result status of single blocks according to SWS_RamTst_00207 .

SWS_RamTst_00213 requirement

The function RamTst _RunFullTest shall update the overall test result status according to SWS_RamTst_00202 . If at least one block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_RUNFL_RAM_FA ILURE to the DEM.

SWS_RamTst_00214 requirement

If DET is enabled and the RAM test execution status is ne i ther RAMTST_EXECUTION_STOPPED nor RAMTST_EXECUTION_SUSPENDED , the function RamTst_RunPartialTest shall report the error value RAMTST_E_STATUS_FAILURE to the DET, and then immediately return.

SWS_RamTst_00215 requirement

If the RAM Test execution status is RAMTST_EXECUTION_STOPPED or RAMTST_EXECUTION_SUSPENDED , the function RamTst_RunPartialTest shall set the execution status to RAMTST_EXECUTION_RUNNING during the test, and af ter the test shall set it back to the previous state (the state when the function was called) .

SWS_RamTst_00216 requirement

The function RamTst_RunPartialTest shall update the test result status of the tested block according to SWS_RamTst_00207 . If this block test result is RAMTST_RESULT_NOT_OK , then the function shall report the production error RAMTST_ PART _RAM_FAILURE to the DEM.

SWS_RamTst_00217 requirement

A successful partial foreground test shall set the bl ock specific result to RAMTST_RESULT_OK. It shall not modify the overall test result. A failing partial foreground test shall set both, the block specific as well as the overall test result to RAMTST_RESULT_NOT_OK.

SWS_RamTst_00221 requirement

and the implementation must follow the general r e quirements for interrupt handling (see SRS_BSW_00427, SRS_SPAL_12129, SRS_BSW_00325, SRS_BSW_00439, SRS_BSW_00314).

SWS_RamTst_00222 requirement

[SWS_RamTst_00222] ⌈If the function RamTst_GetVersionInfo is called with a NULL pointer as parameter, it shall return immediately without any further action, and If DET is enabled, this function shall report the error value RAMTST_E_PARAM_POINTER to the DET module.⌋ The RamTst_GetVersionInfo API can be enabled or disabled by the configuration parameter RamTstVersionInfoApi within the container RamTstCommon.

SWS_RamTst_00223 requirement

If DET is enabl ed and the BlockId is out of range, the function RamTst_RunPartialTest shall report the error value RAMTST_E_OUT_OF_RANGE to the DET and then immediately return.

SWS_RamTst_00224 requirement

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with low coverage as stated in [11] , Table D.1.

SWS_RamTst_00225 requirement

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with medium coverage a s stated in [11] , Table D.1.

SWS_RamTst_00226 requirement

Unless covered by some hardware mechanism the RAM Test module shall provide a test algorithm with high coverage as stated in [11] , Table D.1.

SWS_RamTst_00999 requirement

These requirements are not applicable to this specific a tion.

SWS_RamTst_01002 requirement

: RAM failure during test. Long Description: The function RamTst_MainFunction shall update the overall test result status and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00011 Det ection Criteria: Fail If test result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01003 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_ 01004 Secondary Parameters: RamTst_MainFunction() tests memory blocks at its next scheduled call. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it sh all be immediately reported as error. Monitor Frequency continuous

SWS_RamTst_01003 requirement

RAM test for RamTst_MainFunction function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

SWS_RamTst_01004 requirement

RAM test for RamTst_MainFunction function shall Pass if test r esult of all the blocks is RAMTST_RESULT_OK.

SWS_RamTst_01005 requirement

The RAM Test shall detect extended production error for RamTst_ RunFullTest function as described below: Error Name: RAMTST_RUNFL_RAM_FAILURE Short Description: RAM failure during test. Long Description: The function RamTst_RunFullTest shall update the overall test result status and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00213 Detection Criteria: Fail If tes t result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01006 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_01007 Secondary Parameters : RamTst_RunFullTest() tests entire RAM space without any interruption. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it shall be immediately reported as error. Monitor Frequency once - per - trip

SWS_RamTst_01006 requirement

RAM Test for RamTst_ RunFullTest function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

SWS_RamTst_01007 requirement

RAM Test for RamTst_ RunFullTest function shall Pass If test re sult of all the blocks is RAMTST_RESULT_OK.

SWS_RamTst_01008 requirement

The RAM Test shall detect extended production error for RamTst_ RunPartialTest function as described below: Error Name: RAMTST_PART_RAM_FAILURE Short Description: RAM failure during test. Long Description: The function RamTst_RunPartialTest shall update the test result status of the tested block and error is updated based on the current status of RamTstAlgParams. See: SWS_RAMTST_00216 Detection Crite ria: Fail If test result of at least one block is RAMTST_RESULT_NOT_OK. See SWS_RamTst_01009 Pass If test result of all the blocks is RAMTST_RESULT_OK. See SWS_RamTst_01010 Seco ndary Parameters: RamTst_RunPartialTest() tests portion of the RAM. In case of successful test result report Pass. In case of an error always report Fail. Time Required: If any block test results RAMTST_RESULT_NOT_OK, it shall be immediately reported as e rror. Monitor Frequency once - per - trip

SWS_RamTst_01009 requirement

RAM Test for RamTst_ RunPartialTest function function shall Fail if test result of at least one block is RAMTST_RESULT_NOT_OK.

SWS_RamTst_01010 requirement

RAM Test for RamTst_ RunPartialTest function functi on shall Pass If test result of all the blocks is RAMTST_RESULT_OK.

SWS_RamTst_01012 requirement

The Configuration pointer ConfigPtr shall always have a NULL_PTR value .

SWS_RamTst_01013 requirement

The RAM Test module shall reject configurations with partition mappings which are not supported by the implementation.

The ECUC partitions referenced by RamTstBlockParamsEcucPartitionRef shall be a subset of the ECUC partitions referenced by RamTstEcucPartitionRef.

If RamTstEcucPartitionRef references one or more ECUC partitions, RamTstBlockParamsEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.