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.

[参考译文] RM57L843:安全与诊断库 v 2.40问题

Guru**** 655270 points
Other Parts Discussed in Thread: HALCOGEN, RM57L843, NOWECC
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/985934/rm57l843-safety-and-diagnostice-library-v-2-40-issue

器件型号:RM57L843
主题中讨论的其他部件:HALCOGENNOWECC
您好!
我添加了安全 TI 诊断库2.4.0、作为 HALCOGEN 4.07.01示例中提到的过程、
有些测试通过、有些测试失败、
比如、
EFuse 测试卡在 EFUSE_SELF TEST_STAK_IT_IT_ZERO 上、以下 API 会产生负结果并卡在 while (1)循环中
/*运行卡在零测试(参数2=true -等待完成)*/
RetVal = sl_SelfTest_EFuse (EFUSE_SELF 测试_卡在_TO_ZERO、TRUE、&CONFIG);
if (RetVal =false){while (1);}代码
2。L2RAM ECC 检查使能卡在 SRAM_ECC_ERROR_ENCERACK_1位上、以下 API 会产生负结果并卡在 while (1)循环中
布尔 RetVal;
SL_SelfTest_Result 结果;
RetVal = sl_SelfTest_SRAM (SRAM_ECC_ERROR_ENCED_1BIT、TRUE、结果);
if (RetVal =false){while (1);}代码
3、闪存 ECC 检查使能在 SRAM_ECC_ERROR_ENABLEGING_1位上卡住、以下 API 会产生负结果并卡在 while (1)循环中
布尔 RetVal;
SL_SelfTest_Result 结果;
/*需要从 RAM 位置运行闪存测试。 将闪存测试复制到 RAM */
uint32 i;
uint32 size=(uint32)&ulHighHandlerSize;
for (i=0;<size;i++))

(((char *)&ulHighHandlerStartAddr)[i]=((char……代码
4.外设 ECC 检查使能卡在 XXX_ECC_ERROR_ENABLEGING_1位上、以下 API 会产生负结果并卡在 while (1)循环中
if (sl_SelfTest_CAN (CAN_ECC_TEST_MODE_1BIT、SL_DCAN1)= false)

while (1);

if (sl_SelfTest_CAN (CAN_ECC_TEST_MODE_2BIT、SL_DCAN1)= false)

while (1);

if (sl_SelfTest_CAN (CAN_ECC_TEST_MODE_1BIT、SL_DCAN2)= false)

while (1);...代码
5。CCMR5TEST 使能在 CCMR5F_CPUCOMP_SELF TEST 上卡住、以下 API 会产生负结果并卡在 while (1)循环中、
布尔 RetVal;
SL_CCMR5F_FailInfo 故障信息;
RetVal = SL_SelfTest_CCMR5F (CCMR5F_CPUCOMP_SELF TEST、TRUE、&failInfo);
if (RetVal = false){while (1);}
if (failInfo.stResult!= ST_PASS)

while (1);

代码
STC 使能在 STC1_COMPARE_SELFCHECK 上卡住、以下 API 会产生负结果并卡在 while (1)循环中、
SL_STC_Config stcSelfTestConfig;
布尔 bResult;
stcSelfTestConfig.stcClockDiv = 2;/* STC 时钟分频器= 1 */
stcSelfTestConfig.intervalCount = 1;/*仅一个时间间隔*/
stcSelfTestConfig.restartInterval0 = true;//从间隔0...Code 开始
其他 API 正在通过、例如 RAM、ROM、VIM 的 sl_SelfTest_PBIST
请向我推荐解决方案、
谢谢、
Vikas N.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    RM57具有 EPC 模块。 EPC 捕获可纠正错误的地址、并将地址放入  内容可寻址存储器(CAM)中。 如果 CAM 中已存在错误地址,则会丢弃该错误,并且不会向 ESM 生成错误。

    您可以使用 SDL 中包含的示例项目吗?

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

    您好、Qj Wang、

    感谢您提供详细信息

    我已经尝试过您建议的示例、代码卡在 HL_SYS_STARTUP.c 行号460中

     抱歉、我无法将上述代码文件作为图像快照附加。 但是、如果您可以在您所在的位置打开代码、行号已在上面提到(Ln-460) ​

    请建议解决方案。

    谢谢你

    Vikas N.

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

    大家好、Vikas、

    尝试一下。  

    请使用"拖放"放置图像文件。 此时,Insert->Image/video/files 不起作用。  

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

    QJ Wang、您好!

    请更新上述查询、  

    图像已更新。

    谢谢你

    Vikas N

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

    大家好、Vikas、

    我将运行测试以查看是否可以得到相同的问题。

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

    您好、Qj Wang、

    感谢您编译并从您的角度运行测试、是否有任何相同的更新。

    从我的侧面而不是 halcogen 示例、我从 Rm57l843的\SafeTI 诊断库\2.4.0\build\RM57L843_Noos 导入了示例代码、并测试了所有 API "app_main_Noos.c"、并观察到所有 API 在 periodicSTFailCount = 44时出现故障、

    请建议解决方案。

    谢谢你  

    Vikas N

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

    QJ Wang、您好!

    我们在 SAFETY 库中所做的以下更改

        /* Check if there were ESM group3 errors during power-up.
         * These could occur during eFuse auto-load or during reads from flash OTP
         * during power-up. Device operation is not reliable and not recommended
         * in this case.
         * An ESM group3 error only drives the nERROR pin low. An external circuit
         * that monitors the nERROR pin must take the appropriate action to ensure that
         * the system is placed in a safe state, as determined by the application.
         */
        if ((esmREG->SR1[2]) != 0U)
        {
            //for(;;)
            //{
            //}/* Wait */
        }
    
        /* Initialize System - Clock, Flash settings with Efuse self check */
        systemInit();
    

    之所以进行此更改、是因为 esmREG->SR1[2]值为8、 sl_ESM_nError_Active 状态为 false、在 sl_ESM.c 文件中该值为 true、

    通过进行这些更改、除 CPU 检查和闪存 ECC 检查外、所有 API 现在都可以正常工作、

    请建议解决方案并确认更改是否有效、

    谢谢你。

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

    大家好、Vikas、

    不、这不是一个好的解决方案。 此标志在闪存中设置不正确或不完整的 ECC 值。

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

    您好、Qj Wang、

    1.您是否从 \SafeTI 诊断库\2.4.0\build\RM57L843_Noos 中编译和调试/检查所有 API 表单并将其从 Rm57l843    中删除。

    2.如何添加 ECC 值、

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

    CCS 可在加载程序时生成 ECC

    或者使用链接器 cmd 文件生成 ECC。 这将为整个闪存生成 ECC

    software-dl.ti.com/.../index.html

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

    您好、QJ Wang、

    在 CCS 中找不到"On-Chip Flash -> Auto ECC Generation (片上闪存->自动 ECC 生成)"选项、

    请提供更多信息。

    谢谢你

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

    您好、Qj Wang、

    是否可以使用适用于 Rm57l843器件的 nowECC 软件为闪存生成 ECC 数据?

    谢谢你。

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

    1.首先连接目标板

    2.打开 CCS Debug 透视图

           

    3.单击"工具"

    4.您将在下拉菜单列表中看到"on-Chip_Flash"

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

    您好、Qj Wang、

    启动文件中的闪存 ECC 测试不起作用、因为 CAM 索引为8、原因是代码在数据输入异常处卡住、

    我实施了变通办法"更改"表单发行说明  

    SafeTI Hercules 诊断库发行说明(修订版 A)  AS、

    但 CAM 索引值仍为8、代码也变得异常、

    请建议解决方案、

    谢谢、

    Vikas N.

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

    抱歉我迟到了回复。 您是否找到了此问题的解决方案?