摘要: 1. 课题背景 在项目开发过程中用到了纯按键的QT交互,我们通过自定义以下全局键盘事件类进行交互的实现: class KEYPRESSFILTER_EXPORT KeyPressFilter : public QObject { Q_OBJECT public: static KeyPressFil 阅读全文
posted @ 2024-05-30 15:48 成信吴彦祖(略胜亿筹) 阅读(48) 评论(0) 推荐(0)
摘要: C++ 的范围基 for 循环是对这些更传统循环方式的一种抽象,使得代码更简洁,更容易阅读和维护,同时减少了出错的机会,特别是在涉及复杂数据结构时。如我某个工程中的一个代码段: QDateTime time = QDateTime::currentDateTime(); for (const QPa 阅读全文
posted @ 2024-05-01 16:22 成信吴彦祖(略胜亿筹) 阅读(63) 评论(0) 推荐(0)
摘要: strlen不会将\0记录进长度,而sizeof会,两者计算同一个字符串长度得出的结果差 1 。 阅读全文
posted @ 2024-03-07 19:41 成信吴彦祖(略胜亿筹) 阅读(39) 评论(0) 推荐(0)
摘要: 1. 图像存储容器 不同于字符串、整数(分别以string、int类型保存),图像时以矩阵的形式存储的,OPENCV 4提供了 Mat 类来存储矩阵数据。 早期的OPENCV是采用 C 语言接口,以结构体IplImage来存储图像的矩阵数据,但是C语言中需要手动释放内存,这极容易导致因程序结束后没有 阅读全文
posted @ 2023-09-19 16:27 成信吴彦祖(略胜亿筹) 阅读(38) 评论(0) 推荐(0)
摘要: 1. 模块的装载竞争(竞态) 竞态是驱动程序设计极其重要的方面,始终要铭记:在注册完成后,内核的某些部分可能会立即使用我们刚刚注册的任何设施。换句话说,在初始化函数还在运行的时候,内核就完全可能会调用我们的模块。因此,在首次注册完成后,代码就应该准备好被内核其他部分调用;在用来支持某个设施的所有内部 阅读全文
posted @ 2023-09-18 12:24 成信吴彦祖(略胜亿筹) 阅读(9) 评论(0) 推荐(0)
摘要: 模块相关的知识 1. 模块相较于宏内核(微内核优点) 模块消除了宏内核的许多限制,包括:缺乏动态可拓展性、导致内核映像尺寸膨胀、测试新特性时必须重启系统等。 2. 静态链接、动态链接及模块依赖(TIPS) 《深入理解计算机系统》中有这样一段话: 共享库是一个目标模块,在运行或加载时,可以加载到任意的 阅读全文
posted @ 2023-09-17 11:51 成信吴彦祖(略胜亿筹) 阅读(39) 评论(0) 推荐(0)
摘要: 1. 学习模块前的一些基础知识 头文件:内核是一个特定的环境,对需要和它接口的代码有其自己的一些要求,所以大部分的模块代码中都会包含相当数量的头文件,其中有几个头文件是专门用于模块的,因此会出现在每个可装载的模块中: #include <linux/module.h> #include <linux 阅读全文
posted @ 2023-09-16 11:15 成信吴彦祖(略胜亿筹) 阅读(53) 评论(0) 推荐(0)
摘要: 1. 编译模块 构造内核模块之前,需要注意以下条件:正确版本的编译器、模块工具和其他必要的工具。太新的或太老的工具都会对使得模块构造后产生许多复杂的问题,因为内核源代码对编译器做了大量假定,因此新的(或旧的)编译器版本可能导致问题出现。 另外,尽量运行和模块对应的内核版本。 2. 模块的装载和卸载 阅读全文
posted @ 2023-09-16 09:27 成信吴彦祖(略胜亿筹) 阅读(26) 评论(0) 推荐(0)
摘要: 1. 关于内核并发 从2.6版本的内核开始,linux系统已经是可抢占式的任务调度,在此之前只有SMP系统(对称多处理器)才会有的并发问题,在2.6版本内核之后的单核处理器也会面对该问题。 很多程序员面对并发问题有一个常见的错误:“认为没有睡眠状态(或者阻塞)的进程就不会触发并发”。这即使放在2.6 阅读全文
posted @ 2023-09-14 16:23 成信吴彦祖(略胜亿筹) 阅读(27) 评论(0) 推荐(1)
摘要: 这两天用QT做一个上位机,涉及到有一个数据发送完后需要用到延时,我一开始使用了线程休眠的方式进行延时: //发送读取指令 if (serialport->write(data) == -1) { qDebug() << "发送失败!"; }QThread::msleep(1000); serialp 阅读全文
posted @ 2023-05-09 22:37 成信吴彦祖(略胜亿筹) 阅读(148) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示