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.

[参考译文] RM46L430:SafeTI 库使用#39;C#39;运行时库

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/600752/rm46l430-safeti-library-use-of-c-runtime-library

器件型号:RM46L430

您好!

为了使我的系统链接'afeTILib_RM46_LE.lib'、我还必须添加'rtsv7R4_T_le_v3D16_eabi.lib'、否则它将丢失 memcpy、memset、I_DIV0和 I_DIV32相关符号。

SafeTI 库文档是否涵盖了运行时库中由 SafeTI 库调用的函数?

如果没有、我可以找到运行时库安全文档吗?

此致、

标记。

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

    我想您会发现、即使不使用 SafeTI 诊断库、也需要链接运行时库、因此这不是库独有的问题。 当然、是否在代码中使用运行时库函数由您决定。

    我还将向我们的专家之一提出有关工具资质审核、特别是编译器资质审核套件的问题。 他们应该能够解决您在运行时库上的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mark、

    对于 TI ARM 编译器、我们提供 SafeTI 编译器资质审核套件、使客户能够验证其使用 TI ARM 编译器进行功能安全开发的资格:
      www.ti.com/.../safeti_cqkit

    但是、上述内容仅适用于编译器工具本身(解析器、优化器、代码生成器、汇编器、链接器)。  

    包含在安全应用程序中的所有代码(包括链接器引入的任何 RTS 库例程)都是客户的责任,以确保包含的函数在安全应用程序中按预期工作。

    此致、
    Greg

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

    你好、Chuck、

    感谢您的快速响应。

    但是、不需要链接运行时库:

    '如果链接器假设您使用的是 C 和 C++约定、并且程序的入口点(通常为 c_int00)未被任何指定的目标文件或库解析、则链接器会尝试自动为您的程序包含兼容性最高的运行时支持库。'

    我们没有在软件中使用运行时库中的任何符号、也没有链接它。 正是由于 SafeTI 库集成的开始、运行时库出现在生成的映射文件中。

    因此、这是 SafeTI 诊断库特有的问题、因为如果没有 SafeTI 库、我们就不需要它。

    我期待工具资质审核专家的回答。

    此致、

    标记。

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

    感谢您的快速响应。

    相关的 RTS 库例程未被我的安全应用程序使用、而是被 SafeTI 库使用。 我的安全应用程序不使用 RTS 库中的任何符号。

    如何确保仅供 SafeTI 库函数使用的 RTS 库函数符合预期?

    此致、

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

    请注意、这些函数包含在库的代码/目标文件中、并且代码/库已经过测试、如 CSP 中所述。 如果在未修改的情况下使用该库(即仅作为同一构建环境下或来自目标代码的库)、则 CSP 报告应按原样应用、并可免费提供。 如果对库进行了修改、或者库源代码是在不同的编译环境下编译的、例如新的编译器版本或编译器优化级别、 为了重新封装并生成新的测试证据、有必要使用 LDRA 工具购买完整的 CSP。 由于测试正在测试最终功能、因此预计运行时库是此验证/验证工作的一部分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Chuck、

    感谢您的更新。 为了确保我理解您的回答、请确认:

    由于我们未修改使用 RTS 库函数(即直接从交付的'.lib'中获取)、且这些函数仅供 SafeTI 诊断库使用、因此免费提供的 SafeTI 诊断库兼容支持包(CSP)将涵盖这些函数。 我们没有责任确保它们按预期运作。

    此致、

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

    让我确认这一点,但这接近我的预期建议。 请注意、虽然这也意味着 SafeTI 诊断库需要用作包含所提供目标文件的库、因为 CSP 报告涵盖了在其构建目标文件的特定构建环境下对 SafeTI 诊断库进行的测试。 我不清楚的是在特定构建环境下包含 RTS 库的影响。 即、 RTS 库根据 CCS 中使用脚本的需要进行重建、因此、如果 RTS 是为当前使用的编译器版本构建的、并且与不同、则有可能引入我们尚未考虑的另一个变量 在 SafeTI Diag 库目标文件的发起中使用的 RTS。