对于430中的硬件中断程序,采用TI自带的编译器可以编译通过,但是如果采用GNU的GCC编译器,就会报错,程序及报错信息如下:
程序:
#pragma vector=USCI_A1_VECTOR
__interrupt void USCI_A1_ISR(void)
{ switch(__even_in_range(UCA1IV,0x08))
{
case 0: break; // Vector 0 – no interrupt
case 2: // Vector 2 – RXIFG
if(bytesAvail > sizeof(uartRXBuf))
{
bytesAvail = 0;
}
uartRXBuf[bytesAvail] = UCA1RXBUF;
bytesAvail++; runUARTTerminal();
break;
case 4: // Vector 4 – TXIFG
break;
default:
break; }
}
报错信息:
../board/outerUart.c:124:0: warning: ignoring #pragma vector [-Wunknown-pragmas]
#pragma vector=USCI_A1_VECTOR
^
../board/outerUart.c:125:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
__interrupt void USCI_A1_ISR(void)
^
../board/outerUart.c: In function 'uartRXByte':
请提供解决办法
灰小子:
移植一下代码吧。
CCS基于Eclipse,GNU的GCC和CCS编译环境差别比较大
TI中文支持网



