工具/软件:TI C/C++编译器
我将固件从TI V15.??.LTS升级到最新的16.9 编译器.G.0.LTS,并且在构建项目时出现了一些新错误。 我不清楚该怎么办。 该代码有效,但我还在半路上开发,需要添加更多内容,所以我现在想处理这些警告,这样它不会在以后变成一个潜在的更大问题。
我的固件编码很乱,所以不确定我在看什么。
这是代码。
int UART_getchar (void)
{
int retval =-1;
字符c =-1;
如果(ring_buffer_get (_rbd,&c)== 0){
RetVal =(int) c;
}
返回retval;
}
行char c =-1; 已导致警告"Integer conversion caused in a change of sign" (整数转换导致符号更改),当然,这是因为它是Char。 但是 ,当我将其更改为int C =1时,我在中断向量处得到了一个新的错误。
#pragma vector= USCIAB0RX_vector
__interrupt void RX_ISR(void)
{
IF (UCA0IFG和UCRXIFG)
{
const char c = UCA0RXBUF;
/*清除中断标志*/
UCA0IFG &=~UCRXIFG;
ring_buffer_put (_rbd,&c);
}
}
警告读数为"pragma vector=接受数字参数或"未使用的中断",但不接受 USCIAB0RX_vector。
代码同样有效...但这些对我来说是奇怪的警告。 我不知道为什么将变量C从一个字符更改为一个INT会导致这个新的警告。