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:STC

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1101585/tms570lc4357-stc

部件号:TMS570LC4357

王工您好:

    关于STC功能,我想咨询一下。如果intervalCount = 10,那么是每次之执行interval 10还是从1执行到10?restartInterval0 起到什么作用啊?

stcSelfTestConfig.stcClockDiv = 0;/* STC时钟分配器= 1 */
stcSelfTestConfig.intervalCount = 10;  
stcSelfTestConfig.restartInterval0 = TRUE;/*从间隔0开始*/
stcSelfTestConfig.timeoutCounter = 0xFFFFFFFFFF;/*超时计数器*/
SL_SelfTest_STC (STC1_RUN,TRUE,&stcSelfTestConfig);

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

    您可以一次运行完整测试(区段0为125),或 运行单个间隔(例如间隔0)或多个间隔。

    对于多间隔测试,您可以从上次执行的间隔(例如间隔11)开始测试,也可以从开始(间隔0)重新开始测试。

    RS_CNT=1在您的配置中,测试将从间隔0重新开始。

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

    王工:

        1)按照我上面写的代码,是不是每次都是执行interval  0到10。

        2)如果我想每次只执行interval10、11这两个,代码该怎么写啊。

        3)是不是只要执行了STC测试,芯片就会重启。

        4)STC1区段0中每个interval具体测试了哪些内容,我们从哪看啊。

        5)stc测试enable后(STCGCR1[3:0]= 0xA),芯片是不是就只进行stc测试,其他代码就不运行了。

        6) GCLK1=330MHz,stcSelfTestConfig.stcClockDiv = 0;上图中比如intervals 0,测试时间就是多久啊,谢谢。

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

    每个间隔都是一个单独的测试,用于测试内核的不同区域。 因此,必须知道,测试设计用于使用存储在STC ROM中的微代码在门级测试内核。 执行的每个单独间隔将获得总浇口的一定百分比的覆盖范围。 例如,如果重复执行间隔1,则只能获得56.85 % 覆盖范围,而不能获得更多。 如果添加第二个间隔,您将获得大约额外的8 % 覆盖范围,第三个间隔将提供+大约4.5 % ,并且只有在执行了所有125个间隔时,您才能获得完整的95.51 % 覆盖范围。


    考虑到这一点,执行CPU BIST的一种方法是在应用程序中定期执行几个时间间隔。 例如,如果您有一个500us主循环,您将执行21个间隔,从下一个循环中最后执行的间隔开始,直到执行所有125个。 这意味着在获得覆盖的全部功能之前,主循环需要6次迭代,但在应用程序的活动执行期间,您会获得此功能。 关键是要了解在CPU BIST期间,CPU对应用程序完全不可用,因此您必须根据应用程序处理这段不响应时间的能力来规划间隔数。

    最后,STCGC0寄存器具有一个字段,该字段确定了在您的帖子中提到的每个循环/实例化执行的间隔数。 只要您将RS_CNT字段设置为从上一间隔继续运行STC,您将始终获得连续。 您可以通过查看STCCICR中给出的间隔计数来检查此情况,您将看到每个间隔执行的增量,并允许您监控到目前为止已达到的覆盖水平。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    14357 1)408.2274万)按照我上面写的代码408.2274万按照我上面写的代码,是不是每次都是执行interval  0到10。

    是的,它每次从间隔0重新启动。

    24357 2)408.2274万)如果我想每次只执行interval10408.2274万如果我想每次只执行interval10、11这两个,代码该怎么写啊。

    不能,它必须从间隔0运行,或者从 当前间隔计数器中的当前间隔运行,该计数 器指定上次执行的间隔数。

    </s>4357 408.2274万408.2274万    3)是不是只要执行了STC测试,芯片就会重启。[/QUOT]

    是的, STC会在测试完成后生成CPU重置,而不管测试是否通过。

    [报价userid="50.7609万" url="~/support/mspectros/arm-based mspectros/group/arm-based mspectros/f/arm-based mspectros/110.1585万/tms570lc4357-STC/4082274#4082274"] 44357 4)408.2274万)STC1408.2274万STC1段0中每个interval具体测试了哪些内容,我们从哪看啊。

    它在晶体管级别测试CPU核心逻辑。 每个时间间隔涵盖CPU核心的一个专用区域,每个时间间隔的逻辑门数可能相同。  

     54357 5)408.2274万)stc测试enable后408.2274万stc测试enable后(STCGCR1[3:0]= 0xA),芯片是不是就只进行stc测试,其他代码就不运行了。

    是的, 在CPU BIST期间,CPU对应用程序完全不可用。

     64357 6)408.2274万) GCLK1=330MHz408.2274万GCLK1=330MHz,stcSelfTestConfig.stclockDiv =上图中比如intervals /quote,测试时间就是多久啊[

    最大CPU BIST时钟为110MHz,因此 STCCLKDIV=0不是有效值。

    请参阅表10-2中列出的测试周期。