Hello 支持、
您能提供一个示例项目工作区、它在 TMS570LC43xx 器件系列中为 NHET 运行 STC2吗?
我没有权限查看此目录或下面给出的线程内的页面。
感谢任何帮助。
e2e.ti.com/.../tms570lc4357-stc2-execution-always-fails
谢谢你。
此致
Ktmn
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.
Hello 支持、
您能提供一个示例项目工作区、它在 TMS570LC43xx 器件系列中为 NHET 运行 STC2吗?
我没有权限查看此目录或下面给出的线程内的页面。
感谢任何帮助。
e2e.ti.com/.../tms570lc4357-stc2-execution-always-fails
谢谢你。
此致
Ktmn
尊敬的 Ktmn:
布尔 STC2_SelfTest (Uint32 no_of_intervals、Uint32 max_timeout、布尔 Restart_test)
{
UINT32 tempVal = 0u;
布尔值 retval = false;
/*配置时钟分频器*/
systemREG2->STCCLKDIV =(2U<<24U);//使用 VCLK2/2
/*配置间隔计数并重新启动/继续*/
stcREG2->STCGCR0 =(no_of_intervals << 16U)|(0x1 << 0U);
if (Restart_test)
{
stcREG2->STCGCR0 |= 0x00000001U;
}
/*真实测试、无故障注入、设置 STCSCSCR */
stcREG2->STCSCSCR = 0u;
/*设置超时值*/
stcREG2->STCTPR = max_timeout;//0xFFFFFFFFu;
stcREG2->STCGSTAT = 0x3U;//在启用测试之前清除状态标志
stcREG2->STCFSTAT = 0xFU;//清除自检失败状态标志
/*启用 STC 运行*/
stcREG2->STCGCR1 =(0u << 8u)|(0xAu << 0U);//在两个 HET 模块上启用自检
for (tempVal = 0U;tempVal < 32u;tempVal++){
}
while (!(stcREG2->STCGSTAT 和0x1));//等待直到设置 TEST_DONE
/*获得测试结果*/
IF (STC_STCGSTAT_TEST_FAIL =(STC_STCGSTAT_TEST_FAIL 和 STcREG2->STCGSTAT))
{
/*测试完成且失败*/
/*清除错误*/
stcREG2->STCGSTAT = STC_STCGSTAT_TEST_FAIL;
}
否则
{
RetVal = true;
}
返回(返修);
}
感谢您的回复。 还有一个问题。 对代码存在如下误解:
/*清除 fstat 和 GStat 寄存器中的错误标志*/
stcREG1->STCGSTAT = 0x3;
stcREG1->STCFSTAT = 0x1F;
在注释行中、它说它清除了 fstat 和 gstat 中的错误标志。 不过、看起来它没有清除标志、而是设置了错误位。 此外、当我删除这两行时、输出不会改变。 您能解释一下这些行的含义吗?
此致、
Ktmn