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;(绑定回调函数)
消息发送路径
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!