Не, вы что-то странное хотите...
extern "C" void Nuzhnij_Isr_Handler();
class BlaBla_t {
friend void Nuzhnij_Isr_Handler();
static void Handler();
public:
};
void Nuzhnij_Isr_Handler()
{
BlaBla_t::Handler();
}
void (* const g_pfnVectors[])(void) =
{
/* Core interrupt vectors */
(intfunc)_estack,
Reset_Handler,
//...
(intfunc)&SysTck::ISR,
Там то ли стартап был cpp. то ли ещё как-то...
Обработчик прерывания с extern "C", то бишь на CНе правильно. Если файл сишный, то его компилируют с це-режиме, а си-компилятор классов и их друзей не понимает - ошибку выдаст. Значит функция плюснутая. extern "C" она для того чтобы линкер указатель на неё в таблицу смог положить.
Или как вариант функцию-обработчик прерывания сделать статическим членом класса, но как тогда прописать ее в векторВ АВР такое делалось без проблем, а тут не хотят они...Но где-то я видел чей-то проект, где в таблице векторов было что-то такое:
если там все указатели типа void(*p)(void)Привести к типу не пробовали? P.S. А нельзя ли таблицу векторов в cpp-файле объявлять?