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.

[参考译文] 编译器/MSP430F5438A:ISRA 10.1 在ISR上抛出警告

Guru**** 2587365 points
Other Parts Discussed in Thread: MSP430F5438A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/617014/compiler-msp430f5438a-misra-10-1-throwing-warning-on-isr

部件号:MSP430F5438A

工具/软件:TI C/C++编译器

大家好,

 我正在使用CCSv7,并在CCS内激活了MISRA检查。

我有下面的代码片段,这些代码会给我发出警告:

//************************************************************************************************
//
//这是USI_A0中断向量服务例程。
//
//************************************************************************************************
void USI_A0_ISR(void)__attribute_(interrupt (USCI_A0_vector));//#1393-D (MISRA-C:2004 10.1 /R)如果整数类型的表达式不是转换为相同符号的更宽整数类型,则不应将其隐含转换为不同的基础类型  


空USI_A0_ISR(void)

SWITCH(__均匀_IN_RANGE((((uint16_t)UCA0IV,(uint16_t)4))

//矢量2 - RXIFG
案例2U:
uart0rx[uart0RxCurrSize]= USCI_A_UART_receiveData(((uint16_t)USI_A0_base);
中断;
默认值:中断;
}
}

请帮助我理解并解决问题。

谢谢,此致,

安杰特

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

    包含文件MSP430-h及其相关文件可能未经过MISRA兼容性测试。  在特定情况下,头文件 msp430f5438a.h位于类似的目录中...

    C:\ti\ccsv7\CCS_base\MSP430\include 

    ...有此源代码行...

    #define USI_A0_Vector (57 * 1U) /* 0xFFF2 USCI A0接收/发送*/ 

    此MISRA检查报告在该乘法表达式中混合了类型(int和unsigned int)。  

    一种解决方法是将"1U"更改为"1"。  但这是头文件中的更改,不受编译器开发小组控制。  我建议您在MSP430论坛中开始新的主题。  或者,如果您愿意,我可以将此主题移至该论坛。

    谢谢,此致,

    -George

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

    请帮助我在MSP430论坛中移动此主题。

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

    您好,George,

    是否有任何更新?

    谢谢,此致,

    安杰特