QUOTE (ex51 @ Dec 20 2010, 09:07)

И как тогда быть?
Мне всего-то надо передать в структуру адрес этого обработчика!
Тогда вы не можете сделать обработчик членом класса. Вы можете в классе сделать обычную функцию-член с принудительным инлайном, а вне класса написать обычный обработчик из которого вызывать эту функцию с конкретным объектом. И уже адрес обычного обработчика заносить в контроллер прерываний. Примерно так:
CODE
__attribute__((interrupt("IRQ")))
void uplink_handler (void)
{
Uplink.handler();
AT91C_BASE_AIC->AIC_EOICR = 0; // Reset AIC logic
}
__attribute__((interrupt("IRQ")))
void downlink_handler (void)
{
Downlink.handler();
AT91C_BASE_AIC->AIC_EOICR = 0; // Reset AIC logic
}
extern "C" void __low_level_init()
{
......
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US1] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | (AT91C_AIC_PRIOR_LOWEST + 1);
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US1] = (uint32_t)uplink_handler;
AT91C_BASE_AIC->AIC_SMR[AT91C_ID_US0] = AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL | (AT91C_AIC_PRIOR_LOWEST + 2);
AT91C_BASE_AIC->AIC_SVR[AT91C_ID_US0] = (uint32_t)downlink_handler;
......
}