WDG_集成手册

目标

本文档用于指导客户进行WDG集成,文档主要包括的内容为:WDG集成指导、基于普通应用的集成示例讲解、项目集成特殊说明。

通过阅读本文档,用户可以了解代码集成过程,ORIENTAIS配置工具的配置过程,以及如何应用配置工具生成的配置文件。由于各项目的需求不同,集成示例不会针对于特定的商业项目做详细讲解。

缩写词和术语

表格 2‑1缩写词和术语

缩写词/术语

描述

OS

Operating System 操作系统

ECU

Electronic Control Unit 电控单元

WDG

Watchdog 看门狗

WdgM

Watchdog Manager 看门狗管理

WdgIf

Watchdog Interface 看门狗接口

CP

CheckPoint 监控点

SE

Supervised Entity 监控实体

参考文档

[1] 参考手册_ORIENTAIS_Configurator_WDG.pdf

[2] 参考手册_ORIENTAIS_WDG.pdf

WDG集成

WDG各配置模块的功能介绍,参见表4-1 WDG各配置模块介绍。

使用WDG源码和配置工具,进行WDG的集成的步骤,参见表 4‑2 WDG集成的步骤。

表 4‑1 WDG各配置模块介绍

模块名

功能

Wdg

wdg驱动配置。

WdgIf

1.允许WdgM访问多个底层Wdg抽象模块。

2.该模块的API都映射到下层Wdg抽象模块的API。

WdgM

1.Watchdog的管理操作,实现各种状态机制管理。

2.为用户App提供Watchdog的Api。

3.下发指令给下层WdgIf,并获取其反馈结果。

表 4‑2 WDG集成的步骤

步 骤

操作

说明

1

ORIENTAIS Configurator配置工 具工程搭建和WDG模块加载

若配置工具已经搭 建,则仅需进行WDG模块的加载操作。

2

模块配置及配置文件生成

NA

3

代码集成

现有工程 、WDG源代码和配置生成文件的集成。

4

验证测试

NA

注意:WDG集成之前,用户须确保已经有基础工程,且WDG相关的其他协议栈能正常工作。

新建ORIENTAIS Configurator配置工程及模块加载

  1. 安装ORIENTAIS Configurator软件后,双击软件图标打开软件。

图 4‑1软件主界面

  1. 菜单栏File🡪New🡪Project,新建工程。

../../_images/image2154.png

图 4‑2新建工程

  1. 在弹出的新建窗口中选择Autosar下的 [BSW Project],选择Next。

图 4‑3新建工程

  1. 在弹出的窗口中输入工程名,选择Finish。

图 4‑4新建工程

  1. 在弹出的窗口中选择Yes。

图 4‑5完成新建工程

  1. 选择[Bsw_Builder],右键单击,选择New ECU Configuration。

图 4‑6新建ECU

  1. 在弹出的窗口中输入ECU名,然后选择Next。

图 4‑7选择芯片平台

  1. 在弹出的窗口中勾选需添加的模块,点击Finish。

图 4‑8完成ECU配置

  1. 新建工程如下所示,步骤⑧中添加的模块已经被加入到工程中。

图 4‑9工程列表界面

模块配置及生产代码

模块配置

模块的具体配置,取决于具体的项目需求。该协议栈各模块配置项的详细介绍,参见表 4-3协议栈各模块配置参考文档。

表 4‑3协议栈各模块配置参考文档

模块

参考文档及其章节

说明

WdgIf

Autosar R19-11_参考手册_WdgIf.pdf

WdgM

Autosar R19-11_参考手册_WdgM.pdf

配置代码生成

  1. 在ORIENTAIS Configurator主界面左方,选择对应的协议栈,单击右键弹出Validate All和Generate All菜单。

图 4‑10代码生成

  1. 选择Validate All对本协议栈各配置选项进行校验,没有错误提示信息即校验通过。若有错误信息,请按照错误提示修改。

  2. 选择Generate All,生成配置文件。右下角的Console窗口输出生成的配置文件信息。

图 4‑11代码生成提示界面

  1. 将ORIENTAIS Configurator切换到Resource模式,即可查看生成的配置文件。

../../_images/image1254.png

图 4‑12生成的配置文件

功能集成

代码集成

WDG代码包括两部分:项目提供的WDG源码和ORIENTAIS Configurator配置生成代码。

用户须将WDG源码和章节4.2.2生成的源代码添加到集成开发工具的对应文件夹。WDG集成的文件结构,见章节5。

注意:WDG集成之前,用户须确保已经有基础工程,且WDG相关的其他协议栈能正常工作。

集成注意事项

对于集成过程中,WDG特殊要求和用户经常出现的问题,归类总结形成表 4‑4 WDG集成约束清单。用户需逐一排查表中的约束项,以避免集成问题出现。

表 4‑4 WDG集成约束清单

编 号

类别

约束限制

1

堆栈

用户需确保为任务堆栈和中断堆栈分配足够的堆栈空间。

2

头文件

  • 添加协议

栈代码之后,用户需更新集成开发工具中的头文件路径。

  • 调用协议栈API的源文件,需要包含协议栈的头文件。

3

初始化

WDG的初始化顺序为:WdgDriver_Init,WdgM_Init

4

周 期函数

Gtm_IsrTomModule ,WdgM_MainFunction需要被周期性任务函数调用。

5

Al ive监控

1. 上电启动OS之后,由于第一个OS 周期Task的不确定性,需要在初次执行WdgM_MainFunction 之后,才开始执行Alive相关的WdgM_CheckPointReached。

2. WdgM_SetMode需要在WdgM_MainFunction之后执行,避 免两个Mode都使用同一Alive监控的阈值差异造成的错误。

6

Fi rstExpi redSEID

WDGM_FIRST_EXPIRED_SEID和WDGM _FIRST_EXPIRED_INVERSE_SEID各占用RAM空间的16Bytes, 应在链接脚本中进行保护,避免其他变量占用该RAM区域。

7

依赖

  • 硬件依赖

定时器外设:WDG通过比较到达

CP的时间戳监控时间间隔功能。时间戳从定时器外设获取

看门狗外设:可以

是芯片上的看门狗,也可以是外部看门狗,或者两者都有

  • 软件依赖

OS:提供任务调度周期调用WdgM_MainFunction

提供ISR环境,定期看门狗触发

定时器:提供时间戳获取函数用于两个CP比较时间跨度

看门狗驱动程序:

用于设置模式的函数,设置触发条件的函数,喂狗函数。

DEM:DEM错误处理函数,该模块不是强制的。

DET:处理开发过程中的错误,该模块不是强制的。

BswM

:调用该模块以重置OS-Application,该模块不是强制的。

集成示例

本章节向用户展示WDG的集成过程。用户可以据此熟悉WDG配置工具的配置过程,以及如何应用配置工具生成的配置文件。示例是基于Wdg驱动正常工作之上。

本章节先完成基本WDG配置,使得工程可以编译通过,并实现基础WDG监控,然后根据具体需求服务进行添加或修改。

注意:本示例不代表用户的实际配置情况,用户需要根据自己的实际需求,决定各个参数的配置。

集成目标

通过搭建基础工程,实现简单的Wdg监控功能。具体监控功能如下:

  1. Alive supervision -用于监控定期软件的时间。参数配置如表5-1:

表 5‑1 Alive监控参数配置

监 控类型

描述

监 控 实 体 个 数

监 控 点 个 数

参 考 周 期

监 控 失 败 门 限

监 控 失 效 门 限

期 望 执 行 次 数

次 数 上 偏 差

次 数 下 偏 差

Alive 监控

监控一 次mainfun ction周期a live监控点 执行的次数

1

1

1

0

0

1

0

0

  1. Deadline supervision–用于非周期软件的时间监控。参数配置如表5-2

表 5‑2 Deadline监控参数配置

监控类型

描述

监 控 实 体 个 数

监 控 点 个 数

参 考 周 期

监 控 失 败 门 限

监 控 失 效 门 限

最 大 时 间 间 隔 ( S)

最 小 时 间 间 隔 ( S)

Deadline

监控

监控两C P的时间间隔

1

2

1

0

0

0 .05

0

③ Logical supervision-用于监控执行顺序的正确性。参数配置如表5-3:

表 5‑3 Logical监控参数配置

监控类型

描述

监控 实体 个数

监 控点 个数

参考 周期

监控 失败 门限

监控 失效 门限

Logical

监控

监控CP执行顺序

1

2

1

0

0

模块的配置

新建配置工程及模块加载操作,请参考本文档4.1章节。生成代码过程请参考章节4.2。

导入MCAL的WDG Driver 信息

  1. 选择如下图所示的 Import Module From Other Arxml选项

../../_images/image1349.png

图 5‑1导入mcal配置选项

  1. 选择Mcal生成的ARXML文件,Supplier选择EB Arxml文件,勾选WDG模块。

../../_images/image1447.png

图 5‑2导入mcal配置界面

WdgIf配置

  1. 双击WdgIf模块,打开WdgIf模块配置界面。

../../_images/image1546.png

图 5‑3 WdgIf General配置界面

Dev_Error_Detect: 是否开启对开发过程中错误的检查。

Version_Info_Api: 是否使能版本检查API函数

  1. 添加WdgIfDevice配置,分为WdgIfInternalDevice与WdgIfExternalDevice,可只存在一个或同时存在。添加步骤为:鼠标选中WdgIfInternalDevice—单击右键—New WdgIfInternalDevice。详见图5-4。

图 5‑4新添加WdgIfInternalDevice

  1. 添加WdgIfDevice后配置界面如图5-5.

图 5‑5 WdgIfInternalDevice配置界面

TriggerConditionFunction:此配置填写Wdg Driver中API函数名称。通过这个API可以实现为设定trigger counter时设置超时数值(milliseconds)。

SetModeFunction:此配置填写Wdg Driver中API函数名称。通过这个API可以实现在WDGIF_OFF_MODE(0), WDGIF_FAST_MODE(1)以及WDGIF_SLOW_MODE(2).间切换。

Device Ref:选择对应的底层Watchdog。

  1. WdgIf模块到此配置结束。可以在模块上右键,然后选择校验,查看是否配置有错误。校验后提示窗口没有错误信息,即校验通过。

WdgM模块配置

  1. 双击WdgM模块,打开WdgM模块配置界面。

../../_images/image1840.png

图 5‑6 WdgM System Setting配置

WdgMDemStoppedSupervisionReport:是否需要将错误信息报告给Dem模块。

WdgMDevErrorDetect: 打开或关闭错误追踪(Det)功能。若开启,一旦检测到配置出错,则代码停留在故障出错位置。量产用代码,需关闭该配置。

WdgMImmediateReset: 使能/失能在Global status Stopped状态时立即复位。

WdgMOffModeEnabled: 是否允许Watchdog Driver配置为Off Mode模式。true: 允许 “OffMode”, false: 不允许“OffMode”。

WdgMVersionInfoApi:预处理器开关,用于启用/禁用API WdgM_GetVersionInfo的存在。用于删除不需要的代码段。

Address For FIRST_EXPIRED_SEID:FIRST_EXPIRED_SEID存储地址。存储在此区域的数据必须不会因热启动而擦除或复位。

Address For FIRST_EXPIRED_INVERSE_SEID:FIRST_EXPIRED_INVERSE_SEID存储地址。存储在此区域的数据必须不会因热启动而擦除或复位。

  1. WdgMSupervisedEntitys添加如图5-7。

../../_images/image1937.png

图 5‑7 添加WdgMSupervisedEntity或WdgMWatchdog

  1. WdgMCheckpoint添加如图5-8。

../../_images/image2035.png

图 5‑8添加新WdgMCheckpoint或WdgMInternalTransition

  1. WdgMSupervisedEntitys配置界面如图5-9。

../../_images/image2155.png

图 5‑9 WdgMSupervisedEntity配置界面

Supervised Entity Id:此参数应该包含一个唯一的SEID。

Internal Transition Id:外部逻辑监控ID。

OS Application Ref:该SE属于哪个Application。用于SE故障时的部分代码重启。

Internal Checkpoint Initial Ref:该SE的Internal Logical supervision的初始Checkpoint。

WdgMInternalCheckpoint FinalRef:该SE的Internal Logical supervision的最终Checkpoint

  1. WdgMInternalTransition配置界面如图5-10。

图 5‑10 WdgMInternalTransition配置界面

Internal Transition Dest Ref:InternalLogicalSupervision中的某执行段的目的CP。

Internal Transition Source Ref:InternalLogicalSupervision中的某执行段的起始CP

  1. WdgMWatchdog配置界面如图5-11。

../../_images/image2336.png

图 5‑11WdgMWatchdog配置界面

Watchdog Name:该参数包含Watchdog硬件实例的命名。

Watchdog Device Ref:该参数应包含看门狗实例的符号名称。

  1. WdgMConfigSet配置界面如图5-12。

image1

图 5‑12WdgMConfigSet中Initial Mode配置界面

Initial Mode:看门狗管理器初始化后所处的模式。

  1. WdgMDemEventParamenterRef添加。

WdgMDemEventParamenterRef添加步骤为:鼠标选中WdgMConfigSet—单击右键—New—WdgMDemEventParamenterRefs。用来关联Dem模块的DTC详见图5-13。

../../_images/image2532.png

图 5‑13添加新WdgMDemEventParamenterRefs或WdgMMode

  1. WdgMDemEventParamenterRefs配置界面如图5-14。

图 5‑2 WdgMDemEventParamenterRefs配置界面

  1. 添加WdgMMode配置项步骤。

鼠标选中WdgMMode—单击右键—New—WdgMAliveSupervisoin。详见图5-15。

../../_images/image2730.png

图 5‑3 新加WdgMAliveSupervision

或WdgMDeadlineSupervisionWdgM

或ExternalLogicalSupervision

或 WdgMLocalStatusParams或 WdgMTrigger

注意:在增加或删除WdgMAliveSupervision后,若其它WdgMAliveSupervision ID会发生变化,务必单击打开会发生变化的WdgMAliveSupervision,以保证其ID能正确更新。

  1. WdgMAliveSupervision配置界面如图5-16。

../../_images/image2828.png

图 5‑4 WdgMAliveSupervision配置界面

Expected Alive Indications:期望该CP在SupervisionReferenceCycle的Main Function中,出现的次数

Max Margin:Expected Alive Indications与实际情况的最大允许偏差。

Min Margin:Expected Alive Indications与实际情况的最小允许偏差。

Supervision Reference Cycle:该AliveSupervision执行多少个MainFuncation周期

Alive Supervision Checkpoint Ref:该AliveSupervision监控的检查点

  1. WdgMDeadlineSupervisoin添加及配置界面介绍。

添加步骤为:鼠标选中WdgMMode—单击右键—New—WdgMDeadlineSupervisoin。默认情况,无该配置项。详见图5-17。

../../_images/image2928.png

图 5‑5 WdgMDeadlineSupervision配置界面

注意:在增加或删除WdgMDeadlineSupervisoin后,若其它WdgMDeadlineSupervisoin ID会发生变化,务必单击打开会发生变化的WdgMDeadlineSupervisoin,以保证其ID能正确更新。

Deadline Max:Deadline监控两个Checkpoint直接的最大时间间隔单位:s。

Deadline Min:Deadline监控两个Checkpoint直接的最小时间间隔单位:s。

Deadline Start Ref:Deadline监控的起始Checkpoint。

Deadline Stop Ref:Deadline监控的结束Checkpoint。

  1. WdgMExternalTransition添加步骤及配置项介绍。

WdgMExternalLogicalSupervisoin添加步骤为:鼠标选中WdgMMode—单击右键—New—WdgMExternalLogicalSupervisoin。

右键单击WdgMExternalLogicalSupervisoin_xx —New—ExternalTransition。。

鼠标选中WdgMExternalLogicalSupervisoin_xx —鼠标移到右方窗口的InitialRef 或 StopRef—单击右键—Add Reference—下拉选择Checkpoint。

配置描述如图5-18。

image2

../../_images/image3131.png

图 5‑6 添加WdgMExternalTranstion

External Transition Source Ref:ExternalLogicalSupervision中的某执行段的目的CP。

Deadline Stop Ref:ExternalLogicalSupervision中的某执行段的结束CP

  1. WdgMLocalStatusParams添加步骤及介绍

鼠标选中WdgMMode—单击右键—New—WdgMLocalStatusParams。配置界面如图5-19。

../../_images/image3228.png

图 5‑7 WdgMLocalStatusParams配置界面

Failed Alive Supervision Ref Cycle Tol:Alive Supervision出现故障时,能接受的故障次数。达到故障次数时,Local Status的状态从Failed切换到Expired。

Local Status Supervision Entity Ref:选择当前Mode,被使用的Supervision Entity。

  1. WdgMTrigger添加步骤及配置项介绍

鼠标选中WdgMMode—单击右键—New—WdgMTrigger。配置项介绍如图5-20。

../../_images/image3327.png

图 5‑8 WdgMTrigger配置界面

Trigger Condition Value:该参数应包含传递给该看门狗WdgIf_SetTriggerCondition的值。单位: ms

Watchdog Mode:当前Trigger,对应Trigger Watchdog Ref底层的Watchdog的工作模式。

Trigger Watchdog Ref:当前Trigger对应的底层Watchdog。

  1. WdgM模块到此配置结束。可以在模块上右键,然后选择校验,查看是否配置有错误。校验后提示窗口没有错误信息,即校验通过。

配置Alive Supervision

  1. 添加Wdg驱动头文件。内部WDG不需要添加。

图 5‑21 添加WDG驱动文件界面

  1. 新建WdgIfInternalDevice。

../../_images/image3526.png

图 5‑22 新建WdgIfInternalDevice

  1. 添加驱动接口函数。

../../_images/image3625.png
  1. 配置Address for FIRST_EXPIRED_SEID和Address for FIRST_EXPIRED_INVERSE_SEID。

../../_images/image3725.png
  1. WdgMGenerals->New,新建一个WdgMSupervisedEntity和一个WdgMWatchd og。

../../_images/image3820.png
  1. 配置Supervised Entity Id工具默认值为1。

../../_images/image3918.png
  1. 配置WdgMWatchdog_1。

../../_images/image4016.png
  1. WdgMConfigSet->New->WdgMMode。

../../_images/image4123.png
  1. Expired Supervision Cycle Tol配置为0。

../../_images/image4225.png
  1. WdgMMode_0->New,新建WdgMAliveSupervision和WdgLocalStatusParams。

../../_images/image4323.png
  1. 选择本地状态监控实体参考监控实体0.监控失败门限配置为0。

../../_images/image4422.png
  1. 配置Alive监控相关参数。

../../_images/image4522.png
  1. 设置触发值为100,看门狗模式为FAST模式。

../../_images/image4621.png
  1. 选择初始化模式为WdgMMode_1。

../../_images/image4719.png

代码修改如下:

这是Alive supervision的一个例子。函数WdgM_MainFunction()在50ms任务中执行,函数WdgM_CheckpointReached在50ms任务中执行,因此每执行WdgM_MainFunction()时,WdgM_CheckpointReached中的期望指示是1次。

/*OsTask_50ms:Core0(CPU0),Type = BASIC,Priority = 3*/

TASK(OsTask_50ms)

{

WdgM_CheckpointReached(1,0);

/*WdgM_MainFunction() call cycle to check the result of the WdgM module*/

WdgM_MainFunction();

if (E_OK != TerminateTask())

{

while (1)

{

/* dead loop */

}

}

}

配置Deadline Supervision

  1. 添加Wdg驱动头文件。

图 5‑35 添加Wdg驱动头文件

  1. 新建WdgIfInternalDevice。

../../_images/image3526.png
  1. 添加驱动接口函数。

../../_images/image3625.png
  1. 配置Address for FIRST_EXPIRED_SEID和Address for FIRST_EXPIRED_INVERSE_SEID。

../../_images/image3725.png
  1. WdgMGenerals->New,新建一个WdgMSupervisedEntity和一个WdgMWatchdog。

../../_images/image3820.png
  1. 配置Supervised Entity Id 工具默认生成为1。

../../_images/image3918.png
  1. WdgSupervisedEntity_0->New,添加WdgMCheckPoint。

../../_images/image4818.png
  1. 配置WdgMWatchdog_0。

../../_images/image4916.png
  1. WdgMConfigSet->New->WdgMMode。

../../_images/image5015.png
  1. Expired Supervision Cycle Tol配置为0。

../../_images/image5124.png
  1. WdgMMode_1->New,新建WdgMDeadLineSupervision和WdgLocalStatusPa rams。

../../_images/image5221.png
  1. 选择本地状态监控实体参考监控实体0.监控失败门限配置为0。

../../_images/image5320.png
  1. 配置Deadline监控相关参数。

../../_images/image5419.png
  1. 设置触发值为100,看门狗模式为FAST模式。

../../_images/image5517.png
  1. 选择初始化模式为WdgMMode_1。

../../_images/image5615.png

注意:

  1. 在同一个DeadLine supervision的配置中,start ref和stop ref配置为同一个checkpoint。

  2. 在Deadline的配置中,如果配置checkpoint形成链路的情况下,同一个checkpoint不能用做多个Deadline的start ref。

代码修改如下:

这是Deadline supervision的一个例子。WdgMDeadlineMax = 0.05,WdgMDeadlineMin = 0,表示两个CP之间的时间不超过50ms。

/*OsTask_50ms:Core0(CPU0),Type = BASIC,Priority = 3*/

TASK(OsTask_50ms)

{

/* please insert your code here … */

static unsigned int counter = 0;

if(0 == counter)

{

counter = 1;

WdgM_CheckpointReached(1,0);

}

else

{

counter = 0;

WdgM_CheckpointReached(1,1);

WdgM_MainFunction();

}

if (E_OK != TerminateTask())

{

while (1)

{

/* dead loop */

}

}

}

配置Logical Supervision

  1. 添加Wdg驱动头文件。

图 5‑50 添加Wdg驱动头文件

  1. 新建WdgIfInternalDevice。

../../_images/image3526.png
  1. 添加驱动接口函数。

../../_images/image3625.png
  1. 配置Address for FIRST_EXPIRED_SEID和Address for FIRST_EXPIRED_INVERSE_SEID。

../../_images/image3725.png
  1. WdgMGenerals->New,新建一个WdgMSupervisedEntity和一个WdgMWatchdog。

../../_images/image3820.png
  1. WdgSupervisedEntity_0->New,添加WdgMCheckPoint和WdgMInternalTransm ition。

../../_images/image5715.png
  1. 配置Supervised Entity Id 为大于0的值,该例程配置为1。设置初始化监控点为SE0CP0,结束监控点为SE0CP1。

图 5‑56 配置监控点

  1. 设置WdgInternalTransmision起始为SE0CP0,终止为SE0CP1。

../../_images/image5912.png
  1. 配置WdgMWatchdog_0。

../../_images/image6010.png
  1. WdgMConfigSet->New->WdgMMode。

../../_images/image6119.png
  1. Expired Supervision Cycle Tol配置为0。

../../_images/image6218.png
  1. WdgMMode_0->New,新建WdgLocalStatusParams。

../../_images/image6316.png
  1. 选择本地状态监控实体参考监控实体0.监控失败门限配置为0。

../../_images/image6416.png
  1. 设置触发值为100,看门狗模式为FAST模式。

../../_images/image6515.png
  1. 选择初始化模式为WdgMMode_1。

代码修改如下:

这是Internal logical supervision的一个例子。这两个CP属于同一监控实体。CP必须以正确的顺序执行。

/* OsTask_50ms:Core0(CPU0),Type = BASIC,Priority = 3*/

TASK(OsTask_50ms)

{

/* please insert your code here … */

static unsigned int counter = 0;

if(0 == counter)

{

counter = 1;

WdgM_CheckpointReached(3,0);

}

If(1 == counter)

{

WdgM_CheckpointReached(3,1);

WdgM_MainFunction();

counter = 0;

}

if (E_OK != TerminateTask())

{

while (1)

{

/* dead loop */

}

}

}

WDG调度集成

WDG调度集成步骤如下:

  1. WDG调度集成,需要逐一排查并实现表 4‑4 WDG集成约束清单所罗列的问题,以避免集成出现差错。

  2. 编译链接代码,将生成的elf文件烧写进芯片。

注意 : 本示例中,WDG初始化的代码置于OsTaskInit,并不代表其他项目同样适用于将其置于OsTaskInit中。

初始化代码如下:

TASK(OsTask_Init)

{

Dem_PreInit();

Dem_Init(&DemPbCfg);

Gtm_Init(&Gtm_ConfigRoot[0]);

Smu_Init(&Smu_ConfigRoot[0]);

Wdg_17_Scu_Init(&Wdg_ConfigRoot[0]);

WdgM_Init(&WdgMConfigRoot[0]);

}

监控代码根据不同的解控实例,监控点放置位置,WdgM_MainFunction放置位置,请参考5.2.3,5.2.4,5.2.5章节

验证结果

验证Alive Supervision

将工程编译通过后,使用PE调试工具进行调试,当屏蔽WdgM_CheckpointReached(1,0)后,编译下载仿真时,在编译环境中观察到发生复位。

当不屏蔽WdgM_CheckpointReached(1,0)后,观测点配置如5.2.3章节,编译下载仿真时,在编译环境中观察未发生复位。

验证Deadline Supervision

将工程编译通过后,使用PE调试工具进行调试,当WdgM_CheckpointReached(1,0)和WdgM_CheckpointReached(1,1)时间间隔不为50ms时,编译下载仿真时,在编译环境中观察到发生复位。

当两观测点时间间隔为50ms, 即观测点配置如5.2.4章节,编译下载仿真时,在编译环境中观察未发生复位。

验证Logical Supervision

将工程编译通过后,使用PE调试工具进行调试,当执行两次WdgM_CheckpointReached(1,0),不执行WdgM_CheckpointReached(1,1),然后执行WdgM_MainFunction检查时,编译下载仿真时,在编译环境中观察到发生复位。

当观测点配置如5.2.5章节,编译下载仿真时,在编译环境中观察未发生复位。