具有回调功能的驱动程序

史蒂夫

我一直在研究一些嵌入式软件。该软件分为两个主要部分。第一个是应用程序软件,第二个是一些系统软件。系统软件由一组驱动程序和RTOS组成。我一直在开发应用程序部分,并且一直在使用准备好的驱动程序。在驱动程序中,还有用于CAN通信的驱动程序。其中一项功能具有以下界面

result_t can_set_receive_callback (can_receive_callback_t cb);

除此功能外,还有以下指向函数的指针的定义

typedef void (*can_receive_callback_t) (can_message_t msg);

我在了解如何使用驱动程序功能时遇到问题。我知道我必须使用以下接口定义一些功能

void my_function (can_message_t m);

我也知道上面定义的函数就是所谓的回调函数。但是我不知道为什么我必须定义回调函数。

为什么不能在没有传递函数指针作为参数的情况下简单地调用驱动程序函数?

这是否意味着我定义的回调函数“说”如何处理收到的消息?对于驱动程序开发人员未知的信息是什么?

我的意思是接收到的消息是由准备好的中断服务程序处理的,但是所有提到的功能看起来都不像是ISR。

谁能给我参考一些好的文档,其中描述了与驱动程序的这种类型的工作?非常感谢。

唱片

使用OSI模型的驱动程序应该在物理级别上管理通信。

因此,驱动程序执行通信设备的激活,配置,读取,写入等操作,以管理硬件在总线(CAN)上进行通信。

数据链路层负责管理在总线上发送和接收的数据的“协议”。

因此,驱动程序开发人员要求数据链路层开发人员设置在特定事件由物理层触发时将调用的函数(回调)。

换句话说,在您的特定情况下,您必须设置一个回调,该回调根据协议的特殊性(结构,时序等)来管理接收到的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有回调功能的Javascript数组

来自分类Dev

具有返回功能的正确回调

来自分类Dev

mongoDB:聚合-本机node.js驱动程序是否具有与$ lookup连接等效的功能?

来自分类Dev

具有多个设备属性的Linux驱动程序链接到同一功能

来自分类Dev

急流/码头工人:无法选择具有以下功能的设备驱动程序“”:[[gpu]]

来自分类Dev

无法选择具有以下功能的设备驱动程序“”:[[gpu]]

来自分类Dev

Windows内核模式驱动程序是否具有与RegQueryInfoKey等效的功能?

来自分类Dev

具有多个设备属性的Linux驱动程序链接到同一功能

来自分类Dev

具有Bluebird 2.9。*的Mongodb节点驱动程序2.0。*

来自分类Dev

具有依赖项的Inno Setup驱动程序

来自分类Dev

具有Mapbox Optimization API的多个驱动程序?

来自分类Dev

BIOS是否具有某种通用的“驱动程序”

来自分类Dev

Linux是否具有USB端口的设备驱动程序?

来自分类Dev

AMD是否具有Windows的开源图形驱动程序?

来自分类Dev

MongoDB Scala驱动程序:使用Observer回调时返回Future的最佳方法是什么?

来自分类Dev

Android:具有预览回调功能的Camera Asynctask

来自分类Dev

具有回调功能的Javascript无法正常工作

来自分类Dev

Kivy Python-具有部分回调功能

来自分类Dev

添加驱动程序中没有驱动程序

来自分类Dev

带有回调的功能

来自分类Dev

不确定如何解释MongoDB node.js的驱动程序回调参数是否为collection.insert

来自分类Dev

专有的NVidia驱动程序在Mac上具有EFI,以防止过热

来自分类Dev

安装Ubuntu后,我如何知道所有设备都具有必需的驱动程序

来自分类Dev

专有的NVidia驱动程序在Mac上具有EFI,以防止过热

来自分类Dev

安装Ubuntu后,我如何知道所有设备都具有必需的驱动程序

来自分类Dev

视频驱动程序已安装,但没有WebGL或OpenGL加速功能

来自分类Dev

如何使用具有UTF-8编码的SQLite ODBC驱动程序?

来自分类Dev

具有动态对象的MongoDB C#驱动程序序列化

来自分类Dev

较低的CUDA工具包版本可能具有较高的驱动程序版本吗?

Related 相关文章

  1. 1

    具有回调功能的Javascript数组

  2. 2

    具有返回功能的正确回调

  3. 3

    mongoDB:聚合-本机node.js驱动程序是否具有与$ lookup连接等效的功能?

  4. 4

    具有多个设备属性的Linux驱动程序链接到同一功能

  5. 5

    急流/码头工人:无法选择具有以下功能的设备驱动程序“”:[[gpu]]

  6. 6

    无法选择具有以下功能的设备驱动程序“”:[[gpu]]

  7. 7

    Windows内核模式驱动程序是否具有与RegQueryInfoKey等效的功能?

  8. 8

    具有多个设备属性的Linux驱动程序链接到同一功能

  9. 9

    具有Bluebird 2.9。*的Mongodb节点驱动程序2.0。*

  10. 10

    具有依赖项的Inno Setup驱动程序

  11. 11

    具有Mapbox Optimization API的多个驱动程序?

  12. 12

    BIOS是否具有某种通用的“驱动程序”

  13. 13

    Linux是否具有USB端口的设备驱动程序?

  14. 14

    AMD是否具有Windows的开源图形驱动程序?

  15. 15

    MongoDB Scala驱动程序:使用Observer回调时返回Future的最佳方法是什么?

  16. 16

    Android:具有预览回调功能的Camera Asynctask

  17. 17

    具有回调功能的Javascript无法正常工作

  18. 18

    Kivy Python-具有部分回调功能

  19. 19

    添加驱动程序中没有驱动程序

  20. 20

    带有回调的功能

  21. 21

    不确定如何解释MongoDB node.js的驱动程序回调参数是否为collection.insert

  22. 22

    专有的NVidia驱动程序在Mac上具有EFI,以防止过热

  23. 23

    安装Ubuntu后,我如何知道所有设备都具有必需的驱动程序

  24. 24

    专有的NVidia驱动程序在Mac上具有EFI,以防止过热

  25. 25

    安装Ubuntu后,我如何知道所有设备都具有必需的驱动程序

  26. 26

    视频驱动程序已安装,但没有WebGL或OpenGL加速功能

  27. 27

    如何使用具有UTF-8编码的SQLite ODBC驱动程序?

  28. 28

    具有动态对象的MongoDB C#驱动程序序列化

  29. 29

    较低的CUDA工具包版本可能具有较高的驱动程序版本吗?

热门标签

归档