0

我正在用 C++ 为 Xtensa 虚拟平台编写代码。我想使用simcall_callback的功能,从内部固件代码返回数据。我的 C++ 有点生疏了。

  1. 如何为回调的以下 typedef 构建回调函数:
typedef int(∗ simcall_callback)(xtsc_core &core, void ∗callback_arg, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
  1. 用于设置此回调的函数是:
simcall_callback set_simcall_callback (simcall_callback callback, void ∗callback_arg, void ∗∗ previous_arg = NULL)

我应该如何正确调用set_simcall_callback,第二个和第三个参数应该是什么?

有关 Xtensa 回调函数的文档可以在以下链接中找到(Pg.282, 309)

4

1 回答 1

0

如果你需要声明函数,你可以这样做:

simcall_callback simcall_callback_func;

然后你需要定义回调函数体:

int simcall_callback_func (xtsc_core &core, void *callback_arg, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
 {
     // Do what you need
     return 0;
 }

然后你可以调用 set_simcall_callback 其中第一个参数是我们声明的函数。所有参数都在说明书第 310 页上进行了描述。

int main()
 {
     // If you need previouse function then hold returned value
     simcall_callback prev_func = set_simcall_callback (simcall_callback_func, NULL);
     return 0;
 }
于 2018-11-02T21:07:28.203 回答