CLASSIC
Modul: modemanagementguide
Rolle: heuristic
Konfidenz: 85%
SNIP_CLASSIC_MODEMANAGEMENTGUIDE_SECTION_3_3_1_Startup
Wortlaut
3.3.1 Startup
The ECUM starts the operating system and initializes in its post OS sequence the
Schedule manager and the BswM. The BswM then has to take care, that all necessary
init routines of the basic software modules are called and that the RTE is started.
In this scenario it is expected that the BswM has the following providedModeGroup.
The purpose of this modeGroup is to track the current state/mode of the ECU similar
to the states of the ECU State manager in previous AUTOSAR releases.
Rule InitBlockII specifies the initialization of basic drivers to access the NVRAM
and initiates NvM_ReadAll. As the EcuMode source has the processing attribute set
to DEFERRED this rule will be evaluated every time the main function of the BswM is
called. After the first run it sets the EcuMode to ECU_STARTUP_TWO so that the action
list will never be invoked again.
If the NvMReadAll job is finsihed the NvMReadAllFinished rule is triggered, which
initiates the remaining initialization and switches the EcuMode to ECU_RUN.
Listing 3.10: Rules and ActionLists for Startup
rule InitBlockII initially false {
if ( EcuMode == MDG_EcuMode.ECU_STARTUP_ONE ) {
actionlist InitBlockIIActions
}
}
actions InitBlockIIActions on condition {
custom "Spi_Init(null)"
custom "Eep_Init(null)"
custom "Fls_Init(null)"
custom "NvM_Init(null)"
SchMSwitch EcuMode : ECU_STARTUP_TWO
custom "NvM_ReadAll()"
}
rule NvMReadAllFinished initially false {
if ( NvMReadAllJobMode == NVM_REQ_OK && EcuMode == MDG_EcuMode.
ECU_STARTUP_TWO) {
actionlist NvMReadAllFinishedActions
}
}
actions NvMReadAllFinishedActions on condition {
custom "Can_Init(null)"
Guide to Modemanagement
R4.1 Rev 3
custom "CanIf_Init(null)"
custom "CanSM_Init(null)"
custom "CanTp_Init(null)"
custom "Lin_Init(null)"
custom "LinIf_Init(null)"
custom "LinSM_Init(null)"
custom "LinTp_Init(null)"
custom "Fr_Init(null)"
custom "FrIf_Init(null)"
custom "FrSM_Init(null)"
custom "FrTp_Init(null)"
custom "PduR_Init(null)"
custom "CANNM_Init(null)"
custom "FrNM_Init(null)"
custom "NmIf_Init(null)"
custom "IpduM_Init(null)"
custom "COM_Init(null)"
custom "DCM_Init(null)"
custom "ComM_Init(null)"
custom "DEM_Init(null)"
custom "StartRte()"
SchMSwitch EcuMode : ECU_RUN
}
When the RTE is started the runnables will be started. Now it is up to the application to keep the ECU running. To achieve this the BswM can for example provide a
ModeRequestPort as depicted in example 3.4. For the further reading is is expected,
that the application software requests the mode APP1_ACTIVE from the BswM. If this
mode is requested the BswM shall not shutdown the ECU.
Listing 3.11: Application runs, enable communication
rule checkApp1Request initially false {
if ( App1ModeRequest == MDG_ApplicationModes.ModeA && EcuMode ==
MDG_EcuMode.ECU_RUN) {
actionlist checkApp1RequestTrueActions
}
}
actions checkApp1RequestTrueActions on condition {
ComMAllowCom MyComM.CanNet1 true
SchMSwitch EcuMode : ECU_RUN
}
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
BswM issues NvM_ReadAll and evaluates status
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | ModemanagementGuide.pdf |
|---|---|
| Dokumentseite | Seite 31 |
| Ziel-Modul | modemanagementguide (classic) |
| Ziel-Anforderung | SWS_NvM_00701 |
| Semantische Rolle | heuristic |
| Automatisierungs-Konfidenz | 0.85 |