This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS1224:while 函数中的超时问题

Guru**** 2562960 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/798584/tms570ls1224-time-out-issue-in-while-function

器件型号:TMS570LS1224
主题中讨论的其他器件:HALCOGEN

团队、

对于 很多 外设初始化、   在看门狗初始化之前有很多 while 函数、  例如、在 void canInit (void)中有 while 函数、如下所示:

   /*SAFETYMCUSW 28 D MR:NA "找到可能无限的循环-执行序列的硬件状态检查"*/
   while ((canREG1->IF1STAT & 0x80U)=0x80U)
   {
   }/*等待*/
   CANREG1->IF1CMD = 0x87U;

如果客户使用由 Halcogen 自动生成的此功能、则 可能存在代码在 while 函数中运行无限循环的风险、以下是客户提出的问题和问题:

 1. while 函数中运行无限循环的概率是多少?   

 2.当运行无限循环时,剂量意味着  发生了一些硬件错误? 是否存在会 导致 运行无限循环的瞬态软错误? 复位后、它将正常、没有问题。

 我们通常如何处理这些误差?  如果客户不使用任何看门狗功能、是否有其他可能的硬件超时功能来处理无限循环运行?

4.由于这些"while"代码是由 Halcogen 自动生成的, 我们是否计划在软件中改进这一点,例如超时方案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、很好、

    当 IFCMD 寄存器的 BUSY 位为1时、IF1/IF2寄存器组受写保护。 这个忙位只持续大约4至14个 VCLK 周期。

    1. while 函数中运行无限循环的概率是多少?
    QJW>我没有这种值、并且在器件/外设配置和初始化期间没有遇到这种问题。 有关模块的故障率、请参阅 FMEDA。 例如、原始瞬态故障 FIT 为8.4E-4 (ISO26262)。

    2.当运行无限循环时,剂量意味着发生了一些硬件错误? 是否存在会导致运行无限循环的瞬态软错误? 复位后、它将正常、没有问题。
    QJW>这可能是由软件或硬件引起的,也可能是瞬态故障。 例如、对于 SCI 接收轮询模式、如果发送器延迟到 TX 数据、代码可能会等待很长时间。 如果代码进入 sys_startup.c 中(;)的无限循环,则可能是由硬件自检(CPU 自检、STC 自检和 Pbist 自检)引起的。 请参阅 FMEDA 以了解永久和瞬态故障时基故障。 您是否遇到了这种故障?

    我们通常如何处理这些误差? 如果客户不使用任何看门狗功能、是否有其他可能的硬件超时功能来处理无限循环运行?
    QJW>无限循环会使应用程序无响应。 潜在的问题包括丢失工作、无法访问应用程序功能以及对紧急事件缺乏响应。 保证循环退出的最简单方法是添加计数器、并在经过一定数量的迭代后退出。 您可以添加超时作为 while ()循环的附加退出条件、或者如果代码使用异常、则添加超时异常(RTI 比较)。

    4.由于这些"while"代码是由 Halcogen 自动生成的,我们是否计划在软件中改进这一点,例如超时方案?
    QJW>否、