谢谢你的时间。我使用嵌入式 C 编程。我正在尝试编写处理多个中断。我将继续编写其他人之前已经开始的代码。根据我的研究,我有自己的想法来完成这项任务。我以前的同事采用了不同的方法,看起来他没有使用正确的语法,但他仍然能够启动并运行代码。
install_isr_handler()
{
all_interrupts_init();
isr_handler_installer(general_isr_handler); // API to install ISR handlers
}
uninstall_isr_handler()
{
isr_handler_disable(general_isr_handler); // API to disable all ISR handlers
}
__attribute__((interrupt)) general_isr_handler(void)
{
isr_1(); // ISR function for interrupt 1
isr_2(); // ISR function for interrupt 2
isr_3(); // ISR function for interrupt 3
}
__attribute__((weak)) isr_1()
{
// Some common code
_isr_1();
}
void isr_2()
{
// Some common code
_isr_2();
}
void isr_3()
{
// Some common code
_isr_3();
}
__attribute__((weak)) _isr1()
{
// ISR for interrupt 1
}
__attribute__((weak)) _isr2()
{
// ISR for interrupt 2
}
__attribute__((weak)) _isr3()
{
// ISR for interrupt 3
}
__attribute__((interrupt)) isr_handler_1(void)
{
_isr1(); // ISR for interrupt 1
}
__attribute__((interrupt)) isr_handler_2(void)
{
_isr2(); // ISR for interrupt 2
}
__attribute__((interrupt)) isr_handler_3(void)
{
_isr3(); // ISR for interrupt 3
}
此外,语法是否以正确的形式使用:.__attribute.__((interrupt))
我是第一次使用它。是强制使用吗?
感谢您的宝贵时间!
我还没有尝试过我的方法。我相信它应该有效。你能告诉我哪一个是正确的吗?两者都正确吗?如果是,哪个是好的编码实践?