- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Qt源码解析之事件系统(一)
Qt源码解析之事件系统一、向事件循环里面添加事件二、QThread里面的事件循环一、向事件循环里面添加事件[static] void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority)1.postEvent是将event事件添加到接收者receiver对象所属线程的事件队列,并在下一个事件循环执行,为异步执行,完成后postEvent()立即返回,添
2021-12-17 18:17:49
798
原创 Qt源码解析之QObject
这里写自定义目录标题QObject核心特性源码解析欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入QObject核心特性源码解析 #include <iostream> st
2021-12-16 11:06:25
997
1
原创 Qt源码解析之QThread
一、用法简介1.工作类class Worker : public QObject{ Q_OBJECTpublic: explicit Worker(QObject *parent = nullptr); ~Worker();public slots: void doWork(void);};Worker::Worker(QObject *parent) : QObject(parent){}Worker::~Worker(){}void Worker::doWo
2021-12-16 11:06:02
557
原创 数据结构struct device_type
/* * The type of device, “struct device” is embedded in. A class * or bus can contain devices of different types * like “partitions” and “disks”, “mouse” and “event”. * This identifies the dev...
2018-08-16 10:16:50
1049
原创 数据结构struct bus_type
struct bus_type { const char *name; struct bus_attribute *bus_attrs; // bus总线的默认属性 struct device_attribute * dev_attrs; // bus总线上设备的默认属性 struct driver_attribute *drv_attrs; // b...
2018-08-16 09:57:35
353
转载 支持异步通知的globalfifo驱动---Linux设备驱动开发详解
增加异步通知后的globalfifo设备结构体 struct globalfifo_dev { struct cdev cdev; unsigned int current_len; unsigned char mem[GLOBALFIFO_SIZE]; struct mutex mutex; wait_queue_head_t r_wait; ...
2018-08-15 17:41:47
303
原创 Linux设备驱动中的异步通知与异步I/O
异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。 阻塞I/O意味...
2018-08-14 21:11:28
614
转载 使用select监控globalfifo是否可非阻塞读写的应用程序---Linux 设备驱动开发
define FIFO_CLEAR 0x1define BUFFER_LEN 20void main(void) { int fd, num; char rd_ch[BUFFER_LEN]; fd_set rfds, wfds; // 读写文件描述符集 // 以非阻塞的方式打开/dev/globalfifo设备文件 fd = open(...
2018-08-14 19:27:25
224
原创 轮询操作基于Linux设备驱动开发详解
int select(int numfds, fs_set readfds, fd_set writefds, fd_set *exceptfds, struct timeval *timeout); numfds:指集合中所有所有文件描述符的范围,所有描述符的最大值加1 readfds:被select()监视的读操作的文件描述符集合.我们是要监视这些文件描述符的读变化的,即我们关心是否可以...
2018-08-14 13:56:08
655
转载 支持阻塞操作的globalfifo设备驱动(三)
static ssize_t globalfifo_read(struct file *filp, char __user *buf, 2 size_t count, loff_t *ppos) 3{ 4int ret; 5struct globalfifo_dev *dev = filp-&gt;private_data; // 获得设备结构体指针 6DECLARE_WAITQUEUE...
2018-08-14 10:00:30
178
转载 支持阻塞操作的globalfifo设备驱动(二)
// globalfifo设备驱动模块加载函数static int __init globalfifo_init(void) { int ret; dev_t devno = MKDEV(globalfifo_major, 0); if(globalfifo_major) ret = register_chrdev_region(devno, ...
2018-08-14 09:15:39
229
原创 支持阻塞操作的globalfifo设备驱动(一)
当FIFO中有数据时,读进程才能把数据读出,而且读取数据后会从globalfifo中拿掉;只有当globalfifo不是满的时,写进程才能往FIFO中写数据。// globalfifo设备结构体struct globalfifo_dev { struct cdev cdev; unsigned int current_len; unsigned ...
2018-08-13 20:15:08
309
转载 scanf[^\n]/fscanf 的%[]和%n使用方法
标准输入输出函数%[]和%n说明符的使用方法 scanf fscanf,均从第一个非空格的可显示字符开始读起! 标准输入输出函数scanf具有相对较多的转换说明符,它常常作为入门级函数出现在各种教材中。但奇怪的是,[]和n这两种都为c89/c99所规定的标准说明符却鲜少在大多数教材中出现。虽然[]和n说明符的使用频率不及其它说明符,但两者在程序设计中的作用仍然不可小视,尤
2016-10-22 16:06:08
2444
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人