AUTOSAR模式管理-EcuM Startup and Shutdown详解

汽车安全 2年前 (2022) admin
1,824 0 0


前言

AUTOSAR EcuM模块的分享分为EcuM模块概念详解和EcuM模块配置及代码分析,具体的项目实战请关注本号的后续文章,本篇为EcuM块–Sleep和Shutdown阶段详解

AUTOSAR 模式管理-EcuM模块功能概述

AUTOSAR模式管理-EcuM Startup and Shutdown详解

正文

6. STARTUP阶段详解

5展示 ECU 的启动行为。当通过 EcuM_Init 调用时,EcuM模块控制 ECU 启动程序。通过调用 StartOSEcuM模块暂时放弃ECU控制。要重新获得控制权,集成器Integrator必须执行一个自动启动的操作系统任务,并将调用 EcuM_StartupTwo 作为其第一个操作。

AUTOSAR模式管理-EcuM Startup and Shutdown详解


5STARTUP序列

 

6.1EcuM_Init之前的动作

EcuM模块假定在调用EcuM_Init之前已经进行了 MCU 的最小初始化,以便设置堆栈并可以执行代码,并且已经执行了变量的 C 初始化。

 

EcuM_Init一般就是进入Main函数之后的第一行代码,也就是说EcuM_Init之前主要时MCU的启动代码阶段,一般完成堆栈的初始化,RAM的初始化,然后跳转到Main函数开始执行EcuM_Init

AUTOSAR模式管理-EcuM Startup and Shutdown详解

AUTOSAR模式管理-EcuM Startup and Shutdown详解


6.2 StartPreOS Sequence执行的动作

 

StartPreOS Sequence



初始化活动

说明

是否是可选项

Callout

EcuM_AL_SetProgrammableI

nterrupts

在具有可编程中断优先级的ecu上,必须在操作系统启动之前设置这些优先级。

Callout

EcuM_AL_DriverInitZero

初始化不使用配置参数的BSW模块。callout不仅可以包含驱动程序初始化,还可以包含任何类型的os之前的低级初始化代码

Callout

EcuM_DeterminePbConfigura

tion

调用将返回一个指向完全初始化的EcuM_ConfigType结构体的指针,该结构体包含

ECU管理器模块和所有其他BSW模块的构建后配置数据

检查配置数据的一致性

数据一致性检查失败后调用 EcuM_ErrorHook

Callout

EcuM_AL_DriverInitOne

不仅可以包含驱动程序初始化,还可以包含任何类型的os之前的低级初始化代码。

Get reset reason

调用MCU模块提供的AUTOSAR标准接口Mcu_GetResetReason获取复位原因,同时调用EcuM_SetWakeupEvent设置唤醒事件

选择默认的shutdown目标


Callout

EcuM_LoopDetection

如果启用了循环检测,则每次启动时都会调用该调用。如果检测到复位回路,则返回true。否则返回false

Start OS

启动AUTOSAR OS

 

StartPreOS序列的目的是准备ECU初始化操作系统,应该尽可能短。如果可能的话,驱动程序应该在UP阶段初始化,并且调用也应该保持简短。在这个序列中不应该使用中断。如果必须使用中断,在StartPreOS序列中只允许I类中断

 

驱动程序和硬件抽象模块的初始化不是由ECU管理器严格定义的。两个callout EcuM_AL_DriverInitZeroEcuM_AL_DriverInitOne被提供来定义init01。这些块包含了与StartPreOS序列相关的初始化活动。

 

MCU_Init不提供完整的MCU初始化。此外,与硬件相关的步骤必须在系统设计时执行并定义。这些步骤应该在EcuM_AL_DriverInitZeroEcuM_AL_DriverInitOne callout中采取。详细信息可以在MCU驱动程序规范中找到。

 

ECU管理器模块应该调用 EcuM_GetValidatedWakeupEvents与配置的默认关机目标EcuMDefaultShutdownTarget.

 

StartPreOS序列将初始化启动操作系统所需的所有基本软件模块

AUTOSAR模式管理-EcuM Startup and Shutdown详解

6-StartPreOS 序列

 

6.3 StartPostOS Sequence执行的动作

StartPostOS Sequence



初始化活动

说明

是否是可选项

初始化 BSW调度器(Init BSW Scheduler

BSW模块使用的临界区初始化信号量

初始化BSW管理模块(Init BSW Mode Manager


 

当通过EcuM_StartupTwo函数激活时,ECU Manager模块将执行startposto序列中的动作

AUTOSAR模式管理-EcuM Startup and Shutdown详解

7-StartPostOS序列

 

6.4 驱动初始化

一个驱动程序在初始化过程中的位置很大程度上取决于它的实现和目标硬件设计。


驱动可以在STARTUP阶段的Init Block 0Init Block 1中由ECU Manager模块初始化,也可以在WakeupRestart序列的EcuM_AL_DriverRestart callout中重新初始化。驱动程序也可以在UP阶段由BswM初始化或重新初始化。

AUTOSAR模式管理-EcuM Startup and Shutdown详解

6.5 DET初始化

默认错误跟踪模块是一个BSW模块,它包含用于调试的软件。在操作之前,DET必须被初始化(通过调用Det_Init)和启动(通过调用Det_Start)

如果至少有一个模块被配置为跟踪开发错误,ECU Manager模块应该在StartPreOS序列中,在所有其他驱动程序之前初始化DET

 

7.SHUTDOWN阶段详解

BswMMode状态机切换到SHUTDOWN状态后调用EcuMSelectShutdownTarget_OFF_MCUEcuMGoDown使得EcuM接管程序走SHUTDOWN Sequence

 

当关机阶段发生唤醒事件时,ECU Manager模块应立即完成关机并重启。

 

AUTOSAR模式管理-EcuM Startup and Shutdown详解

8-Shutdown阶段

 

7.1OffPreOS Sequence执行的动作

OffPreOS Sequence



Shudown活动

说明

是否是可选项

反初始化BswM模块


反初始化BswM调度器模块


检查挂起的唤醒事件

目的是检测关机期间发生的唤醒事件


如果唤醒事件挂起,将RESET设置为关机目标(将使用EcuMDefaultResetModeRef的默认重置模式)

只有检测到挂起的唤醒事件时,才会执行此操作,以允许立即启动


ShutdownOs

该操作系统任务的最后一次操作


 

作为它的最后一个活动,ECU管理器模块应该调用shutdownnos函数。操作系统在关机结束时调用关机钩子

 

关机钩子函数应该调用EcuM_Shutdown来终止关机进程。EcuM_Shutdown不应返回,最后要么关闭ECU或复位MCU

AUTOSAR模式管理-EcuM Startup and Shutdown详解

9-OffPreOS序列

 

7.2OffPostOS Sequence执行的动作

OffPostOS序列执行最后的步骤,在操作系统关闭后到达关机目标。EcuM_Shutdown启动该序列。

 

关机目标可以是ECUM_STATE_RESETECUM_STATE_OFF,其中特定的复位模式由复位模式决定。

OffPostOS Sequence



Shudown活动

说明

是否是可选项

Callout EcuM_OnGoOffTwo


Callout EcuM_AL_Reset or Callout

EcuM_AL_SwitchOff

取决于Shutdown的目标(Off或者Reset

 

AUTOSAR模式管理-EcuM Startup and Shutdown详解

11-OffPostOS序列


当关机目标为RESET时,ECU Manager模块将调用EcuM_AL_Reset callout。当关机目标为OFF时,ECU Manager模块应调用EcuM_AL_SwitchOff callout


推荐阅读

Autosar架构下的模块详细设计及代码实现–基于配置的编程方法

AUTOSAR 通信服务-CanSM概念详解

AUTOSAR BswM(3)代码分析

AUTOSAR 通信服务-ComM配置及代码分析

AUTOSAR 通信服务-PDU Router

AUTOSAR CAN通信协议栈分析(2)-CanIf

Can通信协议栈分析(1)-Can Driver

Lin通信协议栈分析(2)-LIN Driver

C语言编程技巧(1)-表驱动法

CANoe工具使用(1)-实现CAN通道的收、发、录、回放报文

S32K平台学习(1)-S32K144启动流程分析

AUTOSAR 通信服务-Dcm实例应用


End




欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号

原文始发于微信公众号(汽车电子嵌入式):AUTOSAR模式管理-EcuM Startup and Shutdown详解

版权声明:admin 发表于 2022年1月16日 上午12:00。
转载请注明:AUTOSAR模式管理-EcuM Startup and Shutdown详解 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...