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.

[参考译文] MSP430FR5738:头文件变量类型冲突

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1051798/msp430fr5738-header-file-variable-type-conflicts

器件型号:MSP430FR5738
主题中讨论的其他器件: MSP430FR59471

我将使用用于 c 的 MSP430头文件、特别是 msp430fr5738.h 和 msp430fr59471.h 通过 MISRA 代码检查测试运行代码会由于这些头文件中的#define 导致一些违反。 尤其是寄存器访问。 该寄存器定义为无符号整数、但位设置定义为有符号整数。 由于数据类型不匹配、这会导致违反。

例如、在示例项目中、第一行通常如下所示:

WDTCTL = WDTPW + WDTHOLD;

 

WDTCTL 定义为 SFR_16BIT (WDTCTL)

其中:#define SFR_16BIT (address) extern volatile unsigned int 地址

WDTPW 定义为(0x5A00)

WDTHOLD 定义为(0x0080)

 

WDTCTL 是一个无符号整数、而 WDTPW 和 WDTHOLD 是定义为有符号整数的。  

TI 是否提供了这些头文件的版本以及寄存器分配的正确定义? 例如、WDTPW AS (0x5A00U)? 因为这样做实际上是为了通过业界常用的 MISRA 软件标准。

谢谢、

Matt

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

    您好、Matt、

    我们不声称 MSP430代码符合 MISRA 标准、但我们确实提供了供用户自行更改的文件。 尽管这些更改的更改和结果由用户决定。 不过、专门为汽车使用而制作的代码示例符合 MISRA 标准。

    至于头文件、目前我们没有使用不同 声明的预制头文件。

    此致、

    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="396249" URL"~/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1051798/msp430fr5738-header-file-variable-type-conflicts "] TI 是否提供了这些头文件的一个版本、其中包含寄存器分配的正确定义?

    搜索发现增强 更新 RTS 文件与 MISRA 兼容、这是10年前在 TI MSP430代码生成工具上提出的、其中包含"更新 RTS 文件以符合 MISRA 标准"的说明。

    不确定何时/是否将进行更改;当前状态标记为"已计划"。