主题中讨论的其他器件:SEGGER、 HALCOGEN
您好! 
TRM 第8.4.10章的说明和寄存器内容似乎相互冲突。 
说明:测试将始终失败: 
但是说明希望通过将第4位(FAULT_INS)设置为值0来提供无故障运行检查的选项。 但根据我的经验、尽管 FAULT_INS 位值、STC 自检将始终失败、这种行为是否应该发生? SafeTI-library 状态检查器 sl_SelfTest_Status_STC ()-fucntion 返回 true 并标记 ST_FAIL、即使 FAULT_INS=0至"ST_Result"、"CPU1Failure"和"CPU2Failure"变量、因此"TimeoutFailure"是 ST_PASS、因此不会发生。 
第二个问题是自检期间 STCTPR 寄存器中的超时值。 当运行自检(STCSCSCR 位 selfcheck_key == 0xA)时、最大值0xFFFFFFFF 会在某个位置挂起 CPU、而如果"STC_run"作为 sl_SelfTest_STC ()函数的参数给出、则相同的值有效。 在自检/相位中、值0x1000挂起 CPU、至少值0x100和更小的值起作用... 
这里是代码、其中启动测试的行为取决于所选的超时值
      stcSelfTestConfig.stcClockDiv      = 0;         /* STC 时钟分频器= 1 */ 
      stcSelfTestConfig.intervalCount   = 1;         /*仅一个时间间隔*/ 
      stcSelfTestConfig.restartInterval0   = true;      //从间隔0开始*/ 
      stcSelfTestConfig.timeoutCounter   = 0x100U;// 0x1000 ---不起作用,挂起 CPU;          //超时计数器*/ 
      _sl_HoldNClear_nError(); 
      SL_SelfTest_STC (STC_COMPARE_SELFCHECK,TRUE,&stcSelfTestConfig); 
这里是实际工作的 STC 测试示例、其中 STC_MAX_TIMEOUT 为0xFFFFFFFF、这起作用 
      stcSelfTestConfig.stcClockDiv      = 0;         /* STC 时钟分频器= 1 */ 
      stcSelfTestConfig.intervalCount   = 24;         /*仅一个时间间隔*/ 
      stcSelfTestConfig.restartInterval0   = true;      //从间隔0开始*/ 
      stcSelfTestConfig.timeoutCounter   = STC_MAX_TIMEOUT;          /*超时计数器*/ 
      sl_SelfTest_STC (STC_run、true、&stcSelfTestConfig);