正在为Xtensa simcall函数编写回调函数
Writing callback function for Xtensa simcall function
我正在用C++为Xtensa虚拟平台编写一段代码。我想使用simcall_callback的功能,从内部FW代码返回数据。我的C++有点生疏。
- 如何为回调的以下typedef构建回调函数:
li>用于设置此回调的函数为:typedef int(∗ simcall_callback)(xtsc_core &core, void ∗callback_arg, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
simcall_callback set_simcall_callback (simcall_callback callback, void ∗callback_arg, void ∗∗ previous_arg = NULL)
我应该如何正确调用set_simcall_callback,第二个和第三个参数应该是什么?
关于Xtensa回调函数的文档可以在以下链接中找到(第282309页(
如果您需要声明函数,可以这样做:
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;
}
然后您可以调用setsmacallcallback,其中第一个参数是我们声明的函数。说明书第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;
}
相关文章:
- 以特征类型作为参数的泛型函数回调
- C# DllImport 调用非托管C++函数回调
- 为什么模板参数推导失败,std::函数回调的可变参数模板参数?
- std::包含 std::函数回调的多个包装器的向量不起作用
- 如何设置对类的私有函数的函数回调?
- 如何使用 c++11 函数回调声明多个模板参数
- sqlite3 更改函数回调参数 void* not用于 int* C++
- 如何知道 sqlite 中的函数"回调"是否返回了一些东西?
- Windows表单如何使用其他函数回调图表信息
- 如何在 c++ 结构中的 void* 变量中调用存储函数(回调)
- 将成员函数作为标准函数回调
- C++ 使用成员函数回调实现按钮
- std::函数回调,参数采用观察者模式(寄存器主题上的占位符)
- 使用可变参数模板从 Lua 函数回调 (C api) 中提取参数
- 在C++中使用派生类的静态方法作为函数回调
- 将libuv与函数结构一起使用,而不是函数回调
- 如何将函数回调传递给类成员
- c++类成员函数回调
- C++函数回调:无法从成员函数转换为函数签名
- 如何编写一个通用函数回调测试类