自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 QValidator注意的问题

这个类本身是抽象类。两个子类QIntValidator和QDoubleValidator提供了基本的数字范围检查,并且QRegExpValidator提供了一个使用自定义正则表达式的普通检查。如果内置的验证器还不够的话,你可以继承QValidator。这个类有两个虚函数:validate()和fixup()。validate()必须被每个子类重新实现。根据参数是否有效(子类中来定义这个有效)返回Invalid、Intermediate或Acceptable。这三种状态需要一些解释。

2024-06-11 14:15:24 45 1

原创 Qt 焦点系统关键点总结

焦点链上每个节点代表一个窗口,默认情况下,窗口在焦点链上的先后位置,与用户把窗口添加到窗口树的先后顺序有关,越早添加到窗口树上的窗口,其在焦点链中的位置越靠前。当焦点从一个部件移动到另一个部件时,会触发QFocusEvent事件,这个事件会被发送给原焦点窗口和当前焦点窗口,原焦点窗口执行focusOutEvent(),新焦点窗口执行focusInEvent()1)点击Tab键,焦点链指针向后移动,直至碰到第一个FocusPolicy为TabFocus的窗口,并设置该窗口为焦点窗口;

2024-06-11 14:04:37 214

原创 一些常用的git指令总结

4、git checkout -b develop origin/develop //创建一个跟踪远程分支develop的本地分支develop .比如:我刚刚修改了my_test.cpp文件,这时就可以使用git add my_test.cpp. 就将该修改添加到了暂存区。7、git push origin master 推送本地master分支到远程master分支。6、Git cherry-pick 命令将特定提交从一个分支应用到另一个分支。5、git log 查看提交的id 和上次id .

2024-06-11 09:57:13 287

转载 Shell脚本中循环语句for,while,until用法

原文地址:blog.51cto.com/kling/1252952循环语句:Bash Shell中主要提供了三种循环方式:for、while和until。一、for循环   for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。  其中,串行是一些字符串的组合,彼此用$IFS所定义的分

2018-01-04 10:20:33 1082

转载 枚举

http://blog.csdn.net/skyflying2012/article/details/22736633在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。 定义一个变量是枚举类型,可以先定义一个枚举类型名,然

2017-11-19 23:39:22 342

转载 详解C中volatile关键字

volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;vo

2017-11-19 23:34:57 305

转载 static用法

转自keyeagle的博客 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文博采众家之长,把互联网上的资料整合归类,并亲手编写程序验证之。         C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变

2017-11-17 14:30:50 240

转载 预处理详解

C中预编译详解   预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查

2017-11-13 10:56:46 633

转载 GIC相关寄存器

2017-11-09 13:24:48 1083

转载 GIC相关

原文地址:www.wowotech.net/irq_subsystem/gic_driver.htmlGIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器,其architecture specification目前有四个版本,V1~V4(V2最多支持8个ARM core,V3/V4支持更多的ARM core,主要用于ARM64服务器系统结

2017-11-09 11:23:17 2443

转载 top命令

www.cnblogs.com/peida/archive/2012/12/24/2831353.htmltop命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,t

2017-11-09 09:53:09 234

转载 grep常用方法

1、可以使用grep命令来查找当前目录下所有文件中包含的某个特定字符。2、示例:查找当前目录下所有带有set的文件 。 说明:-r 是递归查找-n 是显示行号* : 表示当前目录所有文件,也可以是某个文件名

2017-11-08 16:57:46 267

转载 在Linux中如何利用backtrace信息解决问题

原文地址:blog.csdn.net/jxgz_leo/article/details/53458366在Linux中如何利用backtrace信息解决问题一、导读在程序调试过程中如果遇到程序崩溃死机的情况下我们通常多是通过出问题时的栈信息来找到出错的地方,这一点我们在调试一些高级编程语言程序的时候会深有体会,它们通常在出问题时会主动把出问题时的调用栈信息打印出来,比如

2017-11-07 17:15:37 316

转载 Linux环境下段错误的产生原因及调试方法小结

原文地址:www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.htmlLinux环境下段错误的产生原因及调试方法小结最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借

2017-11-07 17:03:24 289

转载 使用backtrace获取堆栈信息

1、backtrace一些内存检测工具如Valgrind,调试工具如GDB,可以查看程序运行时函数调用的堆栈信息,有时候在分析程序时要获得堆栈信息,借助于backtrace是很有帮助的,其原型如下: #include int backtrace(void **buffer, int size); char **backtrace_symbols(void *const *buffer, int s

2017-11-07 16:33:58 690

转载 Linux调试工具strace和gdb常用命令小结

感谢原文作者辛苦整理,原文地址:www.cnblogs.com/lidabo/p/4548220.htmlstrace和gdb是Linux环境下的两个常用调试工具,这里是个人在使用过程中对这两个工具常用参数的总结,留作日后查看使用。strace调试工具strace工具用于跟踪进程执行时的系统调用和所接收的信号,包括参数、返回值、执行时间。在Linux中,用户程序要访问系统设备,

2017-11-03 17:44:32 293

转载 文件IO方式操作GPIO

原文地址:http://blog.csdn.net/xukai871105/article/details/384560790 前言    本文描述如果通过文件IO sysfs方式控制EasyARM GPIO端口。通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口

2017-11-03 15:47:20 666

转载 操作GPIO其中的两种方法

目前我所知道的在linux下操作GPIO有两种方法: 程序是转来的,感谢作者的辛苦整理。博文地址:www.cnblogs.com/lidabo/p/5319219.html,这两种方法都是通过直接写物理地址的方法控制GPIO的状态。第一种是在驱动代码里做好映射、配置,然后应用层通过IOCTL控制GPIO的读写,第二种是直接就mmap了,直接写地址了。1.  编写驱动,这当然要熟悉lin

2017-11-03 15:35:31 1213

转载 Linux GPIO的使用

一 概述  Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用

2017-11-03 14:43:56 568

转载 devmem

在Linux开发中着实用到的调试工具并不是很多。devmem的方式是提供给驱动开发人员,在应用层能够侦测内存地址中的数据变化,以此来检测驱动中对内存或者相关配置的正确性验证。 其实这个工具的原理也比较简单,就是应用程序通过mmap函数实现对/dev/mem驱动中mmap方法的使用,映射了设备的内存到用户空间,实现对这些物理地址的读写操作。使用方法:用法: devmem2 { a

2017-11-02 15:19:32 5848 1

转载 dev/mem

原文地址blog.csdn.net/skyflying2012/article/details/47611399/dev/mem是物理内存的全映像,可以用来访问物理内存,一般用法是open("/dev/mem",O_RDWR|O_SYNC),然后mmap,接着就可以用mmap的地址来访问物理内存,这实际上就是实现用户空间驱动的一种方法。。用户空间驱动听起来很酷,但是对于/dev

2017-11-02 14:41:36 1379

转载 Linux free命令详解(转)

前段时间有个项目的用C写的,性能测试时发现内存泄露问题。关于怎么观察内存使用问题,free是很好用的一个命令。参数讲解bash-3.00$ freetotal used free shared buffers cachedMem: 1572988 1509260 63728 0 6

2017-10-20 18:05:48 239

转载 smaps文件的解释

转载,好文章共欣赏:http://www.cnblogs.com/bravery/archive/2012/06/27/2560611.html 想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们

2017-10-20 17:58:04 8872

转载 使用 smem 可视化显示Linux内存使用情况

使用 smem 可视化显示Linux内存使用情况 编译自:http://xmodulo.com/visualize-memory-usage-linux.html作者: Dan Nanni 原创:LCTThttps://linux.cn/article-4492-1.html译者: coloka 本文地址:https://linux.cn/article-449

2017-10-20 17:47:31 2157

转载 Linux监控工具介绍系列——smem

原文地址:www.cnblogs.com/kerrycode/archive/2015/12/26/5079319.htmlsmem工具介绍        smem是Linux系统上的一款可以生成多种内存耗用报告的命令行工具。与现有工具不一样的是smem可以报告实际使用的物理内存(PSS),这是一种更有意义的指标。可以衡量虚拟内存系统的库和应用程序所占用的内存数量。由于

2017-10-20 17:44:46 599

转载 进程间通信(IPC)介绍

原文地址www.cnblogs.com/CheeseZH/p/5264465.html进程间通信(IPC)介绍进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两

2017-10-20 16:10:15 1374

转载 同步和互斥

相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。  显然,同步是一种更为复杂的互斥,而互斥是一种

2017-10-20 11:40:32 146

转载 Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一

2017-10-20 11:23:21 156

转载 linux等待队列wait_queue_head_t和wait_queue_t

等待队列在linux内核中有着举足轻重的作用,很多linux驱动都或多或少涉及到了等待队列。因此,对于linux内核及驱动开发者来说,掌握等待队列是必须课之一。 Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待

2017-10-19 16:56:55 331

转载 [Linux] Linux命令之pstree - 以树状图显示进程间的关系

[Linux] Linux命令之pstree - 以树状图显示进程间的关系转载自: http://codingstandards.iteye.com/blog/842156pstree命令以树状图显示进程间的关系(display a tree of processes)。ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰。在Linux系统中,系

2017-09-22 22:35:27 535

转载 sudo sh -c 'echo 4 > test_rw'

众所周知,在Linux使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式。本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息。比如要向 test.asc 文件中随便写入点内容,可以:$ echo "信息" > test.asc# 或者$ echo "信息" >> test.asc下面,如果将 test.asc 权限

2017-09-19 15:33:30 5656

转载 linux下proc文件的读写(部分转载)

版权声明:本文为博主原创文章,未经博主允许不得转载。in Linux, proc文件系统是一个虚拟文件系统,用户和应用程序可以通过proc文件系统得到当前的一些系统信息,并可以改变一些内核的参数。/proc下的文件是一种特殊文件,不能够像一般文件一样创建删除。如果要创建一个 proc 文件,并且不用 proc_fs 默认提供的 file_operations 的话,可以使用 pro

2017-09-11 16:51:23 1326

转载 用户空间和内核空间通讯之【proc文件系统】

今天我们介绍另一种用户内核空间通信的方法:proc文件系统。proc文件系统作为linux提供的一种虚拟文件系统并不占用实际外围存储空间,它仅存在于内存中,系统断电即消失。proc文件系统最开始的设计主要是为满足内核向用户态进程报告其状态而设计,并没有为输入做规定和说明。随着发展,现在的proc文件系统已经演变成一个“用户-内核”空间半双工的通信方式了(虽然目前已经开始有点混乱了,但某些早期开

2017-09-11 16:48:09 360

转载 linux中proc文件系统

1./proc 文件系统概述     /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统。/proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生文件的内容。我们已经见到了很多这样的文件,例如,/proc/modules 总是返回当前内核中加载的模块。     /proc 广泛的应用在 linux 文件系统中,现代 linux

2017-09-10 22:54:17 285

转载 linux设备驱动之ioctl控制

linux设备驱动之ioctl控制大部分驱动除了具有读写的能力之外,还需要具有对硬件控制的能力。用户空间:ioctl用户程序使用ioctl系统调用来控制设备。用户程序只是通过命令码告诉驱动程序想做什么,至于怎么解释这些命令和怎么实现这些命令,这都是驱动程序要做的事情。 - 函数原型:int ioctl(int fd, unsigned long cmd, …); -

2017-09-08 17:25:07 514

转载 Linux内核 kmalloc, kzalloc & devm_kzalloc 区别

首先,kzalloc()实现了kmalloc()+memset()的功能 源码如下:static inline void *kzalloc(size_t size, gfp_t flags) { return kmalloc(size, flags | __GFP_ZERO); }而 devm_kzalloc() 是具有资源管理的 kzalloc()。使用资源管理(

2017-09-06 16:44:20 631

转载 Linux 获取设备树源文件(DTS)里的资源

韩大卫@吉林师范大学在linux使用platform_driver_register() 注册 platform_driver 时, 需要在 platform_driver 的probe() 里面知道设备的中断号, 内存地址等资源。这些资源的描述信息存放在 resource 数据结构中, 相同的资源存放在一个树形树形数据结构中, 通过父节点, 兄弟节点, 子节点相连。 比如中断资源, I

2017-09-05 18:18:11 533

转载 内存映射

基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不

2017-08-16 09:25:52 459

转载 Linux内存分配原理

Linux的虚拟内存管理有几个关键概念:Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ?Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、

2017-08-15 09:31:29 525

转载 工作队列

1、linux内核中断处理的工作队列workqueue机制工作队列(workqueue)是另外一种将工作 推后执行的形式。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。 这样,通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列允许被重新调度甚至是睡眠。那么,什么情况下使用工作队列,什么情况下使用tasklet。如果推后执行

2017-07-11 14:32:42 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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