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调用

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题