InstallIRQHandler()

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

InstallIRQHandler()

849件の閲覧回数
yuansongchen
Contributor I

需要程序在RAM中运行,这需要将.isr_vector从ROM复制到RAM,fsl_ Common_arm中的函数uint32。c_ InstallIRQHandler(IRQn_Type irq,uint32_t irqHandler)似乎就是这样做的。请问这个函数在哪里调用?

0 件の賞賛
2 返答(返信)

712件の閲覧回数
jingpan
NXP TechSupport
NXP TechSupport

Hi @yuansongchen ,

如果你的程序是编译在RAM中的,那ROM boot自动会把整个image copy到RAM并指定IVT地址,不需要你再去搬一次。

此外你也可以在任何时候改变IVT,只要改之前禁止全局中断。

 

Regards,

Jing

0 件の賞賛

811件の閲覧回数
giraffe508
Contributor IV

Hi @yuansongchen 

函数InstallIRQHandler()通常在启动文件中调用,这是在系统初始化时设置中断处理程序的地方。这个函数的目的是为特定的中断请求(IRQ)安装一个新的中断处理程序(IRQHandler)。

 

以下是一个示例,展示了如何在启动文件中使用这个函数:

 

 /* 在启动文件中 */ extern void YourIRQHandler(void); /* 这是你的中断处理程序 */
int main(void) { /* ...系统初始化代码... */
/* 安装你的中断处理程序 */ InstallIRQHandler(YourIRQ, (uint32_t)YourIRQHandler);
/* ...其余的代码... */ }

 

请注意,你需要将YourIRQ和YourIRQHandler替换为你的实际IRQ和处理程序。你的IRQHandler应该是一个函数,当IRQ发生时,它会被自动调用。

 

希望这个答案能帮到你。如果你还有其他问题,欢迎继续提问。

0 件の賞賛