英飞凌
直播中

刘燕

8年用户 1467经验值
私信 关注

TC334使能内部看门狗为SLOW mode,离线跑无法启动的原因?

芯片:TC334
平台:    Autosar
详细描述:
在Configurator里配置好后,使能内部看门狗为SLOW mode。编译刷写进板子,debug的时候是正常的,不会复位。并且在
Wdg_17_Scu_SetTriggerCondition函数打断点也可以进(WdgM_MainFunction -)。> WatchdogTrigger -> WdgIf_SetTriggerCondition -> Wdg_17_Scu_SetTriggerCondition),应该是有喂狗。但是离线跑的时候,就无法启动(复位)。
做了两个测试:
1.关闭SMU alarm中关于看门狗超时的复位操作,改成NA。重新编译刷写离线跑,可以正常运行。
2.Copy Wdg_17_Scu_SetTriggerCondition 这个函数到一个 Cyclic 的函数中调用。重新编译刷写离线跑,也可以正常运行。
根据测试情况表明,启动不了是因为看门狗超时。
有三个疑问:
1.喂狗函数Wdg_17_Scu_SetTriggerCondition有被调用(WdgM_MainFunction周期是5ms,时间小于超时时间),为什么还会复位?
2.喂内部狗,选用了GTM,但是GTM配置需要做些啥?
3.Wdg_17_Scu_Isr这个函数也有喂狗操作,debug的时候打断点没有停。此函数是否需要使用?如果需要,怎么用?

回帖(1)

石玉兰

2024-5-22 17:32:34
根据您提供的信息,TC334芯片在Autosar平台上配置内部看门狗为SLOW mode。在调试时,看门狗正常工作,不会复位。但在离线运行时,系统无法启动(复位)。您进行了两个测试:

1. 关闭SMU alarm中关于看门狗超时的复位操作,改成NA。重新编译刷写离线跑,可以正常运行。
2. 复制Wdg_17_Scu_SetTriggerCondition函数。

根据这些信息,我们可以分析可能的原因:

步骤1:检查看门狗配置
确保在Configurator中正确配置了看门狗的SLOW mode。这包括设置正确的时钟源、超时时间和触发条件。

步骤2:检查看门狗驱动
确保Wdg_17_Scu_SetTriggerCondition函数和其他相关函数正确实现了看门狗的触发条件设置。这可能涉及到硬件特定的寄存器配置。

步骤3:检查离线运行时的系统状态
在离线运行时,系统可能处于不同的电源状态或具有不同的时钟配置。这可能影响看门狗的行为。检查电源管理和时钟配置,确保它们在离线运行时与调试时保持一致。

步骤4:检查SMU alarm配置
根据您的测试1,关闭SMU alarm中关于看门狗超时的复位操作后,系统可以正常运行。这表明SMU alarm可能在离线运行时错误地触发了看门狗超时复位。检查SMU alarm的配置,确保它不会在离线运行时错误地触发看门狗超时复位。

步骤5:检查看门狗喂狗逻辑
确保在离线运行时,看门狗喂狗逻辑仍然有效。这可能涉及到检查WdgM_MainFunction和其他相关函数,确保它们在离线运行时仍然可以正确地喂狗。

总结:
离线运行时无法启动的原因可能与看门狗配置、系统状态、SMU alarm配置或看门狗喂狗逻辑有关。通过检查这些方面,您应该能够找到问题的根本原因并解决它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分