MISRA - C: 2012规则10.3澄清

73(30天)
你好,我需要你的支持在MISRA违规使万博1manbetx用polyspace错误发现者。
我试图把以下变量:
-in.ecbk
-in.datain
-in.stat
-in.scrc
用这个行:
在。ecbk = ((pga411_spi_frame_t *) (&Rxbuff[我]))- > ecbk;
在。datain = ((pga411_spi_frame_t *) (&Rxbuff[我]))- > datain;
在。统计= ((pga411_spi_frame_t *) (&Rxbuff[我]))- >统计;
在。公司= pga411_crc2 (in.frame);
因为我没有任何警告与我们的编译器在编译阶段,我有一个在polyspace MISRA违反10.3规则:
MISRA - C: 2012 10.3 (必需)
一个表达式的值不得分配给一个对象具有窄的基本类型或不同的基本类型分类。
表达式(基本类型在32位无符号)被分配给一个对象具有窄的基本类型(8位无符号)
我试着解决它与铸造:
在。ecbk = (uint32) (((pga411_spi_frame_t *) (&Rxbuff[我]))- > ecbk);
无论如何违反是一样的:
MISRA - C: 2012 10.3 (必需)
一个表达式的值不得分配给一个对象具有窄的基本类型或不同的基本类型分类。
表达式(基本类型在32位无符号)被分配给一个对象具有窄的基本类型(8位无符号)
我怎么能解决MISRA违反呢?
谢谢,
你的理解我插入多行代码:
静态挥发性uint32 Rxbuff (PGA411_REG_COUNT + 1);
类型定义联盟
{
/ *输出数据帧(从主到奴隶)* /
结构体
{
/ *位域倒序,从0 * /
uint32 mcrc: 6;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32保留:2;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32 dataout: 16;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32 addr: 8;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
};
/ *输入数据帧(从奴隶主人* /
结构体
{
uint32公司:6;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32统计:2;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32 datain: 16;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
uint32 ecbk: 8;/ * polyspace MISRA2012:6.1(理由:低)“Autosar类型用于字段”* /
};
/ *,终于整个框架* /
结构体
{
uint32框架;
};
}pga411_spi_frame_t;
静态Std_ReturnType CDD_ExtResolver_Processing (void) {
pga411_spi_frame_t;
in.frame = 0 x0u;
uint8;/ *这是指数* /
uint8process_result = CDD_ExtResolver_E_NO_ERROR;
Std_ReturnTyperc = E_NOT_OK;
CDD_ExtResolver_E_element_telement_fault;
(i = 1 u;我< (PGA411_REG_COUNT + 1);我+ +){
在。ecbk = ((pga411_spi_frame_t *) (&Rxbuff[我]))- > ecbk;
在。datain = ((pga411_spi_frame_t *) (&Rxbuff[我]))- > datain;
pga411_regs(张)。real_val = (uint16) in.datain;
在。统计= ((pga411_spi_frame_t *) (&Rxbuff[我]))- >统计;
在。公司= pga411_crc2 (in.frame);
1评论
基督教的吟游诗人
基督教的吟游诗人 2023年1月5日
联系技术支持将是值得的繁殖违反10.3的一个示例。万博1manbetx从我身边我只能复制它 在。公司= pga411_crc2 (in.frame); 但我没有确切的函数的原型pga411_crc2 ()。此外,它将wortht提供Polyspace错误发现者释放作为我们在每个新版本正在改善彻底检查。

登录置评。

答案(0)