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.

[参考译文] RM44L920:使用引导加载程序将安全诊断库部署到工程中

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1437840/rm44l920-implementing-safety-diagnostic-library-to-the-project-with-bootloader

器件型号:RM44L920
主题中讨论的其他器件:HALCOGEN

工具与软件:

您好!

我正在尝试将安全诊断库(SDL)集成到已有引导加载程序的现有项目中。 引导加载程序基于 TI 的 UART 引导加载程序示例。 对于在此设置中实施 SDL 的最佳实践、我非常感激。

  1. 是否有必要在引导加载程序和主应用程序中实施 SDL?或者仅将 SDL 添加到其中一个应用程序是否足够?

  2. 文档或示例:是否有任何资源、指南或示例涵盖了带有引导加载程序的项目中此类 SDL 集成? 我无法找到任何东西。

提前感谢您提供任何建议或见解。

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

    你好、llija、

    (+) SAFETI_DIAG_LIB:关于通过引导加载程序集成 SafeTI 库的指导-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    没有将 SDL 集成到应用程序的特殊指导或文档。

    您可以参考现有的 SDL 示例并以相同的方式执行。

    您可以使用部分例程、也可以根据您的应用程序要求完成 SDL。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    您的答案很一般、我以前在论坛上看到过类似的答案、但它们并没有详细解决问题。 我没有找到任何关于使用引导加载程序实施 SDL 的具体指导。

    您能否回答有关 SDL 集成的更具体问题? 在引导加载程序中、我有一个sys_startup.c由 HalCoGen 生成的文件、它与主项目中的文件类似。 我已经sys_startup.c根据 SDL 演示示例实现了。 我是否需要在引导加载程序的启动例程中进行调整? 具体来说、我应该修改或注释掉与读取复位原因、执行初始化函数或在引导加载程序中运行 PBIST 相关的部分吗?

    当 SDL 与引导加载程序设置集成时、有关处理这些部件的任何详细指导都将非常有用。

    谢谢、此致、
    Ilija。

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

    尊敬的 Ilija:

    我们所拥有的只是 SDL 演示。  

    甚至我也会参考 SDL 演示代码并根据代码进行回答。 我的建议是、请参考 SDL 演示项目并根据该项目在中创建您的项目。 如果您在实现这一目标方面遇到任何困难、我将与我一道工作、并提供建议。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    sys_startup.c按照 SDL 演示应用程序实施了我的文件。 如果在主应用程序之前未刷写引导加载程序、则一切正常。 但是、当引导加载程序存在时、我的主应用程序会卡在以下异常处理程序中、并R14 (undef)显示寄存器0x00060004、这不是有效的存储器地址:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #ifdef __TI_COMPILER_VERSION__
    #pragma INTERRUPT ( _excpt_vec_udef_instr, UDEF)
    void _excpt_vec_udef_instr()
    #endif
    #ifdef __IAR_SYSTEMS_ICC__
    __irq __arm void _excpt_vec_udef_instr()
    #endif
    {
    while(1);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我在调试模式中跟踪了该问题、发现该问题发生在_SL_Kickoff_STC_execution()调用函数作为的一部分之后SL_SelfTest_STC(STC_COMPARE_SELFCHECK, TRUE, &stcSelfTestConfig)

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if (RESET_TYPE_DEBUG == reset_reason)
    {
    /* Make sure that the CPU self-test controller can actually detect a fault inside CPU */
    stcSelfTestConfig.stcClockDiv = 0; /* STC Clock divider = 1 */
    stcSelfTestConfig.intervalCount = 1; /* One interval only */
    stcSelfTestConfig.restartInterval0 = TRUE; /* Start from interval 0 */
    stcSelfTestConfig.timeoutCounter = 0x1; /* Timeout counter*/
    _SL_HoldNClear_nError();
    /* mask vim interrupts before running STC */
    vimREG->REQMASKCLR0 = 0xFFFFFFFFu;
    vimREG->REQMASKCLR1 = 0xFFFFFFFFu;
    vimREG->REQMASKCLR2 = 0xFFFFFFFFu;
    vimREG->REQMASKCLR3 = 0xFFFFFFFFu;
    /* ensure no pending ESM GRP2 errors before running STC */
    if(esmREG->SSR2 == 0u)
    {
    //! Executes CPU Logic Built-In Self Test using Self-Test Controller
    SL_SelfTest_STC(STC_COMPARE_SELFCHECK, TRUE, &stcSelfTestConfig);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此问题是否与reset_reason价值有关? 引导加载程序是否可能会更改复位原因或干扰 STC 初始化?

    如果您了解可能会发生这种情况的原因以及是否需要在引导加载程序或主应用程序中执行额外步骤来处理此情况、我将不胜感激。

    谢谢、此致、

    Ilija。

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

    尊敬的  Ilija:

    此问题是否与该reset_reason值有关? 引导加载程序是否可能会更改复位原因或干扰 STC 初始化?

    实际上、引导加载程序会擦除复位原因、我在我的一个旧线程中发现了这个问题:

    (+) TMS570LC4357:FreeRTOS 引导加载程序应用在 I2C 中遇到问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    请参阅上述主题、并 根据该测试结果进行修改。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 

    对不起,延迟响应,我被其他问题卡住.

    我是否需要注释掉引导加载程序中 SYS_exception 的擦除?

    您或许可以尝试一下。

    就我个人而言、我从未 同时对引导加载程序和应用程序进行过_SL_Kickoff_STC_execution API 的测试。

    ——
    谢谢、此致、
    Jagadish。