学习总结
文章平均质量分 53
zhangwu1241
这个作者很懒,什么都没留下…
展开
-
宏定义中使用do{}while(0)的好处
宏定义中使用do{}while(0)的好处#define MACRO_NAME(para) do{macro content}while(0) 关于为何使用上面格式,总结了以下几个原因: 1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3转载 2017-02-25 15:48:18 · 377 阅读 · 0 评论 -
理解Linux contain_of()宏
Linux contain_of()宏container_of()函数1.该宏定义在include/linux/kernel.h中439/**440 * container_of - cast a member of a structure out to the containing structure441 * @ptr: t转载 2017-02-27 10:10:09 · 768 阅读 · 1 评论 -
V4L2框架分析学习
Author:CJOKContact:cjok.liao#gmail.comSinaWeibo:@廖野cjok 1、概述Video4Linux2是Linux内核中关于视频设备的内核驱动框架,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接转载 2017-03-17 13:19:52 · 388 阅读 · 0 评论 -
linux之V4L2摄像头应用流程
原博地址: http://blog.csdn.net/eastmoon502136/article/details/8190262/对于V4L2,上次是在调试收音机驱动的时候用过,其他也就只是用i2c配置一些寄存器就可以了。那时只是粗粗的了解了,把收音机当作v4l2的设备后会在/dev目录下生成一个radio的节点。然后就可以操作了。后来就没怎么接触了。这周,需要调试下usb的转载 2017-03-10 15:13:09 · 722 阅读 · 0 评论 -
FFMPEG下常用命令参数
本篇文章作为自己将FFMPEG下一些命令的记录与学习,以供学习:命令参数讲解: i 'udp://localhost:5000?fifo_size=1000000&overrun_nonfatal=1' tells ffmpeg where to pull the input stream from. The parts after the ? are probably not needed原创 2017-05-23 17:14:37 · 554 阅读 · 0 评论 -
Linux驱动层调用应用层程序--call_usermodehelper()
Linux驱动层调用应用层程序–call_usermodehelper()在驱动层想要调用用户空间程序主要还是通过call_usermodehelper()原创 2017-07-31 17:54:57 · 2985 阅读 · 0 评论 -
struct和typedef struct 总结
看见一篇介绍struct和typedef struct的,讲的很详细,因此转载记录一下。 原博地址:http://www.cnblogs.com/qyaizs/articles/2039101.htmlstruct和typedef struct 总结分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typede转载 2017-08-08 09:47:39 · 342 阅读 · 0 评论 -
孤儿进程与僵尸进程[总结]
看到一位仁兄对孤儿进程与僵尸进程的总结,学习很多,转载以备复习之用。原博地址:http://www.cnblogs.com/Anker/p/3271773.html孤儿进程与僵尸进程[总结]1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只转载 2017-08-03 10:20:29 · 417 阅读 · 0 评论 -
ubuntu下nvm,node以及npm的安装与使用
原博地址:http://blog.csdn.net/minchina91/article/details/40260263一:安装nvm首先下载nvm,这里我们需要使用git,如果没有安装git,可以使用[plain] view plain copy sudo apt-get install git 来安装[转载 2017-09-26 18:15:33 · 1400 阅读 · 0 评论 -
VIDIOC_STREAMON: No space left on device 问题解决
解决: VIDIOC_STREAMON: No space left on device题记:这个问题也是困扰自己好久,终于解决了。有必要写个博客mark一下;先说下原因,linux中为usb camera提供了一个统一的驱动以方便使用,只要符合驱动规范就可以实现即插即用usb camera设备,即免驱动安装乐。 usb bus的 bandwidth是有限的,而本着贪心原则,camera会要求获取最原创 2016-10-31 16:11:13 · 15686 阅读 · 6 评论 -
Linux shell命令示例介绍-个人笔记
Linux中命令示例介绍-个人笔记为了方便以后查阅,会对在Linux学习开发过程中遇到的一些命令做一个持续整理。。 #查看当前shell环境代理 env | grep proxy #将建立一个主设备号为6,次设备号为0的字符设备文件/dev/lp0 mknod /dev/lp0 c 6 0 #查看运行系统usb bus的使用情况 sudo cat /sys/kernel/debug/usb/原创 2017-03-08 14:02:08 · 1666 阅读 · 1 评论 -
Linux中关于函数__stringify(x)
linux中关于函数__stringify(x)在linux中,有一个很有意思的函数,叫__stringify,这个函数的功能叫做stringification,没有查到它合适的中文翻译,我把它叫做参数“字符串化”。它的功能就是把参数x转换成一个字符串,这个函数的实现是由两部分组成的,如下:define __stringify_1(x) #xdefine __stringify(x) __stri转载 2017-02-25 15:24:14 · 1645 阅读 · 0 评论 -
FFmpeg新旧接口对照使用笔记
现在看到的很多FFmpeg讲解实例,其中的代码大多数都是比较老旧的,特别是在一些基本用法上,学习使用时编译会看见很多的warning,类似“ warning: ‘AVStream::codec’ is deprecated (declared at /usr/local/ffmpeg/include/libavformat/avformat.h:880) [-Wdeprecated-declarat原创 2016-11-16 10:36:25 · 6770 阅读 · 0 评论 -
Linux下线程的调度-理解
原博地址:有关Linux下线程的调度由于Linux对线程实现的一些特殊性,所以会给我们理解线程及其相关的一些函数带来疑惑,这里做个解答: 1、关于sleep 很多书籍上都说sleep这个系统调用会使整个进程sleep,而不单是sleep一个线程。这样说没错,但我们要是在Linux下写一个多线程 的程序,在一个线程中调用sleep,你会发现其他线程照样运行,这是怎么回事呢?这就是由于Linux下的线程转载 2016-12-01 09:32:53 · 336 阅读 · 0 评论 -
Camera模块解析之驱动篇
Camera模块解析之驱动篇1 手机摄像头功能概述手机摄像头功能由多个功能模块组成,主要三个部分,采集,加工,显示。(1)采集部分由感光的sensor完成,通过CAM IF接口与手机芯片内的CAM连接。(2)CAM对CAM IF数据进行加工,主要是格式转换,特殊效果等。最终处理出来的一帧数据,存在内存中。(3) 手机的刷新线程,使用手机内部的DMA功能,或者OVERLAY技术转载 2017-02-27 20:07:29 · 2783 阅读 · 0 评论 -
C语言宏与单井号(#)和双井号(##)
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) / do{ if转载 2017-02-28 10:01:35 · 461 阅读 · 0 评论 -
标准C的标记化结构初始化语法
以前在看Linux代码时,就对它的结构体初始化写法感到奇怪,所有的初始化代码都写清了变量名,并且变量名前面还有一个诡异的点。最近学习Linux设备驱动,又遇到了,就查了一下,发现自己的知识果然纰漏不少,此种初始化写法并不是什么特殊的代码风格,而是所谓的C语言标记化结构初始化语法(designated initializer),而且还是一个ISO标准。 [cpp] view转载 2017-02-28 15:12:13 · 326 阅读 · 0 评论 -
Ubuntu离线包查找
主要是mark一下这个网址,可以根据目标OS选择相应的目录,进行查找需要下载的离线包,以及依赖关系,以供所需http://packages.ubuntu.com/一般也可以在自己本机的/var/cache/apt/archives/查看本地缓存的离线包原创 2016-12-22 15:24:14 · 454 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号_imp__MessageBoxA@16,该符号在函数 _WinMain@16 中被引用
vs编译器报错: error LNK2019: 无法解析的外部符号_imp__MessageBoxA@16,该符号在函数 _WinMain@16 中被引用这一类问题都是项目缺少对应依赖库导致的,在项目中添加对应lib库就可以了; 解决方法:在项目属性Properties>>Linker>>Input–>Additional Dependencies中添加User32.lib代码中添加依赖库原创 2017-02-17 13:41:08 · 2609 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。No.作用说明参考代码1转载 2016-12-09 10:14:40 · 353 阅读 · 0 评论 -
FFMPEG合两帧YUV420P为一帧
FFMPEG合两帧YUV420P为一帧Linux下,利用FFMPEG库函数合两帧YUV420P为一帧; 在项目中需要用到相关方面的知识,看见一篇博客转载学习以下; FFMPEG合两帧为一帧 原博地址: http://blog.csdn.net/lcalqf/article/details/22989777pSum_FrameYUV为目的帧,pFrameYUV是被合帧。把pFrameYUV合到p转载 2016-10-18 16:51:03 · 1785 阅读 · 0 评论 -
C/C++ 回调函数 讲解
最近看了一篇对C/C++ 回调函数比较详细的讲解,特意转载学习一下,方便以后查阅。原文链接:http://www.cnblogs.com/chenyuming507950417/C/C++之回调函数 今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址转载 2016-09-08 10:06:48 · 459 阅读 · 0 评论 -
Win32下定时器与多线程
Windows环境下,CreateThread是操作系统级函数,而在C/C++开发时应该调用C/C++的运行库函数_beginthread或者更为安全的_beginThreadEx; 对于定时器CreateWaitableTimer相对于SetTimer,会大大减少系统资源;具体用法大致如下:#include<iostream>#include <Windows.h>#include <str原创 2017-02-24 09:58:35 · 1574 阅读 · 0 评论 -
大端模式和小端模式以及程序运行内存空间分布
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先从字节序说起。转载 2017-12-19 15:30:15 · 790 阅读 · 0 评论