- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 Qt多线程与线程池
1.1 线程常用函数://QThread类常用API//构造函数QThread::QThread(QObject *parent = Q_NULLPTR);//判断线程中的任务是不是处理完毕bool QThread::isFinished() const;//判断字线程是不是在执行任务bool QThread::isRunning() const;//Qt中的线程可以设置优先级//获取当前线程的优先级Priority QThread::Priority() const;void QT
2021-07-02 17:31:49
1053
原创 Qt Json文件操作
生成json数据Json对象格式:{"patientInfo":{ "counts":393, "patientAge":"077Y", "patientID":"0001192549", "patientName":"shi sheng ming", "patientSex":"M", "studyDate":"20171121", "studyID":"9795503", "windowCenter":"115", "windowWidth":"795"}}键值对的Js
2021-07-02 14:49:31
724
原创 GitLab使用简章
GitLab简介:GitLab,是一个开源应用程序。实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史历史库。团队成员可以利用内置的聊天程序(wall)进行交流。还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查询。方便多个人共同协作开发GitLab新项目创建:1.安装GitLab2.进入Gitlab创建一个空白项目
2021-06-21 17:36:35
179
原创 初识QtWebEngine
QtWebEngine简介: Qt WebEngine模块提供了一个web浏览器, 在不使用本地浏览器的情况下, 它可以很容易地把Web内容嵌入到Qt应用程序中. Qt WebEngine为渲染HTML, XHTML和SVG文档,使用CSS和JavaScript, 提供了C++类和QML类型页面的展示首先我们需要在.pro文件中加入:QT += core gui webenginewidgetsMainWindow.h#ifndef MAINWINDOW_H#define MAINWI
2021-06-08 17:56:19
3704
3
原创 VS2017+Qt5.14.2+CMake3.19.2+DCMTK3.6.6
DCMTK简介:由于现在的医学影像设备的图像存储和传输正在逐渐向DICOM标准靠拢,在我们进行医学图像处理的过程中,经常需要自己编写和DICOM格式的图像相关的各种程序模块,以完成自己处理功能。如果从头开始理解DICOM的协议,然后完全自己编写这些代码来实现这些协议,是一件工程浩大的事情。德国offis公司开发的DCMTK,为我们提供了实现DICOM协议的一个平台,使得我们可以在它的基础上轻松的完成自己的主要工作,而不必把太多的精力放在实现DICOM协议的细节问题上。本文以WINDOWSXP+VC6.0为
2021-06-07 17:07:16
677
原创 Qt 多线程服务器
myserver.h#ifndef MYSERVER_H#define MYSERVER_H#include <QTcpServer>#include "mythread.h"class myserver : public QTcpServer{ Q_OBJECTpublic: explicit myserver(QObject *parent = 0);protected: void incomingConnection(qintptr socket
2021-05-11 23:05:05
1175
1
原创 内核中断实现
内核中断实现Linux中断处理子系统1.根据中断号找到正确的中断处理代码2.Linux定义 了名字为irq_desc的中断例程描述符表:(include/inux/irq.h)该表struct irgdesc结构组成struct irq_desc irg_desc[NR_IROST];NR_ _IRQS表示中断源的数目irg_desc结构体中的成员action指向该中断号对应的irgaction结构体链表。irgaction结构体定义如下://include/linux/interrupt.h
2021-05-07 20:29:15
301
原创 内存分配(mmap用法)
Linux用户空间内存分配void *malloc(size_t nbytes)//返回指向nbytes个字节内存的指针viod *calloc(size_t cnt, size_t nbytes)//返回指向cnt* nbytes的空间(内容为0)的指针(即分配之后自动清零)void *realloc(void *ptr, size_t size)//改变前面分配的空间大小void free(void *ptr)//释放动态分配的内存空间Linux内核空间内存分配按页分配函数:uns
2021-05-06 20:11:51
2961
原创 阻塞、非阻塞与异步通知(驱动开发)
阻塞操作描述:指在执行设备操作时,若不能获得资源则进程睡眠。当满足可操作的条件后,内核唤醒进程继续执行。操作步骤:非阻塞操作描述:指进程在不能进行设备操作时并不睡眠而是立刻返回结果。操作步骤:异步通知描述:操作步骤...
2021-04-29 19:18:13
193
原创 驱动内核模块编写步骤
驱动内核模块编写步骤一、模块编写1.模块组成(以下为一个模板实例)一个内核模块一共由四部分组成:头文件,实现函数,注册功能以及模块描述://头文件:#include <linux/init.h>#include <linux/module.h>#define MA 500#define MI 0static dev_t devno = 0;static int devNum = 1;static char* devName = "myDev";static s
2021-04-29 17:22:00
659
原创 内核并发方法
内核并发方法1.中断屏蔽(1)释义:中断屏蔽为单CPU中实现的并发方式,因为CPU在执行多线程和多进程的时候是通过时间片的时间来进行的切换由于速度极快所以在人眼看起来是同时执行,所以我们在需要在访问共享资源的时候我们需要在执行的时候DISABLE,执行完之后ENABLE。(2)用法:local_irq_disable()/*屏蔽中断*/...critical section/*临界区*/...local_irq_enable()/*打开中断*/(3)注意:local_ir
2021-04-28 20:00:47
198
原创 Unable to handle kernel NULL pointer dereference at virtual address 00000000
Unable to handle kernel NULL pointer dereference at virtual address 00000000pgd = c0004000[00000000] *pgd=00000000Internal error: Oops: 805 [#1]last sysfs file: Modules linked in:CPU: 0 Not tainted (2.6.35 #21)PC is at s3c_fb_probe+0xc/0x67cLR
2021-04-27 16:58:51
2242
原创 Uboot启动流程
Uboot启动流程首先我们将uboot文件需要拷到外部设备中,该设备可以是U盘,SD卡等,uboot文件不能直接装在内存和cpu的RAM和ROM寄存器中,原因在于,内存不能永久保存,主要内存一掉电,会直接清空,RAM和ROM寄存器的空间太小不足以装下uboot的文件。1. Uboot存放的位置:uboot既然不会直接存放在CPU和内存中,那么我们就需要一个容量足够大的东西来装uboot文件,我们一般采用SD卡的方式存储,在每一块板子上面的SD卡启动方式可能有所不同,所以我们需要根据自己手中的开发板来
2021-04-23 20:21:18
764
原创 根文件系统制作步骤
sudo apt-get install build-essential sudo apt-get install libncurses5 sudo apt-get install libncurses5-dev
2021-04-23 19:00:07
321
原创 内核移植步骤
内核移植步骤相比于uboot移植,内核只关心内存条的情况,所以移植相对uboot简单**第一步:**网上下载相关的内核文件http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/**第二步:**配置内核移植的必要环境(1)需要支持menuconfig(有了这个方便我们后面选择配置)只需要dpkg -i 压缩包就可以(2)需要支持mkimage(编译image文件时需要)将mkimage工具拷贝到/usr/bin**第三步:**选择
2021-04-23 16:38:29
1224
原创 uboot移植步骤
Uboot移植具体步骤(本例子为Samsung origen板)第一步:准备源码网上下载现成的uboot开源代码:https://ftp.denx.de/pub/u-boot/在该网站中选择与板子兼容的uboot源文件(公司中一般咨询硬件工程师)在Linux系统下解压tar xf 压缩包名第二步:修改源码1.抄板:将和你板子兼容的文件复制一份文件cd u-boot-2013.01/board/samsung/cp origen fs4412 -r2.直接执行make fs4412,
2021-04-22 19:58:26
7302
原创 系统移植注意事项
系统移植踩坑问题问题一:在uboot界面发现环境变量已经配置成功但是执行boot命令时无法重新启动或者断电重启的时候出现自动不执行命令的情况:解决方法:该问题的解决方法是bootcmd等参数实际并不存在,查看方法pri bootcmd(环境变量),如果环境变量并不存在则只需要重新设置一下相关的环境变量set 环境变量 参数问题二:出现如下图情况:解决方法:上图情况一共有三种情况:1.网络并未连通,可以通过ping serverip(serverip为环境变量中配置的serverip值)如果
2021-04-22 11:05:05
353
转载 Qt5.14.2 + OpenCV3.4.2 + VS2017刨坑记录
1.只使用MinGW参考网站:[安装教程](https://blog.youkuaiyun.com/star_of_science/article/details/103643259?)按照上面的网站安装就可以完成2.使用MSVC参考网站:安装教程避坑注意:安装时选择如果只用于MSVC2017 64-bit时:***如上图的2需要选择x64注意***非常重要最后需要在环境变量中写入D:\OpenCV-4.5.1\opencv_build\install\x64\vc15\bin...
2021-01-27 22:54:33
231
转载 Failed to retrieve MSVCEnvironment from **********
版本说明Qt 5.14.2和vs2017打开Qt的时候就报这么一长串的错误解决方法:把环境变量中,C:\Program Files (x86)\Common Files\Oracle\Java\javapath删除就可以了
2021-01-27 10:06:34
1162
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人