如何基于rk3562使用xenomai3实时CAN(rtcan)?
摘要:本文为xenomai can使用说明,基于rk 3562描述,其他平台类似,希望对你使用xenomai can有所帮助!

基于 Xenomai RTDM(实时驱动模型)开发RK3562 CAN 设备驱动程序
xenomai3实时CAN(rtcan)使用说明-以rk3562为例
目录xenomai3实时CAN(rtcan)使用说明-以rk3562为例一、实时CAN驱动1. RTCAN DTS节点配置2. 内核配置3. 驱动文件二、xenomai CAN工具介绍1. rtcanconfig2. rtcansend/rtcanrecv3. can_rtt4. /proc/rtcan目录/proc/rtcan/version/proc/rtcan/devices/proc/rtcan/rtcanXsockets三、xenomi CAN通信测试1. 加载驱动2. 查看can设备信息3. 配置 CAN 接口4. CAN 与 CAN 通信5. CAN RTT测试四、RTCAN 编程接口五、CAN 常见问题排查1. 无法收发回环模式测试:2. 概率性不能收发附:Linux CAN 通信测试工具 (非xenomai rtcan)附:CAN 比特率和采样点计算附:开源canopen协议栈参考文档
作者:沐多 wsg1100
出处:https://www.cnblogs.com/wsg1100/
版权:本文版权归作者所有
备注:若对外发布,未经作者同意,必须保留此段声明;必须在文章中给出原文连接。
本文为xenomai can使用说明,基于rk 3562描述,其他平台类似,希望对你使用xenomai can有所帮助!
基于 Xenomai RTDM(实时驱动模型)开发RK3562 CAN 设备驱动程序,以实现实时 CAN 通信。该xenomai RTCAN框架提供了一个类似于标准 SocketCAN 接口的实时接口。Xenomai 还提供了一些用户空间工具,用于简单的接口测试。以下对加载 CAN 驱动程序、配置接口以及使用 Xenomai 提供的命令行工具进行通信进行介绍。
一、实时CAN驱动
1. RTCAN DTS节点配置
Linux 驱动已经与 CAN 接口关联,若不修改设备树compatible ,在使用时需要卸载标准 Linux 驱动或解除该设备的驱动绑定。
这里rk3562 xenomai 实时CAN驱动使用修改compatible 属性"rockchip,rk3562-can-rt"来匹配,修改can设备节点,将compatible 属性重新设置,方便xenomai crk3562can驱动加载时匹配。若不修改,则匹配Linux(非实时)驱动。
可以选择修改底层dtsi arch/arm64/boot/dts/rockchip/rk3562.dtsi来修改所有bsp,或修改具体板级dts arch/arm64/boot/dts/rockchip/tl3562-evm.dts,这里选择修改板级dts,若未使用tl3562-evm.dts,则修改具体使用的dts。
--- a/arch/arm64/boot/dts/rockchip/tl3562-evm.dts
+++ b/arch/arm64/boot/dts/rockchip/tl3562-evm.dts
@@ -187,12 +187,14 @@ fiq-debugger {
};
&can0 {
+ compatible = "rockchip,rk3562-can-rt";
pinctrl-names = "default";
pinctrl-0 = <&can0m2_pins>;
status = "okay";
};
&can1 {
+ compatible = "rockchip,rk3562-can-rt";
pinctrl-names = "default";
pinctrl-0 = <&can1m1_pins>;
status = "okay";
2. 内核配置
3. 驱动文件
驱动文件所在位置:drivers/xenomai/can/rockchip/rtcan_rk3562_can.c。
编译后将使用新设备树的内核镜像与xeno_rk3562_can.ko安装到板子。
二、xenomai CAN工具介绍
xenomai官方未RTCAN提供了一个系统工具rtcanconfig 和两个测试工具 rtcansend 和 rtcanrecv ,一个demo can_rtt;
1. rtcanconfig
rtcanconfig与Linux ifconfig命令类似,是 Xenomai 的一部分,用于配置 CAN 控制器。
