c + + 14通过模板中断向量表

时间:2018-09-22 16:31:02

标签: c++ c++14 stm32

我正在尝试使用c ++ 14创建STM32的中断表。使用Base class属性和适当的ld脚本设置此表可以正常工作:

section

我还使用类似的模板实现了某种可移植性:

[[gnu::section(".interrupt_vector_table")]]
static const InterruptHandle interrupts[66] = {
  nullptr,
  ResetHandler,
  nullptr,
  ...
};

我想要的是使中断表更灵活(允许仅定义使用的中断并保留默认的其他中断),并将其移至enum MCU {F103x6, F103x8, ...}; template<MCU T> class stm; template<> class stm<F103x8> { void set_pin(...); ... }; 类中以使其能够像这样使用:

stm

但是我找不到胶水如何使其工作-我无法定义静态类成员并使用数组对其进行初始化-如下所示的许多不同代码变体给了我stm<F103x8, interrupt<TIM2_IRQ, my_handler>> cpu; int main() { cpu.init_clock(); ...; }

constexpr needed for in-class initialization of static data member

预先感谢您的任何建议。

UPD 我想实现一个仅标头的库。

0 个答案:

没有答案