- 博客(41)
- 资源 (9)
- 收藏
- 关注
转载 程序或-内存区域分配(五个段)---分析很好
原文地址:http://blog.youkuaiyun.com/love_gaohz/article/details/41310597 一、在学习之前我们先看看ELF文件。ELF分为三种类型:.o 可重定位文件(relocalble file),可执行文件以及共享库(shared library),三种格式基本上从结构上是一样的,只是具体到每一个结构不同。下面我们就从整体上看看这3种格式从...
2018-08-31 14:11:24
404
原创 C++类中不能定义自身类类型成员变量
类声明: class dog; //类的声明类定义: class dog{ //类的定义};当用实例化一个类的对象时,编译器会根据类的定义来分配相应的存储空间 。也就是说,在创建对象前,一定要有完整的类定义,这样编译器才能正确的计算所需空间。 那么我们来看如下代码:class dog{ dog tt; //error, ‘tt’ uses undefined class...
2018-08-24 17:10:37
6474
1
转载 Linux上如何分析死锁问题
简介死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象...
2018-07-27 15:52:19
2907
1
原创 Linux多线程调度策略
转自:http://blog.youkuaiyun.com/byperseverance/article/details/44522731 Linux线程的调度策略分为3个:SCHED_OTHER,SCHED_FIFO,SCHED_RR 讲策略之前,大家需要理解实时与非实时之分。实时就是指操作系统对一些中断等的响应时效性非常高,即使是在内核态的时候,非实时反之。目前像VxWorks属...
2018-07-09 11:01:22
2039
转载 c++中inline的使用(转的,总结的在点上)
1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个例子:#includ...
2018-06-21 09:50:38
195
原创 linux多线程默认栈大小和最大可创建线程数
linux的线程栈大小可以使用ulimit -s命令查看,对于ubuntu 2.6的内核线程栈的默认大小为8M,如下:root@npti:/# ulimit -s819232位的系统,虚拟内存空间是4G,其中高1G是内核空间用户不可见,真正可以使用的内存空间大小是低3G的用户空间,具体参考下表:Linux的内存模型,一般为:地址作用说明>=0xc000 0000内核虚拟存储器用户代码不可见区...
2018-05-14 15:25:29
3043
转载 C++字符串操作详解(转)
选用C++标准程序库中的string类,是因为他和c-string比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联。首先,为了在我们的程序中使用string类型,我们必须包含头文件 。如下: #include //注意这里不是string.h string....
2018-05-03 18:11:29
472
转载 多线程性能及效率问题
一、[多线程概要] 随着计算机技术的发展,编程模型也越来越复杂多样化。但多线程编程模型是目前计算机系统架构的最终模型。随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G。事实上目前3.6G主频的CPU已经接近了顶峰。 如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能),那么继续提高CPU性能的方法就是超线程CPU模式。那么,作业系统、应用程序...
2018-04-04 16:03:33
931
原创 关于字符串指针不能修改的疑问
C/C++ code示例:char*m ="hello"; *(m+1) ='s'; for(;*m !='\0';m++){ printf("%c\n",*m); }但是出运行时错误。----------------------------------------------------------我用数组下标的方式是可以修改的:C/C++ codeint i =0; char w[] ="he...
2018-02-08 14:45:00
403
原创 关于CRC校验算法及其C代码实现
以CRC16作为参考:CRC16常见的标准有以下几种,被用在各个规范中,其算法原理基本一致,就是在数据的输入和输出有所差异,下边把这些标准的差异列出,并给出C语言的算法实现。CRC16_CCITT:多项式x16+x12+x5+1(0x1021),初始值0x0000,低位在前,高位在后,结果与0x0000异或CRC16_CCITT_FALSE:多项式x16+x12+x5+
2018-01-10 16:19:17
4209
1
转载 VxWorks任务状态的转换
在VxWorks中,任务的基本状态分为5种:就绪态、休眠态、延迟态、悬置态、运行态。 就绪态是指,任务已经获得除了CPU之外的所有其他资源,所等待的只是CPU的运行,一旦其他任务释放了CPU资源,该任务就可以开始运行。 休眠态表示任务正在等待除CPU之外的其他资源,即使当前CPU资源可以使用该任务也无法运行,通常也叫作阻塞状态。 处于延迟态的任务表示在其执
2017-11-07 15:33:59
4707
转载 Linux内核bug分析
ps:非常好的文章,学习分析方法Linux Kernel BUG:soft lockup CPU#1 stuck分析1.线上内核bug日志kernel: Deltaway too big! 18428729675200069867 ts=18446743954022816244 write stamp =18014278822746377 kernel:------
2017-09-29 10:15:33
2297
原创 关于svn死循环问题
近来做项目发现,通过命令行check out代码,然后通过图形界面commit 代码会出错,包括clean up也会报错“svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted”,这是由于svn死循环造成的。TortoiseSVN在1.7版本开始,取消了工作副本所有目
2017-09-04 11:07:15
581
原创 子网掩码与子网数目之间的换算
A类网络缺省子网掩码:255.0.0.0 B类网络缺省子网掩码:255.255.0.0 C类网络缺省子网掩码:255.255.255.0例1:给了A类子网掩码255.255.192.0则二进制:11111111 **11111111 11**000000 00000000 前八位为地址掩码,后二十四位表示主机地址 即把网络划分成2的10次方个子网1024个子网。(主
2017-05-18 13:34:00
1518
原创 关于expected identifier or ‘(’ before***的错误
今天早上在编译工程的时候,总是会报出expected identifier or ‘(’ before***的错误,查看了代码没有任何问题,后来又在网上找原因受到启发,原来是我的代码里有未被识别的字符,将那段字符注释掉就可以了,还好是小问题,写出来记录下自己曾经踩过的坑,防止再次出错。
2017-05-12 10:25:25
57228
1
转载 GDB下查看内存命令(x命令)
可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示: x/ n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,参见下面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。
2017-04-07 13:48:30
584
转载 const类型详解(总结的很好)
const变量有全局的和局部的,C语言中全局的const变量默认为外连接,所以默认都是有内存地址的,c++中全局的const变量默认为内连接,它可以被编译 器放到符号表中作为编译期常量,所以在c中,const int k = 2; int a[k]是非法的,但在c++中是合法的。 这是全局const变量,局部的const变量在C和C++中一视同仁,都是放在函数局部栈中的,把
2017-03-15 09:34:28
770
原创 关于宏IN、OUT和INOUT的说明
#define OUT#define IN#define INOUT在工程中会有类似于上面这种宏定义出现,到底表示什么意思呢?如下一段程序:#include#define OUT#define IN#define INOUTvoid function1(OUT int* p){*p = 10;return;}void function
2017-03-09 16:15:32
6715
转载 离开了公司,你还有什么
(基于打造个人品牌价值)工作越久,好像越不敢想象没有工作的样子。你有这样的感觉吗?2007年12月,我从南京回到西安,重新开始寻找工作,一开始我觉得休息上几个月也好,不用着急。可是真到了西安,休息了一个星期就开始恐慌!没工作啊,再也没有收入了,而你的各项支出分毫未减!2014年9月,我离开工作7年的公司,再次开始求职。这一次我想一定要好好规划一下,想好了再做决定,休息三五个月也
2017-02-25 14:23:56
312
转载 linux下gdb调试
(收藏下来,以备不时之需)一、GDB 概述GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像 VC 、 BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软件,你会发现 GDB 这个调试工具有比 VC 、 BCB 的图形化调试器更强大的功能。所谓 “ 寸有所长,尺有所短 ” 就是这个道理。一般来说,
2017-01-03 17:00:02
325
转载 堆栈的工作原理
转自:http://blog.youkuaiyun.com/lee244868149/article/details/49493715每一个使用C语言的都应该知道栈的重要性,我们能够使用C/C++语言写出诸多复杂的程序,很大功劳一部分有归于栈的实现,因为它可以帮助我们实现函数间的嵌套调用。汇编程序的运行是不需要栈的,所以注定它函数的嵌套层数不会太多,一般是父函数调用子函数,然后在子函数就返回了
2016-12-18 16:17:43
8118
1
原创 浅谈bootloader、kernel、filesystem三者之间的关系
嵌入式linux按照bootloader->kernel->filesystem->application顺序启动。Bootloader是linux-kernel移植的基石,是在系统启动之后、kernel运行之前所执行的第一段代码,其任务是为调用kernel准备必要的软硬件环境;完成bootloader的移植后,就是kernel的移植,主要包括添加特定模块的驱动,针对具体要求对内核进行配置,有两点
2016-12-16 16:27:56
6781
原创 报文、帧、数据包等的区别
报文(message)是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的首部,那些就是报文头。应用层:报文(message),一般指完整的信息,传输层实现报文交付,位于应用层的信息分组称为报文;传输层:报文段(segment),组成报文的每个分组;网
2016-12-12 19:00:48
24609
转载 深入理解Linux中内存管理
(PS:很好的文章,特此转来细细研读)原文地址: http://kb.cnblogs.com/page/180830/前一段时间看了《深入理解Linux内核》对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看法和认识。 我比较喜欢搞清楚一个技术本身的发展历程,简而言之就是这个
2016-11-26 16:44:53
274
转载 大O算法复杂度表示
序言:算法的时间复杂度和空间复杂度都是用“大O表示法”来表示的。其中O是个常量。常见的 排序算法的时间复杂度: 冒泡排序、插入排序、希尔排序、选择排序的时间复杂度是O(n^2); 快速排序的时间复
2016-11-20 16:55:42
6492
转载 循环冗余检验(CRC)
最近遇到的项目模块中,涉及到通信数据的校验处理,对这一块的内容又重新做个梳理。CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,平常在项目中见到的CRC的代码多数都是那种效率非常低下的实现方式。其
2016-11-19 16:23:39
1345
转载 VxWorks下的调试
主要介绍在Tornado集成开发环境下的调试方法,和利用支撑定位问题的步骤、思路。1 Tornado的调试工具嵌入式实时操作系统VxWorks和集成开发环境Tornado的组成结构如下图1。分为主机和目标机系统。图1 集成开发环境结构图在Tornado下,调试相关操作在Debug菜单下,包括:图2 Debug菜单简单解
2016-11-15 14:10:01
11321
原创 Tornado2.2安装步骤
1.Tornado 2.2 会有两个安装文件cd1、cd2,先安装cd1中的应用程序,安装密钥在CRACK文件夹的readme.txt文件里可以找到,然后一路next就可以了,最后一步选择phone or fax;2.将cd1中的license.data拷贝到C:\Tornado2.2\flexlm(你也可以是d盘,视自己情况而定);3.安装cd2中的应用程序,安装密钥在r
2016-10-24 14:42:56
3865
转载 计算机原理
堆栈介绍 堆和栈都是把数据按序排列的数据结构。 在栈中进行数据的存放,就像把数据放入箱子或桶中一样,是一种“后进先出”的数据结构,也就是说先存放的后取,后存放的先取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体当然就压在底下了,),我们首先要移开压在它上面的物体(放入的比较晚的物体)。[FROM :百科] 栈作为一种数
2016-05-23 19:19:04
391
原创 关于opencv2.4.9配置vS2010(win7 32)
VS2010配置新建项目,选项目名(例“HelloOpenCV")右击,选“属性”,选“VC++目录”,(1)在项目的包含文件中添加(选择“所有配置”),选择D:\OpenCV\build\include\opencv; D:\OpenCV\build\include\opencv2; D:\OpenCV\build \include;(2)在库目录中添加(选择”所有配置”)D
2014-11-24 10:05:02
564
转载 计算机视觉一些比较实用的文章
1. Active Appearance Models活动表观模型和活动轮廓模型基本思想来源Snake,现在在人脸三维建模方面得到了很成功的应用,这里列出了三篇最初最经典的文章。对这个领域有兴趣的可以从这三篇文章开始入手。[1998 ECCV] ActiveAppearance Models[2001 PAMI] ActiveAppearance Models
2014-08-26 10:01:16
775
转载 Qt4过渡至Qt5 (错误大全)
QtWidgets作为一个独立的模块例如编译时错误error: QMainWindow: No such file or directoryerror : QToolButton : No such file or directoryerror : QWidget: No such file or directory
2014-08-19 10:22:33
844
转载 OpenCV 实现人脸检测与相关知识整理
开发配置网上能够找到关于OpenCV人脸检测的例子也比较多,大多也都是基于这个例程来更改,只是多数使用的是OpenCV 1.0的版本,而OpenCV2.0以后由于模块结构的更改,很多人并没有将例程运行起来。如果是新版的OpenCV跑旧的例程,编译运行出错的话,需要确保:#include "opencv2/objdetect/objdetect.hpp" 头文件被引用,老的头文件
2014-07-16 17:24:44
1442
转载 OpenCV里面Mat方法中的Scalar详解
OpenCV参考手册2.3.1中第15页,有这么一个例子:// make a 7x7 complex matrix filled with 1+3j.Mat M(7,7,CV_32FC2,Scalar(1,3));解释如下:创建一个M矩阵,7行7列,类型为CV_32F,C2表示有2个通道。Scalar(1,3)是对矩阵进行初始化赋值。第一个通道全为1,第2个通道全为3。具体见一
2014-07-03 10:39:12
15417
原创 VS2010编译QT4.8.4遇到“LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 “问题
在用VS编译qt时候很少有人遇到rusha
2014-06-29 09:31:39
1273
转载 宽基线与窄基线
基线的本意是指立体视觉系统中两摄像机光心之间的距离。依据拍摄两幅图 像的视点位置关系可将对应点匹配问题分为宽基线(Wide Baseline)和窄基线匹配(Short Baseline)。宽基线一词用于匹配时,泛指两幅图像有明显不同的情况下的匹配。产生这种情况的原因有可能为摄像机之间的位置相差很大,也有可能由于摄像机旋转或焦距的变化等因素产生的。 宽基线匹配和窄基线匹配的分界不是
2014-06-09 09:48:35
908
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人