自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张飞online博客

崇尚真诚,回避浮夸!

原创 linux设备树——设备树dts语法

设备树那些事——设备树dts语法

2020-05-10 09:55:55 50 0

原创 设备树那些事一

设备树的引入目的 设备树的加载过程 设备树在驱动中的使用

2020-04-18 23:24:35 55 0

原创 linux内核启动流程(基于arm)——head.S

源码路径: https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/compressed/head.S start: .type start,#function mov r7, r1 @ save archit...

2020-02-23 23:57:31 60 0

原创 gdb调试死锁的正确姿势

gdb搞起 这是我们的源码: #include <unistd.h> #include <pthread.h> #include <string.h> pthread_mutex_t lock_a = PTHREAD_MUTEX_INITIALIZ...

2020-02-19 22:28:33 89 0

原创 Linux多线程编程之——线程生命周期

特别说明,本文有参考www.yomocode.com阅码场课程,宋宝华老师课程。

2020-02-15 17:57:02 46 0

原创 Linux 驱动之字符设备驱动分析

字符设备驱动框架应该是我们最常见的一种驱动框架。 废话少说,撸源码。 涉及到的源码路径: https://elixir.bootlin.com/linux/latest/source/fs/char_dev.c https://elixir.bootlin.com/linux/latest...

2020-02-12 10:35:15 52 0

原创 Linux中断那些事(一)

https://blog.csdn.net/vito_bin/article/details/52986011

2020-01-20 15:25:58 48 0

原创 linux下如何发布驱动ko文件,不泄露源码,源码编译为中间目标文件,发布平台再编译

linux下的驱动在插入到内核会校验内核版本和当前驱动版本,只有完全匹配才可以插入成功。当然这也做的目的是安全 确保当前驱动和当前内核是匹配的,但是大部分情况下我们发布的驱动只是和用户内核在小版本上有区别不会影响真实的使用。但是由于版本不一致导致驱动无法安装。解决这个一般都方法是, 1.发...

2020-01-16 19:00:57 79 0

原创 好的代码注释究竟应该是什么样的?!!!

先看段子: //写这段代码的时候,只有上帝和我知道它是干嘛的 //现在,只有上帝知道 // 神奇。勿动。 我们讨论好的代码究竟应该是什么样的?,是密密麻麻的注释,看着中英文夹杂,恶心至极。还是什么都没有,我认为更应该偏向于后者,但是后者很难做到,好的代码注释应该是在二者之间吧。 ...

2019-12-27 13:24:46 83 0

原创 谈谈linux中的对齐

linux 中有太多的宏 ,这篇主要写写对齐。

2019-11-30 10:52:48 46 1

原创 QString 的arg格式化字符串性能让人吐槽

一般来说我们不会关注这些东西,但是在特定场合就显得尤为重要,比如我们现在的场景,sql语句构建 这样的一个主频下:我们构建一个27个字段的sql语句32768次,耗时大概是4s,而数据库的插入的耗时也就3s,这个 时候显然影响非常大,或者说让人吐槽。 sprintf的性能,我使用sprin...

2019-10-26 16:04:26 49 0

转载 IA32中的5种caching type(也叫memory type)

转https://blog.csdn.net/witsmakemen/article/details/18360399

2019-09-20 16:04:17 81 3

原创 多线程设计模式

https://www.cnblogs.com/feng9exe/p/8352113.html

2019-09-12 13:39:57 206 0

原创 正确的QTTCP QTcpSocket与多线程的交互方式应该是这样的!!!

1.首先说不正确的姿势是什么? 跨线程乱搞,重新写了qthread,实现了run,然后man里面创建了QTcpSocket,然后传入到run里面。 这种基本运行的时候都会提示你跨线程调用了,对了还有人搞不懂为什么跨线程了,这个可以看看我的博客,有非常明确的说明 https://blog.cs...

2019-08-27 17:21:29 676 0

原创 Linux下设置驱动实现非标准的波特率(最新版 struct termios2)

其实对于一般的波特率glibc里面已经封装了函数接口,而且非常容易的就可以设置。 但是对于非标准的波特率网上有人提到了ioctl设置,但是最新的内核已经弃用了这种方式,我设置的时候ioctl返回无效 http://blog.chinaunix.net/uid-9543173-id-198898...

2019-07-19 17:18:27 484 0

原创 Windwos驱动 PCIE开发第一步

环境搭建,目前做板卡驱动主要是windriver,但是就目前而言,大部分公司使用的是破解版的windriver,没有正当的版权,对于win10系统也不支持。windows原生驱动是wdf,开发难度其实也没有那么大,当然你要了解底层。 代开发 :https://blog.csdn.net/u013...

2019-05-30 16:06:13 208 2

原创 关于c/c++中的volatile、内存屏障以及无锁数据结构

一:先说 volatile,静态乱序 C/C++语言中的volatile关键字作用? 1.易变性:volatile告诉编译器,某个变量是易变的,当编译器遇到这个变量的时候,只能从变量的内存地址中读取这个变量,不可以从缓存、寄存器、或者其它任何地方读取。 2.顺序性:两个包含vo...

2019-04-01 17:39:14 274 0

原创 linux中断

linux中断

2019-02-28 13:32:00 66 0

原创 中断和查询NAPI

转载  https://blog.csdn.net/hejin_some/article/details/72722555   概述   NAPI是Linux新的网卡数据处理API,据说是由于找不到更好的名字,所以就叫NAPI(New API),在2.5之后引入。 简单来说,NAPI是综...

2019-01-29 13:49:37 165 0

原创 2019再启程

2019再启程

2019-01-21 14:10:09 132 2

转载 线程私有数据 ——TSD

转载 :https://blog.csdn.net/zjf280441589/article/details/43883033   线程特定数据 int pthread_key_create(pthread_key_t *key, void (*destr_function) (void *...

2018-12-18 15:10:32 86 0

原创 设计模式之模板方法

1.设计模式的模板方法其实是大部分人都用过,可能没有意识到,给人封装过接口更应该了解。一般而言,我们封装出来的接口如果仅仅是系统流程里面的一个环节,那么我们就做基础的接口封装,不需要关心具体的业务。使用者爱怎么调用就怎么调用。注意:这个时候是使用者调用我们。而如果我们就是系统设计者,角度就变了,也...

2018-11-24 17:12:09 87 0

原创 数据结构与算法之栈

数据结构与算法之栈 首先感叹下,csdn的排版终于人性化了。以前写个东西费劲的要死。 谈到数据结构的栈,其实觉得    

2018-10-09 23:34:18 89 0

原创 Qt 中的若干用法以及Bug

       程序的用法其实是有潜规则的,当我们看到大牛频繁提交pach的时候,想为什么我就发现不了,其实本质是我们还没有深谙此道,有些bug的存在一定是伴随着你用的东西。换句话说,当你用一个东西的时候,bug就已经开始伴随你,而你是否深谙此道就决定了你的程序是否有bug。大牛看到你用条件变量,就...

2018-08-29 01:19:22 407 0

原创 Linux中断走一波

明天补上

2018-08-24 00:37:22 149 0

原创 qt线程套路,qt线程源码分析

qt源码地址: https://github.com/radekp/qt/blob/b881d8fb99972f1bd04ab4c84843cc8d43ddbeed/src/corelib/thread/qthread_unix.cpp        Qt的线程应该是大家讨论比较多的,也是迷惑...

2018-08-14 23:36:48 448 1

原创 QT实现基于QIODevice的线程安全环形队列

QT实现基于QIODevice的线程安全环形队列. /****************************************************************************** Copyright (C) 2017-2018 Zhang Fei &a...

2018-07-07 20:40:32 1292 3

原创 Qt视频框架qtav构建编译使用

1.首先说下:如果你的环境是下面网站中有的环境,你就可以直接使用,没必要重新编译构建。直接下载作者编译好的,执行里面的脚本2.我的环境是vs2013+qt5.7  环境恰恰和作者提供的环境不一样GG。我试者直接使用发现了很多编译链接问题,没办法重新编译qtav。qtav的编译过程其实很简单:下载 ...

2018-07-05 12:34:15 3067 0

原创 条件变量“丢信号”如何看待!

首先来说条件变量丢信号是我们的阐述:根本原因是我们在使用条件变量的时候没有满足条件变量的基本条件!

2018-06-27 00:16:11 411 0

原创 Linux I2C 驱动分析

pci_bus_match

2018-06-21 10:40:32 229 0

原创 Spinlock透彻分析之Spinlock底层实现机理(一)

自旋锁透彻分析之自旋锁的底层实现机理(一)

2018-06-09 22:31:35 1559 0

原创 字符设备驱动透彻分析(一)

 前言:    首先要说的是对于linux这样优秀的操作系统,我们在分析的时候一定是站在全局去对对待,而非一开始就去扣那些毛细血管的东西。我看到诸多博客对linux下的字符设备驱动进行这样那样的描述,但是大多居于形式,告诉你这样或者那样操作。1.首先我们要谈的是linux下的贯穿始终的一句话“一切...

2018-06-07 16:21:58 2597 0

原创 GlusterFs 分布式文件系统环境搭建

1.关闭防火墙和SELinux (对于这个安全模块,有兴趣可以看看)systemctl stop firewalld systemctl disable firewalld vi/etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled

2018-06-07 00:18:03 610 0

原创 Linux线程安全函数和可重入

  这俩个概念就不讲了,你需要明确的是可重入一定是线程安全的,因为多线程访问本质就是一种线程重入的体现。还是说下吧。所以当你在linux下编程想一些函数能不能多线程这么用的时候其实就是在考虑线程安全问题!比如你考虑我多个线程使用消息队列,会不会出问题,当然不会,因为消息队列是线程安全的。内部实现了...

2018-05-28 13:56:47 2103 0

原创 OpenStack学习

1.OpenStack云平台出现的本质原因是什么?      现实的业务需求和业务场景就决定了云平台管理的出现,相比于以前的单个主机多用户,到后来的单主机,多虚拟机,再到回来的多主机多虚拟机的发展。现实的业务需求和发展就决定了这个管理平台的出现。2. 架构Nova – 弹性计算模块,虚拟机相关围绕...

2018-05-24 16:31:30 780 0

原创 优雅的解决qt线程关闭问题!QThread: Destroyed while thread is still running

参考博客 https://blog.csdn.net/liang19890820/article/details/52186626:写的不错!,我还不知道qt5已经封装出了这样的接口,一般我还是自己封装出方法,通过标志位实现关闭!void QThread::requestInterruption(...

2018-05-22 14:50:03 9162 1

原创 LINUX内核专题——内存管理

LINUX内核专题——内存管理

2018-05-17 20:34:43 303 0

原创 QT其他线程和UI主线程通信方式

1:为什么会有这个问题:      其实当我们真正开发一个有实体业务需求的界面软件的时候,就躲不开上面提到的问题——QT其他线程和UI主线程通信。原因是什么,耗时的操作不能再界面ui线程中操作执行,这样会让界面卡死,当然这不仅仅是QT有这个问题,MFC、安卓都是这样的。但现实是你躲不开业务的耗时操...

2018-05-13 00:20:31 4007 0

原创 解决树莓派IOError: [Errno Invalid sample rate] -9997 采样率16K错误

树莓派在基于pyaudio录音的时候会提示如上错误,这主要是使用的树莓派声卡不支持当前的采用率,没关系,其实在alsa架构下我们可以通过声卡的插件实现转换。在树莓派下家目录创建一个声卡隐藏配置文件 .asoundrc。特别不要在你的pyaudio里面设置打开声卡的编号因为下面的配置以及配置了pcm...

2018-05-13 00:18:11 5134 10

原创 Object::connect: No such slot

信号槽出现这样的问题一定要注意以下几点: ThreadFromQThread work_download ; QObject::connect(this, SIGNAL(send_down_sig(int)),\ &amp;work_download,...

2018-05-10 11:19:56 501 1

提示
确定要删除当前文章?
取消 删除