Does anyone know why can't I access member variables from within __interrupt?
- I have a class (UARTBuffer) defined as following:
- class UARTBuffer: public __HHI__::DataBuffer {
- public:
- UARTBuffer();
- virtual ~UARTBuffer();
- void Init();
- void FetchCmdToQueue();
- void SendData(unsigned char *);
- void DispatchCmd(void);
- unsigned char PackDataForRF(char, char, char, void *, char);
- private:
- char cmdSupported[10];
- _cmdQueue qList[QUEUE_SIZE];
- _cmdQueue uartCmd;
- _cmdQueue uartRcv;
- _respQueue uartTx;
- char RespData[RESP_DATA_SIZE];
- char qCount;
- char qFront;
- char qRear;
- char lastRefNum;
- char pkRefNum;
- static unsigned char uartRcvIndex;
- unsigned char uartTxIndex;
- unsigned char RespDataCount;
- unsigned char *ptrUartTx;
- unsigned char uartStatus;
- aa.
bb. private:
- cc. static __interrupt void USCIA1_UART_ISR(void);
dd. };
- I would like to access its member “uartRcvIndex” in interrupt:
- #pragma vector=USCI_A1_VECTOR
- __interrupt void UARTBuffer::USCIA1_UART_ISR(void)
- {
- motor.DisableInterrupts();
- if (UCA1IFG & UCRXIFG)
- {
- // Handle UART RX event.
- if (uartRcvIndex > CMD_SIZE)
- uartRcvIndex = 0;
- Compiler complains:
- undefined first referenced
- symbol in file
- --------- ----------------
- __HHI__::UARTBuffer::uartRcvIndex ./Source Files/UARTBuffer.obj