摘要: 邮箱服务数据帧 帧结构 EtherCAT子报文: | 子报文头 | 数据 | WKC | | | | | 数据: | 邮箱协议数据 | | | 邮箱协议数据: | Mailbox Header | Mailbox Data | | | | Mailbox Data: |CoE Header | SD 阅读全文
posted @ 2019-07-10 14:21 Salvare 阅读(3869) 评论(0) 推荐(0) 编辑
摘要: mailbox.c Implementation <! Description of the mailbox buffer handling (MAILBOX_QUEUE = 0): There are two mailbox buffer for sending and receiving mai 阅读全文
posted @ 2019-06-20 13:36 Salvare 阅读(1948) 评论(0) 推荐(0) 编辑
摘要: 此节讨论字符设备模块如何实现文件操作,以供用户调用。在基本字符设备模块的讨论期间,只实现设备文件的打开、读、写、关闭功能。 文件操作结构 首先,我们需要知道内核提供了一个文件操作接口,即 struct file_operations 结构。它位于<linux/fs.h>中。 上述结构只节选部分目前关 阅读全文
posted @ 2018-02-01 22:49 Salvare 阅读(515) 评论(0) 推荐(1) 编辑
摘要: 上一节中介绍了设备号的申请和释放,这一节开始了解字符设备的相关操作。 首先定位到文件,查看内核提供给字符设备的接口。cdev结构struct cdev { struct kobject kobj; //内嵌的kobject对象 struct module *owner; //此结构所属模块 const struct file_operations *ops; //文件操作结构 struct... 阅读全文
posted @ 2018-01-31 22:00 Salvare 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 在熟悉了模块的基本框架后,可以开启模块编程的大门了。 如我们所知,模块编程的目的是驱动各种各样的设备。那么设备分为哪些类型呢?对Linux内核来说,设备分为字符设备、块设备和网络设备。 今天先谈字符设备。字符设备的特性:只能一个字节一个字节地按顺序读取,不能任意读取。常见的字符设备有键盘、LED、串口等。 一个基本的字符设备模块程序需要做的事情有以下几件: 1.申请设备号; 2.初... 阅读全文
posted @ 2018-01-30 21:01 Salvare 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 学习Linux驱动有半年的时间了,但是临近毕业,由于各种事务的耽误,很多东西遗忘,现在写此博客以记录重新学习的历程。 首先,自然是从最简单的内核模块,Hello, world开始啦。 预备知识 为了能理解这个内核模块,首先需要一些准备。 #include <linux/init.h> #includ 阅读全文
posted @ 2018-01-29 22:25 Salvare 阅读(1529) 评论(0) 推荐(0) 编辑