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.

[参考译文] MSPM0G3519:MSPM0-DIAGNOSTIC_LIB 编译错误:使用未声明的标识符'DL_CRC_32_polynomical'

Guru**** 2392145 points
Other Parts Discussed in Thread: MSPM0G3519, MSPM0G3507, MSPM0-SDK, MSPM0L1306

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1517065/mspm0g3519-mspm0-diagnostic-lib-compile-error-use-of-undeclared-identifier-dl_crc_32_polynomial

器件型号:MSPM0G3519
Thread 中讨论的其他器件: MSPM0G3507MSPM0L1306

工具/软件:

团队、

我们的客户尝试为编译 DiagLib MSPM0G3519 一方 mspm0_sdk_2_04_00_06 并得到这个

 

./../Appl/Src/DiagLib /src/source/flash_test.c:433 src:23:错误:使用未声明的标识符"L_CRC_32_polynomical"

 433 |    DL_CRCP_INIT (CRC、DL_CRC_32_polynomial、DL_CRCP_BIT_NOT_REVERSE、

     |                      ^

..C99/isource/flash_test.c:464:5 /../Appl/Src/DiagLib:警告:调用未声明的函数"DL_CRC_disablePower";src 和更高版本不支持隐式函数声明[-Wimplicate-function-statement]

 464 |    DL_CRC_disablePower (CRC);

     |    ^

生成1个警告和1个错误。

 

编译选项:

 

-March=thumbv6米

-mcpu=cortex-m0plus

-mfloat-abi=soft

-mlittle-endian

-mthumb

-gdwarf-3

-save-temps=obj

-D_MSPM03519__

-c

 

  • MSPM0G3519具有 CRCP、但 DL_CRC_32_polynomial 似乎仅在 dl_crc.h 中定义、而不在 dl_crcp.h 中定义
  • 第464行对 DL_CRC_disablePower (CRC)而非 CRCP 的引用不正确。

 

声称 Diaglib 支持 MSPM0G3519、但似乎并不全面? 客户不确定是否应在 E2E 上发布此内容、因为此时访问受到限制。

我已发布为 TI 员工。

 

此致、

CY

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

    团队、

    该库可能还有另一个问题。

    指定 CPU_TEST.asm

     

    MSPM0_DIAG_cpuTest:

        /*存储 R0和 R1。 R0和 R1包含指向 CPU 测试结构和的指针

        * CPU 测试结果

        */

        推送  {R0-R1、R4-R7}

        /*确定是否启用故障注入*/

        LDR   R3、[R0] <-这是字读取、R0中的地址应是字对齐。

     

    然而,当 tiarmclang 编译器 -fshort-enums 使用选项(默认)、然后是第一个参数的地址 cpuTestConfig 布局示例

     

    MSPM0_DIAG_cpuTest (&cpuTestConfig、&cpuTestResult);

     

    不能因为枚举而字对齐 MSPM0_DIAG_TEST_ININT_FAULT 是字节大小。 LDR R3、[R0] 将导致硬故障。

    我们认为不需要对齐字 cpuTestConfig 结构或用法 -fno-short-enums

     

    上述内容是否合理?或者我们在这里遗漏了一些内容?

    CY、

    CY

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

    您好、Chris、

    您知道客户使用哪个诊断库版本吗? 他们从哪里应用这个库?

    我先回答 CRC 问题:

    我认为此 CRC 问题是由 MSPM0G3507使用 CRC 模块、但 MSPM0G3519使用 CRCP 模块引起的。 因此、如果我们直接将 MSPM0G3507工程迁移到 G3519器件、CRC 器件可能会出现此类问题。 一种简单的方法是将 CRC API 和实例的"CRC"更正为"CRCP"。

    此致、

    Pengfei

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

    嗨、Pengfei、

    来自客户:

    "

     

    MSPM0诊断库0.00.00.01于2023年8月4日发布

    MSPM0 SDK 2.04.00.06

    TI ARM Clang 4.0.2.LTS

     

    编译过程不使用 Composer Studio、而是使用具有库文档中选项的 CLI。

     

    从文档可以推断出、当用户可以自由修改代码时、应按原样使用库、而不是参考实现。

     

    请注意、MSPM0诊断库0.90.00.01尚未通过任何特定标准的第三方评估或认证。  但是、MSPM0诊断库1.0.0.xx 或更高版本遵循了德州仪器(TI)内部软件开发的功能安全质量流程、该流程已通过认证、符合 A  仅展示系统功能  高达 SIL-3和 ASIL-D 级

     

    声称的是库支持、我假设已针对此处列出的所有器件 (MSPM0-SDK DIAGNOSTIC_LIB 驱动程序或库| TI.com)进行了测试。 显然、MSPM0G3519并非如此。 那么、关于质量合规性的索赔背后有什么原因? 该库是否可以完全可信地用于安全设备(包括 G3519)?

     

    此外、我没有看到安全器件可能需要的任何闪存或 RAM ECC 电路测试。

    "

    提前感谢您在这里提供的任何指导。

    此致、

    Chris

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

    Pengfei -如果我们可以、还有一个问题: 如何使用此库测试分配给堆栈的 RAM? 整个库都使用 C 语言、甚至中午破坏性测试也会使用正在被测试修改的栈。  ?

    CY、

    Chris

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

    您好、Chris、

    澄清一下、MSPM0"诊断库"是为 IEC60730标准(目标为 B 类)设计的。 对于 ISO26262、还有另一个"安全库"支持 MSPM0G3519器件的 ASIL-B 级别。 很抱歉、由于这些早期描述而令人困惑。  

    对于诊断库、我们有一个内部1.0版本、已获得 TUV IEC60730 B 类认证。 我会通过电子邮件将其发送给您。 但它仅支持 MSPM0G3507和 MSPM0L1306器件、对于 MSPM0G3519诊断库开发、它当前可能不处于高优先级。

    您能否与客户核实他们需要哪一个? IEC60730或 ISO26262。

    我想我们可以通过电子邮件进一步沟通。

    此致、

    Pengfei