Driver 有回调函数
Driver with callback function
我一直在研究一些嵌入式软件。这个软件分
分为两个主要部分。第一个是应用软件和
第二个是一些系统软件。系统软件包括
一组 drivers 和 RTOS。我一直在开发应用程序部分并且
我一直在使用准备好的drivers。 driver中还有
drivers 用于 CAN 通信。其中一项功能具有以下功能
界面
result_t can_set_receive_callback (can_receive_callback_t cb);
除了这个函数还有下面的指针定义
函数
typedef void (*can_receive_callback_t) (can_message_t msg);
我无法理解如何使用 driver 函数。我知道
我必须使用以下接口定义一些函数
void my_function (can_message_t m);
我也知道上面定义的函数就是所谓的回调函数。
但是不知道为什么要定义回调函数。
为什么不能在没有函数指针作为参数传递的情况下简单地调用 driver 函数?
难道我定义的回调函数"says"如何处理接收到的消息? drivers 开发者不知道的信息是什么?
我的意思是接收消息是
由准备好的中断服务程序处理,但 none 提到的
函数看起来像一个 ISR。
任何人都可以向我推荐一些好的文档吗
drivers 的这种类型的工作是如何描述的?非常感谢。
OSI model 说话驱动程序应该在物理层面上管理通信。
因此驱动程序执行通信设备激活、配置、读取、写入等来管理硬件在您的总线 (CAN) 上进行通信。
数据link层负责管理"protocol"总线上发送和接收的数据。
因此驱动程序开发人员需要数据 link 层开发人员设置在物理层触发特定事件时将调用(回调)的函数。
换句话说,在您的特定情况下,您必须根据您的协议及其特殊性(结构、时间等...)设置管理接收数据的回调
我一直在研究一些嵌入式软件。这个软件分 分为两个主要部分。第一个是应用软件和 第二个是一些系统软件。系统软件包括 一组 drivers 和 RTOS。我一直在开发应用程序部分并且 我一直在使用准备好的drivers。 driver中还有 drivers 用于 CAN 通信。其中一项功能具有以下功能 界面
result_t can_set_receive_callback (can_receive_callback_t cb);
除了这个函数还有下面的指针定义 函数
typedef void (*can_receive_callback_t) (can_message_t msg);
我无法理解如何使用 driver 函数。我知道 我必须使用以下接口定义一些函数
void my_function (can_message_t m);
我也知道上面定义的函数就是所谓的回调函数。 但是不知道为什么要定义回调函数。
为什么不能在没有函数指针作为参数传递的情况下简单地调用 driver 函数?
难道我定义的回调函数"says"如何处理接收到的消息? drivers 开发者不知道的信息是什么?
我的意思是接收消息是 由准备好的中断服务程序处理,但 none 提到的 函数看起来像一个 ISR。
任何人都可以向我推荐一些好的文档吗 drivers 的这种类型的工作是如何描述的?非常感谢。
OSI model 说话驱动程序应该在物理层面上管理通信。
因此驱动程序执行通信设备激活、配置、读取、写入等来管理硬件在您的总线 (CAN) 上进行通信。
数据link层负责管理"protocol"总线上发送和接收的数据。
因此驱动程序开发人员需要数据 link 层开发人员设置在物理层触发特定事件时将调用(回调)的函数。
换句话说,在您的特定情况下,您必须根据您的协议及其特殊性(结构、时间等...)设置管理接收数据的回调