摘要:
数组名是常量不能自加 C、s[0]的地址再加一就是s[1]的地址 &s[0]+1=&s[1] #define M(x,y,z) x*y+zM(a+b,b+c,c+a)宏展开 a+b*b+c+c+a = 12如果这样声明 #define M(x,y,z) (x)*(y)+z宏展开 (a+b 阅读全文
摘要:
1、static局部变量与普通局部变量的异同 相同点:都是局部变量,在函数内部定义,仅能被该模块内部的语句所访问。 不同点: 1)内存分配与释放: static修饰的局部变量在内存中存放在静态存储区,static修饰的局部变量只有在整个程序结束的时候才会自动释放。若下次调用该局部变量所在的函数时,不 阅读全文
摘要:
C—变量 在C语言中,变量要先定义后使用。 使用时,必须说明变量的存储类型与数据类型。 变量说明的一般形式: <存储类型> <数据类型> <变量名> 存储类型的关键词有 auto、register、static、extern 数据类型可以是基本数据类型,也可以是自定义的数据类型。 auto与regi 阅读全文
摘要:
Tips 1.寄存器变量可以用来优化加速c语言程序 2.声名只需在类型前多加register 即可,eg register int quick; (quick 就是一个整形的寄存器变量) 3.register只是一个建议型关键字,能不能声名成功还取决于编译器(建议型的关键字还有c++中的 inlin 阅读全文
摘要:
一、USB摄像头驱动框架如下所示:1.构造一个usb_driver2.设置 probe: 2.1. 分配video_device:video_device_alloc 2.2. 设置 .fops .ioctl_ops (里面需要设置11项) 如果要用内核提供的缓冲区操作函数,还需要构造一个video 阅读全文
摘要:
UVC是一种usb视频设备驱动。用来支持usb视频设备,凡是usb接口的摄像头都能够支持 V4L2是Linux下的视频采集框架。用来统一接口,向应用层提供API UVC是一种usb视频设备驱动。用来支持usb视频设备,凡是usb接口的摄像头都能够支持 V4L2是Linux下的视频采集框架。用来统一接 阅读全文
摘要:
1、装载驱动时发现,模块缺少依赖 解决方法: 1、先安装Ubantu里面自带的vivi程序,它会把它所依赖的驱动程序安装进来/ 2、sudo rmmod vivi.ko 3、ls /dev/video* 4、xawtv -c /dev/video* 我写的myvivi.ko编译出来之后,对应的是vi 阅读全文
摘要:
static定义的全局变量 或函数也只能作用于当前的文件。 世界硬件厂商太多,定义static为了防止变量或 函数 重名,定义成static, 就算不同硬件驱动中的 变更 或函数重名了也没关系 。 阅读全文
摘要:
在Ubuntu系统中接上usb摄像头设备时,系统会自动安装对应的usb设备驱动程序。我们现在要使用自己编译的vivi驱动,该怎么办呢? 1.先安装系统自带的vivi驱动和它所依赖的所有驱动:sudo modprobe vivi ; 2.卸载原有的vivi驱动 : sudo rmmod vivi ; 阅读全文
摘要:
(前一部分的基础操作来源于作者:LingXiaokai 的 Ubuntu 9.10 下如何使用笔记本摄像头以及虚拟摄像头vivi的测试) 自己仅对实际操作中需要注意的点进行阐述 一、先在Ubuntu 9.10下面安装一个应用程序的测试程序xawtv,便于分析: 在网上搜索Ubuntu摄像头测试,搜索 阅读全文