Пытаюсь запихать. Запихал:
Код
class TUart1 : public TCustomUart
{
public:
TUart1(uint32_t baudrate) {hw_init(baudrate);}
protected:
...
virtual void hw_init(uint32_t baudrate);
virtual void write_tx_reg(char ch) { TXBUF0 = ch; }
static interrupt(UART0RX_VECTOR) usart0_rx(void);
static interrupt(UART0TX_VECTOR) usart0_tx(void);
};
...
interrupt(UART0TX_VECTOR) TUart1::usart0_tx(void)
{
OS::TISRW ISR;
char ch;
if (Uart1.TxChannel.get_count())
{
Uart1.TxChannel.pop(ch);
TXBUF0 = ch;
}
else
{
Uart1.tx_active = false;
}
}
Делаю это для того, чтобы в прерывании обращаться к private-членам класса. Вроде всё получается. Единственное неудобство состоит в том, что пока я не напишу где-нибудь
Код
void TUart1::hw_init(uint32_t baudrate)
{
typedef void (* Handler)(void);
volatile Handler ptr;
...
ptr = &usart0_rx;
ptr = &usart0_tx;
}
, обработчики прерываний не линкуются. Может есть какой-то более цивильный способ?
Ну и вообще, хотелось бы не статическую функцию, а просто функцию класса

ЗЫ. msp-gcc.
Если бы я знал, что такое электричество...