我正在尝试为 SocketCAN 编写稍微修改的 CAN 协议。SocketCAN 文档对此有一个简短的部分:
5.3 writing own CAN protocol modules
To implement a new protocol in the protocol family PF_CAN a new
protocol has to be defined in include/linux/can.h .
The prototypes and definitions to use the SocketCAN core can be
accessed by including include/linux/can/core.h .
In addition to functions that register the CAN protocol and the
CAN device notifier chain there are functions to subscribe CAN
frames received by CAN interfaces and to send CAN frames:
can_rx_register - subscribe CAN frames from a specific interface
can_rx_unregister - unsubscribe CAN frames from a specific interface
can_send - transmit a CAN frame (optional with local loopback)
For details see the kerneldoc documentation in net/can/af_can.c or
the source code of net/can/raw.c or net/can/bcm.c .
(https://www.kernel.org/doc/Documentation/networking/can.txt)
问题是我找不到这里引用的一些文件。我对Linux内核不是很熟悉,所以我不知道我是不是找错地方了。我可以找到include/linux/can.h
目录include/linux/can/
,但那里没有core.h
文件。此外,我找不到net/
引用的目录。
其他信息:
我能够发送和接收原始 CAN 帧,所以我相信我已经正确设置了 SocketCAN
目录的内容(
core.h
应该在哪里):beaglebone:~# ls /usr/include/linux/can/ bcm.h error.h gw.h netlink.h raw.h
我在 BeagleBone Black 上使用 Debian(我不确定我的系统的嵌入性是否有所不同)
如果有人可以帮助我指出我应该在哪里寻找这些文件,我将非常感激。
非常感谢!