![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CAN
文章平均质量分 66
fanxiaoyu321
天道酬勤
展开
-
CAN核心RAW协议
文章目录数据结构sock对象raw_sockPF_CAN协议族地址: sockaddr_can初始化raw_sock初始化: raw_init()socket接口实现绑定: raw_bind()使能过滤器: raw_enable_allfilters()设置socket选项: raw_setsockopt()发送数据: raw_sendmsg()接收数据: raw_recvmsg()raw_rcv()数据结构sock对象raw_sockstruct can_frame { canid_t ca原创 2021-10-12 21:11:41 · 2291 阅读 · 0 评论 -
CAN核心初始化流程
文章目录初始化PF_CAN接口socket创建接口: can_create()协议注册: can_proto_register()初始化static __init int can_init(void){ printk(banner); // 创建接收者高速缓存 rcv_cache = kmem_cache_create("can_receiver", sizeof(struct receiver), 0, 0, NULL); if (!rcv_cache)原创 2021-10-12 16:40:47 · 1303 阅读 · 0 评论 -
CAN核心帧收发流程
文章目录数据结构CAN数据接收链表dev_rcv_listsCAN数据接收者receiver接收流程接收者列表维护CAN核心收到数据can_rcv()CAN核心分发接收数据: can_rcv_filter()发送流程数据结构CAN数据接收链表dev_rcv_listsCAN核心为每个CAN类型网络设备都关联一个该链表对象(表头为can_rx_dev_list),用于保存所有对该CAN网络设备数据感兴趣的接收者。enum { RX_ERR, RX_ALL, RX_FIL, RX_INV, RX_EFF原创 2021-10-11 20:40:27 · 1471 阅读 · 0 评论