smallstar02 2016-09-23 07:37 采纳率: 0%
浏览 1172

arm中断函数中回调类成员函数的问题

在定时器中断函数中写一个事件函数,触发中断后调用上层C++类对象设置的回调函数,但是这个上层对象类型不确定,传给定时器的只有一个回调函数地址和该对象本身this的地址。

现在要怎么写?我想到的结构应该就像下面的,或是其他实现?

<Timer.c>
extern ST_TIMER st_timer;

UINT32 CallFunc(UINT32 funcaddr,UINT32 This)
{
        ……
}

VOID timer0_irq_handler( VOID )
{
            CallFunc(st_timer.funcaddr,st_timer.This);
}


<A.h>
class A
{
    void setHandleProc(Uint32 funaddr,Uint32 para);
}

<A.cpp>
ST_TIMER    st_timer
void setHandleProc(Uint32 funaddr,Uint32 para){
    st_timer.funaddr=funaddr;
    st_timer.This = para;
}


  • 写回答

1条回答 默认 最新

  • 鱼弦 优质创作者: 编程框架技术领域 2016-09-23 08:27
    关注

    回调函数可以用一个回调函数类型的map存起来,触发的时候,找到该回调地址,可以直接用this调用

    评论

报告相同问题?