gpt4 book ai didi

c - C中的双函数间接

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:56 25 4
gpt4 key购买 nike

<分区>

我正在为 ARM Cortex-M0 CPU 编写引导加载程序。我需要将 IRQ 转发到目标应用程序,不幸的是,此 CPU 中的 IRQ vector 位于固定地址,我无法重新定位它,所以我需要一些技巧。

我知道存储目标应用程序 IRQ 地址的地址。假设在地址 0x5008 处有 void x_IRQHandler(void)(目标应用程序)的地址

我想做的是:

  • 在启动时保存所有 x_IRQHandler() 的地址(这样它就不会在运行时计算);
  • 每当引导加载程序收到 IRQ 调用时,从其地址调用目标应用中的相关 IRQ 函数。

这是我在引导加载程序中所做的,我找不到合适的语法。

//pointers to x_IRQHandler() functions
void(* x_IRQ_addr)(void);
x_IRQ_addr = (void(*)(void))(0x5008);

//here I should call the function pointed by x_IRQ_addr; but this syntax is not valid
void x_IRQ_Handler(void)
{
*x_IRQ_addr();
}

我尝试了不同的方法但都没有成功,我该如何解决?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com