首页 > TAG信息列表 > rtdm

xenomai驱动开发-参考博文-1字符设备测试

点击查看代码 Xenomai3驱动程序: 驱动C文件: 自定义Mydriver.c,用于xenomai内核设备驱动相关 原始源文件路径:xenomai3.x\kernel\drivers\testing\rtdmtest.c 相关函数解析: static int __init rtdm_test_init(void){ #Todo初始化模块工作,可同时打开多个设备 } static vo

xenomai驱动开发-参考博文-2驱动编写实例

根据xenomai代码里面的example修改出一个字符驱动代码及其驱动对应的测试程序。 点击查看代码 #include <linux/module.h> #include <rtdm/rtdm_driver.h> MODULE_LICENSE("GPL"); MODULE_AUTHOR("ziv,<woshidahuaidan2011@hotmail.com>"); #define SIZE_MAX

xenomai定时器测试

点击查看代码 /* * Copyright (C) 2019 BNIS * 用dmesg -c 查看 * 定时器测试,insmod 模块后,定时器1为每隔1秒钟触发一次!测试显示定时器分辨率精度, 定时器2为每隔2秒触发一次。 * Timer-api查看: * https://xenomai.org/documentation/xenomai-3/html/xeno3prm/group__rtdm__t

xenomai互斥锁 和信号量 api`

在Linux线程同步机制里常用有互斥锁和信号量两种方法. 在理解为什么有些代码需要加锁后再执行,先了解一下原子操作的概念 所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束, 中间不会有任何 context switch (切换到另一个线程) 原子操作是不可分割的,

xenomai任务测试

点击查看代码 /* * Copyright (C) 2019 BNIS * Make file 请参考过往博客 * 本例程在模块初始化时启动3个任务。在任务1中,实现了类似定时器 * 的定时功能,通过第2任务去结束第1任务,任务3启动后等待任务2结束再继续执行. * */ #include <linux/module.h> #include <rtdm/d

xenomai中断事件等api

RTDM中断请求函数原型: int rtdm_irq_request (rtdm_irq_t *irq_handle, unsigned int irq_no, rtdm_irq_handler_t handler, unsigned long flags, const char *device_name, void *arg) 参数介绍: irq_handle , IR

RTCAN 驱动模块到RTDM 中

1 .rtCAN 驱动模块到RTDM 中 int __init rtcan_init(void) { int err = 0; if (!realtime_core_enabled()) return 0; printk("RT-Socket-CAN %d.%d.%d - %s\n", RTCAN_MAJOR_VER, RTCAN_MINOR_VER, RTCAN_BUGFIX_VER, rtcan_rtdm_provider_n

文件operations

在RTDM中 rtdm_open static inline int rtdm_open(const char *path, int oflag, ...) { return __rtdm_dev_open(path, oflag); } __rtdm_dev_open() int __rtdm_dev_open(const char *path, int oflag) { struct rtdm_dev_context *context; struct rtdm_device *dev;