Я задавал этот вопрос на форуме SCB, но не получил ответа
Я пытаюсь перенести некоторые проекты из uVision ide в SCB.
Проблемы начались с реализации таблицы векторов. Например, у меня есть простой код C ++
#define STACK_TOP 0x20000800
typedef void (*handler_ptr)();
void ResetHandler() { while (1); }
void NMIHandler() { while (1); }
void HardFaultHandler() { while (1); }
__attribute__ ((section("vectors"))) handler_ptr const vector_table[] = {
(handler_ptr) STACK_TOP,
ResetHandler,
NMIHandler,
HardFaultHandler,
};
Этот код не компилируется, поскольку библиотека SCB ищет объявление "int main (void)".
Хорошо, я могу добавить эту функцию, но тогда SCB игнорирует мою реализацию векторной таблицы и использует собственную (если я вызываю функцию с адресом в VT, я вижу фиктивные обработчики SCB).
Как мне переписать реализацию SCB VT моей?
Пожалуйста, не предлагайте использовать специальные имена функций SC3 (нецелесообразно поддерживать 2 IDE) или перемещать таблицу векторов в другое место в памяти.
__attribute__ ((section(".isr_vector"))) void (* const g_pfnVectors[])(void)
из "Luminary Micro" "startup_gcc.c - код запуска для использования с инструментами GNU" тоже не действует
Спасибо.