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.

[参考译文] TMS570LC4357:有关软件库 STC1_COMPARE_SELFCHECK 的问题

Guru**** 2609955 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/766237/tms570lc4357-question-about-sw-library-stc1_compare_selfcheck

器件型号:TMS570LC4357

您好!

在 SAFETY 库2.4.0中、我们希望使用库 SL_Seltest_STC 函数、其中 testType= STC1_COMPARE_SELFCHECK。

布尔 SL_SelfTest_STC (寄存器 SL_SelfTestType testType、  
 寄存器布尔 BMODE、  
 寄存器 SL_STC_Config * 配置  
 )


当我们检查软件库和 TMS 技术手册时、我们观察到两者之间的差异:


软件库说明

使用参数配置时钟分频器寄存器 STCCLKDIV
  
使用参数配置寄存器 STCGCR0中的间隔计数 INTCOUNT
将寄存器 STCGCR0中的 REST/继续 Rs_CNT 配置为1
   
启用 STCSCSCR 寄存器中的 self_check_key 和 fault_ins 位
           
使用参数配置自检运行超时计数器 STCTPR[31:0]

通过将 STCGCR1[11:8]设定为0、选择两个内核进行并行自检

启用 STC 运行(STCGCR1[3:0]=0xA)
   
通过执行 CPU IDLE 指令将 CPU 置于 IDLE 模式。
asm (“WFI”)


说明技术参考手册(第10.10章)

"第1步:在 STCGCR0寄存器中将间隔计数配置为1。

段0
步骤2:启用 STCSCSCR 寄存器中的 self_check_key 和 fault_ins 位、并启动
通过启用段0的第一个间隔进行自检。 完成自检后、TEST_FAIL 位将会

STCGSTAT 寄存器中的位。 检查 STCFSTAT 寄存器中的 FSEGID 位是否被设置为00。
根据段0配置(并行或独立内核)、Core1_FAIL 或
将设置 CO2_FAIL 位。
步骤3:禁用 STCSCSCR 寄存器中 self_check_key 和 fault_ins 位中的一个或两个。
然后通过将 STCGCR0寄存器的位0编程为1来重新启动自检。 完成后
TEST、STCGSTAT 寄存器中的 TEST_FAIL 位将被清零"


这是我的问题
1 -在技术参考手册中、没有提到在步骤2中发生复位。 这是正常的吗?
2-在技术参考手册中,步骤2中“完成自检时”的标志是什么:通过设置 STCSEGPLR[1:0]= 0x0或设置 STCGCR1[3:0]= 0xA 或两者都是?
3- 在软件库中,技术手册的步骤3没有在测试结束时清除寄存器? 这是正常的吗?

此致、

François μ A

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    根据 TRM 图10-7自检硬件执行流程图、在以下情况下会生成 CPU 复位:
    -发现不匹配;
    -完成所有间隔- STC 完成。
    当 STC 完成时、STCGSTAT 中的 STC 完成标志被置位。

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

    感谢您的回答。 因此、我认为、当我们使用 STCSCSCR 寄存器中的 self_check_key 和 fault_ins 位时、我们将具有 CPU 复位。 正确吗?

    对于我的问题2和3、您能帮我吗?

    此致、

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

    Francois 您好、

    请参阅我们的 STC 专家的以下评论:

    2-在技术参考手册中,步骤2中“完成自检时”的标志是什么:通过设置 STCSEGPLR[1:0]= 0x0或设置 STCGCR1[3:0]= 0xA 或两者都是?

    >> STCSEGPLR[0:1]用于预加载将运行第一个间隔的段的地址。 将其设置为0x0、预加载段0第一个间隔的地址。
    STCGCR1[3:0]被设定为0x0A 以启用自检


    3-在软件库中,技术手册的步骤3没有在测试结束时清除寄存器? 这是正常的吗?

    >>当 STCGCR1中的 STC_ENA 密钥从禁用状态写入到启用状态时、STCGSTAT 中的两个状态标志将被清除为它们的默认值。
    第2135行:sl_stcREG1->STCGCR1 = STC_STCGCR1_STC_ENA;
    在 SL_selftest.c - Hercules SafeTI 诊断库版本2.4.0中


    此致、
    米罗