Linux CAN (CAN_J1939)框架及调用流程
module_init(j1939_module_init);内核编译CAN_J1939模块
在函数j1939_module_init(void)中
ret = register_netdevice_notifier(&j1939_netdev_notifier); netdev_chain通知链(对该链注册)
ret = can_proto_register(&j1939_can_proto); 注册j1939_can_proto;
发送数据流程j1939_sk_sendmsg()------》ret = j1939_sk_send_loop(priv, sk, msg, size)-----》
调用session = j1939_tp_send(priv, skb, size);发送数据------》session = j1939_session_new(priv, skb, size);(创建新的字段并绑定了回调函数用于超时重传)
---------》session->txtimer.function = j1939_tp_txtimer;(绑定回调函数)
消息发送路径

                    
                
                
            
        
浙公网安备 33010602011771号