1.suggest parentheses around comparison in operand of '&' [-Wparentheses]
建议在'&'的操作数比较周围加上括号
警告语句
while(HWREG(PRCM_BASE_ADDR3 + CM_PER_SPI0_CLKCTRL) &
CM_PER_SPI0_CLKCTRL_IDLEST != CM_PER_SPI0_CLKCTRL_IDLEST_FUNC);
解决这个警告就是在与运算操作的两边加上括号,修改为
while((HWREG(PRCM_BASE_ADDR3 + CM_PER_SPI0_CLKCTRL) &
CM_PER_SPI0_CLKCTRL_IDLEST) != CM_PER_SPI0_CLKCTRL_IDLEST_FUNC);
2.suggest parentheses around '-' inside '>>' [-Wparentheses]
警告语句
Set = 0xFFFFFFFFu - (Period*(Time-DMTimerIsrExecTime)/Time)>>1;
解决这个警告就是在右移操作的两边加上括号修改为
Set = 0xFFFFFFFFu - ((Period*(Time-DMTimerIsrExecTime)/Time)>>1);
3.missing braces around initializer [-Wmissing-braces]
警告语句
typedef struct
{
UINT8 data_suc_flag;
UINT16 data_len;
UINT16 rec_data[16384];
}DATA_TYPE;
DATA_TYPE data[2]=
{
1, 16384, {65535,0,1,2,3},
1, 16384, {1,2,3,4,5,6},
};
这个警告是因为初始化缺少了大括号,使得初始化参数的分类不易区分,修改为
DATA_TYPE data[2]=
{
{1, 16384, {65535,0,1,2,3}},
{1, 16384, {1,2,3,4,5,6}}
};



