当前位置: 首页 > article >正文

AUTOSAR 4.2.2版本中Dem 操作循环(Operation Cycle)的开启和关闭

AUTOSAR 4.2.2版本的Dem模块中,是通过下面这个接口对整个故障诊断的操作循环(OperationCycle)进行开启和关闭的

#define DEM_CYCLE_STATE_START (0U)
#define DEM_CYCLE_STATE_END (1U)

Dem_SetOperationCycleState(Dem_OperationCycleIdType OperationCycleId,Dem_OperationCycleStateType CycleState)

一般情况下我们需要在ECU上电时开启操作循环,例如可以在软件进入OS_MAIN() 后,在执行EcuM_Init() 前开启操作循环

OS_MAIN() 
{

    /* Enter AUTOSAR world after TISCI initialization setup. */
    Dem_SetOperationCycleState(0u, 0);
    /*Invoking the ECUM Init for ECU Initialization, never return */
    EcuM_Init();
}

在ECU下电时关闭操作循环,这个操作我们可以通过在BswM中进行,

Dem_SetOperationCycleState(0, DEM_CYCLE_STATE_END);

或者在EcuM_GoOffOne(void)中进行操作循环的关闭操作,之后再执行

Dem_Shutdown()
void EcuM_GoOffOne(void)
{
    #if(ECUM_CFG_MULTICORE_ENABLED == STD_ON)
    /* MR12 RULE 8.4 VIOLATION: The declaration of GetCoreID is expected from Os */
    if(GetCoreID() == ECUM_CFG_STARTUP_CORE)
    {
    #endif/* ECUM_CFG_MULTICORE_ENABLED */
				(void)Rte_Stop();
				Dem_SetOperationCycleState(0,DEM_CYCLE_STATE_END);
				(void)Dem_Shutdown();
    #if(ECUM_CFG_MULTICORE_ENABLED == STD_ON)
		}
    #endif/* ECUM_CFG_MULTICORE_ENABLED */
}

http://www.kler.cn/a/540561.html

相关文章:

  • ArgoCD实战指南:GitOps驱动下的Kubernetes自动化部署与Helm/Kustomize集成
  • 解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用
  • Maven Profile 配置:支持不同环境的构建
  • 第一财经对话东土科技 | 探索工业科技新边界
  • mysql 主从配置
  • 测试中的第一性原理:回归本质的质量思维革命
  • Python实现GO鹅优化算法优化支持向量机SVM回归模型项目实战
  • JSON是什么
  • 从零到一:基于Rook构建云原生Ceph存储的全面指南(上)
  • The 2024 ICPC Asia East Continent Online Contest (II) (6/9/12)
  • JDK8 stream API用法汇总
  • STM32 RTC亚秒
  • 【高级架构师】多线程和高并发编程(三):锁(下)深入ReentrantReadWriteLock
  • Python——批量图片转PDF(GUI版本)
  • 2.10寒假作业
  • 反射:获取类中的成分、并对其进行操作
  • SpringCloud - Sentinel服务保护
  • 矩阵NFC碰一碰发视频的源码技术开发攻略,支持OEM
  • 【数据】Cassandra(列存储)
  • 小红书爬虫: 获取所需数据
  • JVM栈帧中|局部变量表、操作数栈、动态链接各自的任务是什么?
  • Java_多线程
  • 非华为电脑制作一碰传NFC贴纸
  • AutoGen实战应用
  • DeepSeek--教师备课效能100%
  • 元数据、数据元、数据元素、数据项 和 主数据的概念