1.XENOMAI下CAN内环通信测试实验
本文基于 linux-4.9.38+Xenomai 3.0.5
在嵌入式领域工作时,经常会遇到这样的情况:硬件不可用,但应当开发软件。或者说软件开发应该独立于硬件可用性而进行。发生这种情况的原因有很多,但这种情况一定会存在。有些使用模拟器运行整个操作系统。在Linux中,CAN接口是使用SocketCAN处理的,其中CAN总线被视为Berkeley套接字。可以像配置以太网接口一样配置CAN接口。
当然,如果您没有任何硬件CAN,则可以利用在xenomai源文件内rtcan_virt.c定义的两个can接口进行测试:rtcan0与rtcan1:
2.测试需要的几个应有模块
与实际的的CAN 卡一样,同样需要加载can设备通用模块xeno_can.ko,
然后需要 xeno_can_virt.ko模块。
3.代码分析:
在rtcan_module.c中
const char rtcan_rtdm_provider_name[] =
"(C) 2006 RT-Socket-CAN Development Team";
初始化CAN ,并向RTDM 中注册Can设备通用API:
int __init rtcan_init(void)
{
int err = 0;
if (!realtime_core_enabled())
return 0